I love Tab Mix Plus.

Tab Mix Plus is a Firefox extension, providing a veritable boatload of tab features and also a session manager. You can rearrange tabs, protect tabs from being closed, unclose tabs, have a loading bar for each tab show up in its little name spot, and my favorite feature of all: Making multiple rows of tabs! When I max out my tabs in Firefox, what usually happens is that they extend off the side of the window, making it very tricky to work nicely with them. Now, they wrap around and make a second row. Whoo hoo!

I don’t have many problems with Firefox stability, but I faked a crash to check out the crash helper thing. When I restarted Firefox, Tab Mix Plus came up and asked if I wanted to restore from the crashed session.

Here’s to you, Tab Mix Plus.

Thinking hard, or hardly thinking?

Lesbian Spank Inferno, the Giggle Loop, and why I love Coupling!

Amanda, Matthew and I have recently watched the first season of the BBC comedy Coupling. Although most places online claim it is the British answer to Friends, I really don’t think so. I don’t appreciate Friends that much, and Friends seemed more to me like Mad About You with more people. Coupling is much more in your face about the sex and relationships than I remember Friends.

Coupling is about dating, relationships, and sex. There’s a character, Jeff Murdoch, who comes across as a Kramer type guy. He has an odd bit of wisdom every episode, some accurate, others not. One I’m particularily fond of, and afflicted with, is the Giggle Loop.

  • Patrick: What’s a giggle loop?
  • Jeff: Don’t ask. To know about the giggle loop is to become part of the giggle loop!
  • Steve: I think we can take it.
  • Jeff: You’re not ready for the giggle loop. Basically, it’s like a feedback loop, you’re somewhere quiet, there’s people– it’s a solemn occasion, a wedding! No, it’s a minute’s silence for someone who’s died!
  • Steve: Right?
  • Jeff: Minute’s silence, ticking away–the giggle loop begins! Suddenly, out of nowhere this thought comes into your head, the worst thing you could possibly do during a minute’s silence is laugh! As soon as you think that, you almost do laugh! Automatic reaction! But you don’t–you control yourself! You’re fine! But then you think how terrible it would have been if you’d laugh out loud in the middle of a minute’s silence and so you nearly do it again! But this time, it’s an even bigger laugh, then you think how awful this bigger laugh would have been, and so you nearly laugh again only this time, it’s a very big laugh, let this bastard out and you get whiplash! And suddenly, you’re in the middle of this completely silent room, and your shoulders are going like they’re drilling the road, and what do you think of this situation? Oh dear Christ–you think it’s funny!

After a disaster with “Lesbian Spank Inferno,” Steve has a monologue on porn that had me looking for a transcription online as soon as the episode finished.
Anyway, Coupling was “adapted” for NBC and flopped. There’s a line or two of dialogue every episode where I know I don’t know what they’re talking about, because I’m not British. But in order to increase my cultural diversity, I netflix’ed The Wicker Man so I can understand these Britt Ekland references.

The first season is only six episodes, and there were only 28 total. They’re only half hour long, so you could easily watch this show over a few weeks without overdoing it.


“Flickering Black Lines When You Press a Key or Type in Linux” Solution

If you read my posts for the last two months or so, you’ll notice I’ve had no end to the troubles given to me by my girlfriend’s computer. One day, it started having black flickering lines that occured when you typed, or sometimes moved the mouse. I ended up replacing all the hardware, and it still happened! It was better on the new hardware, so she continued to use it.

I even posted the question on Ask.Metafilter! No dice. A few days ago, however, someone online sent me an email via my contact form, and asked if I had solved it yet. I had not. He replied back today, saying he had solved the problem.

Are you ready? The problem was:

xscreensaver 4.23

After upgrading to the new xscreensaver, everything worked perfect. The black lines are gone.

More information is available at

Thinking hard, or hardly thinking?

The Legend of Zelda turns 20 today!

Happy Birthday Legend of Zelda!

I <3 Zelda. Legend of Zelda games is what makes me buy a console. I’m dying to play Twilight Princess, and I can already see my grades next semester dropping because of it. I hope Amanda and I can play it together!

I’m wearing a Zelda shirt Amanda bought me in celebration of this joyous day.


