The coders over at ProPublica, a leading source for independent investigative journalism, have released their new TimelineSetter tool under an open license. The tool takes a list of comma separate values (you can follow their example) containing the content for the timeline and spits out a web page to display it, complete with the various additional files needed to display it on any old web server. When these files are uploaded to your server the result are timelines that look like this.
Sounds great, doesn’t it? Well for some, it may take a little time to get up and running. First, the tool runs on Ruby, and you need to install it from the command line. On the Mac or most distros of Linux, this is often as easy as entering “gem install timeline_setter” from a terminal application. There may be complications along the way, though. For example, the folder this got installed in on my system does not allow the command to run the tool (timeline-setter) to be recognized without adding it to the “PATH” variable. This can be confusing to those who are not familiar with such things. Secondly, the command itself has a few parameters: you need to know how to correctly enter in the path where your CSV file is (which you may create in something simple like TextEdit), and the target folder (which must already exist) for the outputted files. The command they provide in the documentation page linked above is not actually quite correct. You need to add an "-a” (or -m to build everything into a single page) to make it output all the files you need to display the timeline correctly. That makes it:
timeline-setter -c /path/to/data.csv -o /path/to/output/directory -a
Thus, if I have a timeline file on my Mac desktop called “timeline.txt” and a newly created folder called “timeline” the correct command would be:
timeline-setter -c ~/Desktop/timeline.txt -o ~/Desktop/timeline -a
I then take that folder “timeline” and upload it to my server. I can either edit the “timeline.html” file it creates to add content before and after it or leave it as it is.
[Geek Alert] Because it generates the timeline and all the files based on the “ingredients” you provide it (the CSV file) it is said to “bake” out the results, and doesn’t dynamically pull in the data from the CSV. If one wants to change the timeline, one has to “bake” the timeline again or carefully edit the timeline.html file. This is handy for those who don’t have any server side scripting support but have Ruby support for the local baking. However, I wonder if someone out there has (or is planning to) to create a version of TimelineSetter for servers that support a scripting language such as PHP. This would cut out the need for any baking at all and avoid the above command line work. With an hour or two of coding, it would be relatively easy to inject some PHP into the part of the timeline.html file that calls the TimelineSetter.Timeline.boot function and feed it data dynamically from a hosted CSV file. Anyone want to take this ProfHacker challenge? Post your solution, or a link to the code in the comments! [End Alert]
The most mature and powerful web timeline tool out there, however, has to be the SIMILE Timeline tool out of MIT. It has far more flexibility and power than the young TimelineSetter project and is also better, in my opinion, at handling complex timelines with many events. Your chosen solution will probably depend on what you want to accomplish. However, in the case of SIMILE Timeline, with power comes complexity and a learning curve.
Fortunately, our own ProfHacker, Brian “the Chronolomancer” Croxall has got your back. He has created a series of tutorials, including screencasts, that will help you get up and running with SIMILE Timeline and allow you to create timelines with data pulled directly out of a Google spreadsheet. I strongly recommend that aspiring acolytes pay his site a visit: Brian’s Timeline Tutorials
[Creative Commons licensed image by Flickr user neil cummings]