Archive: Home Zone

« Previous Entries

The End of Home Zone

As of today, Home Zone will no longer be available on our website and support for it will be discontinued. There were two issues with the application, only one of which could have been addressed by me.

First, Home Zone hasn’t seen an update for around nine months now, and Leopard support was still pretty bad. The interface sucked and everything was pretty unpolished (that’s why I called it a beta). There had been plans to improve all of that, and none of that would have been a big problem (except for the time required), but it came different. The reason why Home Zone has been neglected is that there are technical issues with both WiFi and Bluetooth technologies, which prevented my vision of Home Zone come true.

Home Zone’s WiFi ability was that it could detect which WiFi networks were nearby and perform certain actions when networks appeared or disappeared. Your WiFi card doesn’t automatically get notified when a new network appears, though. Detecting WiFi networks involves a scan, which takes about one or two seconds, and which is the reason why available networks don’t appear immediately in your Airport menu item when you open it. Now if you want to notice a new network in time, you have to constantly perform such scans in the background, which is also called polling. Programmers hate polling (I’m simplifying, but it’s true in our case as it is in most cases), because it’s always a trade-off between hogging resources (scanning more often) and noticing a change way too late (scanning less often). If you are not currently connected to a network, scanning hurts nobody. This is why Mac OS X can pop up a list of available networks when you open your notebook somewhere. But if you are connected to a network, performing a scan for WiFi networks blocks all traffic for a second or two, just as long as it takes for the scan to complete. This means a pretty nasty hiccup when browsing a website, for example, or listening to streaming radio. Now when Home Zone does that every 30 seconds in the background (or even more frequently), you will very soon be pretty pissed about it, just as you were with a longer scan interval of like 10 minutes, which would mean that it could take up to 10 minutes for Home Zone to adapt to a change of WiFi networks. Sorry WiFi, you’re out.

We face a similar problem with Bluetooth. The Bluetooth chip in your Mac doesn’t automatically sense when a Bluetooth device comes near. Again, you have to scan, and this time it’s even worse. Frequent scanning simply drains the battery of the mobile devices, because they always have to respond to the inquiry, and Bluetooth is expensive, battery-wise. Yes, I’m here. I’m here. I’m still here. Still here. Everyone would get bored of that in no time, and phones are no exception. This doesn’t only apply to your phone, but also to the phones of your coworkers and generally every Bluetooth device in range. We very much value our phones’ battery life, so what can we do? Increase the scan interval? No. This would mean, again, that it might take 10 minutes after you’ve left your desk with your phone in your pocket for well-earned lunch until the screen finally gets locked by Home Zone. It could’ve easily done that by itself in that time. In addition to that, Home Zone’s scanning might knock off headsets connected to phones which only support older versions of the Bluetooth standard, etc. and you don’t want that either. Bluetooth, join WiFi in the corner of the useless.

To improve scan performance, Home Zone might be able to skip a Bluetooth scan here and there and behave intelligently, but all in all you still end in the same dilemma. I finally decided that it wouldn’t be worth it to use cheaper indicators like plugged in USB devices or reachable IP addresses, as they are all lame in comparison, and you wouldn’t want to write such an application without proper WiFi and Bluetooth support. The aforementioned issues make it impossible to write an application with WiFi and Bluetooth support though, an application that is a true Mac application, that is beautiful and just works, without having a negative impact on anything else. I don’t want to require users to understand the scan interval tradeoff and configure it to their needs or manually enter IP addresses. Who the heck knows what an IP address is?

So, I’m very sad to see Home Zone go, but I’d rather focus my attention on other interesting Mac and iPhone projects like AppFresh or Trip Planner.


Home Zone beta 9

Home Zone beta 9 (Mac OS X 10.4 only)

I’ll call it the Birthday Release, since today is my birthday. :-) What’s new:

  • Added Network IP/Host trigger
  • Added Airport enable/disable actions
  • Added iChat/Adium status action
  • Added intelligent trigger evaluation; zone availabily test will check easiest triggers first and skip unneccessary checks of harder triggers. Order is Network, Airport, Bluetooth. This way, you can save bluetooth power by also defining a network/airport trigger in a zone where “any” trigger is sufficient to determine availability. You can also cut airport scan load by defining a network IP trigger with your router’s IP address instead.
  • Made actions rearrangable, defining execution order (drag to rearrange)
  • Improved responsiveness
  • Copy any custom actions to ~/Library/Application Support/Home Zone/Actions/ as Home Zone updates will override your actions otherwise

As always, please feel free to comment on problems, suggestions or things that just work.


Home Zone Beta 8

Home Zone beta 8 (Mac OS X 10.4 only)

