Shelf

Posted 08 January 2008 in Code tagged with [macos] [python] [shelf] [software] (edit)


Version 0.0.14
Universal binary
(292k zipped)
Changelog

Shelf is an app for MacOS that looks at the current foreground application, and tries to figure out if what you’re looking at corresponds to a person in your Address Book. Then it’ll tell you things about them.

Using Shelf

Just run it. It’ll sit in the background, and watch the foreground application. If it can tie something you’re looking at (the current url in your web browser, for instance, or the target of an open chat) to a person in your Address Book, it’ll open a window and show you their name and picture, and it’ll try to fetch RSS feeds for any URLs in their address card.

It’s possible that you don’t have a very deep address book (most people just have email addresses, the URL field is hidden by default in Address Book.app). If you want a demo, just download my VCard file and import it. Then when you look at this page Shelf should figure out that you’re looking at me, and show you my recent Flickr photos, blog entries, etc.

Getting Shelf

Download shelf by clicking the icon to the right there. Once installed, Shelf will update itself when there’s a new version available. It requires MacOS 10.5 ‘Leopard’ (there are no plans for a 10.4 version, sorry) and is a Universal Binary.

Shelf’s source code is available in subversion if you’re a developer.

Other references

Context

Shelf can derive context from the following applications:

  • Safari - looking at the foreground url, and for microformats in the source of the current page.
  • Firefox / Camino / Opera - looking at the foreground url. No microformat inspection here, alas.
  • Mail.app - From the email address of the sender of the currently selected email.
  • NetNewsWire - From the homepage url of the currently selected feed item, the feed url, and microformats in the HTML source of the feed entry.
  • Twitterrific - From the homepage or twitter page urls of the currently selected tweet.
  • Adium - From the IM username of the current conversation.
  • iChat - From the IM username of the current conversation.
  • Address Book - The currently selected person.

Adding new data sources is very easy.

Information

Shelf displays things about the foreground person, assuming it can find one.

  • Basic address book data - name, email address, real-world address, web pages.
  • Current Twitter status.
  • Current location and time according to Dopplr.
  • Last 4 Flickr photos.
  • Recent entries on their RSS feeds.
  • Recently-played last.fm tracks
  • Various other things

Shelf can only display these things about people if the URL to their homepage on the service is in their address book record. So for instance, to get Flickr photos visible for a person, put the ‘http://flickr.com/photos/{username}’ URL into their address book record. Likewise for Dopplr and Twitter homepages.

If you’re willing to sacrifice a little privacy, Shelf can ask the Google Social API about the URLs that it sees, and this can make it a lot more intelligent - if the person you’re looking at has a homepage that participates in the open social graph Shelf will be able to find other pages about them and display context from them as well. But be aware that this will send URLs that you look at to Google. This may bother you. But don’t worry - it’s off by default.

files

Files associated with this page:

namesizeadded
Shelf_0.0.14.zip (release notes) 290.4 KB 2008-07-01 22:32
Shelf_0.0.13.zip (release notes) 294.0 KB 2008-03-28 09:55
Shelf 0.0.12 (release notes) 290.4 KB 2008-02-14 18:50
Shelf 0.0.11 (release notes) 277.8 KB 2008-02-06 14:19
Shelf_0.0.10.zip (release notes) 467.5 KB 2008-01-11 20:37
Shelf_0.0.8.zip (release notes) 475.3 KB 2008-01-09 23:51
Shelf-0.0.6.zip 155.6 KB 2008-01-08 10:27

Onigiri

2008-01-08 22:59 on Shelf in Code

On my iBook G4 it builds flawlessly.
it runs, but I dont have time to try it now

great work! I'll keep looking at it!

pfig

2008-01-28 17:36 on Shelf in Code

it's finally working for me.

anyway, i've just stumbled upon shoes, might this be of interest to shelf? they both seem incredibly minimalist, and i always like that. also, cross-platform yaddayaddayadda, if you care about that sort of stuff.

Tom Insam

2008-01-28 20:08 on Shelf in Code

Crossplatformness will be of limited usefulness to me, frankly, because the UI is not the thing I'm really tied to - shelf is only really a small web page that I throw HTML at. The thing really tying me to the mac platform is the wonderfulness of the scripting bridge, and I don't see a cross-platform solution to that arriving any time soon...

Ian Kennedy

2008-02-12 06:55 on Shelf in Code

Very cool. If you're interested in extending this with data we have in the MyBlogLog API, let me know. For an example of what we've got, check out the API docs:

http://developer.yahoo.com/mybloglog

Ian
Product Manager, MyBlogLog

Z. D. Smith

2008-02-20 19:44 on Shelf in Code

Should Shelf be spawning a new window even when the content is just 'No Address Book Information for [X]'? That seems a bit perverse!

Tom Insam

2008-02-21 10:56 on Shelf in Code

You're entirely right, and it's on the TODO list.. But why do you have people in your address book with no information at all? :-)

Trevor

2008-03-28 18:37 on Shelf in Code

Tom I think the idea is pretty cool. You might want to extend the url sniffing to facebook status updates and AIM status messages. Pretty sweet app though.

other pages