Self Control through software

Leo Efstathiou asked me recently whether I’d rather be smarter, or have more willpower. It took only a moment’s thought to realize that I’d rather have the self-control any time.


And so it was with a sense of wonder and optimism that I normally reserve for sunrises that I fired up Self Control: a Mac application that completely blacklists parts of the Internet. Like a gaoler with a blackjack, Self Control coshes any attempt to blunder down rabbit holes like Facebook or email for some time period you specify. It’s absolutely and delightfully watertight.


The beauty of this is its potential long-term effect. I want to counteract the variable reinforcement schedule that email and blogs provide – with Self Control’s help, I’m hoping to ensure zero reward from them for long enough to break the self-perpetuating cycle of reflexive refresh-pressing.

Switching from linux to mac

So, I caved. I crumbled like a biscuit in a blender. I am now the smug owner of a MacBook Air, and it really is wonderful. I went 10 days without rebooting before needing a firmware upgrade, and both sleep and wireless work flawlessly.

Here are the bells and whistles that make my brain and fingers happy.

Spaces (OS X Leopard’s virtual desktops doodad) isn’t as good as KDE’s, but it turns out to be fine once you turn off the auto-swoosh by typing these two commands into a Terminal:

defaults write com.apple.dock workspaces-auto-swoosh -bool NO

killall Dock

Before, switching to an application (such as Firefox) that didn’t have a window open already on your current desktop would cause you to be whisked randomly to the first desktop which did have a Firefox/Terminal window open. Now, you can switch to Firefox, hit Cmd-N and a window pops up, ready to go with minimal context disruption.

MondoMouse makes it easy to move and resize windows. By default, moving a window involves awkward trips up to the title bar. The tiny resizing handle is even more awkward, and more awkwardly situated, and is often overpowered by an overeager Dock. Now, I just have to hold down Cmd and move the mouse to move the active window. Holding down Cmd and Alt resizes. Again, this doesn’t work quite as nicely as KDE – for instance, the windows don’t snap satisfyingly into place when they get close to other windows or the edge of the screen. MondoMouse is available for a trial period, after which it costs $15.

Various other niceties deserve a mention. I currently prefer the Carbon Emacs over Aquamacs, though there’s not much to separate the two. Quicksilver, Expose and hot corners are great. For Dashboard widgets, I’d recommend iStat Pro, Word of the Day and maybe Album Art. Adding cdto to Finder is handy. Skim is the way forward for reading PDFs in full screen. Alarm Clock for timers. Cyberduck for accessing other computers over SSH (along with MacFuse and SSHFS).

Some things are just broken on the mac, and will probably never be fixed. Steve Yegge has described his heroic failure to civilize the mac’s shiny silvery savagery with proper focus-follows-mouse behavior. In general, OS X’s switching behavior is wrong in a few respects. The application (rather than the window) is the wrong level at which to switch, and so Cmd-Tab is always jarringly confusing to use. There are still kinks with the way that windows activate and bring themselves to the fore, especially when multiple desktops are involved, and I seem to lose a modal dialog to this problem about once every few days. MacPorts and Fink are workable but still disappointing – having two package systems devalues both, downloading binaries is preferable to compiling every time, and the packages are generally patchier than Debian’s apt-get. Finally, X11 is very clearly a second-class citizen, but works tolerably well. Oh, and unbelievably, the regular expressions engine in Python 2.5 appears to be maddeningly sprained!

There were a few pleasant surprises. Two-finger two-dimensional scrolling is unutterably wonderful. The MacBook Air’s colossal touchpad is very pleasant to use, even for nipple-lovers. OS X applications are pretty consistent about keyboard shortcuts. You can re-learn most muscle memories without too much effort so long as you don’t have to switch back and forth between the old and the new too much in the first few weeks. Emacs is still Emacs.

Losing an old friend

My trusty, indomitable Thinkpad T40 is showing telltale signs of domitability. I will feel its loss like the loss of an arm I’m using to cling to a mountain. Unfortunately, my Thinkpad crashes about once a day – hangs rigidly from a carefully-tied noose, requiring a hard reboot. I could send it off again to Lenovo, but it felt like a hasty hemispherectomy with a blunt knife the last time I needed to do that.

In pondering the purchase of my next outboard brain, I’m torn between the Lenovo X300 and the MacBook Air. If I refrain from superfluous eating or personal grooming, I think I can stretch my budget to $2200, which has to include warranty, spare power cable, external DVD drive etc. [Right now, the Lenovo X300 only exists in a flash drive model for $3000, but let’s assume that if I pray and masturbate hard enough, they’ll introduce a cheaper model with a standard hard disk].

Let’s start with the MacBook Air pros. It’s more beautiful than a prone supermodel, and almost as slim and weightless. Mac OS X probably works more reliably than anything else on the market, and with Parallels/Boot Camp, I should be pretty much covered for most eventualities. Keynote – nuff said. I don’t need a DVD drive more than once every few months, and I can live reluctantly with the ports it offers, plus some dongles.

On the con side, I don’t want to reward Steve Jobs’ deviously effective strategy of locking Apple consumers into an all-Apple world. I hate barriers to exit in consumer products. I think open solutions foster greater innovation in the long run. And I resent proprietary software like I resent being told what (not) to do.

There’s little to argue in favor of the Thinkpad specifically. I like its distinctiveness, its nipple mouse, and the fact that it has two mouse buttons and pageup/down keys.

Furthermore, I really like linux – I like that things are free in every sense. I love Debian-based package management – being able to automatically install and update everything with a single command or click is so weirdly, futuristically better than the Mac or Windows approach of downloading each application manually, each of which has its own update software – so much better that non-linux users literally don’t seem to believe what they’re missing. Finally, I love KDE. I like the fact that I have keyboard shortcuts for everything – I wear it like I wear my 5-year old walking boots that have moulded perfectly to my feet. I especially like focus-follows-mouse and being able to effortlessly move and resize windows by holding down Alt. These alone are very nearly enough to tie me to linux indefinitely.

But linux lets me down. My wireless is better than before, but it’s still a little drunk and a little deaf. I lose minutes a day to niggles and imperfections (e.g. USB, sleep and projectors). I’ve never quite had 3D video stuff working, so I have to jump through fiery hoops to run my experiment presentation software (PyEPL). YouTube and video are pretty hit and miss. And, even after using Open Office for 2 years, I still don’t like it as much as Microsoft Office.

So I’m left trading off my preference for linux’s user interface, package management and freeness against beautiful hardware and reliability. Perhaps I’m getting old and impatient, but the reliability is really the kicker here.