A long and somewhat self-indulgent story, but perfect as a diary entry.
About 4 years ago I replaced the old foxpro-based timetabling system for the department at which I used to work at my old university. I rewrote it using C++ CGI and mysql on linux, it took me about 8-9 months to write. A lot of time was spent coding around the weird schemas that we had to keep to maintain compatibility with the old foxpro-based administration interface.
For a good few years it ran beautifully on the only "server" they were willing to give me on their meagre budget, a tiny old (now) 486/66 that didn't sweat under the load for many years.
Last year however, about a year after I moved on to the corporate world for good, they figured it was running so well that the rest of the university decided it was time to buy into our system and soon little old "lift" was handling over 70% of the university's 30K undergrad students, allowing them to view, edit and approve their timetables over the web.
Lift was finally at the end of its useful life as our timetabling server. Load was at around 15 most of the day, mostly because of the CGI and the size of the database. So I took a few days off to go and help the guys out and moved the entire system to a P2/350 they had sitting around. Everything was ok again, and load came down to ~ 1.5 at the heaviest periods of usage.
I was left with a nagging fear that even though I had put a lot of effort into writing the application well, the cruft from the old admin schemas and the fact that the whole thing was C++ didn't bode well for whoever took up maintainence of the system and it was likely that they'd come running to me for help whenever they needed a new feature. So last week I redesigned the schemas rewrote the whole thing in zope and a little python, including the admin system, in about 10 days of hacking whenever I felt like it.
MY god how far web development has come in the last few years! I can only partially attribute this hack to an increase in my own skill and focus as my experience grows, but a few years ago people were still writing non-persistent CGIs in C++ for anything more than toy apps. I'm almost mortified.
I've finally got a really good excuse for my friends at the School of Physics to never bother me with timetabling problems again. I'm happy about this, because they're really cool guys and I'd have hated to leave them hanging on a project that is at once invaluable to the entire university and paradoxically (common at this university), heavily heavily underfunded. They're smart, and I know they'll pick up enough zope to keep the system up to date in about half an hour.
A happy ending for all, a great weight off my shoulders, and an eye opener at the speed at which the ease of developing complex applications is growing.
My giving up gvim for a full-blown IDE, however, seems quite far away at this point. Especially now that I have the brilliant
Konqy to complement gvim and konsole.