New Machines!

My dad’s work got new computers, and instead of throwing them all out, I got two.

Pentium 4 @ 3GHz with HyperThreading

3 GB DDR 533 MHz


I’m moving my graphics, sound, and Gigabit Ethernet card over to one of them, which is my new desktop. It’s not true dual core, but the clock speed increase alone is enough to warrant a move. I don’t have Windows on it yet, and I intend to get Windows 7 if my dad’s work isn’t able to loan me a CD to reinstall XP. Hopefully this machine will be able to handle Assassin’s Creed without stuttering. I plan to remove my 1.5TB external from its enclosure and mount it internally over SATA. That should fix the horrible latency and throughput issues I’ve had over USB. The other machine I have working as a Freenet node. I’m using full-disk encryption on both machines, and it’s cool. There doesn’t seem to be a drastic hit to performance, as I feared. The only issue is my own fault: I almost forgot the encryption passphrases, and actually forgot the root password on the Debian box. I remembered it, though.

The machines run fairly hot. I now have a mouse-hand heater. That doesn’t seem good. The room is warm, too, and I’m not sure how much of that is due to the sun, and how much is due to the three computers. My network architecture confused me by doing exactly what I told it to do. I set up static DHCP mappings based on MAC address, then DNS entries based on those IPs. This allows me to ping and have it resolve locally to my dad’s machine. It didn’t occur to me as I moved my Gigabit card from my old box to this new one that the IP and DNS entry would follow. It took me a while to realize I was trying to log into myself, which was why the key wasn’t matching. It was pretty funny. The old box is going to work on [email protected]. My next step is getting the requisite power strips and Ethernet cords to put the two non-desktop machines in the closet. One of them could run the alarm songs in the morning so that I don’t have to keep my desktop on at night.

Homework’s going well. I have a small amount of additional Precalc studying possible, then AP English. Comp Physics is done.

Coding Hardware Life

Essay and More

The first draft of this is dated October 18th, so many things in it are now dated, but here goes.

I’ve been thoroughly shaken by an essay question on a college application. Not that it’s a difficult question or anything.

Tell us about a time you used your creativity.

It should be easy enough. The problem is I’m having trouble thinking of recent uses of my creativity. I haven’t made any new Flash movies since 8th grade, although perhaps that’s for the better. They’re becoming increasingly embarrassing now. I made some comics Freshman and Junior year, but thaose were both for literature projects. I started making a 3D maze the last time I went to Camp CAEN, but that was the summer before last, and I stopped after I ran into an issue with sound under Linux in Zenilib. Writing about it makes me want to try picking it up again, but finding the time to do so will be difficult. It seems I have somewhat inadvertently found ways of being unproductive that are not obviously so, such as browsing Reddit instead of playing TF2. That’s not to say I’m not working hard, which I am.

My Dad’s Rosewill fan failed suddenly by making horrible grinding noises. Although PCI slot fans seem like a good idea, they might be too much trouble to be worth it. I’ll probably stay away from PCI slot fans for the time being.

Because I’ve had so much homework, namely in Precalculus, schoolwork has displaced my life somewhat. Synthetic division is nice because of the very predictable amount of space it takes up, and it’s oddly fun to multiply together factors to get a polynomial with the desired zeros. It’s making the math work to make something, rather than the other way around. It’s also strangely entertaining to factor in my head.

Thanks to this page I was able to figure out an otherwise extremely cryptic error in my crontab. It was in the line for server backups to the alarm upstairs. It’s not offsite, but at least it’s not in the same room. I also got GZIP compression working, with the assistance of these pages. To boil it down, the magic line is ob_start("ob_gzhandler");

I recently downloaded Cavez of Phear and it was fun. However, the lack of save functionality made it frustrating, as I had to continually replay levels after dying. As it is open source, and I had compiled it, (requires libncurses-dev) I decided to crack open the code and give it a go. With the very low number of comments it is somewhat difficult to read. It seems that once it loads in a level file made of of low-level, unprintable ASCII, it replaces special objects with the stone character, and makes entries in another array. I have yet to figure out why it needs another array for this. I’m also currently mystified as to why the save function (I didn’t write it, it works in the editor,) produces complete gibberish even right after I load the map and haven’t moved. It still does this when I undo the replacement of special items. I’ll probably have to rip chunks out of the program until it’s more evident. I really should try gdb. Maybe I should start a Git repo to make all this easier to manage, as although my memory is fuzzy on the matter I think I had parts of this working better before.

