5150 likes Maggot Brain.

Funk Mob likes Maggot Brain.

The Jazz Mandolin Project likes Maggot Brain (flac download).

Pearl Jam likes Maggot Brain. Here, have seconds they say.  Santana likes Maggot Brain.

The Volebeats like Maggot Brain (Emusic download).

Widespread Panic likes Maggot Brain,
though it seems you often have to wait for the second set.

Mike Watt likes Maggot Brain enough to put it on his record. He even likes it enough to make J. Mascis let him play it at the show.

The band Maggot Brain likes Maggot Brain.
I like Maggot Brain, too. Yeah, Maggot Brain.

Some years ago, I purchased a ‘Unitiblue’ NES Controller->USB adapter from blackchopper.com for use under Linux. I don’t recall the exactly when I made the purchase, I think it was 2005 or so.

The device worked as advertised under kernel 2.4, and for a time I enjoyed playing emulated versions of Ninja Gaiden and the like under Linux.

Then, I moved apartments, upgraded my computer several times, and the company at blackchopper.com ceased to exist.

Recently, I wanted to use the device again, but without kernel 2.6 support and without a company to email for details, I would have to sort out myself how to get the thing working under kernel 2.6. Reading for a bit on-line, I discovered ‘fxload’ was the tool that should be able to load the firmware onto the device, and through trial and error found this set of options to work :

fxload -t an21 -D /dev/__device_name__ -I /home/user/unitiblue/cca-4-11-04.hex

Getting the device firmware to load automatically when the device was plugged in would be a whole other challenge. Udev rules might be clearly explained somewhere on the Internet, but I can’t find where. After much arguing and man-page reading, I found a similar set of rules in an existing udev rules file, and modified it to match the Unitiblue device :

> cat /etc/udev/rules.d/49-unitiblue.rules

BUS==”usb”, ACTION==”add”, SYSFS{idVendor}==”f666″, SYSFS{idProduct}==”aa01″, \
PROGRAM=”/bin/sh -c ‘K=%k; K=$${K#usbdev}; printf bus/usb/%%03i/%%03i $${K%%%%.*} $${K#*.}'” \
RUN+=”/bin/sh -c ‘/sbin/fxload -t an21 -D /dev/%c -I /home/mythuser/unitiblue/cca-4-11-04.hex'”

I’m still not sure just what the rule means, but it works and I like all the %’s and brackets and such.

After getting the device to load automatically when plugged in, I noticed it still behaved sort of flaky. I took it apart to discover several of the wires were bare for long enough to short out each other. Some electrical tape later and I’m back now, in emulator joy.

“The Pragmatic Programmer” : Andrew Hunt / David Thomas

The more I work as a mentor with junior developers, the more I quote parts of “The Pragmatic Programmer” to others.

The more I find myself quoting parts of the book to others, the more I find myself quoting it to myself as I maintain code and review project specifications.

Over time, for both myself and the people I mentor, I’ve noticed fewer of the book’s big no-nos creeping into projects as a result of such quoting and re-quoting. Very nice.

The books sub-title, “From journeyman to master”, is key to understanding its audience : the skilled, mid-level programmer who needs the occasional reminder of programming’s big don’ts, as in “The Evils of Duplication” (part of Chapter 2), or who needs a quick explanation of the strange “power of text” (chapter 4). The last part of the subtitle is important too, seasoned programmers do well to refresh themselves with a quick of read or re-read of a section.

The topics in the book cover (most) all the problems I’ve had myself while helping mentor junior programmers, and cover many of the problems I hear in stories of senior developer’s working with their teams. For a relatively short book, 300 pages of easy free-flowing prose, the book is surprisingly complete.

Good book. High recommended.