Tag Archives: sse

Bookshelf note sharing

I’ve blogged a lot about my side project “Riverfold”:http://www.riverfold.com/ lately, but it’s time to show my “real” job some love as well. Internally at “VitalSource”:http://www.vitalsource.com/ last week we rolled over to beta status for the upcoming Bookshelf 4.5, and I’m really excited about what is coming. I’ve been working on the note sharing and syncing feature off and on for over a year now.

What’s it all mean? In a nutshell, create highlights and notes in your digital textbooks and have them flow to other users or to any of your computers. As Steve Jobs said with a totally straight face at the iPhone introduction: It works like magic.

(That was one of my personal favorites from Macworld. Rewatch the keynote and see the expression on his face. This magic is serious stuff.)

At least, magic is the goal. If it was that easy we would have shipped by now. Behind the scenes it gets a little tricky, and the cross-platform C++ code that powers the client (the server piece is written in Ruby on Rails) is in its third major rewrite. Which like all good refactoring, is simpler and probably uses fewer lines of code than the previous two attempts.

But first, some screenshots: “Subscribed highlights”:http://www.manton.org/images/2007/bookshelf_subscribed.png and “Sharing”:http://www.manton.org/images/2007/bookshelf_sharing.png.

The architecture is based on the “Simple Sharing Extensions”:http://msdn.microsoft.com/xml/rss/sse/ (SSE) for RSS and OPML. On top of that we have added a VitalSource namespace and a few extra XML elements and attributes to keep track of Bookshelf-specific data, such as highlighter color and selected text within a book. The goal is to keep it as open as possible, so that in the future we can both consume other sources of user notes, and allow third-parties to also hook into the data in interesting ways.

We (computer users in general) are all writing bits of notes and data in various applications and for the most part, it’s a mess. We switch applications frequently, databases and file formats change, and there’s no good way to move data between applications. Imagine instead that you could have bookmarks and short snippets of text easily sync between apps like Del.icio.us, NetNewsWire, Yojimbo, Flickr, and Bookshelf. Ultimately the only requirement is that each item is RSS-like (it has a URI, some text, and maybe another piece of specialized data just for that app). Anyone who has been programming for the web for a few years knows that after a while, everything starts to look like RSS.

The key is simple, flexible standards. “Less Software”:http://gettingreal.37signals.com/ch10_Less_Software.php, if you will. Mac OS X’s Sync Services by comparison is too complicated, too closed, and too narrowly tied to specific applications.

What I like best about SSE is that it provides a roadmap of sorts. It makes some assumptions about how you want to sync data and that frees you to work on more important things. Wondering how to deal with GUIDs, versioning, and deletions? Don’t reinvent the wheel, that’s in the spec.

I’ll post again when we actually ship the software, of course. Anyone else using SSE yet? If so, drop me an email. I’d love to hear how people are using this stuff.

Da Vinci book, companion, and short film

The Da Vinci Code appealed to me and many others because it successfully mixes pieces of both art history and code breaking. The book captures in fiction the same fascination I had first cracking open Applied Cryptography.

A few months ago “Damon”:http://www.damonclinkscales.com/ completed a “companion to the book and film”:http://www.davincicc.com/, containing images and links to concepts organized by chapter. It uses the VitalBook digital book format, and is viewable in the software I helped write, “VitalSource Bookshelf”:http://www.vitalsource.com/. I’m working on some fun new stuff for Bookshelf at the moment that uses web services and “SSE”:http://msdn.microsoft.com/xml/rss/sse/, something I hope to post more about in the future.

In other Da Vinci news, story artist and animator Jim Capobianco has completed animation on his short film “Leonardo”:http://leoanimation.blogspot.com/. I saw a preview of this at “2d Expo two years ago”:http://www.manton.org/2004/07/california_adventure.html, and I can’t wait to see the finished product. Even in storyboards and rough pencil animation it was great.