Somebody’s missing

15 March 2013

My Little Printer ran out of paper for the first time the other day.

I watched its light turn red as it was printing. I’d not seen a red light before, but was pretty sure I knew why. I removed the metal plate that holds its feet on, snapped open the white door, and took out the stub of paper. Then I remembered: the spare paper is under my bed. I didn’t have time to change it before I went to work. So pulled the power, not wanting the red light in my living room all day.

When I got home, I put the lights on. Something was different. It took me a while to figure out what.

Someone had left a pile of strange-looking consumer electronics on my table. And somebody was missing.

It took me a split second longer than normal to twig that the strange white box was Little Printer. I’m so used to seeing him… alive. Not in bits.

I didn’t think I had that strong an anthropomorphic reaction to it – him, he’s really called Barry Printpeas. But: the second he was in bits, his absence was noted.

I found the paper under my bed, slotted it in, shut the door, fed it through the slit in the metal, and snapped him back together. Back on two feet.

Back on two feet, but faceless. No matter: he’d get a new face when the next delivery arrived, in about twelve hours.

He wasn’t right with this blank face, either. I hit the form-feed button.

"Sorry, I don’t have anything to print for you right now," said the smiling face.

He was back in the room. Much better.


What was odd about this episode: I really never thought this would happen. I like the device, I like having it in the house, and it has a name because it has to have a name in the setup. I hadn’t realised that I’d become a little attached – not even to the functionality; just to the smiling little guy in front of the TV. Nice to be proved wrong from time to time.

Disclaimer: I used to work at Berg, who made Little Printer.

ghostcar

30 July 2012

There’s a copy of me running around London. It runs at the right speed, but it’s unstuck in time: unstuck by 365 days, in fact.

Tom Armitage In The Past is a foursquare user. He checks in where I was a year ago. He says what I said a year ago. As long as the game systems haven’t changed, he gets the badges I got a year ago. (And, if the game rules do change, he’ll start to deviate from me).

He’s maintained by a piece of software I wrote called ghostcar.

In racing games like Ridge Racer, your previous time attack high score is often represented by a 3D outline of a car rendered into the same world as you – a “ghost car”. Matt Jones reminded me of this at the pub one night, as I explained my idea, and the project had a name.

It’s not a spambot. I’m its only friend; it’s invisible to people who aren’t its friend. It’s invisible to venue owners – ie, it’s not generating false marketing data. Honesty is Foursquare’s main currency: saying where you really are, being who you really say.

I’m not breaking the terms of service. When I wrote it, the Foursquare terms of service told me I couldn’t impersonate other people.

But I’m not impersonating other people. I’m impersonating myself. That’s got to be OK, right?

So: why did I do this?

There were two main inspirations. Firstly, James Wheare’s Twitshift (now sadly closed). Twitshift works because its output is in the same medium as the source data. I didn’t warm to Timehop because it was just an email. Email is good, and there’s value in juxtaposition – but anyone can send an email. Email dilutes the notion of “being”, however. Foursquare is not, precisely, about presence – it’s just about saying you were somewhere – but email about foursquare feels like another abstraction layer. I wanted to minimise abstraction. And so, to do that, I’d need to build a Foursquare timeshifted-echo service that itself output to Foursquare.

Secondly, I remember Kevin Slavin talking about Area/Code’s wide, GPS-enabled game Crossroads at dConstruct a few years back – and how, once, when testing, it the game’s entirely digital antagonist “Papa Bones” moved through their office, and every GPS-enabled phone they were testing the game on suddenly jumped. What made the virtual “ghost” interesting was when it manifested in the world. Even though it wasn’t real – and everybody knew it wasn’t real – it still made you jump when you were there; the juxtaposition of knowing something is right where you are, even if it isn’t a real thing, is highly striking. I wanted to explore that a little with my own data.

I don’t check up on Mr Armitage In The Past very much. The idea, rather, is that I might bump into him some time. How strange: to be in one of my usual haunts, and know that a ghost of me, a year in the past, is also there, watching a movie, having a drink. Sometimes, those memories are less cheery than others. Sometimes, they’re brilliant. It gives me a visceral memory: reminds my bones, my heart, what they felt. (That, for reference, is my defence against nostalgia. This isn’t just about nostalgia, because you might not like what it makes you feel. It’s just about remembering feelings; stopping to pause and remember the passage of time).

