I noticed a few BookMooch-related YouTube videos today.

Here are some I thought were great:

He’s totally adorable.


Funny throughout. Starts with a hilarious segment about a high tech winery.


Self-promotion!

This is me doing a “lighning-presentation” at a conference in Copenhagen. The slide automatically changes every 20 seconds, and you have exactly five minutes to speak. I manage to almost injure myself by flailing about at the beginning.

Today is BookMooch’s two year anniversary! Yay!

As a birthday present to myself, I spent some frivolous time playing with the PicLens browser plugin, making it work with BookMooch. PicLens is a 3d image browsing program, mostly useful for sites like Flickr.

However, I thought it would be fun to browse books visually. This is what it looks like as you’re scrolling through the 3D book space at BookMooch:

Picl2

when you click on a book, it zooms forward like so:

Picl1

To make this work, install the PicLens browser plugin, and then click on the piclens icon Picl3 in your browser when you’re looking at someone’s inventory.

The PicLens folks made it very easy to support their plug-in — all that it needs is a Media RSS feed, which is just like the old RSS feeds I have at BookMooch, but with small & large images indicated in the data feed.

As soon as I got this working, I realized that this would be really useful for browsing large numbers of books, such as browsing topics, browsing nearby books, or sifting through search results.

Unfortunately, that would be actual work for me, rather than the 2 hours this took, because I have to make RSS feeds for those other pages, in order for PicLens to work. I might do that in the future, maybe.

There are a bunch of Flash-based image browsers out there, and that is probably the way I’ll go in the future to bring book-cover-browsing to BookMooch. With a Flash-based approach, every web browser could look at books using a 3d visual interface, and not have to install anything.

Here is a video I made of browsing someone’s BookMooch inventory with PicLens. You’ll notice that some of the books don’t have book covers, which is a little awkward, but it works. Also, I’ve noticed that I sometimes need to reload an inventory page before the PicLens logo goes “blue” to indicate it worked (technology, sigh).


Reserved books irk some folk

On another topic, I’ve gotten tons of feedback from people saying they don’t want to be notified of available books that have been reserved for others. Loud and clear, gotcha! I agree, and I’ve also gotten feedback from people that don’t want to even see as available on the web site, books which are reserved for others. I agree with that too.

I will be rewriting-from-scratch how the reservations feature works, so that reserved books are literarily not in a person’s inventory, and are only visible for the person they’re reserved for. That means reserved books won’t appear in searches, RSS feeds, or email notifications. And, when a reservation expires, it’ll be added-as-normal to the inventory, so people will get wishlist notified as per normal.

However, this is going to take me a bit of time to get to, because…


Taking a vacation: Learning German in Berlin

Last year I had the idea that I should spend one month a year living in a foreign city. Last year, it was Stockholm.

This year… I’m renting an apartment in Berlin, and taking intensive language courses in German. When I was 18 years old (21 years ago!) I thought my future career was teaching philosophy, and for that reason lived in Berlin for 3 months, gaining a little bit of proficiency at it. I’ve always wanted to come back to Berlin (I left weeks before The Wall Fell), and it’s taken me 20 years to get around to it.

I’ll be taking a more-or-less complete break from programming for a month, to clear my brain, and see how much German I can cram into my head!

If you live in Berlin, would like to meet me, and don’t mind listening to your language being mangled, I’m looking for an activities partner with an posting at Erste Nachhilfe.

MoochStand Project

July 24, 2008

Moochstand1-1

My friend Teresa had a terrific idea: what if there were a BookMooch table at local book fairs, festivals, and other events? That would be a great way to get people interested in mooching, as well as being pro-book and pro-reading.

Cand24-1All across the world, there are events like:

1) book sales by libraries, hospitals, churches and charities

2) festivals, especially in the summer

3) county fairs, and other events

We decided to give it a try at a local town festival in El Cerrito (the dancer on stilts is from that festival).

Tons and tons of people were interested, and talked to us at the festival. And who knew there were so many librarians in the world?

So… this seems like a good idea, and I’d like to invite other moochers to take part.

Teresa thought that a “MoochStand Kit” would help people out, so if you’re interested in having a table at some event local to you, email Teresa and mooch the MoochStand Kit.

