Category Archives: Books

Anatomy of a Hack – Books, Music & CODEX

Awhile back I randomly found out about CODEX Hackathon, a “literary hackathon” mashing up books and technology, and I knew I had to get involved. I started by registering to attend, but realized pretty quickly I wanted to do more. I volunteered to helped organize and sponsor, which I’ll write about later. I also hacked, and wanted to share what I came up with, and how I came up with it.

I’ve been interested in the intersection of books and music for awhile. I used to write book reviews with embedded playlists of what I was listening to while I read the book. Or make playlists of music mentioned in a particular book – for example, the early jazz mentioned in Kathleen Ann Goonan’s In War Times. Or read interviews where authors talk about the music that inspired them as they wrote.

And write why Books & Music go together like Wine & Chocolate.

Books & Music: Like Wine & Chocolate

Books and music go together like, well, wine & chocolate. Settling down on the couch with a great book, a glass of wine, and some great music has to be one of life’s guiltiest pleasures. Heck there’s…

So when this hackathon came along, the juices had been flowing for awhile and I knew what I wanted to do. Build an environment where people could collaboratively build and share music playlists for their favorite books.

I had the basic idea framed out in my head. I’d use the Spotify web player and hack up a branch of http://www.thehawaiiproject.com to become the new thing. Seemed like a layup, all their Web APIs are sitting right there. Spotify has a feature for “collaborative playlists” – what could go wrong, right?

After some presentations from sponsors (I was a sponsor, here was my pitch for The Hawaii Project), we get down to it, at 11am Saturday morning.

Here’s a quick timeline from my notes:

start @ 11
around 12, have a Master & Commander (Patrick O'Brien’s book) page with a static playlist on it. Everything hard coded but I can listen to music for the book and it visually looks pretty good!

My plan is to use Spotify’s Collaborative Playlist feature so everyone can add to the playlist (and be authenticated to Spotify in the normal way via their browser). SNAG! Turns out making a Playlist “Collaborative” in Spotify makes it Private so only collaborators can see it. Even worse, via the API, only the Owner can modify it. That pretty much blows the whole idea out of the water.

OK, Plan B. I will make a Hawaii Project Spotify account that will own all the playlists. When users add an item to a playlist I’ll send it to my server and the server will add it to the playlist. Because the API calls have to authenticate (via OAuth) to the Spotify server, I have to figure out how to authenticate in PHP to Spotify without a browser around. I dumpster dive in Stackover flow and find The Hint (thank you Michael Thelin!).

12:00 : 1:30pm. I struggle to get The Hint to work in practice. I take a break and grab lunch (wonderful sandwiches and Hummus, CODEX has great food!).
3:41pm EUREKA!!!! I get a valid spotify token and successfully retrieve a playlist!!!!!
3:42pm. My token expires and I can’t figure out how to get it to renew.
7:45pm. I think I get a repeatable way to add tracks, at least until my token expires. which I have to renew manually. OK for a demo but can’t actually go live with that. I’ve spent ~50% of my hacking time on OAuth. Not what I had in mind.
8:30pm. I have some basic track search + autosuggest for tracks working. (like when you type “Stairway to H” I suggest “Stairway to Heaven by Led Zeppelin”)
8:50 Stairway to Heaven and Highway to Hell added to playlist via UI. !!!!!!
9:50 Code cleanup. Things basically working with a single hard-coded book & playlist ID, except hacky tokens & expiration.
10:00 Did I mention this is a hackathon for Adults? MIT kicks us out at 10pm. Home. Martini. Sleep.
Sunday
6:30 am up, by 7:40am On the train.
8–9 in coffee shop because MIT doors locked. Quickly solve some problems with playlist views and track list ordering problems solved. still struggling with expiring oauth tokens.
10:00 With the exception of tokens, I have what I need for a workable demo, can search for and add tracks to any book.
10:30–11. Make some fun playlists for some of my favorite books!
11:12 roll a new home page showing the latest books that have soundtracks created.
12:30. stop and roll a deck for the presentation.
1pm. Hands off the keyboard at 2pm for presentations, so I decided to adopt the “Vietnam strategy”. Declare victory and get out. I avoid breaking my demo with any late changes, and go chat with a few interesting folks I didn’t have time to get to before.

Presentation went well (in fact everyone’s did!). I start my presentation with the James Bond theme and end with adding Highway to Hell to a playlist, and playing it over the speakers as I exit. Mission Accomplished.

I wanted to launch it to a live URL during the Hackathon, but I just couldn’t solve the expiring token. On the drive home, I decided that tomorrow I’d ask my son-in-law, who is an actual practicing software engineer. But I wake up the next morning and, as often happens, within about 20 seconds I see a typo that’s been causing me all this grief. Edit, “git commit -m “I’m an idiot””, and a few minutes later, voilá: BookPlaylist is born!

As I write this, I’m jamming to Kayti’s most excellent playlist to Cinder, a book I’ve not read. But now might.

Cinder (Lunar Chronicles)

It was really fun to take an idea that I’ve had in my head for almost a year, and get it out of my head and into something real. Hope you get a chance to play (pun intended) with it!

You can read a bit more about the Hackathon here (via Matthew S Carroll, one of the organizers.

Welcome to the CODEX Hackathon 2016

Hello, from the the CODEX Hackathon. We’ll be live blogging here all weekend, so come back often as we update. To follow on Twitter: #codexhack. The hackathon is about…

In later posts, I’ll write about the technical tools we made available for participants.

A few months with Scribd

oysterWhile I’m a bit late to the game, I’ve spent the last 3 months exploring the subscription model for ebooks. As you may have heard, the inventor of the concept – Oyster – shut down awhile back (Amazon has Kindle Unlimited now). I’d given up on Oyster previously because they never had the books I wanted to read. I’ve previously suggested I think the end is coming for the subscription model, and offered a few ideas for how to save it.

Scribd has become the “last man standing” in terms of a standalone ebooks subscription service. I decided to live with it for 3 months to see how compelling I found it. Here’s my experiences and thoughts.

  • The Reader is very nice.
  • The Catalog isn’t deep enough — it’s “OK” but not compelling.
  • Some interesting browsing and categorization
  • Onboarding is only so-so.
  • Personalization is cumbersome, and the recommendations are lacking (but I did bring me a few winners.
  • No Community.
  • $10 a month isn’t quite worth it.

Before diving into details, here’s the punchline: it’s a good service, I read some good books and enjoyed it, but I don’t plan on keeping my subscription going, as the service stands today.


The Catalog

The first and biggest challenge of the subscription model is the depth of catalog – do they have the books I want to read? Because this model isn’t as profitable for the publishers, they limit which books are available.

By virtue of my book discovery engine (The Hawaii Project), I have a TBR (To Be Read) list as long as your arm. I’m an eclectic reader – my TBR list is a mix of espionage thrillers, historical fiction, literary fiction, a few bestsellers and a smattering of non-fiction – bios, arts books and the like. My list is biased towards more recent books, but contains many classics and older books that are waiting for their turn.

So, how does Scribd fare against my TBR list? An analysis showed that 19% of my TBR list was in there — mostly the lesser-desired books, and older books. The more obscure the book, the more likely Scribd had it. I’ve been dying to read the new bio of John Le Carre, All The Light We Cannot See (one of 2015’s most highly regarded books), and A Crown for Cold Silver, a highly regarded 2015 Fantasy novel. Struck out all around, and on most of the books at the top of my list. The books Scribd were sort of my personal “back catalog” – books I wanted to read, but not bad enough to buy just yet. There were some goodies in there.

Over the course of the 3 months, I read from my TBR list – A Sport and a Pastime, the first classic from James Salter I’d been meaning to read for some time. Whale Road, a Viking novel. Solo, a James Bond novel by an author I love, William Boyd. A truly great book, A Death in Veracruz, a translation of a book by Héctor Aguilar Camín about the Mexican oil wars. Ride a Cockhorse by Raymond Kennedy. The Flamethrowers by Rachel Kushner.

While I think Scribd’s discovery methods aren’t that great, it did manage to unearth a few treasures. I thought I knew every book Bernard Cornwell has written, but Scribd brought me Scoundrel, a sailing novel, which was good fun and unknown to me. And The Far Arena, a truly wonderful Roman gladiator time travel novel. And a few others. So, I read 10 books, for the cost of $30 (3 months of Scribd). Not bad, although I could have bought those books used for about the same price, and wouldn’t have bought them new (or maybe at all) as they weren’t at the top of my list.

Finally, they had a pretty deep Audiobook section – many of the books they did not have in written form, were available in Audiobook form, so if you’re into audio books you might have better luck.

The Experience

I found Scribd’s reader to be very nice. Clean, minimalist and easy to use. I wish I didn’t need another reader (competing with Kindle, iBooks, etc), but it’s easy to use.

Browsing for books is nice, from a user interface perspective (although I think The Hawaii Project’s is better :)). In addition to the usual categories like Literature and Fiction, Biography and the like, they have some interesting sub-genres, Netflix-like, for example, “Set in San Francisco”, “Identity Crisis”, “Muskets & Magic”, “Nordic Noir”, beyond the rather formulaic categories one finds on Amazon or Barnes & Noble. But the books shown in the major categories aren’t the ones you’re looking for, because of the catalog issues.

I found the onboarding process, and the personalization and customization, to be awkward. Since so many of the expected books are missing from Scribd, it’s essential for them to bring me great personalized recommendations, and to make it easy for me. It wasn’t. It was quite awkward to quickly tell them about the many books I’ve read recently, and as a result I’d already read most of the books they recommended – and there was no quick way to tell them that or get them to stop recommending it. A simple checkmark on each book cover would have done it.

Last but not least, there’s no community to speak of on Scribd. I get that it’s a reading platform, not a social network, but in order to survive with a limited catalog they need something to make it sticky. Reddit’s book community is vibrant and millions-strong. Goodreads is the defacto book community and that’s what keeps it going. Scribd needs something besides just a reader to keep going.

A big redesign at The Hawaii Project

Books PageA big redesign at The Hawaii Project

I’ve just pushed live a pretty major update to the user interface and visual design for The Hawaii Project. (Thanks to Jim Fell for his visual mockup that drove most of the changes to the design. His conversations were immensely helpful. All mistakes and ugliness are, of course, mine.)

As a reminder, The Hawaii Project brings you books and book news you’d never have found on your own. We track what the web’s leading tastemakers and book reviewers are writing about, uncovering things that match your favorite authors, personal interests and current events, and bring them to you daily. 10% of our revenue goes to support 3 great literacy non-profits.

I had a few main goals with the redesign:

  • Communicating that the books in The Hawaii Project are discovered by extracting which books trend-setting publications are writing about, and matching them to your interests.
  • Moving to a more modern visual style.
  • Removing much of the “UI” clutter.

The Hawaii Project works by scanning almost a thousand high quality web sources of writing about books. Everything from The New York Times book reviews to author blogs to niche blogs about special topics, like espionage books, politics or medieval history. It was clear people weren’t getting that, nor were they really aware there were “stories” at all in the system. That is a key differentiator, so it needed to become more obvious.

I radically simplified the Navigation bar so that “Books” and “Stories” were prominent, and introduced a “Recent Stories” panel into the Books page – showing images and snippets from a few stories, as well as highlighting the source of story via text and a logo, with a rollover highlight on the book mentioned in the story.

In moving to a more modern visual style, I wanted (needed!) to get rid of the many distractions and overly ornate visual elements in the existing design. The inspiration for The Hawaii Project was about that feeling of sitting on the beach reading a great book. The visual design tried to capture that with colors from the water, sand and palm trees, but the pages had 2 and sometimes 3 competing gradients (and heavy gradients at that). It wasn’t working.

Here’s the previous design for the Books page and the Book page:

The new design removes virtually all gradients, gets rid of the heavy greens and brown colors, moves to a more typical grey background and black text, simplifies the number of fonts and font-sizes used in the design. It’s far easier on the eyes and much more readily scanned.

Much UI clutter has been removed or hidden. The Navigation bar at top gets a new background image that’s more clearly beach-related, removes a number of extraneous items, and simplifies down to a simple choice of Books | Stories | Following, emulating Flipboard, Pinterest, Medium and the like, and makes clearer what the primary actions are: See Books, Read Stories, or Follow Sources and Authors to get more relevant information. User Account actions (customization, login, list maintenance, etc) are moved to a simplied User drop down (the silhouette menu). The User menu and Search are moved to the top right to get them out of the way.

On the books page, various means of finding an actual copy of the book (OpenLibrary, Scribd, your local library, and so on) are moved to a dropdown, so they’re easily available but out of the way. Secondary metadata about a book (Editions, Categories) are hidden away in containers that can be opened as desired. Stories about a book get more visual play with the introduction of images as a splash of color to draw your eye to them.

Related Books, and the Author’s other books, are moved to the bottom of the page; they can be scrolled to as needed but don’t distract you on first page load.

Here’s the final designs as they are in production today:

Spies of the Balkans, by Alan Furst

Alan Furst is the master of the historical spy novel, particularly the era just before World War II erupts. In Spies of the Balkans, he takes on, well, the Balkans.

The Hawaii Project

The Hawaii Project – personalized book recommendations

Costa Zannis is a Greek policeman, with his finger on the pulse of the underground in the port city of Salonika, Greece. Soon he’s in a romance, and involved with spies. With the German Army marshaling on the border, …. Alan Furst does his thing. Which is showing you the looming menace of Germany and the wholesale destruction of WWII, in an historically and geographically accurate way. Always good fun.

I’ve actually met Mr. Furst at a book signing. He’s polite, self-effacing, and incredibly knowledgeable about this era of history. Do yourself and him a favor and buy this book, although if you’ve not read him before, you might consider starting with Night Soldiers or one of this earlier works.

Child 44 by Tom Rob Smith

Tl/DR: If you liked Gorky Park or anything by Martin Cruz Smith, read Child 44.

Leo Demidov is an idealistic state security officer in 1950s Stalinist Russia. He dotes on his wife, (mostly) believes his work supporting the State is really in the best interests of everyone. His job investigating crimes is really only complicated by the State’s insistence that because they live in the worker’s paradise, there aren’t any crimes. When Leo continues to investigate what appears to be a serial killing, when his superiors have declared the case closed, everything he believes will be challenged.

http://www.thehawaiiproject.com/book/Child-44-%28The-Child-44-Trilogy%29–by–Tom-Rob-Smith–60673

What I found most compelling about Child 44, and what made it more than simply a run of the mill thriller set in communist Russia, was the way Smith evoked the uncertainty and terror of living in a world where every friend would betray you to the state because they had to, to save their loved ones, or a world in which to simply be charged was to be proven guilty and sent to a camp or Gulag, most likely to die.

Leo is no Arkady Renko, able to deduce the most difficult conclusions from the faintest of evidence – he’s more of a plodding, not-giving-up-til-I-get it kind of detective. But there are sufficient similarities to Cruz’s works, that if you like them, you’ll enjoy this.