I’ve been able to take some time to finally finish the next beta of Home Zone. Improvements include:

  • Bluetooth scans have been improved. You will probably need to re-set all bluetooth triggers, but it should work much better then. I hope this fixes ghost changes of bluetooth triggers that have been reported with Beta 7. Setting the Bluetooth scan interval to 5 – 10 seconds should be no problem.
  • An action to set the default printer has been added
  • An action to stop the running screen saver has been added. Note that this action can’t circumvent the password dialog.
  • An action to synchronize your mobile phone using iSync has been added. This is influenced by the great work of Jesse David Hollington.
  • There’s a preference to make trigger state changes lazy. Setting it to a value larger than 0 will require as many scan cycles to confirm state switches for any trigger. This might help with some premature state change problems, but will obviously delay the state change by some cycles.

As always, please feel free to comment on problems, suggestions or things that just work.


Home Zone Beta 7 (working)

Home Zone beta 7 (Mac OS X 10.4 only)

I’m so sorry I didn’t catch this… :-(

By the way, you will have to re-configure all actions once after updating. This is not a bug, I just didn’t take the time to write code that translates all actions to the new model. Won’t happen again.


Home Zone Beta 7

Home Zone beta 7 (Mac OS X 10.4 only)

Beta 7 speeds up bluetooth scans (it now only recognizes paired devices, though) and adds the new application icon, which has been designed by Louis. Under the hood, a new action plugin architecture has been implemented. I will post instructions on how to create actions in a few days, but you can always send in ideas, suggestions or concrete Applescripts or shell scripts so I can make an action of them.


Bugfixes to Beta 6

Home Zone beta 6.1 (Mac OS X 10.4 only)

Based on all feedback, I fixed some crashes and improved handling of some airport network names. Let me know if you still find something that’s not working right so I can further stabilize the core.

On the new features front, I’m working on a new action plugin architecture that allows users to develop their own actions using AppleScript or Objective-C. This way, actions can be created, added and updated easier.

Also, Louis has created a terrific icon that will be released together with the new interface, which is in draft stage right now. Thanks, Louis.

To everyone who offered me to donate something so far: Thanks alot! This is a public beta right now, and will most likely be shareware when it’s final. I appreciate your help, but you might want to save your pennies for the final release.


Home Zone Beta 6

Home Zone beta 6 (Mac OS X 10.4 only)

Yesterdays beta 5 was admittedly a bit brittle, so everyone who experienced problems, please download the new release. Things that should work better now include:

  • Greyed out menu items
  • Empty dropdown box
  • Sudden quitting, problems when restarting – you may have to restart your Mac once, though.

No new features, sorry.


Home Zone Beta 5

Home Zone beta 5 (Mac OS X 10.4 only)

Please delete the file PersistentStore.xml at ~/Library/Application Support/Home Zone/ in your home directory.

Beta 5 changes the way that Home Zone scans for available Airport networks. First, you can set a custom scan interval in the new preferences dialog. The Airport scan interval is pretty short (5 seconds by default), but Home Zone performs a full broadcast (which leads to the short performance hits Stefan reported) only every tenth scan (and immediately after launch and waking up, so you’re up to date). Also, you can now specify that a trigger should only recognise an Airport network when you’re actually connected to that network, and you can enter one or more base station IDs (BSSIDs) so the trigger will only recognize the network when your base station has one of these BSSIDs. If you only have triggers that recognise connected Airport networks, Home Zone will skip the full broadcast scan altogether (except after launch and wake), so if you encounter wireless performance problems, switch all your triggers to “connected” only.

Also new in this release:

  • You can force-enable or -disable zones via the status bar menu of each zone. By default, Home Zone will reset your override when the zone changes its state, but you can disable that in the preferences
  • New action: Immediately start the screen saver
  • The open file/URL action has been improved to support AppleScript files (.scpt) and executable files; if you want to run a shell script there, make sure it’s executable
  • You can specify that a zone should be considered active if none of its triggers are active. This seems illogical, but it’s nice when you want to define an inverse zone, like “Not at home”.
  • New icon and website

Transforming this into a Preferences Pane will be tricky for several reasons, though. The interface (which is really cluttered right now, I hope to change that at least a bit) is just too big. Maybe I just leave it like it is.

I’ll look into supporting more triggers next, like the reachability of a certain computer/router/IP and maybe make the actions interface easier to handle (sorting actions would be useful, too).


Home Zone Beta 4

Home Zone beta 4 (Mac OS X 10.4 only)

  • Detects hidden, but paired Bluetooth devices
  • Setting system volume actions
  • Now also checks immediately after waking up
  • Availability icons in status bar menu

I’ll try and see how this can be made a system preferences panel, which would probably be a good idea.


Home Zone Beta 3

Home Zone beta 3 (Mac OS X 10.4 only)

  • Growl support has been added. See the Growl system preferences panel to configure what messages will be posted.
  • An action for changing network locations has been added
  • An action for locking all keychains has been added
  • An action for opening arbitrary files, applications or URLs has been added
  • Bluetooth device discovery has been improved
  • Added update check functionality (thanks to Sparkle)

Oh, and you might want to push this a little:

metaquark.de | Blog | Buy | About | Contact | Imprint & Privacy Policy

Aurora | AppFresh