Using a Cisco/Linksys WUSB600N on MacOS X 10.6

After getting totally fed up with the poor Wi-Fi range on my MacBook Pro, I picked up an external Cisco/Linksys WUSB600N. Of course, Linksys doesn’t provide Mac drivers for this product, but it’s a Ralink 2870 and Ralink provides drivers for MacOS X in their support section. I downloaded the RTUSB D2870-2.0.0.0 UI-2.0.0.0_2009_10_02.dmg driver (5.2 MB).

There is a driver inside USBWireless-10.6 for Snow Leopard, and it will complain during installation that the RT2870USBWirelessDriver.kext failed to install. This is expected, just ignore it, the installation will complete successfully.

At the time of this writing, the WUSB600N v2 isn’t included in the Info.plist for the kext, so I had to edit /System/Library/Extensions/RT2870USBWirelessDriver.kext/Contents/Info.plist in a text editor and add the appropriate bits. Search for “Linksys – RT2870 – 2” and duplicate the <key> and <dict> elements, renaming the key to “Linksys – RT2870 – 3” and the idProduct integer from “113” to “121”. Here’s what it should look like after the changes:

        <key>Linksys - RT2870 - 3</key>
        <dict>
            <key>CFBundleIdentifier</key>
            <string>com.Ralink.driver.RT2870USBWirelessDriver</string>
            <key>IOClass</key>
            <string>RT2870USBWirelessDriver</string>
            <key>IOProviderClass</key>
            <string>IOUSBDevice</string>
            <key>idProduct</key>
            <integer>121</integer>
            <key>idVendor</key>
            <integer>5943</integer>
        </dict>

After making this change, unload/reload the kext or reboot your machine, and then plug in your WUSB600N and you should get a window popping up telling you that a new network device has been detected.

I hope this helps someone, as I was totally disappointed when I learned that Linksys wasn’t supporting this device on Mac “out of the box.”

Getting ActiveState’s “teacup” working on MacOS X

ActiveState has created a Tcl Extension Archive tool called teacup which simplifies the installation of binary extensions to Tcl. It’s included with ActiveTcl, but if you’re using Tcl from MacPorts and want to use teacup, it’s fairly easy:

1. Download teacup for MacOS X

The teacup binary can be downloaded from this location:

Here is a direct link to the latest teacup binary. The file is named file.exe — simply rename that to teacup and put it in /usr/local/bin or another convenient place in your $PATH.

2. Create the installation repository

You will need an installation repository where teacup can store its data locally. The default location is /Library/Tcl/teapot and you can create it like this:

$ sudo teacup create
Repository @ /Library/Tcl/teapot
    Created

3. Patch MacPorts tclsh to handle teapot repositories

$ sudo teacup setup /opt/local/bin/tclsh
Looking at tcl shell /opt/local/bin/tclsh ...
  Already able to handle Tcl Modules.
  Already has the platform packages.
  Patching: Adding code to handle teapot repositories ...
Done

4. Link teacup to MacPorts tclsh

$ sudo teacup link make /Library/Tcl/teapot /opt/local/bin/tclsh
Ok

That’s it! You’re done. You should now be able to list available packages within TEA using teacup list and install them using sudo teacup install "packagename".

I’ve tested this on MacOS X 10.6.1 Snow Leopard with Tcl 8.5.7 from MacPorts.

Tags: , , , ,

D. J. Bernstein is legendary

I’ve been using djbdns and qmail for many years, specifically because after reviewing its code and comparing it to other possible alternatives, I objectively decided that these two pieces of software are superior in all aspects.

Lots of people have cast aspersions on D. J. Bernstein and his software, usually with emotional and irrational claims. Of course, most of these people can’t even read code well enough to understand what it does or how it does it. However, when you encounter the opinions of actual programmers, we all tend to share a similar but different opinion.

Today, Aaron Swartz put this into words better than I could: D. J. Bernstein is the greatest programmer in the history of the world. The money quote:

[…] djb

Fixing a Troy-Bilt TB70SS weed whacker

troy-bilt-tb70ss.png

My friend Keith has a Troy-Bilt TB70SS weed whacker that stopped working the other day. Not being one to pass on a good opportunity to do a DIY repair, I took it apart and discovered that the piston arm had broken and the reed spring had gotten mangled.

The best source for parts that I’ve found is, surprisingly, the Home Depot Power Equipment Parts site. They have the exploded parts view in PDF form, which makes ordering really simple.

I wonder if there’s pictures or videos online showing folks how to take apart and re-assemble these things — it’s really pretty simple and can be a lot of fun to repair your own things.

Tags: , , ,

Snow Leopard: Bring on the pain!

