Smirk gave me a router to configure for a customer and asked that I save the current configuration before I make any changes. It's a Cisco router, so saving the configuration is just copying it to a TFTP server. Nothing terribly hard—I already have a TFTP server installed on my workstaion, and I can easily configure the spare network port on my workstation to match one of the ethernet ports on the router, string a cable (which I already have lying around) and voilà. Nothing to it.
One Hour Later …
I'm ready to kill. I'm thinking one of (or all of) the CentOS maintainers, since I can't imagine the maintainers of
tftpd (is that even maintained any more?) all botching it in a perfect storm of stupidity.
tftp is controlled and run by
xinetd. But the Cisco router can't save the configuration file. It's not a networking issue since I'm logged into the Cisco router over the network. The configuration in
xinetd to run
tftpd looks good, but what the heck, I decide to restart
xinetd and check the logs anyway. That's when I find that
logrogate isn't. Or rather, it is, but it's failing to tell
syslogd to reopen its log files. And the configuration files for
logrotate look okay as far as I can tell.
But even worse,
syslogd appears to be buffering the logs in memory, maybe updating the files every 30 seconds or so. And the
syslogd configuration I have specifically states otherwise. It could be that
xinetd is really slow, but I have a hard time believing that it takes
xinetd a full twenty seconds to digest a 13 line configuration file (and there are about 30 such files—do the math) on a 2.6GHz dual-core box—the harddrives aren't that slow (heck, Firefox comes up faster than that on this system).
I really hate it when the tools I expect to work don't. It's one thing to know going in that the tools don't work, or aren't there. I know I'm going to get sidetracked and can make better time estimates. It's making a time estimate expecting the tools I work with to work and then getting sidetracked debugging tool issues that pisses me off, because now I'm under a time crunch.
It's even more frustrating when the customer isn't even there to accept the router.
And speaking of Unix …
I've been using some variation on Unix for almost twenty years now and I'm still coming across new commands that apparently have been in Unix since the Version 6 days (or so it seems). About a month ago I just heard mention of the
seq command, which prints a sequence of numbers (seems pretty silly but it can come in handy when manipulating say, photos from a digital camera from the command line).
And yes, sure enough, it found the command on The Company's servers. But they're running a relatively recent distribution of Linux, I thought. Surely it's some new command.
“No it isn't,” said my over ten year old install of RedHat 5.2, “and stop calling me Shirley.”
I suppose that's expected since I haven't bothered to read all the man pages on any Unix system I've used. But then again, my over ten year old install of RedHat 5.2 has 1,306 possible commmands to run. My even newer CentOS 4 install has 3,117 possible commands to run.
That's a lot of man pages to check.
Assuming every command has a man page to check. There's this
gconfd-2 command that's running, yet there isn't a man page for it, so it's off to Clusty …
This also extends to the various APIs installed on the system. I've been using Linux for easily over 10 years, and just the other day discovered the
ffs() function (which, to tell the truth, I haven't a need for). Big deal—there are a lot of libraries installed that I don't use, but this isn't in some obscure library. It's in the Big Kahuna of libraries—
glibc—the one library that every single program is linked against!
I'm beginning to suspect that program bloat is less about sloppy code and more about duplication of code due to ignorance of what already exists.
I rang one doorbell and heard someone on the other side of the front door. I think they were looking at me through their peephole when I heard a man yell “No solicitors!” without even opening the door. “I'm not a solicitor!” I sort of yelled back through the door. “I'm a politician!”
There was a pause.
I wondered if he had gone away, and then he yelled back, “That's even worse!”
I met Sean Tevis years ago when he lived in South Florida through my friend Ken at his house warming party. I found Sean to be a smart and witty person and so I've been following his blog for a few years (although since he updates sporadically, I read his blog sporadically).
And he has a good sense of humor about it.