Category Archives: Computers

Careful With That Coax, Eugene

In the past couple of months I’ve tracked, on two separate occasions, cable-TV signal-quality issues down to improperly-terminated coaxial connections. Both times someone seems to have decided that the end of the center conductor should be flush with the end of the surrounding screw-on collar.

No.

For the record: when you strip coaxial cable, you’re supposed to expose one-quarter inch — sixteen sixty-fourths for the mathematically disinclined amongst you — of center conductor. The collar of the RG-6 Quad compression-fit F-connector I happen to have at hand is, according to my caliper, eleven sixty-fourths of an inch deep. The center conductor is supposed to protrude. Don’t trim it flush unless snow on your television screen and irksome connectivity problems with your cable modem are your idea of an afternoon’s entertainment.

Amateurs.

Hate Sink: Epilogue

It turns out that the Notorious K.R.I.D. had a work-supplied, Pentium-4-based Dell system with a noisy, rattling heat-sink fan that was slowly driving him nuts.

Blame for this rests solely and squarely with Dell: their standard practice since time immemorial has been to equip their machines with a large, semi-passive CPU heatsink, place an exhaust fan on the back of the machine, and connect the two with a plastic shroud. In theory, this is a better approach than the standard one involving a fan blowing air onto the heat sink: Dell’s approach draws air over the heat sink and then ejects it from the machine, rather than running the risk of simply recycling the same ever-hotter air. It would be a better approach in practice, too, if Dell would only find some way of turning the shroud into something other than a bullhorn to amplify the fan’s roar.

So we set about removing the Dell heat sink, and replacing it with the infamous PIPE101. This process was surprisingly complicated, and involved a number of unexpected discoveries.

  1. The thermal tape which Dell uses as an interface between the CPU and heatsink is surprisingly sticky. Sticky enough, at least, to pull the CPU right out of the locked ZIF socket. I didn’t know that was possible. Miraculously, none of the pins were bent.
  2. Dell, in keeping with its tradition of reinventing perfectly good wheels whenever possible, used a non-standard retaining bracket for the heatsink. Bastards.
  3. Mercifully, they didn’t have the inclination or the opportunity to deviate from the standard spacing for the heatsink-bracket retention holes. Consequently there was hope that if we could track down a spare Socket 478 heatsink-retention bracket, we’d be in business. Thanks to the ever-helpful folks at BlueBonePC, we obtained one.
  4. This was when we discovered that while the spacing on the holes is standard, the placement of certain capacitors near the CPU is not; a standard heatsink-retention bracket will not fit without modification. Dirk promptly supplied the neecessary modification by clipping out part of our bracket, in a way that didn’t seem to compromise its function. (Bastards!)
  5. The rest of the installation went relatively smoothly. The PIPE101 fit into the available space with room to spare, and Thermaltake’s approach to Socket 478 retention proved far less squirrelly than their take on Socket 939. Of course, it was only after I’d installed heatsink and fan that I realized I’d forgotten the backing plate on the other side of the motherboard, but never mind. I was even able to remove the heatsink without simultaneously extracting the CPU this time.

We then attached an exhaust fan to the back of the case through means so crude you really don’t want to know about them — I have only one word to say on the matter: “wingnuts” — reconnected the machine, and fired it up. Miraculously, it booted despite the astounding amounts of abuse and vendor-unapproved handling to which we had subjected it.

At last report, it is running strong, but silent. Dirk is happy, and so am I, to have found a suitable home for the heatsink at last.

(I’m also happy in no small measure because Dirk reciprocated by expertly tuning up my bike, from out-of-true wheel to balky front derailleur to slow leak in front tire. He also replaced my despised toe-clip pedals with a pair of Speedplay Frogs which he sold to me at friend prices, and with which I have rapidly fallen in love. Better than just do all these things for me and present a fait accompli at the end, he let me observe every step, so that I have half a chance of doing for myself in future.)

Paint.NET

There are times when you want to fiddle with a bitmap without necessarily wanting or needing to bring the full force of Photoshop to bear.

