Create Timeline Data Point

June 1, 2009, 1:33 pm

I have been making some good progress on my Timeline Project Community mode work. The thumbnailed image is a screenshot of the data point creation web form (click it for a detailed screenshot). I have tried to streamline the data creation process as much as possible. I see the data entry process as follows:

  • Select the project. Currently this is just World War Two and the Napoleonic Wars.
  • Enter a short title.
  • Find an appropriate article on WikiPedia which describes the data point in question. Alternatively the user can just select default which will use an appropriate root page.
  • Select a start date and, optionally, an end date for the event in question.
  • Type a brief description of the event (more detail can be found in the WikiPedia link).
  • Determine if the event can be described with a single location, a line (for fronts and borders etc) or a shaded region.
  • Based on the previous type, either type in coordinates or draw on the Google Map.
  • Select appropriate Tags for the data point. Tags are just identifiers to qualifier and sort data points. The primary tag decides what sort of icon to put on the map (land combat, naval combat etc). The other tags supply more information about the vent. One or more country tags describe which nations were involved in the event.

So that is basically it, hopefully pretty straightforward, with the real effort being the research to create a data point in the first place.

Permalink - Comments - Tags: World War Two,Development

Broken Picture Telephone

May 12, 2009, 8:30 am

and their respective games ...

Permalink - Comments - Tags: BPT,Art?

Timeline Project Community

May 11, 2009, 8:31 pm

I haven't entered any new data points outside the original early war European data points. The time taken to enter the data and the wealth of historical knowledge on the Internet, has motivated me to implement a community mode for the site. When I have finished I hope there will be users willing to contribute accurate World War Two chronological and geographical data. I am in the process of adding the following features:

  • User logins
  • Ability to add and edit data points for the Timemap
  • Ability to comment on data points
  • Ability to flag data points as accurate/inaccurate.
  • User badge system to acknowledge contributions

Once I have the core framework implemented I hope to extend the site to other periods of history.

If you are interested in being involved in the BETA for this project, please send me an email at .

Permalink - Comments - Tags: World War Two,Development

Podcasts

May 8, 2009, 12:11 am

Part of my motivation for building this blog (apart from PHP being just so much fun), was the persistence of my 1993 style links page on each iteration of my website from that time onwards. So here goes my totally web two point zero links bonanza.

I like audiobooks, but thanks to my decrepit phone and Audible DRM, I found myself looking elsewhere for audio distractions. On the whole Podcasts fill this niche nicely:

Permalink - Comments - Tags: Links

Python Soup is Tasty

April 30, 2009, 5:50 pm

This is why I love Python. I wanted to get a list of countries for my Timeline Project, so I went to WikiPedia and found a pretty decent list of countries. The combination of Python and Beautiful Soup made writing a tool to scrape the data faster than copy-pasting and text editing.

import urllib2 import httplib import codecs import sys from BeautifulSoup import BeautifulSoup opener = urllib2.build_opener() try: url = "http://en.wikipedia.org/wiki/List_of_countries" req = urllib2.Request(url, "", { "User-Agent" : "Souper" } ()) response = opener.open(req) data = response.read() except urllib2.URLError, err: print "HTTP error:", err.reason sys.exit () except httplib.HTTPException, err: print "HTTP error:", err sys.exit () streamWriter = codecs.lookup('utf-8')[-1] sys.stdout = streamWriter(sys.stdout) soup = BeautifulSoup (data) print "$countries = array (" countries = [] image_spans = soup.findAll('span', {"class" : "flagicon"}) for span in image_spans: href = span.findNextSibling('a') if (href): countries.append (unicode(href.contents[0]).encode('ascii','ignore')) for i in range(0, len(countries)): print """ + countries[i] + (""," if (i < len(countries) - 1) else "");")

Permalink - Comments - Tags: Development