Despite my problems figuring this out, it is meaningful for me because although I’ve long known philosophically and logically that open source is far better for innovation and rapid development, I’ve never been able to directly participate in helping that process. (I’ve donated to and reported bugs for Wine, but that’s about it.) Even though it is a very simple contribution, it’s something that with a closed-source product would take emailing the developer or doing some strange dark arts with DLLs. With open source, I am able to open up the code and start to add a new feature. This is amazing.

I got my plate of food together and left it in the kitchen. Asking my sister to guard it against cats, I took my salad and milk out to the table. I returned for my plate, and noticed the empty one intended for Sarah sitting on the counter as Sarah held a full plate. I asked her if the plate was mine. No, she mumbled around the ham.

Matt called me over and asked if I wanted his old machine. He said it had stability problems. I’m now agreeing with that, as when I tried to connect to it just now to check the specs, it was unreachable. What I can remember is Athlon 39(?)00+ 3700+ at 2.4 GHz with 512MB RAM. It seemed stable at first… Maybe I should check the BIOS settings again, as I seem to recall it complaining about failed overclock upon POST.

Hardware Life Software

Cables, Infections, and More!

A few days ago I brought my desktop over from Dad’s and set it up at Mom’s, along with a switch to connect both desktops to the network. Someone accidentally bumped the switch, and the cable that brought the network connection up from the basement could not be wiggled back into working again. My hasty crimp had given out. I took my single remaining cable end, and managed to, after maybe two tries, get what seemed like a flawless crimp. Only having one end, and thus one chance at crimping to get online, was a very powerful motivating force. Upon further inspection it is not perfect, but it’s better than other crimps I’ve made. Maybe the loading bars I anticipate getting will help.

I cleaned up a machine at KI that was very badly infected. Our tools took care of the infection, but what took me a really long time to realize was that ndis.sys had been infected and deleted by the scanners. Everything was working except for networking devices, which showed up with corrupted drivers. Fresh drivers did nothing, and uninstalling the drivers did not actually seem to do so. Copying ndis.sys over from another machine fixed the problem.

My Dad sold his house, and we have now moved to Wendy’s house. At this point my room has no blinds, and my desk is in pieces. My room has the feeling of a LAN party in a metaphorical tornado – there are objects one might expect to find in a bedroom, except in strange locations and often not assembled. I hope this gets sorted out somewhat quickly.



I feel foolish. I moved the modem to my communications closet so that it would be more difficult for Mom to accidentally turn it off in preparation for a storm, but forgot that I had changed my email password. On my first try I failed to get a DSL signal when running it through a surge protector, so I ended up running it only with an extension. I was confused because the modem’s tests all passed, and both the connection and DSL were listed as up. I could ping whatever I wanted to, although AT&T was redirecting all my traffic to some strange password mismatch page, and traceroutes timed out. (Why not “incorrect?” “Mismatch” confused me into thinking it was set to my mom’s email and my password or something.) I was too worked up over the fact that they were hijacking my traffic to take into account the possibility that AT&T was correct that the password was wrong. I feel bad for wasting their time, but on another note I think that assuring customers that a password utility that requires an executable download is legitimate simply because they continue being redirected to it is not the best way to go.


Zombie 6 Version 2

Zombie 6’s problems seem to be due to a capacitor that was bent until a pin ripped out of it. The only way I might be able to fix this is ordering a new capacitor off the Intertubes, removing the old one, and very carefully soldering on the new one. That likely won’t happen soon, if at all. I got a Pentium 3 @ 866 MHz board with 512 MB RAM from KI. I was very impressed when I was able to just put the board in the case and fire up Debian, which had been booting an Athlon, presumably with an entirely different chipset as well. At this point the ethernet device was named eth1, which was annoying, so I went into /etc/udev/rules.d/70-persistent-net.rules, commented out the eth0 line, changed the name of the new one to eth0, then rebooted. I also commented out the old entry for the optical drive, under which it was on a different IDE channel. For whatever reason, to get networking functional, at each house I had to set the interface to DHCP, restart networking, then set it to static and restart networking again. I’m trying to find out what that does, and why it works.

Hardware Software

TX Underrun

Ever since I set it up, once my pfSense box has been running for a while it seems I will plug in the monitor to find two, three, or more messages about TX underruns, such as