At times like those, if you’re on a Windows box, Paint.NET fits the bill nicely. While lightweight, it’s neither crippled nor a toy. It’s available free of charge, and you can download the sources if you want to hack on it. This might be my occasion to develop at least a working familiarity with the .NET framework.

Netgear to the Rescue

The Netgear WG602 access point is a much happier piece of hardware than its accursed D-Link counterpart. It doesn’t want to reboot whenever you do… well, anything, its DHCP client implementation actually appears to work, and its built-in web-based UI is a model of elegance and simplicity.

It may, in fact, constitute one of the very few legitimate uses of HTML frames I’ve seen. Ever. The left frame chooses the configuration topic, the center frame allows you to set options, and the right frame displays help appropriate to the current context, so you don’t even have to make any additional clicks to find out just what the options you’re facing off against actually mean. I am pleased and impressed.

(Of course, I haven’t actually tried attaching any wireless clients through the thing yet, but trifles like that can wait for the time being. Also, for maximum perversity, I have acquired a Linksys high-gain antenna and antenna mount, just to add vendor mix-and-match to the equation.)

The Great 802.11 Swindle

I have long harbored the suspicion that WiFi is a kind of mass hallucination rooted in collective embarassment. Fundamental security issues — which are grave, and many — aside, no one wants to be the first to admit that this stuff often doesn’t work worth a damn, and doesn’t come close to delivering the advertised throughput even when it does connect with some approximation of reliability. The fear of being mocked for technical incompetence by one’s companions in suffering is simply too great.

Recent experiences have done more to reinforce my opinion than to change it. Thinking that it was time to move at least partway up the technology curve, I decided to acquire an 802.11g-capable access point. Having been reasonably pleased with D-Link’s DGL-4100 router, I picked up the company’s DWL-2100AP access point, along with a matching omnidirectional antenna.

To say that I am not impressed would be a galloping understatement. I didn’t necessarily expect the product to end world hunger, but for the price, I expected it to at least be fundamentally usable. No dice.

For starters, every single configuration change requires that you reboot the device. Change the SSID? Reboot. Alter encryption settings? Reboot. Switch from a static to a dynamically-assigned IP address? Reboot. Every reboot requires that you and your browser twiddle your thumbs for 20 seconds while the AP regains its ability to act as a web server.

It wouldn’t be so bad if you could batch up the changes and effect them all at once, but you can’t. Maybe you’re supposed to use the included SNMP-based access-point management software if you want advanced functionality like that, but then, really, what was the point of even bothering with a web-based configuration interface in the first place? As it is, the thing makes the Windows update and installation proceess look like the very model of simplicity and elegance, and that’s saying something.

In the end, I could live with that, since I expect to configure it once and then forget about it. I could also live with the prevalence of engrish in the UI, for much the same reason. Remember my casual allusion to dynamically-assigned IP addresses above? I should clarify: you can request that the access point act as a DHCP client, provided you don’t mind its subsequently not working at all. Out of the box, the device presumes its IP address to be 192.168.0.50; switch it to DHCP mode, and it will stop listening on that address — or any other.

Watch your DHCP host’s logs, and you will see the access point requesting and receiving a lease. And requesting and receiving a lease. And requesting and receiving a lease… and so on, ad infinitum. Even though it’s assigned the same IP address every time, it’s completely unresponsive when contacted on that address. Installing the latest-available firmware (v. 2.0, at the time of this writing) does nothing to solve the problem.

So I’m taking it back. If it were a matter of just one flaw with an otherwise-impeccable design, I’d try contacting D-Link technical support and working through the issue. But this is clearly a product that is substandard in a number of significant ways, and was shipped anyway. Those responsible should hang their heads in shame. For $100, I expect and demand better. We’ll see if Netgear can do a better job of winning and keeping my loyalty.

Tick Tock, Tick Tock, Clarice

One of the incidental consequences of having the Squeezebox 2 — a recent acquisition which I’ll have to describe in detail another time — in the bedroom is a sudden blinding awareness of the craptacular nature of PC clock hardware.

I should explain.