Also, since Teresa has been attending these fairs and doing the booth herself, she’s a treasure-trove of information, and absolutely happy to chat with anyone who is interested in this idea. At some of these fairs, there is a modest fee (I think El Cerrito was something like $40) to have a table, and I’m happy to pay that to help promote mooching.

Moochstand2

BM hard drive upgrade

July 15, 2008

Mtrondrive
BookMooch switched over to using an all-memory-based drive today, instead of the usual “hard drive”

Initial results look very promising….


I’ll be taking BookMooch down wednesday night, from 4:30pm (Pacific time) onwards.

I’ll be installing a new server-class flash drive drive from Mtron.

I’m doing this, because the nightly tasks slow down each night that BookMooch is up, beginning at about 90 minutes, and after 3 weeks, taking 8 hours. A restart solves that problem. I’m curious to see if a flash drive solves that problem. And even if it doesn’t fix that problem, it should help BM reboot faster, since currently it takes about 40 minutes to restart BookMooch, loading 20GB of data into memory.

Currently, the hard drive only transfers about 5mb/second, even though it should be able to do 50mb/second. I *think* this is due to random-access drive seeks (ie, the data is all over the hard disk, so the drive head has to move a lot), and if so, a flash drive should speed that up hugely.

On wednesday, I’ll only be installing the drive into the machine, I won’t be switching BM to using it. That, I’ll probably do over the weekend.

-john

Schoolyard

BookMooch user Kirsten, writing to me on behalf of the Chrysalis School of Madagascar (a BookMooch charity), had this to day:

I just wanted to pass on some praise from the director of the Chrysalis School in Madagascar. She told me today that bookmooch is one of the best things that has ever happened to her!

The school has been able to collect more than 100 books already from bookmooch users, and we’re on our way to 200. For a library that started out with under 20 books, this is a huge improvement.

Thanks again for your support, and for the great site!

Thanks to everyone who has given this charity their points. They are now fully funded with enough points to get the books they need.

You can read more about them at the Chrysalis web site.

If you would like to help out with this sort of charity, please consider giving some of your BookMooch points to one of the charitable funds I run. That’s how I initially help these charitable causes get started, and fund them with enough BookMooch points to get the points they need.

Frances Pinter and David Percy have made an excellent documentary film about business models in the publishing world that use Creative Commons licenses.

Frances has been heading a CC-based publishing project in Africa. It is the Publishing and Alternative Licensing Model of Africa (PALM Africa), is based in Uganda, and South Africa, and she tells me the Ugunda project is going especially well. She also tells me she’ll be soon expanding this idea into other publishing spheres, which is very exciting.

Percy is an award-winning film-maker, and so the production quality of the film is quite high. The film is 30 minutes long, with three 10 minute interviews (to fit into Youtube’s ten minute max).

The interview with me covers a wide range of my background, from Lyris (which went fairly big, and I sold 2 years ago) to Magnatune and BookMooch.

Here is the interview with me:

and the other two interviews…

With Tom Reynolds, the author of Random Acts of Reality:

with Timo Hannay of Nature Magazine:

A very nice story about BookMooch in the newspaper New York Daily News.


Nydailybm


My thanks to fellow moocher Norana, for being in the photograph!

I find it interesting that the one fact they got wrong, is that the article believes BookMooch requires members to send out two books for every one they receive. I think the point system is a bit too complicated to explain, as articles are frequently making factual mistakes about it. I’m not sure how to improve it, though.

Conv341
Several people suggested in my previous blog post that the newly introduced system for “ask me first” has too many clicks.

Instead, they’d like to see it be possible for someone to mooch immediately from an “ask me” person, and the book owner is able to reject the mooch without any penalty.

That would definitely work, and be a less complicated workflow. It also has the advantage of removing books from circulation that are in an “ask first” stage so that others aren’t frustrated by being told they’re there, but not being able to mooch them since they’re reserved.

What do other people think of this alternative?

To recap, this would mean that the current “ask first” workflow would go away, and instead anyone would be able to mooch from an “ask first” person. People with “ask first” would get a slightly different “someone has mooched from you” email, that would make it clear that they can reject the mooch without any penalty.

