In any case, I think the fan has run itself to death. I found a supplier for a replacement, but they're taking two weeks off for the Chinese Spring Festival (whatever that is) and it'll probably take another month to get the part. Maybe I'll do more surgery on it when I can get a replacement fan, but I'll probably buy a new desktop after I get paid next week.
I'm on my work laptop right now. I brought it home for the weekend to put in a few extra hours and hopefully save myself from another week as stressful as the last one. The software I've been working on is a nightmare. I can't tell you much about what it does, but I can tell you that I'd like to strangle the guy who wrote it. It violates every principle of object-oriented programming. Anyone who paid attention in an undergrad introduction to Java programming or read and absorbed Sam's Teach Yourself Java in 17.4 Seconds should be able to write better software. The only thing that makes it bearable are finding these little head-scratchers that I can laugh about with my co-workers. Here's one I found the other day:
class FooThread extends Thread { FooThread thread; public FooThread() { thread = this; } // ... }
The 'thread' field is never accessed again, except to conditionally set it to null.
And then there was this little gem:
foo++; // count down
Yesterday I discovered that every single one of the app's progress dialogs is a dummy. They just count up to some predetermined value (stored in a public static field, naturally) and then display another dialog that says the operation timed out. A reference to the dialog itself is also stored in a public static field so that something, somewhere, can close it if whatever process it's pretending to display the progress of succeeds. Some of the dialogs even have a cancel button that doesn't actually cancel anything except the dialog itself.
I'm glad there are libraries like Prefuse and Automaton to reassure me that working on other people's code doesn't have to be hell...
No comments:
Post a Comment