I have to send myself a strongly worded letter. Twice.
I have a bit of in house software.. By 'in house', I mean 'in my house'. I originally wrote it back in the 90's to do simple home automation; Use the parallel port to turn on or off the lights or coffee maker from the command line on a SCO machine. It was used as a base for a whole lot of for cheap jobs, moved to AT&T Unix, then BSD, then Linux, and ended up with a lot of other things glued into it over the next decade; running cameras, access control for rooms, equipment monitoring, etc. My last support request for it was in 2002, and with my naive promise of free support that probably marks twilight.
Recently, I've been rewiring the house and thinking "Gee, I should make the alarm system remotely accessible. While I'm at it, some remote control outlets would be nice. Oh, and the thermostat! And I'll make it all work with my IP cameras! So I dig through the archives and whip out the old program. Everything was generally well written and basically will do what I want. Sure, the V4L code needs changes, the ADC code is designed for a device last popular with ham radio operators in the 1980's, and.. How hard can it be?
A couple of hours and beers later everything is in a testable state.
Whoa. The cameras are blank for no good reason. Granted, the code was written when the internet was composed of cans and string and all the resolutions are very low, but everything else works and it looks fine. Out of desperation I dump the data to disk after every step. Kosher until it hits a popular, actively maintained OSS library. The docs for it say my stuff is still right with the world.
What. The.. Fuck... Spend three hours beating my own garbage into submission, and someone else changing the expected behaviour of a function is my problem?
I said, out loud, to myself: "I'm going send this moron an email so strongly worded the UN would blush. Wait, they have an IRC channel? I'll go fix his shit, then I'll bitch him out."
Into the library code I go.. And what do I find, two hours and four more beers later?
/* 14-03-03, fixes a webcam problem
Some total asshole complained in channel last night, and I don't think it breaks anything else.
* Investigate later.
/* Images from QuickCam device come out wrong below 300x200.
* Consider this a strongly worded letter!
[Code that misaligns two arrays on purpose, in the opposite direction my code used to do it accidentally]
I'm not sure if I should stop drinking, stop trying to maintain my own code, or if I just need new insult material.