Despite having put a bunch of time into programming the new “ask first” mechanism, I am open to switching over to this different way of doing things, esp if people think it’s better.

I do think this alternative idea has merit, so I’m opening it up for discussion. My opinions on this topic are not well formed yet, which is why I’m not expressing them. I really want to hear what others think.

-john

On your member profile page, you have the option to indicate whether you are willing to send your books to other countries.

The choices are:

Asjke12

Until today, the “ask me” option wasn’t enforced by BookMooch, it relied on people doing the right thing themselves.

There were two big problems with the old system:

1) if you were honest and asked first, someone else might mooch the book while you were waiting for the book owner to read their email and give you permission.

2) people could (and did) ignore the “ask me” setting and would mooch a book right away, without asking. This left the giver in the awkward position of rejecting the mooch request, and having the rejection as part of their permanent record, even though they did nothing wrong. Some people felt it was legitimate to mooch-without-asking, because of the problem above (someone mooching your book while you wait for permission).

As of today, BookMooch:
* enforces the “ask me” setting
* allows the book giver to say “no” without penalty
* reserves the book for 7 days for the requester
* provides workflow tools to make the process easier.

Here is how this all works.

When you go to mooch a book, if the only copy available is from someone who says “ask me first”, then the page will look like this:

Askme42

Notice how the other fields normally displayed on the mooch page are not displayed, since the only real option you have at this point is to ask for the book.

If there are several copies of the book available, the “ask first” sources will be placed at the bottom of the page.

The next step is to send your request. You can include a comment if you like, but this isn’t required.

Askme621

your request is confirmed:

Askmeconf23

The book is automatically reserved for 7 days for you, so that someone else can’t mooch the book while you are waiting for a response.

The book owner receives an email that looks like this:

From:     bob@gmail.com
Subject:  BookMooch: (United Kingdom) will you send to my country?
Date:     June 11, 2008 3:39:28 PM BST
To:       john@bookmoocher.com

Are you willing to send this book to my country? (United Kingdom)

Title:  The Total Money Makeover: A Proven Plan for Financial Fitness
Author: Dave Ramsey
URL:    http://bookmooch.com/m/detail/0785289089

Please click this URL to let me know:
http://bookmooch.com/m/ar?a=0785289089&u=bob

Note that this email request is sent From: the requester’s email address, so that the book owner can reply by email to the request.

When the book giver clicks on the URL in the email, they will see this page:

Askreply2

notice how the YES choice is the much bigger button, to make it easy to differentiate between the two.

After the book owner clicks YES or NO, an email is sent to the requester.

The YES email looks like this:

From:     BookMooch <bookmooch@r.bookmooch.com>
Subject:  BookMooch: yes! (The Total Money Makeover: A Proven Plan for Financial Fitness)
Date:     June 11, 2008 3:39:28 PM BST
To:       john@bookmoocher.com

Yes! I am willing to send my book to your country!

You should mooch it now:
http://bookmooch.com/m/detail/0785289089

Title:  The Total Money Makeover: A Proven Plan for Financial Fitness
Author: Dave Ramsey
URL:    http://bookmooch.com/m/detail/0785289089

and the NO email looks like this:

From:     BookMooch <bookmooch@r.bookmooch.com>
Subject:  BookMooch: sorry (The Total Money Makeover: A Proven Plan for Financial Fitness)
Date:     June 11, 2008 3:39:28 PM BST
To:       john@bookmoocher.com

Sorry, but I have decided not to send this book to your country.

Thank you for asking, though!

Title:  The Total Money Makeover: A Proven Plan for Financial Fitness
Author: Dave Ramsey
URL:    http://bookmooch.com/m/detail/0785289089

Notice that the email address of the book giver is *not* given in the automatically-generated replies. This is on purpose, so that if the book giver chooses not to give out their email address, they don’t have to. Also, it might make people nervous to refuse to send a book when the requester has their email address, out of a fear of retaliation.

If you deny the request, the 7 day reservation is removed, and anyone can once again mooch the book. If the book giver doesn’t respond within 7 days, the reservation will expire on its own.

There is an element of trust in this process, that I want to describe now.

