Tuesday, August 30, 2005

Bugger

I was, at the time of posting, supposed to be on a plane midway between Manila and Singapore, on my way home. Pretty obviously, I'm not. Nope, no sirree, no bob.

Hardware woes held me up. I was supposed to have finished the installation of a robot and demonstrated it's operation to the customer by last Friday. When I booked my flights I deliberately included the weekend and Monday so that I had some time up my sleeve to cover contingencies.

Indeed, when I was in France the week before last the boss tried to persuade me that I should fly Nice to Manila via whatever European connection to save 2 days. I preferred to return to the US and proceed from there to Manila.

Had I followed his suggestion I'd have arrived here on Sunday morning, just in time to discover that half the hardware we needed wasn't in the country (notwithstanding my hand carry). And I'd have spent 2 days more waiting. As it is I've spent 6 days waiting.

Today the hardware was finished and tomorrow I start the first of at least half a dozen dry runs before doing the demo. I've learned that our customer misses nothing! So each of those half dozen dry runs will be performed to be certain that everything happens exactly as it should and that there will be no hole, no matter how small to trip us up.

I said I'd spent 6 days waiting. Not entirely wasted time as it happens. Our app as it stands today will not run under anything less than an administration account. Big security hole waiting for a disaster. I spent most of those 6 days writing a bunch of code to allow our app to run with admin permissions without requiring that the session be an admin session. Yeah, I know, it would be better that the app not require admin permissions at all but that's a pretty large job. I chose instead to write a framework that would make it possible for our app to logon as an admin from a non admin session. This is a much smaller job.

Naturally that requires admin credentials be presented to the local security authority; so I wrote code to allow an administrator to create a username/password combination, encrypted of course, so that the app could log itself on as a particular user. Which in turn led to the creation of three or four configuration apps which in turn led to the idea of writing a generic framework with various plugins.

Along the way I also wrote two services; one to export data from our database using various formats and one to import data to another database on another machine. And then the configuration utilities for each service followed by a rewrite to fit the plugin configuration scheme.

It's been a productive week. Now all I have to do is to get it stress tested, deployed and signed off. Oh, and I need to find a way to convert some of the work into CodeProject articles without violating the still unsigned intellectual property agreement with my employer.

I can live with those challenges.

No comments: