Projects
Sites
Two recent sites sharing the MediaWiki installation used by Award Annals:
Award Annals
The Award Annals documents honors given to creative works such as books, films, and music. A score is given to each work for the honors it has received. Honor rolls are generated based on the scores. My custom-made PHP application is behind Award Annals. Bits of it are based on MediaWiki.
I conceived the idea in the summer of 2004 while browsing the web for a good sci-fi book. I didn't like any of the sites that listed Hugo and Nebula awards—they just weren't set up for browsing. I wanted a list of winners and nominees grouped by year so I could have a month’s worth of reading on one page. I like to see the cover art, read a synopsis, and see the prices without having to cross-reference or click all over Amazon. So I created one simple page.
That simple page snowballed into a database of thousands of honored titles.
I started with a Titanium PowerBook running OS X 10.3. Using only TextEdit, the page took shape. I installed MySQL and wrote some Cocoa code to facilitate the gathering of book data. After arranging to host the site with an altogether cheap host, I learned PHP (very similar to C, fortunately) to program a web interface to the database. The nature of search engine crawlers demanded simplification of the design—no frames, more keywords, and a more straightforward document structure.
Then, rather suddenly at the end of August ’04, it all came together. I froze the design and concentrated on adding books. In just a few weeks, the first fifteen awards were well-populated with winners and nominees—most of them back to 1990. I further developed the code as I added more awards and books. In 2006, I decided to incorporate films and music, and that decision lead me to understand that the site was too large for one person to handle. After the 2006 holidays, I began to play with open-source wiki software to see if it could be easily adapted to the site’s needs. That worked well for a while, but I was unsatisfied with the efficiency. I custom-authored the whole thing in early 2011.
OS X programs
I have created a little program called MovieMetaX. See, there's this other program called PyTivoX that serves up movie files from my Mac to my Tivo. But the movie files don't have a synopsis or list of actors or anything—it's just a filename. MovieMetaX will search some online databases to get that missing information, and save it in a file that PyTivoX can read. The result is...nice.
PHP tidbits
I authored a PHP class definition used to access Amazon's Product Advertising API. It provides the “bestseller” ads you see on Award annals. Check out my AAWS signed URL function for a stripped down version.
In developing the wiki farm, I made numerous modifications to MediaWiki so that many small sites can share the same database. I am unsure of the worth of doing this, but it was fun.
MediaWiki extensions
These pages contain early versions of extensions that might be of use to any MediaWiki developer.
- KLIcon Extension is used to insert an image using the magic word
{{#icon:}}. It differs from the normal method by allowing you to link the image to any URL, or leave it unlinked. - KLlinkparam allows linking to articles with parameters embedded in the URL.
- KLMeta allows the addition of HEAD meta tags through the use of the magic word
{{#metatags:}}. - KLEmailForm is used to create an email form in any article.
- KLNoSourceView s used to prevent page source from being viewed by users without edit privileges.
- CSS test shows how to add CSS to a wiki page.