I have memories of the original golden cartridge on the NES. I remember walking downstairs late at night when I couldn’t sleep, and watching my father play. I remember being stuck on level five for so long. I had found it before I should have, and had the hardest time. I remember sitting on the carpet in third grade, and while playing with my shoelaces, I rolled my shoelace into a circle, and remember thinking it looked like one of the monsters in the fifth dungeon. This was Digdogger. Zelda has influenced catchphrases. One night after my roommate was playing A Link to the Past on the arcade, as he was falling asleep he mentioned something about how cool it would be to have a “shield hat.” I mentioned it to him the next day, and he explained. This was the headpiece of the Helmasaur King. Whenever “shield hat” is mentioned, it now refers to a moment of sleepdrunkeness.
I hope there are many great Zelda games, and I hope to be fifty years and thirty four days old and write about the Legend of Zelda’s fiftieth birthday.

Please take some time to read the Wikipedia entry on The Legend of Zelda Series. There’s a lot of stuff linked from there.

Zelda Trivia: Miyamoto named Princess Zelda after hearing the name of F. Scott Fitzgerald’s wife, Zelda. F. Scott Fitzgerald wrote The Great Gatsby, one of my favorite books of all time, and he lived in St. Paul.  Here’s a picture I took of a statue of him I found in St. Paul. img_1889


Idea: Word Processor

Imagine this. An ergonomic keyboard with a smallish LCD under the spacebar. It is powered by a few batteries, and has a backlight on/off switch, and a regular unit on/off switch. It has an SD slot, and a USB port.

You type, it shows up on the LCD. ? You can save to different files, having one for each class.? You can open other text files, edit them, and save them.? There may even be space for a game or two :-P.

It saves the data on the SD card, and you can download/upload data just like a thumbdrive.

Total cost for a single unit? Less than $50 dollars.

Thinking hard, or hardly thinking?

Wearable Requirements

Most people who know me know I’m absolutely in love with wearable computing. I’m in love with it to the point of wanting to go to grad school to work with them after I get my Electrical Engineering degree.

It recently came to my attention that I may have nearly everything needed for a good step in the right direction.

The ideal wearable is modular, as the equipment available changes all the time. When I’m sitting down at a trusted computer with my wearable, I don’t want to rely on a tiny display or auditory output. I want to be able to interact with my data on the dual 19 inch LCDs.

I need to be able to

  • send and receive email
  • browse the web
  • instant messaging
  • make and view appointments and other calendar-based information
  • make and view a contacts list
  • write and read basic text documents


Now, there are a lot of reasons why it’d be good to have a head-mounted display that lets me see some computer output as well as the real world. However, there are a lot of reasons why that isn’t going to happen in the next year or two for me. I don’t have over a thousand dollars to spend on a display. This limits my options a large amount. I also don’t have the knowledge of optics required to homebrew a solution based on a cheaper display.

Gargoyles represent the embarrassing side of the Central Intelligence Corporation. Instead of using laptops, they wear their computers on their bodies, broken up into separate modules that hang on the waist, on the back, on the headset. They serve as human surveillance devices, recording everything that happens around them. Nothing looks stupider; these getups are the modern-day equivalent of the slide-rule scabbard or the calculator pouch on the belt, marking the user as belonging to a class that is at once above and far below human society.

Neal Stephenson, “Snow Crash”
If I want these functions to be accessible on the go, I need both on-the-go input and on-the-go output. On-the-go input will be acheived with a homebrew bluetooth septambic keyer. This will be detailed in the future. On-the-go output is usually acheived with a head-mounted display. Now, there are a lot of reasons why it’d be good to have a head-mounted display that lets me see some computer output as well as the real world. However, there are a lot of reasons why that isn’t going to personally happen in the next year or two. I don’t have over a thousand dollars to spend on a display. This limits my options a large amount. I also don’t have the knowledge of optics required to homebrew a solution based on a cheaper display. The only head-mounted display options left to me are ones that would condemn me to the path of the gargoyle, something I’d really love to avoid.
An on-the-go output method that is often ignored is audio. Bluetooth headsets are not a rare sight these days. I could certainly find a fairly cheap, non-gargoyle bluetooth headset, and this would provide me with an auditory output.
Is this really possible? Could I actually interact with my computer in a usuable fashion without a DISPLAY? It looks like I can.
Enter BLINUX, a project in active development increasing the usability of Linux to the blind user.

HOWTO: emulate a TI-89 in Linux using Wine