It’s also made me check in to Foursquare a bit more. The moment I fired ghostcar up, I realised I needed to start giving it better data so that it’d continue to have meaning a year in the future. So that’s a strange, interesting takeaway: changing my behaviour because I want the fossil record to be more accurate.

I was only going to find out what it felt like by making it, so I made it. It chugs away on my server in private. I run ghostcars for a few friends, too. It’s not particularly elegant, and I don’t think it’d scale to loads of users, so for now, it’s a private distraction. But I thought I should write it up. If you’d like to run your own install, the code is on Github. It’s a minimally documented Rails app, because it was made just for me, but you might enjoy it.

In the meantime: I go about my business, and an echo of me in the past will do one day, too.

Max has finally written the brilliant article about real-time data visualisation, and especially football, that has always felt like it’s been in him. It’s in Domus, and it’s really, really good.

This leapt out at me, with a quick thought about nowness:

Playing with a totaalvoetbal sense of selforganisation and improvisation, the team’s so-called constant, rapid interchanges — with their midfielders often playing twice as many passes as the opposition’s over 90 minutes — has developed into a genre of its own: “tiki-taka”. Barça have proved notoriously difficult to beat, and analyse. Tactical intentions are disguised within the whirling patterns of play.

(emphasis mine)

It serves as a reminder of the special power to be gained from resisting analysis, of being unreadable. Resisting being quantified makes you unpredictable.

Or, rather, resisting being quantified makes you unpredictable to systems that make predictions based on facts. Not to a canny manager with as much a nose for talent as for a spreadsheet, maybe, but to a machine or prediction algorithm.

This is the camouflage of the 21st century: making ourselves invisible to computer senses.

I don’t say “making ourselves invisible to the machines”, because poetic as it is, I want to be very specific that this is about hiding from the senses machines use. And not to “robot eyes”, either, because the senses machines have aren’t necessarily sight or hearing. Indeed, computer vision is partly a function of optics, but it’s also a function of mathematics, of all manner of prediction, often of things like neural networks that are working out where things might be in a sequence of images. Most data-analysis and prediction doesn’t even rely on a thing we’d recognise as a “sense”, and yet it’s how your activities are identified in your bank account compared to those of a stranger who’s stolen your debit card. Isn’t that a sense?

The camouflage of the 21st century is to resist interpretation, to fail to make mechanical sense: through strange and complex plays and tactics, or clothes and makeup, or a particularly ugly t-shirt. And, as new forms of prediction – human, digital, and (most-likely) human-digital hybrids – emerge, we’ll no doubt continue to invent new forms of disguise.

I’ve been making a lot of things recently, both at work and at home. And as a result, I’ve been having to buy tools.

Not a lot, but a steady trickle: discovering I need one of these, or one of those. A box of screws or bolts here; some wire there; a different kind of this to fit a particular need.

I’m trying to artificially acquire odds and ends.

This is hard. What, I think, I’ve been needing is a workshop.

But you can’t buy a workshop. A workshop isn’t a set of tools in a room.

It’s everything else, as well: offcuts; spares; old bits of wood; weird bits of plastic with strange holes in; broken things with one useful part to be cannibalised; hand-made jigs that fit particular things.

There is no shelf in B&Q or Maplin marked “this, that, and the other“, and yet that – more than anything else – is what I’ve been needing recently.

You can’t buy leftovers, spares, or “just the right thing”.

And given that, I think a workshop isn’t measured in the volume of tools it contains, the number of shelves, or the lengths of its benches.

I think it’s measured as a duration. A one-year workshop. A five-year workshop. A ten-year workshop.

Ten years of making things, and ten years of all the entropy that goes along with that: spares, duplicates, improved versions of things, swarf, offcuts, and thingummys.

When you view it like that, it’s no wonder I’m always finding new things I’ll require. I’ve only got a baby workshop (and let’s face it, the tools are in a closet and I’m drilling and sawing things on my dining room table – it’s hardly a workshop, is it?)

But babies grow up.

And it’s a reminder why, when I visit my parents, I can almost always find the bits and bobs I need, or the right tool for a job, or a part I didn’t even know the name of – because there’s a thirty-year workshop waiting for me.

Chip Kidd’s first novel, The Cheese Monkeys, has been perhaps my favourite book of the year so far. Not the best book I read, but definitely my favourite.

It’s about a young man attending art school in late 50s America, and discovering graphic design, through a particularly memorable course – Art 127, Introduction To Graphic Design, run by one Winter Sorbeck.

I liked it for many reasons, including Kidd’s deft use of language, its acidic humour, and a description of being drunk – and then hungover – that comes close to Lucky Jim‘s. But I think I liked it most because it reminded me of the values of art school that I’ve come – very much secondhand – to appreciate. Namely: the value of the crit.

More specifically: the value of disassembly – taking apart things you know and learning how to start from nothing. Taking apart a problem to find the only appropriate answer (though there may, in fact, be many). The value of being challenged to do difficult things, and honing skills. The value of physical skills – literal muscle control – in an era before the technological overhaul of design (and the value, as ever, of being able to draw. Even just trying to draw. It helps me a lot).

And, most notably, the value of criticising the Work as the Work.

In a crit, the work may be praised, it may be criticised, it may be torn into tiny pieces, fisked until there is nothing left of it. But it is only a criticism of the Work. It is not personal, and it only criticises the Worker in so much as it criticises their efforts and production on this work. It is a magic circle for being able to critically discuss a work.

As Sorbeck’s students find, it is difficult to learn how to be in a crit, difficult to learn how to respond to one, and difficult to learn how to give one. But it’s all valuable: it is focused on making the work better. There is a degree of building a thicker skin about work required – but also a degree of understanding the difference between criticism and complaining, criticism and anger.

I went to see Bauhaus: Art As Life at the Barbican last week, and The Cheese Monkey’s fictional version of the process of learning how to see was very relevant to my reading of that exhibition: seeing an institution begin to create the beginnings of what we now see in foundation art courses around the world. I was most glad to see the early output of the foundation years at the Bauhaus – some really exciting work made by artists learning how to see form, colour, material, and texture again. The Bauhaus reminded me of all the reason’s I enjoyed Kidd’s book.

I could have dog-eared most of the second half of the book – classroom scenes and narrative alike – but there were three quotations I did end up marking, so as usual, time to share them on the blog.

p. 79, in which the narrator meets Himillsy’s architect boyfriend:

He put out his hand.

“Garnett Grey.”

Yes, Garnett Grey was an Architect. Were a psychoanalyst to approach him from behind, tap his shoulder, and say “Humanity,” Garnett’d spin around, and respond, without hesitation, “Solvable.”

p. 106, in which Winter Sorbeck explains why the title of his course – Introduction To Graphic Design – has been retitle from the Introduction To Commercial Art that is listed in the course programme.

“…I’ve been put in charge of the store here, and I say it’s Introduction To Graphic Design. The difference is as crucial as it is enormous – as important as the difference between pre- and postwar America. Uncle Sam… is Commercial Art. The American flag is Graphic Design. Commerical Art trys to make you buy things. Graphic Design gives you ideas. One natters on and on, the other actually has something to say. They use the same tools – words, pictures, colors. The difference, as you’ll be seeing, and showing me, is how.”

p.177, Winter on design and power.

“Kiddies, Graphic Design, if you wield it effectively, is Power. Power to transmit ideas that can change everything. Power that can destroy an entire race or save a nation from despair. In this century, Germany chose to do the former with the swastika, and America opted for the latter with Mickey Mouse and Superman.”

It’s a lovely book. I had a lot of fun with it.

The black box above is an intervalometer to work with Nikon cameras (specifically, any cameras that work with the cheap ML-L3 remote). It has two external controls: a power switch and a knob. You rotate the knob to choose the interval period on the screen, and click it in to arm the intervalometer. Clicking it again and briefly holding it until the screen lights will disable it.

Which sounds simple enough, I suppose. I mean, it’s simple to explain. But when I began, I wasn’t even sure if I’d be able to make this – which was part of the adventure.

My commit messages tell me I’ve been working on it for over a year. It’s not, to be honest, a year-long project; it’s just how it came about, scraped together in moments between work, and I wanted to write some notes on the project – both what it is, and what I learned from it.

The Design

Like many of my technically-savvy peers, I had an Arduino in a desk drawer. I’d used it for more than just making an LED blink – a few little experiments in serial communication – but I’d not exactly exploited its full capabilities.

