This is a page from the Kamusi archives. The information below may be out of date, and the links may no longer be valid. Please visit kamusi.org for current information. If you know of links or information on this page that can be updated, please let us know.
Regular Kamusi visitors may have noticed some funny things going on with the site recently - service outages, malformed pages, broken links, font changes, changed page locations, and more. It's been a long and busy week...
When the Kamusi Project became independent last October, we set up the entire site on the best server we could find quickly and cheaply. One reason the cost was low was because the server did not have much space available, only 35GB. That sounded like a lot to us at the time, but we quickly started bumping into space problems as our log files ballooned. The log files are digital kudzu - you can prune them back to almost nothing, but, at a million lookups a month, they'll grow back almost as soon as you finish cutting. With limited hard drive space, we ended up having repeated service failures whenever the disk got too full to write new log records.
We also made a silly configuration mistake. We conceived of the site as two separate entities, a dictionary and a learning center, so we set up two separate structures: kamusiproject.org and learn.kamusiproject.org, based on the subdivisions we had at our former host. The parallel structures meant that we constantly had to duplicate changes back and forth across the site. For example, we have been slowly localizing the site for Swahili (making all the user interface features available in Swahili), but we had to work with two agonizingly different lists of translation strings. However, when we decided to simplify our lives and merge the two sides, we discovered that our content management system had given many pages the same name on each site, such as kamusiproject.org/node/1 and learn.kamusiproject.org/node/1. Since the discussion forum has thousands of pages (or "nodes" in drupal-speak), merging the sides was far from straightforward.
In addition, the content management system we use to organize the site had gone through some major changes since we last updated it. We run the site on something called Drupal, which handles the tasks of arranging pages, formatting, linking, registering users, and much more. The version of Drupal we had installed was 4.7, while the Drupal universe had moved to version 6.0. Drupal 6.0 is much more powerful and much simpler to use, but has some substantial differences with Drupal 4.7, two generations back.
So, we needed to move to a bigger, faster machine, we needed to merge the two sides of the site, and we needed to upgrade our content management system. What could be more fun than doing everything at the same time?
With public service still running on the old server, we set up Drupal 6 on the new server, then fed the data from the two sides of the old server into the single shell on the new site. Whenever two files had the same name, we stuck an "s" on the end of one of them. Then we looked through all the files and fixed any obvious problems. And we spent hours wrestling with various issues, such as pages that refused to render correctly on Internet Explorer. When everything looked ready, we took a deep breath and flipped the machines, so public service would start running on the new server.
Nothing happened for about 45 minutes, until the domain name registry implemented the change, and then... chaos. For several hours we were finding parts of the site that hadn't made the transfer successfully, and trying to get them to work. Eventually we got things stabilized, although some things are still broken. We've made a list of known issues that we are working through as fast as we can.
Once the site is fully functional on the new server, we can move on to the next set of tasks. Coming soon: a complete change in our dictionary search features, including a move from antique cgi scripts written in perl to php scripts that function within the Drupal framework - more fun, which we are hopeful will result in more functionality, faster searches, and easier URLs. But that's for next week...