Archive for the ‘Cocoa’ Category

Shion: Location-based Home Automation

August 17th, 2010

After a busy week of client work, I spent most of today hacking on Shion. For the past couple of months, I wanted to implement location-based home automation (e.g. “activate Snapshot FOO when I go more than 5 miles from home”), so I spent the day doing just that:

Shion Location Based Services

Rather than treat mobile clients as invisible participants in the Shion ecosystem, I went ahead and made them full peers of the other devices in the network. Doing so made it convenient for me to gather information from the devices (phones as sensors) and send instructions to the mobile client (phones as controllable devices). If you click through to the higher-resolution version of the screenshot, you’ll see that Shion gathers location information from the mobile clients and provides a “beacon” command that plays a unique sound on the mobile client (for those times when you unwittingly lose it between the couch cushion). For those concerned with sharing too much location information, a preference on the iPhone app allows it to go into private mode: beacon commands can be sent, but location data stays on the device. Since Shion does not store any of this information on a server (information passes through, but doesn’t stick around in the online components), it provides a secure alternative to other server-centric location-based services. The online service is only the conduit for passing the information from your phone to your Mac.

For those willing to share location information with their copies of Shion, a variety of interesting possibilities open up:

  1. Shion can be used to define geographically-aware “zones” that associate a particular geography with an action (activate a snapshot, execute an AppleScript, etc.)
  2. Shion can be used to track the location of several mobile devices simultaneously. This is much like Apple’s “Find My iPhone”, but will work on any client or device equipped with some form of geolocation functionality. On my own roadmap are Android and WebOS devices. (Both of those platforms will actually implement a richer feature set than the iOS devices on account of their unfettered multitasking abilities.)
  3. By hooking into the Events system in Shion, this feature an be used to draw a map of your travels over a given period of time. Don’t remember where you saw that interesting shop? Look it up on your copy of Shion.

I’m very excited about this feature and feel that I’m only scratching the surface of the possibilities. Location-awareness will be available in the next releases of Shion & Shion Touch.

10 initial impressions of the new Apple tablet

January 28th, 2010

In light of the release of the new Apple tablet device, I wanted to share a few thoughts and initial impressions. These thoughts are focused on the device as a whole – I’ll be posting more on Apple’s foray into the electronic book world later. Disclaimer: I am an AAPL shareholder and I plan to purchase at least one of these devices for research and development work when they become available.

Read more…

Codex UI updates & preview

January 11th, 2010

Lest I give anyone the wrong impression, Codex work has been progressing steadily, if a bit quietly. My last blog post on the topic described a user-interface scheme, which since I’ve abandoned in favor of a concept that simply works better than what I had in mind a month ago. No one ever said that software design wasn’t messy. :-)

The UI design that I’m previewing below addresses several issues that continue to plague the current Books interface:

  1. Data availability. In the current version of Books, metadata is spread among several windows and tabs, making it difficult to review an entire record easily. The canonical metadata is in the details view, while the more readable overview (in the main window) only shows a small subset of the available data.
  2. Printability. Printing out record data is more of a priority for users than I acknowledged in Books 3. The new UI drastically simplifies and improves the printability of book information.
  3. Portability & scalability. When I created Books 3, I had no plans to target any platforms other than the Mac. Since that time, we’ve witnessed an explosion of fully-capable computing platforms that no longer fit the desktop mold. This new UI will be initially implemented on the Mac, but I have plans to port it to other platforms once the Mac app is released.

Please note that the following interface is intended for dealing with single records at a time. At a later date, I’ll be happy to share details about the interface that displays information across records (record browsers).

For screenshots and descriptions of the new interface, please read on.