Saturday, January 29, 2011

The Cycle of Achievement

Let’s step right in. Here’s the achiever:


Here’s the prize (shown contextually):


The achiever strategizes, then moves heaven and earth (or in this particular case, a rocker) to get the prize:



The achiever, after braving terrific odds, gets the prize:


And enjoys the sweet, sweet taste of success (yes, success does have a metallic taste. Everybody knows that):




Depending on your viewpoint, the cheese is moved, or the prize is taken from the achiever:


And the achiever moves on to The Next Big Thing™:


And that concludes our study of The Cycle of Achievement. Many thanks to our achiever for sparing time from his busy schedule of achieving to contribute his quota to the development of the world.

Until next time.

Tuesday, January 18, 2011

Penny wise, pound foolish (and other, possibly related, matters)

Social Innovation Camp Nigeria ended Saturday night, and with it, two days of near hell on earth. More on SICamp Nigeria later, though.

At work a little while back, we had a hiccup with our messaging server. In the attempt to resolve the issues, we uninstalled the server application and reinstalled it a couple of times (at the end of the day, the actual problem was unrelated).

This particular product comes with a web-based user portal. Uninstalling the application also wiped out the web pages. Normally, it might not have been a major issue, but the problem is that we’d made some expensive customizations to the portal (expensive because the portal runs on ASP — no, not ASP.NET, classic ASP, in VBScript, no less — and over 80 per cent of the markup of the pages is churned out using Request.Write statements. I can almost hear the screams), and in my haste to resolve the bigger problem (how to get messages moving again), I created a new problem, namely, resetting the web portal to (crappy) factory settings.

I’d tried several times to write a new web portal in .NET but always gave up before getting far (yes, story of my life). After the server application started working properly, my next task was to make the portal usable again (practically all our customers who use the web portal need at least one of our customizations, some JavaScript tweaks a colleague worked in, which got lost when the uninstall ran). Unfortunately, just when I wanted a quiet day to spend coding, we had visitors. And Mr Baby decided to be very active. So I didn’t get anything done when I had motivation, and by the time everyone left and I had no calls on my attention I was too tired to see straight.

Today, I decided (I can’t remember the exact motivation, though) to try to replace the functionality missing in the pages. Now, I haven’t done JavaScript in ages (over 4 years, I guess I really do dislike doing human interface development), so the development time was split between W3Schools, ##javascript on Freenode, Chrome’s developer tools and Eloquent JavaScript. I ran into some hiccups, but I got it done at last.

Now comes the irony

One of our clients complained that they couldn’t use the old system, so I cooked up a Python script to use the web service interface of the messaging server to send messages for them. After I completed the change, I emailed them to try the new modifications. The lady called later to complain, “it’s not responding”, and  with a plea to send the messages for her.

All that work for nothing. And then someone will ask me why I think women are unreasonable.