dc0: TX underrun -- increasing TX threshold

However, my network started being slow to respond on the 6th, going so far as to drop one packet when I pinged Google. The LAN side was just fine. Yesterday I plugged the monitor into the router to see what was up, as I was unable to find a system log of console messages. The last message was

dc0: TX underrun -- using store and forward mode

My understanding is that this is why it became slow. This machine is not screaming fast by any means. It has 504 MB of RAM and a 499 MHz Pentium 3. Looking in the WAN interface settings, I realized I had misunderstood and set the wrong MTU. I saw the size for PPPoE, and given its mention in my modem’s configuration, I had understood, incorrectly, that my router would use PPPoE. (Even though the WAN interface was visibly set to DHCP on that very page.) I now do not know why I felt the need to set this manually, and as I reread my modem’s status page I feel more and more mystified as to how I came to that understanding: PPP on the modem (Public IP for LAN device). I left the field blank as to allow pfSense to set the MTU,  and my WAN connections are speedy again.

Hardware Life

Cats and Overheating

It seems we now have five cats. I’m looking into options for filters so my heatsinks aren’t clogged with all the cat hair. It’s far easier to brush things off a filter than blow them out from between heatsink fins. I should also renew my efforts to get our machines off the ground so they act less like vacuums. I really don’t understand the thought that went on in this decision, and in some ways doubt it occurred.

In other news, Zombie 6 started making an alternating tone, and it was only when I installed a sensor kernel module that I discovered:

$ sensors


Adapter: Virtual device

