A riotous second quarter awaits
This is the first post in the second quarter of my year-long publishing odyssey and it's two weeks late. In my defense I have a good excuse. In fact, I have several excuses, but most of them aren't all that good.
First, the most obvious one: writing all of this down to a demanding schedule is bloody hard work. This is a bad excuse, more of a whinge than an excuse. Nobody asked me to write anything down and my only deadlines are self-imposed. Still, whinging is fun.
Secondly, it's holiday time of year and I've been in Berlin, feasting my eyes on the decayed ruins of two 20th century European empires. This is another bad excuse, but ever so slightly better than the previous one because I can pretend that my trip was concerned with research for future blog posts. It's not entirely untrue, but the research was a minor sideline to the serious business of drinking beer, eating wurst, skinny-dipping in lakes, playing table tennis and cycling around the place.
Thirdly and finally we come to the good excuse. I've been wrestling with technology in order to introduce several new features onto the site. Initially, I thought this would be a breeze - I had the features 95% completed before I launched the site. In general, when it comes to technological solutions, the 80:20 rule applies - the final 20% of the work takes 80% of the effort. In this case, it was more like a 95:5 rule. The final 5% of the work took, oh my golly gosh, an awful lot of effort.
The 80:20 rule relates to the differences between estimated work and actual work. When one starts on a project, it is often the case that one does not know how one is going to solve the various problems that one is addressing. At some stage along the way, all of this uncertainty falls away as the conceptual challenges are overcome. What remains thereafter is merely implementation detail - tidying stuff up so that it is just right, crossing all the t's and dotting all the i's. People tend to vastly underestimate the effort of this implementation detail because it doesn't involve any great conceptual challenges - it's easy. As it happens, things that look like minor implementation details from a distance can hide subtle conceptual challenges when viewed up close. What's more, once a problem has been solved in theory, it becomes inherently less interesting and more tedious to work on.
But enough abstract discussion, let's get onto the features themselves. There are two new major technical gizmos that I've introduced to help me tell my stories. I'll be using them extensively over the remainder of the year. In order to introduce them, I'll use an example from the Love Ulster riots of 2006 in Dublin to illustrate their use.
The first feature is a fairly simple photo-story / slide-show gizmo. It presents stories through sequences of photos. The above example is fairly simple, I can add all sorts of extra bells and whistles as needed. This wasn't all that difficult to implement - there's a Drupal module which more or less implements it. The difficulties here were mainly to do with structuring the content so that I can feed arbitrary sets of photos into these photo-stories. That took a bit of work.
The second feature is, I think, fancier. On one level it is just a simple map with place markers that can be clicked on. On another level, it is a very fancy map, which allows users to select all sorts of different map types to view (click on the layers icon on the top right of the above map for a demonstration of the different map types). On yet another level, it is an extremely fancy thing which allows me to present all sorts of different types of information (routes, places, areas...) in a whole load of different ways. Implementing this properly was unbelievably hard. It uses a Drupal module - openlayers - for the core functionality. Openlayers is tricky to set up - it involves multiple layers of information from lots of different places that is dynamically pulled together into a single simple map.
More tricky than the technical set up was the information architecture - underneath the hood there is a great big complicated structure of location and time information which allows me to select arbitrary sets of places and time-slices to present in any particular map. This should pay off over time - I hope to avoid having to revisit the technical set up for ever more.
All of the above was, more or less, in place before I launched the site. I just needed to do a bit of design and a few tweaks here and there to get it to look right. However, in doing so, I realised that I needed more fine-grained control over which pictures appeared in which maps, so I had to revisit the information architecture, which was a pain. A much greater pain was getting all of the right information to appear in the pop-up boxes. Getting the images to behave properly took me a ridiculous amount of time, and involved tracking down and fixing several bugs in the underlying code as well as writing a chunk of code from scratch.
Tomorrow, I'm going to publish an old article I wrote about the Dublin riots that are pictured above, along with the new features above, with a bit of up to date analysis for context. Then, next week, I'll be back to the main publishing narrative. The next major technical features won't be introduced for several months, so my nose will back to the writing grind-stone and the innards of Drupal will recede into a dark place of my psyche.