When you request a book in this way, your own email address is the From: on the request, so that the book owner can easily correspond with you. For example, they might simply reply “sure, no problem!” and not bother clicking the URL. Or, a dialogue between moocher and owner may ensue, such as the book owner looking up the postal costs to mail the book, and replying later.

To support this informal dialogue, I decided to let the requester mooch the book once they have asked first, even if the book owner has not clicked YES or NO yet. The reason I did this, is because I tend to not like computer systems that require people to do everything their way, and which don’t support the reality of human interaction.

In other words, after you send an “ask first” request, if you get an email back from the book owner saying “sure, go ahead and mooch it!” you can go and mooch and the system won’t stop you, because you’ve asked for permission, and BookMooch assumes that if you’re mooching after asking for permission, it must be because you’ve obtained permission.

The downside to this approach is that someone could click “ask me”, and then 5 minutes later, mooch the book, even though the book owner hasn’t yet replied. In that case, the book owner would simply reject the mooch, and give negative feedback to the moocher, as well as (possibly) reporting them for abuse.

I’d like to give this “loose and friendly” approach in place for now. It would be fairly simple for me to require the book owner to click YES before the international-mooch is allowed, and if it turns out that needs to happen, I’ll do that.

Reservations

June 11, 2008

A new feature was added today to BookMooch, which allows you to reserve a book for your friends, or for a specific member. The reservation can be set to automatically expire.

The motivation for adding this “reservation” feature was the following scenarios:

1) Libraries: many of the people I’ve spoken to at Libraries have indicated a preference for giving other libraries first-choice at the books they’re giving away. This has been a “must have” for many of the libraries I’ve spoken to.

2) Friends: lots of people want to offer an in-demand book to a friend. That friend may be a real-world friend, or one you made in BookMooch. I’m often having dinner with a (real world) friend, and the conversation turns to books we’ve recently read. For example, my friend Victor had just visited Canada and picked up the not-yet-released-in-the-USA new book by Salman Rushdie. He wanted me to get it next. In this case, he just listed it and I mooched it before anyone else, but a reservation system would have been nice.

3) Privacy: I’ve encountered many people who don’t want to use BookMooch because they don’t want to give their postal address out to strangers. These people can initially choose to trade books with people they know, and slowly build out their trust-relationship with others on BookMooch.

4) International requests: when you ask someone from another country, if they’re willing to send you a book, it’s a common sight to have the book mooched by someone else while that email request gets answered. I’ll say more about this scenario in the next blog posting.

5) International exceptions: if you set yourself to “I will only send books to my own country” you can make individual exceptions to this by reserving a book for someone. They’ll be able to mooch it, no matter what country they live in.

6) Already occurs: people already reserve books for each other on BookMooch, by putting a condition note on the book like “please don’t mooch this, it’s for my friend XYZ”


Reserve: when adding a book

When you add a book to your inventory, there is a new “reserve” button. This is what the page looks like:

Addtoreserve

Also note that I’ve reorganized this page, because previously all the buttons appeared on the bottom, and this was visually very confusing. Now, things you want to do to the book you just added are to the right, and the two most common next steps (undo/add-another) are on the bottom.

Reserve: from the book details page

A “reserve” button appears on the book details page, when the book is in your inventory:

Detailsres

Reserve book for…

After you click the “reserve” button, you can choose who to reserve the book for:

Reservefor

You can reserve the book for your friends. This is the first time the friends feature has been used at BookMooch, but when I created the friends feature two years ago, this was specifically one of the uses I had in mind. I know that some people would prefer to separate the “friends who I want to reserve books for” from “people I am friendly with”, and perhaps have two kinds of friends, but I thought it’d be better to keep the friends feature simple, even if it meant friends could mean slightly different things in different contexts.

You can also reserve a book for a specific member, or several members. You type in their usernames, or their email address, or their display names. For example, I have two accounts (one for when I’m in California, one for when I’m in London) so if you type “John Buckman” in as who to reserve the book for, you get this page:

Whatmeanr

FYI, this is also how the “give points to a member” feature works on the charity page.

One techie note: if you enter several names in, and one of them is ambiguous (such as if their name applies to several members) then BookMooch will tell you that person is not a member, and refuse the reservation. If you enter just that one name in for the reservation, then BookMooch acts as you’d expect, and lets you click on the list of which member you actually meant. The reason for this, is that if several names are ok, but several are not, it would be a complicated user interface to let you fix some of those members, but retain the others, and this is probably an infrequent case anyway.