The Squeezebox 2 is a very clever device intended to act as an interface between your stereo and your massive digitized music collection. Connect it to your receiver via RCA cables, connect it to your computer — running the server software — via an Ethernet cable, and you’re off to the races. It sports a dimmable, eminently-legible vacuum-fluorescent display, comes with a thoughtfully-designed remote, and has no moving parts of its own, making it utterly silent and thus something you can put on your nightstand without fearing that it will trouble your dreams.

Part of its cleverness lies in its reliance upon the power and versatility of general-purpose hardware, running easily-modified software — the thing on the far end of the Ethernet cable, in other words — to do the heavy lifting. It has just enough intelligence of its own to ask someone smarter for help.

It never really shuts off, either, unless you pull the plug, which allows it to do the gratifying trick of starting up instantly when called upon. Instead it goes into, at best, a light doze when you hit the Power button on the remote. It can, depending upon your preference, be configured to do any number of things while snoozing, from playing convincingly dead to displaying RSS feeds to showing a clock.

This brings us back to the approximate neighborhood of the original point. In keeping with its “let the server do the work” philosophy, the Squeezebox 2 doesn’t actually keep time on its own, being wholly dependent instead upon the server’s clock. It so happens that I already have a clock on the bedroom wall — an Oregon Scientific unit that tells the temperature and synchronizes itself to WWVB nightly — and thus it is that I conspired to present myself with inescapable evidence of just how awful a job the PC does of keeping time without help.

When I first plugged in the Squeezebox 2, I noticed that its clock was eight or so hours off. “Right”, thought I, realizing that the server’s clock had never been properly set, and proceeded to build and run ntpdate pool.ntp.org so as to prime the hourglass. The Squeezebox 2’s clock and the wall clock were in perfect sync, and I was happy — except that next morning I woke up and noticed that the Squeezebox 2 had gained about six seconds on the wall clock. By evening that amount had reached ten seconds.

Ten seconds. In a day!

Fine. Time to go whole hog and set up ntpd to run long-term so as to determine and eventually correct for clock drift. Only it turned out that ntpd never seemed to get around to calculating a reasonable drift value, let along correcting the clock. Eventually, after recompiling the ntp package with the debug flag set — easy, thanks to Gentoo and Portage — and quite a bit of confused poking around, I figured out what the problem was. My ntpd.conf contained the notrust directive as a parameter to the default configuration, meaning that the daemon rejected each reply it was busily soliciting for lack of cryptographic authentication. Brilliant. (To be fair, Portage tried to warn me about this at build time. Alas, that warning went the way of all Portage warnings, off the far end of stdout. That’s something else I need to correct, and soon.)

With that fixed, ntpd seems to have finally figured out what time it is. At some point I’ll go back and figure out if there’s a way for it to communicate securely with the servers in pool.ntp.org, at least. (Still and all, I have to admit that “spoofed time” is not foremost on my list of personal anxieties.)

