Quite some time ago, I started work on a program to help me keep track of my reading. It’s not entirely clear to me, even now, whether it was meant to represent a litany of achievement, to cement the ideas I read about by jotting them down, or whether it was just an exercise in literary accountancy. What is certain is that I wanted two things: a working piece of software, and a testbed for any number of new skills and techniques.
I’ve actually been using Paper Trail for a few months now, and the sharp-eyed amongst you will have noticed the Books link at the top of the site. Books on Extralogical is a record of the books I read, and secondarily a set of brief reviews. I’d like to get more of them in the state that the Hackers & Painters one is—that’s to say, a few paragraphs summarising what the book’s about and my general reaction to it. Currently, too many of the reviews are lacking either a decent prĂ©cis or any editorial content, or are just badly written. That being said, I actually dropped the requirement for a review during development because I found it stopped me adding the books as I read them.
Paper Trail probably only works well in newer versions of Firefox, Safari, and possibly other advanced browsers. This is because it uses a bunch of CSS3 properties, and plenty of 2.1 ones that aren’t supported in Internet Explorer 6. The main content should remain accessible, if not as visually appealing as it could be, in most older browsers.
One exception is this histogram showing how many books I’ve read per month over the past year. It’s an SVG image, which Internet Explorer and most older browsers don’t support.
Most of the work hasn’t been on user-facing code at all, but on the writing side of things. There is no admin area: editing is integrated into the site proper. A logged-in user sees a few controls and can easily fix a typo here or rewrite a paragraph there. I’ve striven to make things simple and seamless. There’s a certain amount of JavaScript involved, with more to come as I add things like autocomplete to the authors field.
Obviously when it comes to an interface, words only go so far. Far better to check out the source code, run it locally, and have a play around. It’s an extremely simple application, but I think it achieves its modest aims reasonably well. The code is available under the GPL.