One day, I had a thought: I wanted to experiment with time-lapse photography, and had a small IR remote for my camera. Perhaps I could make something computer-controller to enable this? Not a full-size computer, that’d be ridiculous. But I could perhaps make something with a small microcontroller – like my Arduino – wired into a spare remote, firing regularly.

That smelled like it was within my reach: a little user interface and a timer.

So I refined the design in my head. In the end, I had a few goals for the project:

  • I wanted to use a rotary encoder as the interface: it seemed much more natural than stabbing up and down with buttons.
  • I wanted to use a small LCD screen in the project: I’d never worked with one, and it seemed like the simplest UI for the project. Also, there was a fun design challenge in fitting clear UI into 16×2 characters.

And that seemed like a starting point.

Building the First Version

There were four unknowns in the project, which roughly corresponded to the four milestones in building it:

  • working with the LCD screen
  • working with the rotary encoder
  • interfacing with the camera
  • writing a timer routine

I began at the top. I chose to work with a Serial interface to the LCD – one pin instead of seven seemed like a good trade-off, and it was a tiny bit easier to get started with. Quite soon, I had a UI displaying on the screen:

This felt like a huge leap. Somehow, making rudimentary computer graphics in tools like Logo or Processing had never captured my imagination – perhaps because I felt I ought to be able to do that. Working in a medium I was very unfamiliar with as a developer (but saw every day in my life) and producing output felt strangely empowering.

Of course, it was made much easier by the Arduino ecosystem, which is ideally suited to glue-programmers like myself. The SerLCD library did a lot of the heavy lifting; I just had to work on the implementation, and some details around making sure I put enough pauses in the serial routine.

Next, I worked on the encoder. This, again, was enabled by other people’s code. Rotary encoders aren’t like knobs – they spin forever, and as they pass a pair of contacts, emit Gray code from a pair of pins. You just have to read that code as it passes a pair of pins, and translate it into up/down signals. It wasn’t long – again, thanks to the magic of copy and paste, primarily – before I had the encoder being read.

I then added some detail to its implementation, where setting the timer past 90 seconds switches the device into minutes, which increment by 1, until it reaches 15 minutes. Why 15? It’s the maximum length of time my camera would stay on without any IR input before it goes to sleep.

Finally, we just need to rig up the IR interface. I was, when I began, ready to dismantle an ML-L3 – but it turned out I didn’t need to go that far.

There’s already an Arduino library for that exact functionality. NikonIRControl takes a single IR LED on a pin, and sends it the same sequence of pulses as the ML-L3 does. So that ended up being fixed in software, rather than hardware.

(In the final version, I replaced it with MultiCameraIRControl, in part because it’s now much easier to make this work with many brands of camera).

Along with the hardware, there was a bunch of code to be written. This was mostly straightforward, although finding the best way to write timing routines was the most complex part of it, and in the end, I relied on the TimedAction library, which abstracts a lot of what I’d tried writing longhand out. The other thing I discovered was the ability to compile multiple files at once into an Arduino sketch – available through tabs in the IDE. This helped a lot with clarity.

Really, though, the code is a lot of other people’s libraries or examples, all glued together with some UI and specific functionality on my part. That is the sort of code I end up doing a lot of: gluing other things together.

After a few months of the odd evening here and there, I had the whole thing working on a breadboard. The next thing to consider was packaging it up. I made a small shield out of stripboard and mounted it on top of my Arduino mini: a connector jack for the LCD, the encoder and LED soldered into the stripboard, and a battery pack to prove that the USB cable wasn’t doing anything.

That was the first working version. I put a short video on Vimeo. Later in the year, I’d take it to Cornwall with me. There, I shot this 30-minute timelapse:

That really proved it worked: not just the electronics, or the software, but the intent. The goal was not making electronics; the goal was making a timelapse video, which the electronics enabled. And here we were: a timelapse video.

Of course, it wasn’t finished.

My friend Matt Brown saw an early verison of this, and said that it needed to be in some kind of sturdy, industrial black box. And he’s right, really. Something rigged up on your desk on a breadboard is nice, but it’s not finished. Frankly, that dangle of a shield hanging from my lens was nowhere near finished either.

There is value in just doing something, but there is also real value in finishing it. That doesn’t mean selling it, or productizing it, or anything as over-the-top like that. Just get it into a stage where somebody else might recognize it for a thing.

So I started thinking about how to package it, because that would be what really made it a thing, and not just a tangle of wires.

