this is aaronland

The “Federal Protective Service” is roaming the streets of San Francisco

Small Pings Loosely Joined

Or : restobook 0.5, the WS-DWIM release.

Earlier this week, Leonard roped me in to doing an informal presentation on my Series 60 Python hacking over lunch. When I got to the part about restobook, I explained how :yelp 1234 is converted into a proper URL and stored as such in the address book. JR, who works at Y! Local, piped up and asked if I would do the same for their unique identifiers. So I did.

I have played with the Y! Local APIs a bit but I hadn't really considered them in the context of restobook until JR and I started exchanging email afterwards. Here's how the new features built themselves out over the course of the next four or fives shuttle bus rides between the Mothership and the city :

The APIs don't include business hours or cross-street information which would make them even more awesome. In their absence, not having to enter address and phone information is pretty great all the same.

I also bought a Bluetooth enabled GPS unit recently, so I look forward to playing with that and seeing how it can be used in the context of applications like restobook. At first it seems obvious that you'd want to always use your current coordinates when adding a restaurant but the point of the functionality is to be able to add stuff to quickly when you think of it and not necessarily when you are walking past it. In that sense, defining a default location, or context, may still be a better approach.

Or maybe a popup menu that lists your current location, your default location (assuming it's different) and the option to enter something by hand. That seems more likely. There are a couple other tricks for figuring out your current location, on the fly, but I'm not allowed to tell you about them yet.

Soon, hopefully.

KMimeType application/dwim

Or : restobook 0.4, now with search-fu.

The good : You can now search your addressbook contacts using a select menu containing the aggregate tags for all the restaurants you've merged from which you can quickly choose stuff like beer+sf or sf+downtown+investigate.

The bad : I don't think there's a way, in Series 60 Python, to programatically open an address book contact in the address book itself.

At the moment, I am employing an ugly hack. When you select a restaurant and you want to see its details, the database entry is written to disk as a vCard and then passed off to the built-in content handler framework which opens it in something called the Business Card Viewer. Which is fine except that there is no functionality beyond viewing and importing the card in to your address book. No dialing phone numbers. No opening URLs. Nothing.

So, I guess I will have to write more code to Do What I Mean. But not in this release. Instead, I've added a prompt when the application starts that allows you to run in offline mode so you can do your search-y bits without having to hassle with GPRS and SSL certificate dialogs.

Finally, the nice yelp people have launched their mobile site so I've updated the magic :yelp handler to point to it. Optimized for the Treo, indeed.

Update : I've released version 0.41 which parses the raw address for @ Some Cross St. and stores a match as a note. Useful, that.

Oh and also, the tool to fetch and merge Flickr account data for an address book contact that started all this nonsense : It was finally released the other day.