My new project: Tact, a simple chat app.

Apple widgets crash with weird network setup

April 08, 2007

I witnessed a spectacular crash of all my stock tracker and weather Dashboard widgets in OS X this morning. When I opened Dashboard in a weird network situation, they crashed one by one. Since I had five Weather instances, I also witnessed five Weather crashes.

I’m blaming my weird network situation. Yet it’s one that travellers encounter fairly commonly. The widgets work fine when the Internet is either “on”, meaning you have full fine connectivity, or “off”, where you don’t have a network connection. When you open Dashboard, all widgets attempt to update their data. With Internet working, they get their data fine. With Internet offline, they don’t get new data and stick with old data.

My situation was that I was in a paid wifi zone but hadn’t paid yet. So in this situation, you get an IP address and configuration and everything appears fine. Yet if you actually attempt to open your browser and get to a page, you are redirected to the wifi login/purchase page. So in this situation, my psychic debugging powers tell me that the widgets saw “cool, we have Internet” and attempted to connect to their data sources and download new stuff. But they didn’t factor in being connected to some wifi login page with all HTTP requests, and most likely they retrieved this page and tried to parse it for stock quotes or weather data, assuming it was in whatever format the pages are where they actually connect to. So the data was something other than expected, and due to so some shit coding and improper error checking, they simply crashed instead of failing gracefully.

Crashing – I can live with that. But to put salt on the wound, the crashes actually eliminated my dashboard configuration for those widgets. If the whole thing were engineered in a more resilient way, then the widgets would still come up as they were previously, if not before then say after a reboot or Dashboard restart. But this didn’t happen and I was left without my stock and Weather widgets and had to re-add them. The stock one had somehow remembered the tickers that I was tracking, so that was kinda OK. But the weather ones had completely forgot the cities so I had to reconfigure them from scratch. Poop. Bad Apple, no cookie.

I’ll end this one with a trailer about Dashboard. I didn’t initially understand it, but now I’m getting it more and more and actually using it daily. And I think it’s the right way of doing the widgets and I think it’s more appropriate than the Vista sidebar and its gadgets. I haven’t yet seen Vista, but I understand the sidebar and its gadgets are just sitting there all the time, instead of sitting on a separate optional layer like Dashboard. I’ll write this up once I’ve actually seen Vista one day.