Packaging

The limiting factor on packaging was the LCD screen. I was using a Serial LCD, and the serial componentry was hanging off one edge, extending the length of its PCB. I should have probably used a seven-pin LCD interface, but instead stuck to the serial interface. I took a regular seven-pin LCD, and used this Sparkfun Serial Backpack to convert it to serial whilst taking up less space.

Next, I decided there was no point running it from a full-size Arduino, so bought a Pro Mini, and set about re-installing the code there.

Of course, that meant flashing the Pro Mini, and rigging the whole circuit up on a breadboard, checking it still worked, before moving to a custom circuit.

With that done, I made a stripboard for it. (Yes, I keep using stripboard, because it works for me. I don’t know much about PCBs or Eagle, and that would mean this thing was never going to get finished). I would mount the Pro Mini in the middle of this stripboard, and then attach components around it, breaking the tracks where appropriate, to make a stripped-down board.

Crucially, I didn’t directly solder anything other than the battery jack leads. Rather, I put female header sockets onto the board, for the Pro Mini and all the components. Then, I attached the components with hires ending in male headers. That way, I could remove/install componentry easily, and also remove the Pro Mini easily to reflash it with new software. This turned out to be one of my smarter moves.

Finally, there was the matter of the box. Probably my weakest point: I am somewhat clumsy and useless with my hands. Also, I don’t really have any workshop facilities, so drilled the holes for power and encoder, along with the hole for the LCD, with files and a Dremel-a-like. This made a horrendous, ragged mess, and I envy people with CNC facilities or a decent mill. I did use my Dad’s workshop to mount the LCD, which means it at least got some counter-sunk, well drilled holes. Oh, for a pillar drill.

Finally, I just had to piece it together, testing the final version of the code, and plugging components in one at once.

It is strange to say “remarkably, everything worked” so much, but hardware is so strange and fincikity I always expect it not to. Also: I was aware throughout how out of my depth I was, and yet I always bobbed back to the surface.

Squeezing the box shut, the serial backpack on the screen impinged a bit on space, but careful board and battery placement made it shut. And that was that: a working, solid box, that did one thing, with software I’d written and hardware I’d made. More to the point: it was finished.

Finishing and Thingness

This project taught me a few values.

I discovered with this project is the way that Arduino reminds me of Rails: it directly values productivity of the designer/developer, and you pay for that convenience. This project could have been made out of discrete components, or out of a much simpler AVR chip, but it’d have taken me a lot of knowledge and experience. I pushed all the complexity into software, and embraced the Arduino platform. So it may have cost me £20 for the Uno, and about that for the final Pro Mini, as opposed to a few pounds for a bare microcontroller – but I saved myself effort. Still, it’s worth remembering that these solutions are in turn made out of other existing hardware, and that one day, that might be a better solution.

The project taught me the value of thingness: of completing something so that it’s an artefact other people can recognise and identify. The box-with-a-lid is a huge part of that. It stops it being a bunch of wires, something I explain as “an Arduino doing X”, and it becomes an Intervalometer. It becomes a thing.

And finishing is hard. You think software, or electronics is hard? Making a box chewed me up and spat me out. It’s not too hard to make the ragged, ugly holes I did, but gosh, I’d love the precision and experience to not have scratches from skittering milling bits, or the ragged holes around the LCD. Not to mention the entire rebuild of the project necessary to get it small enough to fit into aforementioned box. It reminded me, in the tiniest way, of Nick Foster’s lovely post about the difficulties of making:

It’s now simple for a couple of fairly inexperienced guys to feasibly produce products for sale, which is fantastic, but let’s take a critical look at a few of these products. How many of you have invested in a cool thing on Kickstarter only to receive constant emails about how expensive tooling is, or how hard it is to source PSU’s, or how the team massively under-budgeted the production? There have been many projects which simply ground to a halt because the Matter Battle was just too tough, before we even get into the debating the dubious legal position of these devices (CE mark anyone?)

Foster is talking about manufactured products, of course, which I’m not; I’m still much earlier along the curve. But Matt Brown’s point, a year ago, to make sure I completed it, not just leaving a pile of wires sticking out of a breadboard, was a challenge I felt it worth rising to – and I’m glad I did.