I was able to get a TI-89 on my desktop fairly painlessly using Wine. Years ago, I owned an 89, but it was destroyed in a tragic high school chemistry lab.

  1. First, I downloaded and installed wine 0.9.4.
  2. I then used WineTools vt0.9jo to properly setup my wine environment, installing all the Windows pieces that makes wine so much easier to work with.
  3. I downloaded Virtual TI from
  4. I extracted the, and moved it inside my ~/.wine/drive_c/Program Files/ so it would be easier to find, and along with all my other Windows apps.
  5. I then found the rom backup from before the chemistry disaster, and moved it into the vti folder as well.
  6. I ran Virtual TI with wine ~/.wine/drive_c/Program Files/vti/Vti.exe and told it where to find the rom.

Virtual TI on Linux

Now, I can do my homework with the same hardware I’ll borrow from my roommate to use during the test!


Solderless Breadboard Carrier Followup

On October 21, my breadboard carrier project hit the front page of Hack A Day.

Later that night, it hit the front page of MAKE: Blog.

Roaming through my statistics, I can see that Don Marti probably clicked through. That’s kinda cool.

Someone clicked through from an email message at Yahoo Mail. The article was’ed and sent through a web translator. Someone checked my site through their cellphone, and 74 people were using FreeBSD.

Numberwise, about 4000 unique visitors showed up, and I received approximately 26,000 hits. That averages out to about six hits a visit, which is nicer than one. I used 173 megs of bandwidth.

Anyone have any suggestions for my next project?


Make a Solderless Breadboard Carrier


  1. A DIP40 chip, specifically, my PIC18F452 microcontroller, takes up too much space on a single breadboard.
  2. It can be easy to mix up power and ground.
  3. I hate prying large ICs out of breadboards.
  4. Most importantly, carrying around a raw breadboard with a project on it is a pain.

A “MEGA Multi Tackle Carrier Bait Box” can be used to carry a pair of solderless breadboards, spaced such that there is an airgap terminal strip spaced at .600 inches, the sizing for the larger DIPs, like the DIP40s. A binding post pair can be prewired to allow the use of banana plugs to power the board as well.


  1. 1 “MEGA Multi Tackle Carrier Bait Box” from Walmart
  2. img_1693

  3. 2 solderless breadboard bus strips and 2 solderless breadboard terminal strips
  4. I used Jameco P/N 20722 and Jameco P/N 20669. If you go this route, make sure the power bus strips are removable.

  5. Double banana binding posts
  6. img_1676
    I used something from Radio Shack, identical to Jameco P/N 125196

  7. Some 20 AWG wire, black and red
  8. A Dremel or other cutting tool
  9. Epoxy
  10. Optional: 40 pin ZIF socket
  11. I used Jameco P/N 104029. If you go this route, you will need a DIP40 socket for the ZIF as well.


The removable container inside of the MEGA Multi Tackle Carrier Bait Box has permanent horizontal dividers, and removable vertical dividers. The benefit of this is that I can store related components right with my breadboard. The downside is that a double-sized breadboard won’t fit with the fixed horizontal dividers.

This is easily solved with a Dremel.




After the Dremel job is finished, it looks like this:


At this point, I separated the power rails from the breadboard, put a power rail on one side of each of the two terminal strips, and separated the two breadboards using DIP40 sockets between the two breadboards. This spaces them correctly so the middle is a terminal strip for DIP40 spacing. The next picture may explain better. I then positioned them on the inside cover of the box, so that they would fit in the space I dremeled out. I made sure to account for the binding posts by giving the breadboard room on the top and bottom.

I pushed the ZIF socket into the DIP socket, and pushed that into the breadboard. After the sticky backing from the breadboard was removed, the breadboards were attached to the inside cover.

Open, it looks like this:


Closed, it looks like this:


It is obvious at this point it has a generous amount of room for prototyping while allowing the top to close.

The next step is attaching the binding posts to the inside cover. I did not want to drill through the cover. When the cover is removed, and it isn’t being used as a carrier, but instead a prototyping board, I wanted the plastic to lay flat. This meant I needed to modify the binding post piece.

I did this with a Dremel. Cut down two of the plastic holes so the nuts will end up flush with the bottom plastic piece. I only used one nut for each hole, and I only need to cut down one side.

The next picture shows how both holes should appear. The black holes should look like the left side, and the red holes should look like the right side. The right side was not modified, but the left side was.


The next step is to cut down both of the pegs so they will end up flush with the plastic.

