The 2012 Photo Book

The exercise of creating an annual photo book, but more importantly, flipping through it later, serves as an encouraging reminder of all that we managed to accomplish in the space of a year—especially in the absence of that elusive sense of purpose.

What a pleasant surprise.

2012 Photo Book cover
The front cover of our 2012 photo book

Even though the layout is exactly the same as it has been for the last several years, I decided to update the code so that the data defining the book is separate from the code that generates it.

2012 Photo Book sample layout
Sample layout with photos from the olive crush and Mojave

It’s a book after all, an old school, physical book, one that you have to open with your hands in order to see what’s inside. It’s nice to be reminded of that as well.

A look inside the 2012 Photo Book
A look inside


Looks great. Not sure what you mean by “update the code”, but I’m guessing that means the photos were selected and arranged algorithmically?

Doc, thanks. Actually every page is laid out “by hand”, except that instead of using a mouse and a WYSIWYG program like Adobe InDesign, I used a simple text editor to define the images and the captions for each page. Back in 2007 I wrote a computer program that turns those text “commands” into the PDF that I send to Viovio to be printed. Defining each page used to look like this:

$page = $p->newPage();
$page->addCaption("Stephanie got to drive the tractor, \"Big Red\"");
$page->addCaption("Stephanie a pu conduire le tracteur surnomé «Grand Rouge»");

Now it looks like this:

Stephanie got to drive the tractor, "Big Red"
Stephanie a pu conduire le tracteur surnomé «Grand Rouge»

Much simpler.


What kind of book and what size is it? I can’t seem to find it on the website. It looks nice but is there a simple way to do that without coding? I am not much of a programmer.

tk, it’s a 7×5″ mini book printed by Viovio. They offer an online tool to create a book with photos you upload—so you don’t have to be a programmer. I just wanted more control over the layout, hence I wrote the code to get exactly what I wanted.


Email (optional)

Blog (optional)