Perhaps most importantly, though, it reminded me of the huge value of making something you saw in your head. It’s vastly rewarding to make an idea that you originated; to solve a problem that you yourself had. I’ve always found that I learn new things better when I have a reason to. Every programming language I’ve tried to learn without something I myself wanted to build with it – I got nowhere. The second I have an itch I need to scratch, I’ll bat through tutorials and understand them, not to mention start trying to implement that thing as soon as I can.

This, I think, is hugely important. It’s why I think an important part of learning to code – for kids, or for adults – is achieving something you wanted – or needed – to do. It’s vital to understand that making, in software, hardware, or materials, is something you do unprompted, to solve problems, and not always knowing where the journey will take you. You don’t just implement rote linked lists, or bubble sorts, or debounce circuits; learning from examples is important, and often all one can do to begin with, but it’s not what the work is about. To learn to make things, you have to Make your own Things. You have to travel a complete path. It doesn’t just make the end more rewarding: it makes the whole journey more rewarding.

I wonder if that’s why a lot of Arduinos are in desk drawers, an LED wedged into pin 13: the platform is exciting and interesting, but there was never an itch. When that itch arises, take that board out of the drawer and scratch it. It is difficult, but it is within your abilities, and you will learn a lot. I did.

I had the great pleasure to get to Galy Tots at Kemistry last week: a lovely, tiny retrospective of Ken Garland Associates’ work for Galt Toys. It was lovely: lots of nice examples of graphic design and photography, as well as lots of items on display, including a prototype of knock-down furniture for playgroups, that was just beautiful.

There were several particularly lovely touches: firstly, that all the toys and games on display were set up to be played with – indeed, that they were set up so that children as well as adults could play.

And secondly: all the exhibition copy was written by Garland himself, which gave it a tone that was both very honest but also charming and subtle.

There were two quotation I took down, because they made an impact, and I wanted to share them.

Garland wrote about Edward Newmark, who had been manager of Paul and Marjorie Abbatt’s toyshop before he went to Galt.

Edward brought with him the conviction that play is a serious business, and toys are the tools of the child.

Talking about their time working for Galt, Garland said:

Most especially, it is rare for designers to have the experience of their work being enjoyed before their very eyes. I have had the greatest delight in seeing children playing our most successful game, Connect, in many parts of the world.

Watching something being enjoyed before your eyes is one of the great pleasures of designing things to be played or interacted with.

(And, by corollary, nothing hurts more, or reminds you to up your game, than watching somebody not have fun with something assumed they would enjoy).

