A riotous second quarter awaits

published 15 Aug 2013
Photo: 
chekov

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.


Photo-stories

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.

Rich Maps

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.

Comments (5)

Mark Conroy

Hi Checkov,

You could consider using flexslider instead of field_slideshow for the slideshow - it's lightweight, very easy to configure, and has responsive image built in.

Could the icons in the maps load using Ajax (if you switched it on for that view) so the page doesn't have to refresh to view the modals?

Lastly, don't suppose you are looking for a job at the moment doing Drupal development? We've some very interesting projects coming up.

chekov's picture
chekov

Thanks for the tip on flexslider - I haven't looked at it to date (so, so many modules...). I'll have a peek.

Which icons are you talking about - the mini-images? I don't think the page refreshes for the modals - am I missing something?

I'm not in the market for a job at the moment - I like my current job and I'm choc-a-block full of really interesting projects. On the other hand, I'd be interested in hearing about the sort of stuff that you're doing with Drupal. Drop me a line and we can meet for coffee perhaps?

Mark Conroy

Hi Chekov,

Actually, the icons are fine. I was talking about the little green + symbols, but it seems it's only on my phone that they are causing reloads/refreshes.

Flexslider = the future of how Drupal handles slideshows.

I'll drop you a mail with my number for coffee; I'm in Dublin Tuesday - Thursday each week.

At the moment with Drupal, I'm building (hopefully going live today) a site for a large charity; starting on a social network (a cross between Facebook and Linkedin), and hopefully about to be awarded a contract to build a LMS (like Moodle).

I should also mention ... it was you who got me interested in Drupal ... I'd never heard of it until you suggested re-writing Indymedia.ie with it, back in May/June 2008. Strange the influence we have on others without knowing ... and now here I am working as "Head of Drupal Services" for a cool company (THANKS): http://www.monsoonconsulting.com/newsroom/monsoon-consulting-merge-with-...

Jock Ular

Hope you're having a good time somewhere...

Re Drupal, I recommend checking out "drush". In combination with git it can be part of a powerful workflow for site development.

chekov's picture
chekov

The next piece took me way longer to write than I expected - like pulling teeth. It's ready now though and will be published tomorrow morning.