BM Admin Mark W thinks that the label for this field, being the plural (”reserve it for these members”) may confuse people, who may (erroneously) believe that they can’t reserve the book for just one person. I’d like to hear if other people agree with that. Alternatives could be “reserve it for:” (simple, but perhaps too short) or the clumsy-but-clear: “reserve it for this member (or these members)”

How long?

By default, a reservation lasts 7 days. Until that time expires, nobody can mooch this book from you, unless the book was reserved for them. The BookMooch software enforces this. After the reservation expires, anyone can mooch it. The reservation expiration date is shown when someone tries to mooch a book.

Retimsr

You can simply change the reservation from 1 day, to forever:

Bewfr

There is bound to be some controversy about books reserved forever, and I acknowledge that. However, there may be some reasonable uses for that, such as some books that Libraries only want to trade with other Libraries. I’ll be watching how the reservation system is used, and listening to what the BM community has to say about it.

Recommend the book

Once you’ve reserved the book, you have the option of sending an email recommending it. Click on “recommend” and the To: field is filled out with who-ever you reserved the book for, including recommending it to all your friends.

Recfr2

While some people may irritate their BookMooch friends by recommending books too often, note that only confirmed friends will receive these emails. In other words, someone has to invite you as a friend, and you have to accept their invitation, before you get these emails. And, it’s very easy to “delete” a friend relationship, especially if that person is sending you way too many book recommendations.

Changing your mind

The reservation you made appears on the book details page. You can cancel the reservation or replace it with a different one:

Reschad

Mooching from friends

When a book is reserved for someone else, and you try to mooch it, the book is displayed, but a “Reserved for:” field is displayed, as well as “Reserved until”

Resnow2

note that the word “friends” is linked, so you can click on it, see who this person’s friends are, and ask to add this person as a friend.

Addtofr5

If they approve you as a friend, you’ll be able to mooch from them:

Moochfr56

If a book is available from multiple people, if any of the copies are reserved for you, it will be displayed as the first choice.

Overcoming Xenophobia

Many people set the BookMooch Profile to “I only send books to my country”.

Until now, there hasn’t been a way to make exceptions. Maybe you are willing to send books to your friends in other countries?

If you reserve a book for someone, they can mooch it, even if your profile says “I only send books to my country” and that person lives in another country.

If you reserve a book for someone, they can mooch it, no matter where they live.

In the graphic above, if you look carefully you’ll see that my own profile in the UK is set to “I only send books to my country”, yet the person who is mooching from me (though I hid their address) is in the USA.

Wishlist notifications

One area that could be improved is the interaction between emailed wishlist notifications and the reservation system.

Currently, reservations have no effect on wishlist notifications. That means you might get a wishlist notification for a book that you can’t mooch right away, because it’s reserved.

I decided on this course of action for a few reasons:

1) it was easy. All the other choices were really damned complicated. I spent 1/2 a day trying to program another approach before giving up on it.

2) it isn’t clear what the right thing to do is. Should no notifications be sent out on reserved books? Or just to those who are on the wishlist notification list, but who the books are reserved for? What should happen when the reservation expires? Should notifications start from scratch at that point?

So for now, no change to how wishlist notifications work, but if it becomes a common source of complaints, I’ll revisit this.

For programmers

The “userbook” API function now lets you set a reservation on a book (and reservation expiration date) when you add the book to your inventory. Also, mooches of reserved books will be declined, unless they’re reserved for you or the reservation has expired.

The “userid” API call will display any reservation that user has placed on their book.

Apires1

Note that reservations, like condition notes, are stored in our database with the member record, not with the asin (book), since they’re not a permanent attribute of the book, and only apply to one user’s copy, and so reservations (like condition notes) should vanish when the book is mooched. The “expires” date field, like all other dates in the API, is expressed in standard “epochal time” (seconds since 1970).


Phew, that was a long blog entry.

I’ll be blogging separately (after lunch) about a new system for “ask me, I might be willing to send my book to your country”, which also uses the reservation system.