Following writing about my books to catalogue each year of my bookmarks, several readers had questions, which (rather than responding to in a comments thread), I thought I’d get around to here.

  • Matt Edgar commented on the thickness of the spines, and what they represented in terms of my time/attention each year. All I can say is: I got a bit better at the process (more on this later) as time went on; I got quicker at both reading and writing. Also, during my time at Berg (2009-2011), part of my job was writing and researching, so the size of those volumes is in part because I had deliberate time during my work for reading and bookmarking.
  • James Adam asked if the body text is from Pinboard or the page. It’s usually a combination of both, with the majority being a salient quotation.

    If you’ve ever seen the format I use for my links, it tends to be a long quotation followed by a single line or two. James mentioned this because it seemed like a lot of writing. To which my answer is: it is and it isn’t. It’s a lot of words, but most of them aren’t mine.

    To explain, it’s probably worth talking a little about how I bookmark:

    I have the Safari extension for Pinboard installed. When I’m reading a page I like, or have found useful, I highlight a particularly salient quotation and click the extension button. This loads the Pinboard form with the contents of the clipboard loaded into the body copy field. I then wrap it in quotation marks, and perhaps add the first line or two of commentary that comes into my head. Then, I fill out the tags – as fast as I can, with the first thing that comes into my head. This tends, for me, to be the most valuable way of tagging.

    The time-consuming part is reading the articles; I try to make bookmarking as lightweight as possible.

    Bookmarks are published to this site via Postalicious.

    So: whilst it looks like a lot of content, most of it is not mine, but it is copied/pasted into Pinboard. Really, though, I’ve got this down to a fine, swift art.

  • In answer to Joel and Dave: I used Lulu for printing. I simply uploaded the completed PDFs to them for the inners. The covers were made in Photoshop, a bit by hand, and a lot by maths (because I wanted to use the same typeface on the cover that I do in the book.
  • Justin Mason asked about cost. The first book, which is the pamphlet at the bottom for 2004, is about 30 pages, and cost around £2. The largest volumes – 2008/2009 – cost £7 or £8. 2010, which is volume 7, and my first proof of concept, was about £4.50. It was about £30 for the lot, plus delivery, though I saved a bit through some canny Lulu discount codes that I had.

And, finally, a big shout-out to Les Orchard, as the first person who wasn’t me to get the code up-and-running and make some books!

A Year of Links

26 February 2012

A Year of Links

I made a book.

Or rather, I made eight books.

If you’ve read this site for any particular length of time, you’ll be aware that I produce a lot of links. Jokes about my hobby being “collecting the entire internet” have been made by friends.

I thought it would be interesting to produce a kind of personal encylopedia: each volume cataloguing the links for a whole year. Given I first used Delicious in 2004, that makes for eight books to date.

A Year of Links: interior

Each link is represented on the page with title, URL, full description, and tags.

Yes, there’s also a QR code. Stop having a knee-jerk reaction right now and think carefully. Some of those URLs are quite long, and one day, Pinboard might not exist to click on them from. Do you want to type them in by hand? No, you don’t, so you may as well use a visual encoding that you can scan with a phone in the kind of environment you’d read this book: at home, in good lighting. It is not the same as trying to scan marketing nonsense on the tube.

A Year of Links: contents

Each month acts as a “chapter” within the book, beginning with a chapter title page.

A Year of Links: index

Each book also contains an index of all tags, so you can immediately see what I was into in a year, and jump to various usage.

A Year of Links: colophon

Wait. I lied. I didn’t make eight books. I made n books. Or rather: I wrote a piece of software to ingest an XML file of all my Pinboard links (easily available from the Pinboard API by anyone – you just need to know your username and password). That software then generates a web page for each book, which is passed into the incredible PrinceXML to create a book. Prince handles all the indexing, page numbering, contents-creation, and header-creation. It’s a remarkable piece of software, given the quality of its output – with nothing more than some extended CSS, you end up with control over page-breaks, widows and orphans, and much more.

The software is a small Sinatra application to generate the front-end, and a series of rake tasks to call Prince with the appropriate arguments. It’s on Github right now. If you can pull from Github, install Prince, and are comfortable in the terminal, you might find it very usable. If you don’t, it’s unlikely to become any more user-friendly; it’s a personal project for personal needs, and whilst Prince is free for personal use, it’s $4800 to install on a server. You see my issue.

So there you are. I made a machine to generate books out of my Pinboard links. Personal archiving feels like an important topic right now – see the Personal Digital Archiving conference, Aaron and Maciej’s contributions to it, not to mention tools like Singly. Books are another way to preserve digital objects. These books contain the reference to another point in the network (but not that point itself) – but they capture something far more important, and more personal.

They capture a changing style of writing. They capture changing interests – you can almost catalogue projects by what I was linking to when. They capture time – you can see the gaps when I went on holiday, or was busy delivering work. They remind me of the memories I have around those links – what was going on in my life at those points. As a result, they’re surprisingly readable for me. I sat reading 2010 – volume 7, and my proof copy – on the bus, and it was as fascinating as it was nostalgic.

Books also feel apposite for this form of content production. My intent was never to make books, not really to repurpose these links at all. And yet now, at the end of each year, a book can spring into life – built up not through direct intent, but one link at a time over a year. There’s something satisfying about producing an object instantly, even though its existence is dependent on a very gradual process.

So there you have it. I made a book, or rather eight books, or rather a bottomless book-making machine. The code is available for you to do so as well. It was hugely satisfying to open the box from Lulu at work one morning, and see this stack of paper, that was something I had made.

A few weeks ago, Christopher Butler (who you might know for his year of ideas books) asked me if I could supply some notes on “forward-thinking design, the skills designers need that they may not have learned in school, and the future of their practice” for HOW magazine.

The full article is now online, including some comments from me. I was a bit apprehensive about writing this: I’m not trained in design, but I know and have worked with people who very much are, so I’m wary of making proclamations. Also, much of my own understanding and practice is shaped by my time (and colleagues) at Berg, so I hope they understand where my thoughts come from. As ever, their work on “Immaterials” has a lot to say here.

But I also hope there’s a bit of me in there too, and that I didn’t say anything too heinous.

Read the full article here.