MacOS X 10.6.0 Snow Leopard was released over a month ago on August 28, 2009. While everyone jumped at the opportunity to be Apple’s outsourced QA, I followed my rule of “never use a dot-zero (.0) release.” Now, a month and a half later — and after the 10.6.1 update has been released — I’ve decided to install the upgrade.

Many people have suggested the upgrade was smooth and painless for them, and I totally believe this to be the case for probably 98% of Mac users, but I’m a developer and have installed lots of third-party (non-Apple) applications. I was completely expecting a bit of work to get my system running normally again, but my first symptom that something was wrong totally puzzled me: the system would stop performing I/O to disk, causing every process to spin the shiny hypnodisk at me. Basically, I could boot the system, and after about 3 minutes, everything would hang. So, keep this in mind as I describe all the things I fixed, because getting through each step involved several reboots just to make the necessary changes.

Here’s the list of problems I encountered and fixed:

Checkpoint SecureClient VPN

This complained at boot-up that the SecureClient service wasn’t started. A known work-around is to binary edit two files, StartupItemsMgr and SecureClientStarter and replace the string “kextload -s” with “kextload -r“. This worked for me.

MacPorts

The old MacPorts compiled against dependencies that are no longer available on Snow Leopard, including MacPorts.dylib itself. Luckily, I just grabbed the latest MacPorts installer .dmg for Snow Leopard which enabled me to selfupdate and upgrade outdated and get things working again.

Soundflower

Periodically, a dialog box complaining about Soundflower.kext popped up:

soundflower-kext-error.png

I had Soundflower 1.4.3 installed, which was the most recent release before Snow Leopard was released. Now, Soundflower 1.5.1 is available, so I upgraded to it. This appears to be sufficient to get it working again, too.

Oh, the agony …

At this point, my system appeared to be stable enough to use — no spurious errors being logged to /var/log/system.log and no more annoying hangs. I’m sure I’ll discover a few more annoyances next week when I start dealing with work stuff again, but for now I can at least use the machine again.

Was the upgrade worth it? I guess I’ll find out.

Tags: , ,

My old alphanumeric pager

Ah, the ultimate in retro push technology, my old Motorola 929.8625 MHz alphanumeric pager.

Found this little gem while cleaning out boxes of crap in my home office. I decided to take a pic of it for memory’s sake before I trash it.

My old alphanumeric pager

Tags: , , ,

Reorganizing the home office

It’s a task I’ve been putting off for years — reorganizing the home office — but I’m finally doing it. The rack and servers that sat behind me for years is now finally in the basement, thanks to my Dad helping me run two 20A circuits for the equipment down there. Here’s what the room looks like mid-reorganization:

Home office reorganization in progress

Sure, my desk is still a mess, but that’ll also get taken care of once I put up some new shelves to better organize stuff.

The one thing I still can’t get over is how silent the room is, now. The fans from the various computers and the Liebert UPS were loud! Over the years, I just got used to the low level noise and tuned it out, but now with the contrast of the room without the noise, it’s eerie.

Tags:

Optimum WiFi at ETD in Kinnelon NJ

As I try to get some work done waiting for car repairs, I discovered that the ETD on Route 23 in Kinnelon, NJ, has Optimum WiFi within range. Being a Optimum Online customer, I get free access to it.

My initial opinion of this particular hotspot is really unpredictable latency and packet loss. Speedtest.net results:

Optimum WiFi speed test at Speedtest.net

It’s not bad – I’m posting this blog entry from the connection – but the latency and packet loss makes interactive sessions like SSH really painful. Still, it’s usable to get some work done – email, web browsing, etc.

Tags: ,

What should I do with old vintage BX cable?

I’m doing a bunch of electrical clean-up in the house and have a bunch of scrap vintage BX cable and boxes and switches – I’d hate to just throw these out in the recycling if they’re still worth something, to somebody.

It appears that the going rate for copper/steel BX scrap is around $0.20/pound and I probably only have 20-30 pounds of scrap so far, so it’s really not worth the aggravation of finding a scrap buyer.

Should I just dump this in the recycling bin? Anyone have better ideas?

Getting Adaptec afacli working on Ubuntu

In order to get afacli working on Ubuntu Hardy, I did these things:

1. Get afa-apps-snmp.2807420-A04.tar.gz from Dell.

2. Get libstdc++2.10-glibc2.2 from Debian afacli depends on libstdc++-libc6.2-2.so.3.

Since I’m running Ubuntu x86_64, I put libstdc++-libc6.2-2.so.3 in /usr/lib32. Installing the rpm package under Ubuntu provides rpm2cpio which I used to extract afaapps-4.1-0.i386.rpm like this:

$ rpm2cpio afaapps-4.1-0.i386.rpm | (cd / && cpio -iudvm)

That’s it. You now have /usr/sbin/afacli.

Tags: , , ,