Own a Barnes and Noble Nook or Amazon Kindle e-reader? Check out bookfriend.me where you can share nook books with other Nook owners. I built this site over the past couple of months to teach myself
node.js and had a great time.

Nook Lend Me Feature

The B&N Nook doesn't get as much press as Amazon's Kindle, but it has a few great features. One of them is the Lend Me feature which lets you share any book you buy from barnesandnoble.com with another Nook user. The borrower gets to read the book for 14 days, after which the book blows up and re-appears back on your Nook.

Who wants my books?

The problem is that you may not know anyone that wants to borrow your copy of War and Peace. So the Lend Me feature goes unused by most Nook owners.

bookfriend.me

bookfriend.me lets you search for books by author or title and indicate whether you own or wish to borrow a given title. If another user wants a book you own the site provides you with their email address so that you can share the book with them using Lend Me.

Thoughts on node.js

This was my first node.js project and I found it to be a fun platform to hack on. The community has provided a remarkably full suite of dev tools in a very short amount of time. As of this writing node.js is only about 14 months old.

Stuff I liked about node.js:

The combo of npm and github makes it very easy to join the node.js community and contribute something. I wrote node-pool during the project and added it to the npm registry and node.js modules page without having to ask anyone's permission.

node.js has attracted an array of talented developers into its community including the prolific TJ Holowaychuk who wrote the app server Express and test framework Expresso that I selected for bookfriend.me.

express combines very well with nginx. very simple deployment.

Cons/drawbacks/etc:

asynchronous programming on the server takes some time to get used to. unit testing database code is particularly mind warping, as all your tests run in parallel. You have to use care to wall each test case off.

node.js moves quickly. during the project the built in 'sys' package was renamed to 'util'. I still haven't patched my code to be compatible with this version of node.

Hi! I'm James Cooper, a technology consultant and developer based
in Seattle, WA. Current interests include distributed computing,
queueing, and the Go language.

I'm available for freelance work. Contact me at:
james at bitmechanic dot com