Morals of this story:

  1. PC hardware sucks on an intrinsic design level, irrespective of manufacturer or vendor. (“Sure, it sucks, but it’s an industry-standard sucking!”) I have cheap plastic made-in-China quartz clocks that do a better job of keeping time.
  2. pool.ntp.org is your friend. It’s really nice to be able to specify a server name in your ntpd.conf without having to feel like a leech lest you approach the server administrator cap in hand.
  3. ntpd is your friend. Sort of. It does the job admirably once it’s configured, but good Lord, could its error reporting use some work. Anything that can spend several hours busily querying the world at large for the time of day, only to consign every answer it receives to the bit bucket for lack of a cryptographic signature, without making so much as a peep in either the system log or its own, has… self-expression issues. Perhaps this is controllable via an ntp.conf configuration directive or ntpd command-line argument, but if so, I haven’t found the trick of it. Which brings me to my next point:
  4. The NTP documentation is not your friend. All honor and respect to David Mills for his perseverance in creating and maintaining a system that does a more-than-decent job of synchronizing clocks over a variably-laggy packet-switched network, but someone needs to sit the man down and explain the basics of good manual design to him.

    One: scrap, for God’s sake, the Tcl/Tk-inspired color scheme. Two: ditch the Pogo cartoons. Cuteness is tolerable when your documentation is otherwise up to snuff. When this is not the case, cuteness is nothing but an aggravating reminder to your reader that your attention was elsewhere than where it should have been. Three: focus on making the package as a whole simple, straightforward, and accessible. For openers:

    • Make sure it’s sanely searchable. That means one or more of the following: indexing the site with your own search engine; paying the few bucks a year to buy your own domain so that searches using Google’s “site:” keyword work properly; just flattening the entire documentation down into a single page so that I can use my browser’s built-in search facility to scan the whole thing. Under no circumstances should I have to open the five different subsections of the ntpd manual, each on a separate page, in order to track down the description of the configuration directive I’m looking for. (Of course, if you just had something as radically newfangled as an index for configuration directives, or even just a coherent organization for said directives, maybe I wouldn’t have to rely upon searching so much.)
    • Try to make it reasonably portable. HTML is nice and even justifiable if you’ve got a lot of cross-references, but if you’re going to bother providing a man page at all, make sure that the meaty bits haven’t been badly truncated by your HTML-to-man conversion. (This may in a sense be the distribution’s fault rather than yours: maybe you didn’t provide a man page at all, and they just did the best they could with what they had. This doesn’t really get you off the hook, though. Failure to provide man pages is itself a capital crime, or should be. The fact that you’re not alone in comitting it — the GNOME folks come to mind, as does the GNU project’s dedication to info pages — does nothing to exonerate you either.)

Ouch

Kids, the flanges on ATX power-connector sockets are surprisingly sharp. If you’re going to pull them while replacing the connector, either keep your fingers clear, or wear gloves, mmmmmKay?

Hate Sink

A few moons ago, I acquired a Thermaltake PIPE101 heat sink, a sexy little skived-copper-fin-and-heat-pipe affair. Well, okay, sexy, but not exactly “little”. It has mounting holes for a 92-mm fan, which makes it a mite larger than the typical heatsink.

This was originally a selling point, as I am a student of the big-slow-fan school of quiet cooling, but it turns out that the motherboard of the Athlon XP machine I was planning to put it into places the processor socket near the very upper edge of the motherboard, where it practically abuts the power supply. The PIPE101 won’t fit there. Oops.

So I put it aside, thinking that since it could also be used as a Socket 939 heatsink, I’d have occasion to use it whenever I got around to building an Athlon 64 machine, something I knew I’d do eventually.

Or maybe not. Because, in order to do triple duty as a Socket A/Socket 478/Socket 939 heat sink, the PIPE101 eschews most of the benefits of the AMD-designed retention bracket in favor of its own screw-in metallic clip. This clip has two possible orientations, and it’s hard to tell from the indistinct pictures in Thermaltake’s documentation which one you’re supposed to use, but in a sense it doesn’t matter: they both would have required exerting an amount of pressure upon the whole assembly that, frankly, terrified me.

Screw that, I decided. I am not jepoardizing my $350 processor-plus-motherboard investment just to save my pride and a $30 heat sink. I wound up using the AMD heat sink instead; said sink seems reasonable, is designed to clip into the AMD-designed retention bracket, and uses an elegant lever-arm mechanism to ensure adequate tension without dangerously heroic effort.

Memo to self:

  • Think long and hard before buying anything from Thermaltake ever again. Thermalright and Arctic Cooling both make nice gear whose installation requirements seem considerably saner.
  • Try to buy a heat sink that is designed for your particular processor, rather than a jack-of-all-trades design, unless you’re sure that the latter is sufficiently well-engineered to work cleanly with your hardware.
  • Check the fit on any prospective heat sink before you spend the better part of an hour lapping it. Idiot.

