Yes, it's been way too long again. Funny, but every time I find a little something to get enthusiastic about, something else will come along to let the air out of the tires.
For the past two weeks or so, I've been running on medication and willpower. Not recreational medication (although some of what I've been taking could be recreational under different circumstances), but muscle relaxants and pain killers to help me deal with what's left of my back. It's been getting a lot worse lately. I've had my lucid moments, but drug sleep is not real sleep, and even though I'm not catching any sort of a buzz from what I'm taking, I've found it incredibly difficult to maintain any sort of concentration. And yeah, I've been a little cranky (the verity of which Mika Heinonen would no doubt gladly confirm); the pain is diminished somewhat, but I'm still spending my days close to tears.
<aside>I've always thought it was a bit unfair that all one gets from a painkiller is a painkiller when there's pain to kill. I mean, I have a good reason (not excuse) to take this stuff, a license if you will, and none of it does what it did when I didn't actually need it. It may have been twenty years, but there's still a little someone in the back of my head that would just as soon be high if he thought he could get away with it.</aside>
I have no idea where things go from here. I mean, I'm losing the ability to keep the big picture in mind when I'm working on details. In another line of work, that wouldn't be a problem, really. But when you get to a point where you can only reference the class, function, sub or even the short loop that you're currently coding without the ability to remember so much as the inputs and expected outputs for as long as it takes you to write the comments/pseudocode that would be your guide, it becomes something of a liability to a developer. I can answer people's questions on LDD only because the problems usually have a simple, short solution. Memory IO is minimal, and the whole transaction fits in a single packet.
I'm currently working on a pseudo-natural-language query/reporting tool for Notes. The aim was to allow a user to perform complex ad hoc queries and create scheduled reports without further developer intervention. The user selects the document types they want to see, the fields they want in the order they want them, sets formatting preferences for the various data types, defines conditions for the query (including data relations), sets a display type (flat, categorised, paged) and a sort order on one or more values that may or may not be included in the output. When I designed it, the whole thing was pretty clear, and I've got the UML and pseudocode to prove it. Even with everything done up front, I'm having a hell of a time trying to create working code. And no, the code is not terribly difficult. Like most dev efforts, it's the "big picture" that's the hard part; translating a working mental model to running code should be a matter of getting the data types and syntax right. Right?
You'd think. But I can't remember things like the well-chosen, clear variable names I've used once the declaration has scrolled out of the Programmer's Pane. (Oh, and globals, when necessary, are a real pain in the posterior. I don't mind the "Variable not delared" message, but I'd really like a "did you mean rawComparatorString?" suggestion to go along with it these days.) I'll forget what the clause I'm trying to parse looks like in the time it takes me to move my eyes from the notepad on my desk to the screen.
Needless to say, my productivity is way, way down, and so is my sticktoitiveness. The frustration level is pretty much overwhelming at times. I'm almost ready to go back to shining shoes, or at least I would be if I couldn't remember what that did to my back. I'm even having trouble genericising some truly simple but kewl stuff to throw into the OpenNTF.org CodeBin. It truly sucks when you look at a 200-character formula and all you can think is "Kevorkian would know what to do".
Well, that's enough bitching for one day. Sorry.