HOME  |  WHAT'S NEW  |  CART  |  FIND:   |  HELP

Grand Unifying Theory

Unifying Several Platforms

There are three web databases and one wiki that I wanted to unify under a single platform to ease maintenance and supervision. Each one was originally written as a custom Perl script. Each also brought some specific functionality that I didn’t want to lose. There was also some specific functionality I wanted to add.

Naturally, each listed feature could be useful in the other situations.

Programming History

In 1998, I wrote the first Better File Cabinet using Perl and through various hand processing creating a bunch of GIFs of calculus problems. Keywords were created by a committee of experts. crosslinks were rather cleverly precompiled in a system that anticipated flyswat and other annoying web companies that automatically linked text. There was a wonderful shopping cart. BUT the database was very unwieldy to change… one needed to submit changes in a couple of text scripts to be processed and preindexed by a few perl scripts. Time passed and I never had time to truly revise the process, which was poorly documented, so basically it was too much trouble to ever update. In 2000, I found myself hacking together a web database to index and search RUME’s big list of references. It seemed like a golden opportunity to update the BFC with whatever package I used for RUME. So I threw something together very quickly that Just Worked and then I worked on the Grand Unification Theory. I looked around for a package that had the specifications I desired and found nothing fit my desires. I worked for a little while on a BFC2 which was going to be a sweeping semi-object-oriented package. In reality, it got bogged down and I got distracted by moving to my current job at SFSU, marriage, etc. As is well known, there is no version more dangerous than 2.0. And in reality, no one really wanted it, because the two databases Just Worked. In 2003, I had the need to put up little community information databases for things like TA lessons, and Math Department accomplishments. Once again, I searched the net in hopes someone had written the package I wanted. The problem is most people did not want community databases. There were basically a few categories of available software.

After all my searching, I realized what I needed was a cross between a wiki and a database. Nothing I could find really suited my needs. I did the next best thing and adapted an existing wiki: Kwiki. I liked it because it was written in Perl so I could understand it and hack it and it seemed to have a community around it with some helpful extensions. Most importantly, it installed really simply and well. This is in contrast to Mediawiki which I’ve been trying to install for YEARS and have NEVER gotten to work. So, I installed Kwiki and customized it a fair amount (adding an RSS feed and a reverse-indexed search, and a cool looking page-diff). This I issued under the name KwikiEH. The original release is at KwikiEH. Time passed. And it was 2008. My KwikiEH sites had been chugging along in their useful way without much interference from me. But then three issues came to a head.

So, I first looked into Kwiki to see if any progress had been made. Much to my dismay, all the progress in Kwiki 2.0 was in re-doing the innards to be more OO and abstract, and in all likelihood breaking my modifications. So I checked out existing software options again and found not much in the CMS world, nor the e-commerce world. Wiki-wise I tried (I really did) to get Mediawiki going on my new Mac Pro server with Leopard. Naturally MySQL wouldn’t install on Leopard (known bug). Sigh. So I went to choice two which was Oddmuse and much to my pleasure, it does seem to Just Work. Thus, BFC3 is being built on Oddmuse with some gentle customizations along with a larger revamping of the search display system, editing system and the indexing system, along with the addition of a shopping cart in Javascript.