Memo to would-be vendors of aftermarket coolers:

  • With Socket 478 and Socket 939, Intel and AMD both went to the trouble of designing retention brackets that could realistically support the kind of large, heavy heat sinks needed to dispose of the thermal waste their processors produced. These brackets, while differing from one another, were both created with thought and care, and, when properly used, allow the installation of heat sinks without requring excessive force or pressure.

    Use them, you wankers. The next time I open a heat-sink package and find some bullshit little stamped-sheet-metal “adapter” that I have to screw into some part of my motherboard before I can get down to business, I’m going to hurt someone. That goes double if I have to remove part of the existing mounting hardware first.

Uh, anybody want to buy a barely-used heat sink? It’s been lapped and everything, and should work very nicely on any Socket A motherboard with enough room. Act now, and I’ll even throw in a 92-mm fan for free.

Thank you, Lord Almighty

And I thank you, Lord Almighty up above,
Just for sending down the ‘F’ train to me.

— Mike Doughty,
“Thank you, Lord, for sending me the F train”

Sketches from the notebook of a man walking around in a daze, trying to come to terms with just how hosed he is in terms of the data he has suddenly lost access to:

I left reiserfsck running overnight, having disabled DMA for the wounded drive. (Since reiserfsck failed with lots of ominous-sounding warnings about DMA timeouts and lost interrupts, it seemed worth a shot. Of course, it slowed the process by about a factor of ten — hence the “overnight” part.) In the morning, no joy.

I had to run some errands this afternoon, partly in preparation for John and Jody’s wedding later this week. While I was out and about, I picked up a low-end router, a D-Link DI-604, so that I could restore some reasonable level of network connectivity to the apartment. (I’d have gotten a DGL-4100, but no one had them in stock. It’s probably just as well.)

Walking through the software section at Fry’s, and glancing at the various data-recovery programs on display there, reminded me of the existence of a tool I hadn’t thought about in a while, and had never had occasion to use before: Steve Gibson’s SpinRite. I resolved to look at it more closely once I got home and had re-established web access.

When I got home, I plugged in the little D-Link router, and realized that I should have acquired it, or something like it, a long time ago. Having your own highly-tweakable Linux-based router is nice, but having a foolproof, solid-state box as a backup makes for amazing peace of mind. I will go back to the Linux-based approach in short order, of course, but it will be nice to know that the D-Link is waiting in the wings, ready to pinch-hit the next time I find myself having to juggle hardware. Being able to browse the web for tools and tips did wonders for my peace of mind, to say nothing of having the phone working again.

The first thing I did was scrutinize SpinRite, which looked sufficiently promising that I decided to try it. (Possible salvation for $89 a pop? I’ll take that action!)

Before loosing SpinRite upon the drive, I thought I’d let reiserfsck --rebuild-tree have one last crack at it. In the morning, after the unsuccessful overnight reiserfsck attempt, I had noticed that the drive was a bit dusty, and that some of the dust appeared to be lodged under the integrated-controller PCB. Having a screwdriver nearby, and too much time on my hands, I unscrewed the PCB and blew it clean with a few blasts from a can of compressed air before reassembling the whole thing.

Desperate. Pathetic. Everyone knows that that sort of blind, ritualistic hardware voodoo never does any good.

Except when it does. Except when it does. Because this time around, reiserfsck --rebuild-tree plowed right past the point where it had stopped dead during the five previous recovery attempts, and left me with a successfully-rebuilt and mountable filesystem. I have no idea what convinced the drive to venture back from the sunless lands — for all I know, it was knocking it about eight inches to the carpeted floor when I bumped the box I’d rested it on — and I’m not inclined to care. I’m just grateful for the undeserved third chance I’ve been given. (Yes, tar is chugging away as I write this. I may be stupid, but I’m not criminally stupid.)

All the files I really care about have already been backed up to another disk; I’ll be burning them to optical media in the morning, just to be safe. At this point, I’m down to saving the data I could afford to lose, but would rather not have to recreate. Having paid for SpinRite, I find myself not needing it at the moment. I am utterly unconcerned. I’ll probably unleash it upon the old disk once the backups are complete, just to see what it finds and reports.

I am insanely lucky. My father is fond of saying that it is better to be lucky than good, but I will strive not to push my luck quite so aggressively in the future. Next up: an actual backup strategy.