My Projects

I work on random stuff as I get bored and/or run into stuff that feels like it needs fixing (i.e. I can't get something to work or I need to get something to work and can't find anything out in the world wide web that looks good enough)  If I get "stuck" on a project for too long I find I tend to abandon it and go to something a little more interesting (unless it is of fairly high importance, then I tend to revisit). In the end all these projects need to be "fun" for me -- I do too much stuff for my day job for me to come home to something I don't want to do (and don't need to do)

SuperMake
The Problem: Both at work and at home I have situations where I want a series of steps to be made based on some current situation. This could be in the case of a database crash for instance where there are many potential places to recover the information from based on what is available, the quality of the data, and the time it would take to collect things together. Each of the steps involved may be small (on the level of single commands) but the concept of being given multiple paths and to choose the best one is the difference. An extension of the concept of the ubiquitous "make" utility.

The Solution: Originally tried to use Prolog for this one (it seemed up its alley), but Prolog seems to be strictly a student language (i.e. very restrictive implementations) plus the lack of the "stochastic" features that I would be needing (and the fact that the language pretty much melted as soon as I tried to figure out how it would work if I added them) meant that I should probably just code it in a more conventional language (currently Python, which I haven't been that familiar with up to this point)

Current Status: In-progress, working off and on. I have a short term goal that I need something like this for in the next couple months anyhow, so that's a pretty good driver to keep my focus on this.

EC2 Service Console
The Problem: Amazon EC2 is a by-the-hour machine rental service, where you are permitted to (using their API) request machines associated with your account be instrumented and booted with a specific hard drive image (either a stock image or one that you provide). Unfortunately their API is rather custom written and requires clients to be able to use. While clients have been written (and they have moderately recently released a web interface for controlling them), it does not permit an account to be controlled by multiple users (such as multiple people responsible for maintaining a site under a company) without granting those users full access to the account (and for the Amazon web interface, access to the underlying Amazon account with all the payment information)

The Solution: A PHP website that stores the account information (semi-securely) and permits multiple sub-accounts to be created for people to be able to use the service without having to know the master EC2 credentials. It should be able to do as many EC2 operations as would make sense a PHP website to be able to do.

Current Status: In-progress, I come back to this often enough that a lot of my time seems to be spent updating the API to the most recent documented version, which probably means that I'm not making enough progress in here quickly enough to accomplish much. Registered as a SourceForge project.

AutoSlate Extractor
The Problem: I love the Palm Pilot, having something at my hands that I can use to remind me about appointments and keep track of stuff at any time is something that I've really missed, after going through three devices (mostly cracked screens) and realizing that no one really cares about them anymore. Anyhow, I kept track of my fuel purchases using AutoSlate, a wonderful program which would (when the custom conduit was installed) give you an XLS file giving a subset of information in its database everytime it syncs. Unfortunately, while I have a backup of every file on the palm pilot, no XLS file (and no ability to create one)

The Solution: I wrote a small program that opens the PDB database file that AutoSlate uses and extracts as much information out of it as I have the care (and ability) to extract.

Current Status: I think I've managed to get about half the data out of the PDB file, which was most of what I cared about anyhow. Project completed to my satisfaction. Via the support forums I have received permission to distribute.

Evochron Workaround
The Problem: I wanted a space game, downloaded and tried out Evochron Renegades but found that it would give fatal ERROR codes everytime I ran it. Analysis with the author indicated that I either needed to free up more conventional RAM or uninstall my AV program and either switch to one he was using or run without. Needless to say this sounded like a really strange answer to me. (Although later issues with running Portal were documented as a lack of Paged Memory, which I guess is the same thing as conventional RAM...)

The Solution: I wrote a small program to run inside the Evochron process and modify some of its file caching methodologies to reduce strain on the AV program I was using (and yes I did eventually figure out how the AV program was interfering with the game).

Current Status: This patch works for Evochron Renegades and Arvoch Conflict, Legends appears to no longer have this issue (but was way too slow for the machine I had at the time). It does not interfere with registration or any kind of copy protection that I know of -- I did purchase and register the game I was trying. Project completed to my satisfaction, distribution restricted unless/until copyright holder notices and officially either approves or doesn't care.