Wednesday, March 12, 2008

Superdelegates wiki, lessons learned

I’ve had a lot of fun cultivating the site over the last month, and wanted to document some of what I did to get the site started, and how I iterated to add functionality. I’ve learned quite a bit about Mediawiki in the process, and a few things about Google products that might be worth sharing.

(Disclaimer, for those who don’t know me: I joined Google by way of the FeedBurner acquisition. I’m not an engineer, and my programming skills are very limited. I consider myself more of a copy/paste hacker than an actual programmer – I understand how web apps are built, and can often use Google effectively enough to find snippets of code to do what I need, then paste them into the right place.)

When I found the original list of superdelegates at DemConWatch, I put the list into Excel, and did some simple search/replace edits so that every delegate name had double brackets around them: [[Eliot Spitzer]], [[Ted Kennedy]], etc. This was critical because Mediawiki sees [[page]] as an indication that “page” is a linked page. Now every delegate name became an active hyperlink to a placeholder page which could later be edited.

As time went on, Mediawiki’s “wanted pages” (Special:WantedPages) was a great way to find out which delegates had not yet been profiled: Wanted Pages just looked for [[pages]] where the page has no content. A group of 5 of us knocked out the remaining 100 delegates over the weekend using this technique.

Mediawiki’s“extensions”: proved invaluable in customizing the wiki to my needs. Juliano Ravasi’s KMLExport is (I would argue) thereason the site got so much attention from CNN, Wired and others: it made otherwise dull text come alive in a useful interface. (By the way, a Google engineer and I are working with Juliano to figure out how to make this more useful, stay tuned on that.) Other extensions I’m using include the VideoFlash extension (so that I can embed YouTube videos within the wiki pages), and the Google Chart extension which uses the Google Chart API to create graphs. (The pie chart on the home page is created using this extension; I’d really like it to graph category counts in real time rather than create charts based on manually-entered data… can’t figure out how to do that yet.)

Earlier this week I had another idea: why not figure out a way to include news about each superdelegate on their page? While I’d hope that major news (like an endorsement, or, I don’t know, a terribly ironic event that might result in a superdelegate losing his superdelegate status) would get added to the page itself, it would still be nice to see the most recent news stories involving that superdelegate. (In a perfect world, these headlines might lead a visitor to see “new” news and update the wiki.) I couldn’t find an extension to enable this, so I just hacked my own solution: using the Google Newsbar AJAX wizard, I obtained the code necessary to display a newsbar on the site. In place of the static query that the wizard produced, I replaced it with the PHP statement that Mediawiki uses to title the page:

text('title') ?>
Once the newsbar code (and the php variable) were added to the Mediawiki template (I’ve stuck with the default monobook theme), every superdelegate page now includes a scrolling ticker of recent news about the superdelegate. Not bad! The end result? A powerful news resource, integrated with a number of Google products courtesy of simple APIs (and elegant extensions built by third parties).

A few notes on questions people have asked: yeah, this took a little time. I don’t know how much – several weekend afternoons/evenings, and a number of nights during the week over the month of February. A number of other people have chipped in (see the contributors page for details, and if you helped and aren’t listed there, please add your name!), whose help I’m immensely grateful for. Ultimately, I did this for two reasons: one, nothing like this existed at the time. (Soon after started, another site emerged to do something similar: the Superdelegate Transparency Project. I love their approach in particular to identify situations where the delegate’s endosrement is at odds with the popular vote in their district. And Wikipedia’s superdelegates info has beefed up considerably.) Two, it was a great opportunity to learn a new platform (Mediawiki) and a number of Google services that are quite relevant to my day job (News, Maps/Earth, Youtube). On both counts, it was wildly successful.

The site has had extraordinarily few cases of vandalism. Mostly it’s been adult sites trying to automatically add links to their sites from the Main Page’s “talk” section… those were easily rolled back. Other than that, the edits people have made have been both useful and timely (I wrote about this last week), and I’m amazed that the site is, for all intents and purposes, complete in a month’s time. It can certainly expand – many delegates need more biographical data, for instance – but it’s already serving a useful purpose and I think has meaningfully contributed to a better understanding of who the delegates are and how the process works.


  1. Thanks for writing this up Rick--it's amazing--if you approach a project like this intelligently and with a nuanced understanding of both the technology and end user demand--that you can create something with so much utility so quickly.


  2. Your web is very useful I liked a lot and I will return to read again.
    For my site add link add url