My name is Cédric Bozzi, I make apps and websites, and this is my tech blog — you’ll find news commentary here, from a very opinionated Mac-head.
Il y a une version française ici, but most of this blog’s contents are extracted from my Twitter feed, and hence only available in one language (which varies randomly).
For a while I’d thought that my MacBook’s wifi connection problems were linked to moving the computer, and the antenna, around (for those who are lucky enough not to know, an AirPort update borked wifi a few months ago, with MacBooks getting consistently disconnected when operating from the battery; subsequent Airport Express Update 2007-004 was supposed to fix the problem, but it did a half-assed job of that, the main difference being that it reconnected automatically after the connection had timed out — which meant that you’d still regularly get network errors in Safari, but at least they’d fix themselves with a simple reload).
Does it sound like a stupid theory? Well, that’s because it was. Confusing causes and consequences or something: it took some listless messageboard browsing today for me to realize that the problem didn’t occur when I moved the computer, but when the connection was idle. Yeah, if the problem only appears when you’re operating on battery, it kinda makes sense that it’s just the system powering down AirPort to save power, doesn’t it? It’s not putting the computer on the sink when I wipe my ass that makes it lose the network; it’s just that I’m not throwing http requests around while the laptop is on the sink. So let’s say I’ve been so upset with this problem that I wasn’t thinking rationally anymore, shall we?
Anyway… the point is, it hit me when I read those board posts: what if I kept the connection alive? Clearly, neither ICQ, nor my web chat’s Ajax calls every 40 seconds, nor even Remote Desktop is enough, so what about a ping? Open Terminal, type “ping ed.local” (where Ed is the name of another computer on my network; the router’s IP address shoulddo the trick as well) and… wow, it works! Wherever I go, whatever I do, I can still browse the web!
Now I’ve got to find the optimal way to keep my connection alive — I’m sure there’s something more elegant than a Terminal window. But the bottomline is, there’s a workaround, an apparently sure way to deal with an issue that should never have been in the first place — if quality control had a meaning at Apple HQ. Who cares about users losing their network when you can boast improved battery life with the latest software update?
P.S. Let’s keep it simple with one line of AppleScript [via]:
do shell script "ping -i 10 192.168.1.0"
(Where 192.168.1.0 is my router’s address. If the problem occurs in the wild, I’ll make a version that pings my server or something, but I’m mostly at home so I don’t see the need to harass another machine.) Save as an application, keep it in the Dock with a nice icon, launch it when I’m away from AC power, force quit it when I get back. I’m going to love wireless again.
Keeping the connection alive feels so much like it’s 1997. Thanks, Apple.
2001 01 02 03 04 05 06 07 08 09 10 11 12
2002 01 02 03 04 05 06 07 08 09 10 11 12
2003 01 02 03 04 05 06 07 08 09 10 11 12
2004 01 02 03 04 05 06 07 08 09 10 11 12
2005 01 02 03 04 05 06 07 08 09 10 11 12
2006 01 02 03 04 05 06 07 08 09 10 11 12
2007 01 02 03 04 05 06 07 08 09 10 11 12
2008 01 02 03 04 05 06 07 08 09 10 11 12
2009 01 02 03 04 05 06 07 08 09 10 11 12
2010 01 02 03 04 05 06 07 08 09 10 11 12