It hasn't been a good week. A number of things happened, the most significant of which was the loss of my hard drive. Here is the story:
As you know if you've been reading along, I've been having trouble with weird crashes. Unlikely as it is, I thought they were related to running named, since the timing was pretty much identical. So Tuesday, I try logging into piro from work, and I can't reach it, even though I call home and ask them to do something to spark a connection. When I get home, the little red disk access light is frozen on, and the computer won't respond to anything, even the Magic SysRq. Just for kicks, I feel the disk, and nearly sear the epidermis off my fingers. I guess it was a hardware problem.
I go to Costco and pick up a nice 40GB Maxtor, and figure I'll partition and format it, then just tar the stuff over. An hour's work at the most. I plug the new drive in, and the system hangs on bootup. After fiddling with the cables, I realize I need a BIOS upgrade. I remember the motherboard manufacturer's site is "soyo.com.tw", but it's gone. No forwarding message or anything. I poke around and find that not only has their main page moved to "soyo.com", they now have the most stupidly named domains, one for each country. Like "soyousa.com". Score one for the idiots afraid of anything but "dot-com".
Luckily, the BIOS flash goes uneventfully. I hook things up and boot the machine, and see scary messages about "THERE WERE INCONSISTENCIES!!! RUN FSCK MANUALLY!!!" So I do, and error messages scroll by for 5 minutes or more. This frightens me, but I figure it's just that I don't normally use the -v flag. Wrong. After I leave single-user mode, I see messages:
sh: sleep: command not found sh: id: command not found
There are also messages about being unable to write to /var/log/messages, since the directory doesn't exist. This does not bring hope. The system finally finishes booting, kind of, and I begin to poke around. /var is gone. /usr/bin is gone. A few other things are gone. So much for a quick tar job.
I put on my Rio and listen to the excellent music of torn while I get ready to reinstall Slackware from the CD. I figure I'll get the basic OS installed, mount the old drive, and copy the rest over. Then I find out the motherboard only has one IDE connector. Great.
Next, I realize I can't find the Slackware CD. This is not cheering me up. I hunt around for like an hour, and finally find it. My room is now trashed. The installer finally boots, and I get everything installed. There are no errors, and I reboot. It freezes at the LILO prompt.
It is at this point that I remember the 1024-cylinder limit. Since it's about 2:30 in the morning, I lay down on the bed and close my eyes for just a moment.
Whoops. It's morning. I sit through 6 classes and maybe a test or two, barely conscious. I go to work and help on a project. Unnamed people in relatively high places have literally no clue what is going on, and settle for "implementing management directives" instead. Now everything is slower by at least a factor of two.
At home, I finally get everything copied over and reboot. It seems to be running tolerably, except that a bunch of daemons and libraries now need to be reinstalled. From source. Most of which I deleted because I was running out of space. Heh. At least that won't be a problem any more...
Filesystem 1k-blocks Used Available Use% Mounted on /dev/hda2 9920624 1166856 8241700 12% / /dev/hda1 101089 1467 94403 2% /boot /dev/hda5 9920592 819124 8589400 9% /home
I download the latest Linux (2.3.99-pre6), compile it, and have everything back up. Except the NAT stuff for our house. For some reason, nothing I do with iptables will work. I haven't used it before, but I figure at least the simplest example in the HOWTO should work. Nope.
Oh well. I put the rest of it on hold and get ready to start working on quadium.net again. Why, look! My local Apache is not running! I start it, and it's not running! I do strace on it, and it works perfectly, right up to the fork. That tells me nothing. I finally look in /var/log/error_log, and see that shmget() isn't working. I think, how can that not work? I finally find out that I need this in my fstab:
none /var/shm shm defaults 0 0
Now everything is working, except for the SNAT stuff. If I don't get answers soon, I'll just downgrade my kernel a few revs until it does work. Other stuff happened, but I'm not going to talk about it.
Oh yeah, I have a PGP key now. Go get GnuPG. It's good for you.
I took the AP English exam today. At the risk of trivializing it, it seemed, erm, trivially easy.
The iptables stuff is working fine now, and I feel quite stupid. Brian Adams replied to my message on the netfilter list and pointed out that I really should have compiled state-matching support into the kernel if I wanted to use it. So I did. Heh.
A few people on the pilot-unix list pointed me to w3m, an excellent text-mode browser. Its rendering is orders of magnitude better than Lynx, and faster, too. Course, it doesn't have progressive rendering, but you can't get everything...
Just added word wrap to my hacked-up pilot-mail. Pointer arithmetic is a lot more fun than they'd like you to think.
The word wrapping in pilot-mail is now working as it should. I was getting the weirdest segfaults, and I still don't know where they were coming from, but they're gone now. Plus now I'm not allocating any memory to do the wrapping, which is The Right Way. I originally had it do that because I figured a working buffer might be useful for other functionality, but it's just not worth the effort. Plus I forgot what I was going to do with it.
This was one of those days when you learn that backups really truly are a good idea. The battery indicator on my Visor was getting low, but then it would bounce back almost to the halfway mark, so I figured I had a while left. Then today, when I turn it on, the screen's all dim and flickery, and I get a Fatal Exception. I try to restart, but it starts looping in the boot routine, so I have no choice but to replace the batteries while the power's on. As I suspected, the memory is wiped (except for the time, for some reason). I haven't synced it up in several days, and never bothered syncing up the memos, dates, etc. I think I'll run out this week and buy the backup module.
Then, I'm compiling things on spork, and the power cuts out. The freaking power! When it comes back on, of course fsck starts whining, but I can't get into single-user mode. It doesn't like my password. I finally find the Debian install ramdisk and boot it. It never has let me install onto spork, saying my architecture isn't supported. Luckily, I can flip to another console and run fsck, and everything works again. But still.
And now my physics final is due tomorrow.
We got our yearbook today. It has a considerably classier look than previous ones, and it's missing most of the glaring spelling and grammar errors, although I hear many of the sports scores are drastically wrong. I was actually beginning to be impressed when I opened the front cover and saw, proudly printed on the first page:
I started yelling in the middle of physics class. "Oh my goodness! Why did they do that? Do they know nothing about the Internet? Why must everything always end in 'dot-com'? This is the most incompetent thing I have seen in a long time! They didn't even bother trying to check it!" Then I noticed people were looking at me, and I stopped.
At least they've started writing the hostname instead of the IP address, although I'm not sure why they bother. "jeffco.k12.co.us" instantly refreshes itself to "188.8.131.52", no matter what. People like this should not be allowed on the Internet.
This week has been far more hectic than it has a right to be. I've taken all my finals except for world history, and the atmosphere at school is kind of weird, since there's only 4 more days left. It's definitely a lot quieter and easier to learn with the seniors gone.
At work, I've been hacking together a splash screen app in Lisp, which will end up being used by a number of internal packages. Since the only GUI toolkit available for CLISP seems to be with-wish, I'm using Tk for the actual display.
On the surface, Tk sounds like the perfect toolkit for this kind of thing, being dynamic and rather lightweight in terms of the amounts of code required. It's not. The theory and basic structure of Tk is great, but the actual widgets are very difficult to use in practice, and the object orientation is, um, less than optimal. The text widget should be tortured and shot.
Especially since this is going to be used by a number of non-technical people, I'm basically having to write my own widget set on top of Tk to hide the inconsistencies and to build in the features this program should have. It's taken me several weeks to figure it out, but I finally got it and it should be done quite soon. I'll post my code here when it's done.
It is going a lot easier now that I finally gave up on trying to actually make mold, my Ultra 10 at work, usable. Even though it's got a lot more RAM, it's considerably slower and less efficient than my machines at home, and I've had nothing but trouble trying to install things on Solaris. The other thing is that it's only got 8bpp video boards, and the palette flashes have been driving me crazy. I finally got off my butt and went to requisition 24bpp boards, but the only thing in the order database was "AUX VIDEO BOARD".
I dragged spork in, and it's now my main workstation. I forgot to bring a locking cable, so right now it's hidden behind a pile of boxes. Anyway, quite a few people were disappointed when they discovered I hadn't actually gotten Sun to buy me an iMac. It's great for me, because the stuff I'm doing has all been in Java or Lisp, and they work on Linux/PPC just fine. Plus, I've disabled absolutely all incoming connections except SSH, and it's impervious to the backdoors Sun's people have installed in every other machine throughout the WAN.
Oh yeah... Computer Lesson 207: If you're not sure the power cord will reach that far, shut down the machine gracefully before trying to move it.
Cool. I finally got the the splash screen package finished and tied up neatly. I should have it on Freshmeat within the hour. If all goes well, it will be going out worldwide throughout Sun in the next week or so, and immediately used by at least 3 or 4 software packages. I'm so proud of me sometimes.
I mentioned that whole DigitalDivas thing to my friend Josh today over AIM. I got back, "bleeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeep that microsoft company and Bill bleeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeep Gates". That should go in someone's sigfile.
I got a webcam. I was gonna hook it up to spork today so the whole world could watch me coding feverishly, but I was too busy. Plus I couldn't get any of the 2.3.99 kernel series to compile for PPC.
Last modified: Sun Jun 4 00:44:24 MDT 2000