Animation of a guy punching the air
Originally the smaller one was going to be half melted.
The code to unlock the air shield is 12345
Karate Robot
Kitty says,
Happy Shark
A zombie, a minion of Dagon, and a furry walk into a bar...

A Poster Showing Every Book I've Ever Read

For the longest time, I've had a vague but persistent compulsion to make a list of every book I've ever read.  It was with me as an English Lit. undergraduate, and it continued throughout graduate school for Library and Information Science.  Go figure.  

 Me in front of the poster
Once I was done with school, I lost the excuse of not having any time to do it, so I did it.  I got a lot of help from friends, family, and old book reports.  I also got a lot of help from LibraryThing, which is a Web site for people to catalog their own book collections.  Even though my purpose was slightly different than what the site was designed for (and thus, a little bit more difficult than it would have otherwise been), I found it to be invaluable and would highly recommend it.

It took me about 3 weeks to come up with a list of what is quite likely 80-90% of the books I've ever read.  There were about 750 books on the list, including books I read as a child, graphic novels, and books I wished I had never read, or was embarassed about reading.

I didn't include books I have on my shelf but haven't read yet, or books I sometimes pretend to have read (like Ulysses or The Golden Bough) at parties.  I also didn't include books from series like The Hardy Boys, or Choose Your Own Adventure, because I read them so long ago, and there are so many of them, that I can't say for sure just which ones I did read and which ones I didn't.

Frankly, 750 books is a lot less than what I figured the total would be at the outset.  I'm 25, and I've been reading since I was about 6, f you're counting pop-up books and such, which I am, so that works out to roughly 39.5 books a year.  That's respectable, it just seems like there should be more, given how much of a giant nerd I am. 

While I was actually compiling the list, I decided I wanted to make something tangible out of it.  I decided I would make a poster containing images of all the book covers.  No doubt about it, it's kind of like bragging.  In fact, it's a lot like killing a deer and then hanging its stuffed and mounted head on the wall.  But, in my defense, it's also partly autobiographical, partly nostalgic, and partly a matter of simple record keeping.  

Making the list itself was the hardest part, by far, but unfortunately once you're done with that, there's no simple way to convert the cover images from that list into a single image suitable for printing.  It would be nice if LibraryThing supported this, but there may be both resource and legal issues.  I didn't look into this at all.

Making the poster requires a few different pieces of software, including some that you have to pay for, or steal, or use on a friend's computer.  I wrote notes as I went along, then fleshed them out afterwards. I wasn't able to find anyone else who had done this, let alone explained how they did it, so the instructions typed out below may be useful to other people besides my future self, who is making a poster for the next 750 books, and may have forgotten how he did it the first time around (has it really been 20 years?).  

More Photographs of the Same Thing

It was hard to get good shots of this poster, due, I expect, to a combination of lack of focal points, lack of proper lighting, and lack of skill operating a camera.  

Here is a picture of the whole poster:  The whole poster, 50 inches by 30 inches

Here is closeup to show the print quality (acceptable):

 A closeup to show the semi-decent print quality

How to Get Frustrated and Waste Your Time

Even though these instructions are almost absurdly complicated, they're still very rough, and will still require a lot of you figuring stuff out for yourself.  I'll happily give help along the way if you can find my e-mail address. 

  1. Using LibraryThing, make the list.
    Rather than try to come up with the list of books from scratch, I used the social tagging aspect of Librarything, which gave me "recommendations" that jogged my memory.  It also adds metadata (to help me organize my list) and pulls cover images from various sources automatically.
    • I bought the $25 lifetime membership so that I could have more than 200 books on my list, and because it's a great site run by nice people.
    • Bug friends and family to get them to help remember books once your memory begins to fail you (about 1/2 way through in my case). 
  2. Install DownloadThemAll, an extension for Firefox, and use it to grab all of the images from your LibraryThing page.
    • When you're downloading images, use this Mask: *num*.*ext*.  As you download each file, it will give it a sequential number as its filename, so that the order of the images will be maintained in your Windows directory.
    • Have LibraryThing sort by your preference, show book covers, and show 100 book covers at a time.  These are all menu options within LibraryThing.
    • Only download .jpgs.  You have this option in DownloadThemAll.
    • Disable multipart downloading and set max connections to 1.  If you don't do this, DownloadThemAll will try to download several files at once, out of synch, and will name them sequentially as they are downloaded.  You'll lose your order.
  3. Install Picasa, the free image manager from Google.
    Import your downloaded images, then export an XML document. 
    • Make sure View →  Small Pictures is turned on in Picasa.
    • Export as HTML
    • Preserve size
    • Export as XML.  The file will probably be enormous.
  4. XSL: Spit out an HTML file of all the covers. 
    This is where a lot of people will get lost.  If you don't happen to know how to write XSL transformations, you can use this one I made, which should work on XML created by Picasa.   
    • Add a link to the XSL stylesheet at the top of the XML file, so that it will apply the transformation automatically.  To do it, put this code near the top of the XML file, usually on the second line, right after the part that says <?xml ... ?>
      <xml-stylesheet type="text/xsl" 
      href="librarypicsxsl.xsl">

      Make sure that the XSL file and the XML file are in the
      same directory, then save the XML file.

    • Now if you load your XML file into Firefox, it should spit out an HTML page with a bunch of images right next to each other.  Save this page to your hard drive.
    • Add some style to the page to space the images out (put a margin around them) and to define the dimensions of the poster.  Add this code between the <head> and </head> tags of the HTML you just created:
          <style type="text/css">
          body
          {
              width:50in;
              height:35in;
          }

          img
          {
              margin:0px 10px 10px 0px;
          }
          </style>
    • Change the values in the style rules above to match what you want your image to look like.
  5. Within Firefox, Save the HTML page as a PDF.
    This will only work if you've got Acrobat Professional installed.  If you don't have it at home, chances are you've got it at work or school.  
    • When the HTML page is open, go to File → Print, then set print source to Adobe PDF
    • Go to Properties → Adobe PDF page size
    • Add a new page size that is the same as the dimensions you set in step 4's style rules.
  6. In Photoshop, crop the PDF however you like, and it save as a JPG. 
  7. Get it printed,
    • I used Zazzle.  It turned out okay, but the overall print quality was not as high as it was on the test pages I printed out (this may be a function of the paper I chose, which was not the most expensive they had.)  It cost about $60 after shipping.  You can use whatever service you like.