Author Archive for Mike

SpeedStream 5260 with Qwest DSL

Having just relocated to Colorado with three of these modems (I accumulated them after years of SBC/AT&T DSL service back in Connecticut), I decided that I might as well try getting one of them to work on my new Qwest circuit before spending money on a Qwest-approved modem.

Since Qwest does not support the SpeedStream 5260, I turned to the Internet to see if anyone else had done anything like this before. What I discovered is that every DSL provider seems to use its own specific VPI/VCI settings, and “ISP approved” modems are usually just pre-configured with the correct settings. For example, the correct VPI/VCI values for AT&T DSL are 0/35, while Qwest uses 0/32. So it seems that all you need to do is find out the correct VPI/VCI values for your ISP and reconfigure your modem to match.

But how do you manage a SpeedStream 5260 when it’s just acting as a bridge? As it turns out, you can always access it via telnet at its default IP address (10.0.0.1). Just give your PC a static IP address (e.g. 10.0.0.2/255.0.0.0) and plug it directly into the modem with a regular straight-through cable. Once at the command prompt, type the following command:

show vc

This will list the current VCI/VPI settings on the modem. To change them for Qwest DSL, set the VPI to 0 and the VCI to 32:

set vc 0 32 llc max

These commands appear to take effect immediately (i.e. there doesn’t seem to be a command to save the config).

Managing Additional NICs after XenServer Installation

After Installing XenServer, any new NICs you add will not appear automatically. You need to run the following command from the XenServer console:

xe pif-scan host-uuid=<UUID of XenServer host>

If this command results in interfaces with funny names, such as NIC__tmp1234567890, there’s a way to fix that too. First get the UUID of the interface in question:

xe pif-list device=__tmp<numbers>

Get the host UUID of the interface:

xe pif-param-get param-name=host-uuid uuid=<UUID of interface>

Get the MAC address of the interface:

xe pif-param-get param-name=MAC uuid=<UUID of interface>

Remove the interface:

xe pif-forget uuid=<UUID of interface>

Reintroduce the interface with a more appropriate name:

xe pif-introduce device=eth<n> host-uuid=<UUID of XenServer host>  mac=<MAC address of interface>

And that’s it! Note that this process may cause the vendor name, device name, and PCI Bus Path to disappear in the host’s NICs tab in XenCenter. I’m not sure why this happens, but it seems to fix itself eventually. Also note that this process will leave behind “orphan” networks with names like “Pool-wide network associated with __tmp1234567890.” These networks can be safely and easily deleted via XenCenter.

Finally, Someone Agrees with me About ORM

Way back in 2006, I spent a week or so trying to use ORM in a project I was working on, only to discover that rather than making my life easier, it constantly prevented me from doing what I wanted to do. I spent an inordinate amount of time trying to convert SQL queries into ORM, but I kept ending up with slower, more complicated messes. And since this particular project required me to pull information out of very large databases very quickly, I was never completely comfortable trusting an abstraction layer to optimize SQL queries as well as I could.

It’s been a few years since I’ve developed software full-time, but since I still encounter articles about how great ORM is, I figured that either the situation has improved since then, or maybe I was just too stupid to harness the power of ORM. But then I found someone who has come to the same conclusions I did way back in 2006, and has written about them a lot more eloquently than I did in my original rant. At least I’m not alone anymore!

Failed Hard Drive

Ugh. I woke up this morning to a hung server caused by a failed hard drive. I sure am glad I bought two! I’m still not sure why one failed drive in a RAID array would cause my server to hang, but I have a strong suspicion it has something to do with my crappy no-name SATA controller. The machine would not boot up past the Grub prompt with both drives connected, but if I removed the failed one, everything worked fine again. Annoying!

Mike’s “Ultimate” Dual-Monitor Rackmount Home Computing Environment

Well folks, It’s been over a year in the making, but my “ultimate” home computing environment is finally done. If you remember my last post on this subject, I was contemplating the idea of (tastefully) integrating a 12U server rack into my living room. I had actually been thinking about this for a long time prior, but I had never heard of anyone else who had done it, so I was really hesitant to go down that road and risk wasting a lot of money and getting stuck with a horrible monstrosity. But then I saw what this guy had done, and I knew I was on the right track all along.

A typical PC mess. I couldn't live like this any longer!

The first thing I needed was a new desk, and since I live right down the road from an Ikea outlet, I started my search there. Now I should mention that I’m normally really skeptical about Ikea furniture because of their apparent love of particle board, but I was pretty impressed by their Galant Series of desks. The tabletop is particle board (of course), but I don’t care, since all the important structural components are made of aluminum. I settled on a 63″ wide Galant desk with the optional filing cabinet.

I also wanted a new chair, but that wasn’t actually part of the original plan for this project. I had pretty much been set on getting a Herman Miller Aeron Chair from the first time I ever sat in one, but since there was nothing wrong with my current chair, I couldn’t justify spending money on a new one. But then in a stoke of sheer luck, I happened across a used one in my local craigslist for $300. Obviously, I couldn’t pass up that deal.

Now that the boring furniture was out of the way, I needed to find a well-built server rack that would actually look good in my living room. As you can imagine, this was not an easy search, but I eventually settled on the Kendall Howard 12U Compact Series SOHO Server Rack. This is a really high-quality rack, and the price reflects that, but with a little patience, I was eventually able to find one on eBay for $300 (with front and rear mesh doors included).

Nice rack!

Next came the need for a couple of well-built rackmount cases that looked good and wouldn’t be as loud as an air conditioner. I considered Antec’s Take 4 Series and iStarUSA’s Silent Rackmount Chassis, but I decided they were both way too expensive for what they were. I settled on a couple of iStarUSA D-400s for about $150 each and iStarUSA 24″ TC-Rails for about $25 each. But I have to say that I was really disappointed with the rails, because they really short you on screws. If you just stick with what they give you, I can almost guarantee that your server will fall out of the rack, and I say this because it happened to me twice while I was racking the empty cases. I ended up just buying more screws at a local hardware store.

Assembling the rack

When I started researching monitors, the big question was “Two or three,” but since I’m not a hardcore computer gamer, I decided pretty quickly that three monitors would just be overkill. I eventually settled on two LG L227WTGs for about $220 each. I’m still contemplating buying a dual monitor stand, but I’m not sure if I would gain anything other than a little bit better cable management.

The rest of what I bought for this project is fairly uninteresting, but I’ll list it here for completeness:

Assembling my workstation and server

The other machine in my rack is a dedicated server that, among other things, hosts the website you’re looking at right now. The specs on this machine are fairly dated, as this is actually my old desktop from 2003, but I’ll list them as well for even more completeness:

The rack fully assembled

Other stuff in my environment (listed for ultimate completeness):

Since cabling was one of my major concerns, I really took my time and made sure all the visible cables were routed as neatly as possible, making liberal use of Velcro straps. And because everything is so tightly packed together inside the rack, I was able to further minimize the cable mess by replacing all the standard 6′ cables (power, network, USB, etc.) with 1′-3′ versions.

The results

As you can see, my new computing environment takes up about the same amount of space as the old one, but it looks way nicer and is much easier to work on (since everything is mounted on sliding rails that can be fully extended when necessary). It’s also semi-portable now, thanks to the casters on the rack itself.