Take plenty of precautions with your Dremel. Do not get metal shards in your eye, or anywhere where they will cause damage. I do not advocate cutting metal with your Dremel ever, especially late at night in the middle of a residence hall (read: dormitory).

This picture shows a comparison between an unmodified peg and a cut peg.

The next step is to etch the bottom of the black piece, so that it will adhere better after the epoxy. Then I assembled the binding post pair.


Mixing up some epoxy, I smeared some on the bottom of the binding post, and also the side. This allows the epoxy to both bind to the plastic on the bottom, as well as the plastic on the breadboard. The first time I attached it, I only put epoxy on the bottom, and after a few days, it snapped off.

At this point it looks like this:


I then attached appropriate colored wires to each bus line from the binding post pegs.

The end result looks like this:



Another benefit of the carrier is that it fits directly in the box with the rest of the electrical engineering stuff, being both transportable to lab, and also directly usable in my dorm.

An annotated set of these pictures is available as a Flickr set at

Possible extensions to this project include power protection. A zener diode across the power terminals or a tantalum capacitor in series with the power could provide cheap protection against inverted polarity.

Send me your questions or comments!


Technical HOWTO and Image of Compaq IA-1 Digital Picture Frame

I made a digital picture frame out of a Compaq IA-1.

In order to make a digital picture frame with an IA-1 and Damn Small Linux, there is one major constraint. No matter how big your CF card is, there is only 64 megs of ram in the device. This means, if you put a complete image of Damn Small Linux, and add something small, like feh, weighing in at less than 500k IIRC, the device will crash on boot, complaining about lack of ram.

That makes this process about eleventeen times more complex, but still within the realm of possibity. Even easier if you have a guide, you know, something like this.

My first step was to make a feh extension for Damn Small Linux. This is unbelievably easy. I did this on my main workstation, booted into Damn Small Linux. First, I enabled apt through the fluxbox menu with Apps > Tools > Enable Apt. Then I started a root console and installed feh with apt-get install feh. I closed my root console, and opened a user console, and converted the feh debian package to a feh dsl package with /usr/bin/deb2dsl. I named the package feh.dsl, made the MyDSL menu name feh, and entered /usr/bin/feh as the location path. I then had a feh.dsl extension in my home directory. I copied it to a thumbdrive, and booted my IA-1 with it. As you know, this crashed on boot. I booted my computer with it. It loaded fine. This meant the error that meant “Out of RAM” really meant it.

So my next step was to lighten up Damn Small Linux, and make it Damn Smaller Linux. This means you have to enter the world of remastering. This has to be done on a computer with more ram than your IA-1.

Following the basic idea inside of ReMastering HOWTO for DSL, also newbies and other enthusiasts we burn a copy of Damn Small Linux on to CD, and reboot our computer.

Mount an open directory off your hard drive.
mount /mnt/hda3/

Make needed directories.

mkdir /mnt/hda3/home/wolf/dsl/source
mkdir /mnt/hda3/home/wolf/dsl/newcd
mkdir /mnt/hda3/home/wolf/dsl/newcd/KNOPPIX

Copy needed files to the remastering directories

cp -Rp /cdrom/boot /mnt/hda3/newcd
cp -Rp /cdrom/lost+found /mnt/hda3/newcd
cp -Rp /cdrom/index.html /mnt/hda3/newcd
cp -p /mnt/hda3/home/wolf/feh.dsl /mnt/hda3/newcd

Copy the sources to the right directory.

cp -Rp /KNOPPIX/* /mnt/hda3/home/wolf/dsl/source
cp -Rp /KNOPPIX/.bash_profile /mnt/hda3/home/wolf/dsl/source

At this point, remove firefox from /mnt/hda3/home/wolf/dsl/source/. This will free up over 17 megs of space. I did this with some nasty bash. I believe it was find /mnt/hda3/home/wolf/dsl/source | grep firefox and then judiciously removing the firefox directories and executable. To be pretty, you have to then remove the desktop link and menu entry.

Create the compressed image.

mkisofs -R /mnt/hda3/home/wolf/dsl/source | create_compressed_fs - 65536 > /mnt/hda3/home/wolf/dsl/newcd/KNOPPIX/KNOPPIX

Create the iso:

cd /mnt/hda3/home/wolf/dsl/
mkisofs -no-pad -l -r -J -no-emul-boot -boot-load-size 4 -boot-info-table -b boot/isolinux/isolinux.bin -c boot/isolinux/ -hide-rr-moved -o mydsl.iso newcd