temp1: +60.5°C (crit = +65.0°C


Adapter: ISA adapter

VCore: +1.74 V (min = +0.00 V, max = +0.00 V) ALARM

+3.3V: +1.52 V (min = +0.14 V, max = +2.05 V)

+5V: +4.78 V (min = +0.05 V, max = +1.72 V) ALARM

+12V: +12.16 V (min = +0.43 V, max = +0.49 V) ALARM

-12V: +2.11 V (min = -3.07 V, max = -13.59 V) ALARM

-5V: +0.33 V (min = -7.71 V, max = -7.71 V) ALARM

V5SB: +5.59 V (min = +0.22 V, max = +0.00 V) ALARM

VBat: +3.07 V (min = +0.00 V, max = +0.00 V) ALARM

fan1: 5192 RPM (min = 168750 RPM, div = 2) ALARM

fan2: 0 RPM (min = 8881 RPM, div = 2) ALARM

temp1: +33.0°C (high = +12.0°C, hyst = +16.0°C) ALARM sensor = thermistor

temp2: +60.5°C (high = +60.0°C, hyst = +55.0°C) ALARM sensor = thermistor


I really hope either the default rail voltage ranges are somehow wrong, that the CPU overheating was leading to strangeness, or that I’m misunderstanding something, because if those are the rails’ actual voltages, I’m surprised the machine was still running and not on fire. Ranges including 0 seem weird, I don’t know if it’s listing acceptable variance from the stated voltage, and if so it seems in some cases too wide a range for normal operation. It’s probably not seeing a rotation speed for fan 2 because if I recall correctly it’s running off molex. I should add some sort of temperature monitoring to my machines. I will probably have to reseat a heatsink in the near future. For now the machine is off and unplugged – it’s unplugged just in case the PSU is really that broken and the 5V rail might do something nasty.


Zombie 1 PSU

When I went downstairs to check for water leaking into the basement during the storm last night, Zombie 1 was making weird noises. I powered it down and today found that it seemed that the PSU, not the optical drive or hard drive, was making the weird noises. This is a shame for many reasons. I don’t really need an optical drive in the thing, I have many spare 3.5″ IDE hard drives, and the PSU is a weird one that’s the wrong shape. Even if I bought a normal PSU and connected it from outside the case or something crazy like that, it would likely cost more than the machine cost me in the first place. At this point I’ve turned it back on and I guess we’ll just see how long it will last. This feels oddly sad.

EDIT: It is no longer making strange noises, at least for now.


XFX Card

XFX sent me back a replacement for my PCI-E 7600 GT with 256MB RAM. I was delighted to find that the replacement was a 9500 GT with 512MB RAM!

Benchmarks – average of FPS of two runs unless otherwise stated:

Lost Coast Stress Test:

1280×1024 Recommended: 68.92

1280×1024 Maximum: 52.54 (three runs)

1024×768 Recommended: 66.83

1024×768 Recommended with color correction and vsync: 52.52

Counter-Strike Source Stress Test:

1280×1024 Recommended: 126.49

1280×1024 Maximum: 59.48 (three runs)

1024×768 Recommended: 126.40

I suppose I ran the max tests three times each because they were so very pretty. It’s weird that a lower resolution with vsync and color correction would run more slowly than a higher resolution set to that and more. In the past, every time I ran maxed tests, its reflections contained the easily recognized purple checkers of missing textures. When I went from maxed to recommended settings and the purple checkers persisted, I realized that the missing textures never had anything to do with the abilities of the machine, and were indeed missing textures. I restarted the game to reload the textures, although I think mat_reloadtextures might do the same thing faster. (Found here.)

It is interesting to note that dropping to 1024×768 doesn’t provide too much of a boost in framerate, if any. This may be because 1280×1024 is the native resolution of the LCD, so no scaling is needed. After running tests, the console had an error about bench_upload being a cheat command. I enabled cheats in the hope that it would successfully upload my benchmark statistics. I could probably run a packet sniffer to see if it’s actually uploading. In Counter-Strike:  Source, sv_cheats 1 made the benchmark’s movements accelerated: the camera moved faster, the blocks spun faster, the water flowed faster, the flames flickered frantically – and the overall framerate was lower.

Windows fell back to software rendering when first booting with the new card. When my card died, Linux fell back to open source drivers for the onboard. I installed ATI’s propritory drivers in the hope that they would make the thing slightly more useful. It seems although NVIDIA’s drivers stepped aside when their card was unaccessable, ATI’s did no such thing, reducing X to an unsettling and intermittently flickering blank screen. The uninstall script in /usr/share/fglrx was nowhere to be found, which was odd because I manually installed the drivers from ATI’s installation script. Removing xorg.conf had no effect as it seemed to still use fglrx. I had not installed the propritory drivers from the repos. I ended up starting in single user (aka recovery) mode, starting an ssh server, resuming the boot process with telinit 3, logging in from elsewhere to stop gdm, then installing NVIDIA’s driver and rebooting. It works quite well now. I was even informed of telinit 3 by the NVIDIA driver installer itself, which was very nice!

EDIT: I found the uninstall script in /usr/share/ati.

Hardware Software


Just as Vertex mentioned, it is much, much easier to do a fresh Windows install and move over documents than it is to clean up an existing one. Apparently Dell puts (or put, this is an old machine, but I wouldn’t expect this to have changed) RAM that is slower than what the motherboard can take as a cost-saving measure. This things really flies now, and it POSTs so fast that I have trouble getting to BIOS or the boot device menu in time.

That being said, I am once again appalled by the out-of-the-box driver support in a fresh Windows install, even that provided by an SP3 CD. The device manager was no help for finding out the names of the sound, video, and ethernet drivers I needed, so I booted up into Damn Small Linux and did an lspci, which told me what I needed to know.  Searching for drivers based on chipset versioning is not too fun, but it worked. The graphics were greatly improved from the 4-bit color, very low resolution they started out in, which was nice. The ethernet driver was a bit harder, because when I downloaded it, it wasn’t an installer, just a series of folders with three files. I went to the add hardware wizard, but it turned out I needed to let it fail, get past the check Windows Update pane, and then it would let me tell it where to look. The operating system seemed too proud of itself when it completed.

I had trouble finding an audio driver, and so did Windows even with a Windows update connection. I was very pleased to find that Dell had the audio drivers, which they made easy to find and download. Adobe annoyed me when I installed Acrobat Reader, as my client requested, because it decided to place another shortcut on the desktop that I didn’t ask for, and I feel it tricked me into installing Adobe AIR. The shortcut then wouldn’t go away – I couldn’t delete it – so I ended up booting into System Rescue CD to get rid of it because it annoyed me so much. I couldn’t delete it even running as administrator.

The whole thing ended up taking somewhere around 7 hours, but closer to 4 or so of those were actual work, lots of it was waiting for a virus scan. I wonder what I can do in the future while waiting for progress bars. I did start installing XP while I waited. I’ve also moved to a different method of charging for my labor. When I was working on friends’ gaming rigs, I just charged 10% of the hardware costs, which seemed reasonable. Dad suggested I charge hourly. I have a cap, though, as to not let labor prices get too high. I feel uncomfortable charging large amounts of money.