Back From A Vacation
I am just back from a multi-week vacation on the cruise ship the Voyager.

My dear wife—Kathryn Farley—and I were on the trip together with

her brother. It was wonderful. It was relaxing and terrific.
Well Not Exactly
When I first got on the ship I had to reset my wifi connection on my laptop. Somehow I messed it up and it failed. I then tried to reconnect and the internet connection failed again and I could not reconnect it ever. Suggestions like: Open your Settings app and tap Network & internet or Connections. Depending on your device, these options may be different. Turn Wi-Fi off and mobile data on, and check if there’s a difference. If not, turn mobile data off and Wi-Fi on and check again. never worked. Not ever. The rest of the cruise I gave up—I was after all on a vacation. I decided I did not need the internet, email, or Google. I still enjoyed the time.
<H2The Problem More Exactly
But this raised an interesting problem: How do we search the settings of a laptop and reset the state? Somehow the state of the laptop got messed up and then I could not get it reset to the correct state. Being on a ship made it harder to reconnect and actually made it impossible. I just got stuff working after being back at home in NYC
Here is the technical problem that I faced. My laptop was in a correct state let’s denote it as . Then I messed it up somehow to the state
. Since I cleverly did not keep a clean state I did not know how to get back to the state
. The trouble with this problem was:
The state I was in on the laptop did not work; the state was not one that allowed the laptop to do anything useful. Anything. For example it did not allow me to do Google searches. Thus I could not try to see how to get to a useful state.
I did ask an “expert” that was on the ship for help. But he was an expert but not one who could help.
The Problem Even More Exactly
Imagine the laptop is in some state . How do we try to find the correct state
? The interesting issue is that tools like Google are not available while you are in the wrong state. You can edit some part of the state but then when you try and use the laptop the state may still not work. You can then try another state, but it may stlll be broken. Good luck.
Open Problems
How would you have attacked this problem? I gave up after a while. What would you have done?


I have dead zones on the screen of my phone, especially the lower band, so I’m constantly having to rotate my phone around from portrait to landscape and further around till its upside down in order to get the control buttons and keyboard keys I need into a live area. It can take many such manipulations to type so much as a single sentence and send it off. This leads me speculate on the symmetric group complexity of defective-device-relative linguistic communication.
edit: it’s upside down
Most operating systems these days allow setting search. On macOS, I would do cmd+space and search for Wi-Fi. The first result points to all the settings related to Wi-Fi.
Another tip for particularly connecting to Wi-Fi is to head to neverssl.com as first thing after the connection succeeds. Some Wi-Fi providers, such as on airports, are notorious in not showing up the-connect-to-wifi window automatically, but visiting neverssl.com forces that window to show up.
Well if you had a cell phone, you could use that to get a google page and proceed from there.
From the OS level view, this sort of problem can be handled by approaches which track state and ‘package’ it. For example, NixOS (or Guix) maintains each OS snapshot separately and switches between them, so it would let you ‘roll back’ your OS to the previous week’s installation by simply switching all the addresses to point at the old snapshot. Since both of them are there, one can then diff them to try out changes one by one, in theory, to isolate the error.
A lot of config errors like this are due to user data in $HOME so it might not help to change the OS, but you can version-control your data (you are backing up your data, right?) and do the same thing: your data is saved, so restore the last week’s version until you figure things out, then you can roll back forwards. (Again, at least in theory. Like most people you’re probably doing remote backups so wouldn’t have the data with you, and of course, your smartphone is so gimped, and so designed for the lowest common denominator, that all of this is a pipe dream. It’ll never give you this sort of control.)
This sort of stuff is why a lot of software development and cloud stuff has moved to Docker and Kubernetes and other stuff slapping on even more layers of abstraction: do everything as code recipes for building an OS+apps+data, and then just ship out entire OS images to VMs and blow them away the moment you don’t need them. Some config change at runtime proved bad? Don’t try to recover from it or figure it out, just kill the bad VM and stamp out a fresh one. (This often works for the same reason ‘crash-only software’ and reboot works: most errors are transient and will not repeat themselves, so ‘have you tried turning it off and then back on’ actually does work.)
A wild and general purpose technique— “try & try again”. Large number of iterations with reasonably large intervals give new ideas. They are just context sensitive. Standard tricks typically don’t work in such situations.
along the lines of @gwern’s suggestions, these days lots of OS’s will package the state and allow rollbacks to previous (and possible good) states. Similarly there are ‘safe-mode’ states that disable a lot of extras but leave the nitty gritty (often including networking) to work with. E.g. linux has recovery mode and boot to cli, windows has rollback and safe mode, mac has time machine for rollbacks and a safe mode iiuc. Many of these avoid the bootstrap problem of ‘I could solve this problem if I had network access, but the problem is such that I dont have network access’. A possibly better approach is almost universally taken for extra-monitor setup – there’s a window that pops up saying ‘can you see this window, if not the change you just made that messed up your monitor settings will be undone in X seconds’ although arguably that’s more or less equivalent to rollback.
Are you sure your laptop wasn’t in a works-in-and-depends-on-a-specific-context state, which happened to be satisfied in your ‘normal’ contexts? Clever (= nontransparent/unpredictable + work-most-but-not-all-of-the-time + evolving/’learning’/’AI-powered’) subsystems are replacing dumb (= transparent/predictable + work-in-well-defined-contexts + nonevolving/static) subsystems these days…