Irma: Do you think we should have started in reverse?
Irma: You know, Jeff, Irma, maybe we should have picked an H name.
Jeff: We could still change it. Hanna, Harriet, Horace, Henrietta…
Jeff: That’s an M.
I have ideas in the middle of the night sometimes, which usually disappear into the aether because I’m not in a position to act on them. Last night’s particularly choice morsel, which I had Irma email me (I got that ‘look’ and she said I should write it down) is this:
In some east asian countries a person has a chop or seal. It’s kind of like your signature in the west. It’s a quasi-official stamp. You’d have an artist carve you one, and it would be a near-literal representation of you. Where your chop stamped, you said it. So now we have qr codes, 2 dimensional bar codes which can contain from 25 to 2500 alphanumeric characters. They’re probably kind of hard to carve, and lend themselves well to 3d printing. I’ve been thinking for a while about ways to slap uniqueish imprints on things, and it seems like an inked or reflective waxed 3d qr code chop would be a cool way to do it. You could add some text around the edge, but you’d be able to read the data in a cell phone app. The 77 or 114 alpha character limitation means you can’t embed, say, your public crypto key, but you could put a name/email/url/signed bit combo in there, or something like that.
The endlessly scrolling disconnection state when OSX’s Network Connect VPN client goes sideways. You can’t reconnect because it just sits there trying to disconnect. You can’t kill it in the gui, but it turns out, you can get rid of it. Just kill -TERM or kill -9 the ppp process in the terminal. Then you should be able to reconnect without rebooting your machine or switching network locations. It probably leaves some messy stuff sitting around your routing tables, but that’s what regular reboots are for.
Sometimes you need a machine to pass network traffic from one interface to another and fiddle with it. You may need to route traffic to your network, or inspect network traffic in a transparent bridge. In my case I needed a fake DHCP client to hold on to public IPs from AT&T U-Verse so I could assign IPs at will behind it. Whatever you need to do, the requirements brief is generally the same:
Low Power Utilization
As Few Moving Parts as Possible
Near Wire-Speed Performance for Gigabit Network Traffic
There are plenty of embedded systems with multiple network ports that can run stripped down versions of linux and boot off a CFcard. They win in the small category, but they’re all consistently more than $300 or are older devices that can’t approach gigabit speeds.
An older PC would work fine, especially if it’s onboard ethernet was gigabit and wired to a PCI Express bus. The theoretical speed limit of a 32bit, 33mhz PCI card is just under the theoretical throughput for Gigabit Ethernet, so if you throw more cards on the PCI bus, you’ll increasingly limit your throughput. That goes double if you’re using a PCI based drive controller with any kind of real traffic. An older PC probably won’t be small, though, and it’ll have lots of moving parts.
I ended up spending $229.95 on my solution. It features the following:
There are cheaper options for nearly all of these components, but this felt like the best price/performance compromise. The box is fast enough that if I wanted to, I could re-purpose it into nearly anything. It also has enough performance overhead that I could give it an additional task without worrying about crippling my network performance. I installed Ubuntu 11.04 Server on it (via a temporary CD-ROM Drive), so I can apt-get install anything else I need.
Installation is fairly straightforward, though I’m not sure if I’d use the same case if I did it again. I needed a case with a PCI slot (there are PCI Express Mini Full ethernet cards, but they’re really expensive and rare), and there aren’t many that don’t include a full-size CD-ROM bay. The case is probably twice as big as it needs to be. You mount the motherboard with four screws, plug in two power supply connectors, slot the PCI card, slot the memory, plug in the front-panel connectors and the SSD’s SATA cable, mount the SSD somehow (I just screwed it in on one side), plug an SATA power cable into the SSD and you’re done.
The system’s quiet enough that I can’t tell if it’s really making noise. There’s one large fan on the underside of the power supply. It’s the only moving part in the system. The system uses around 28 watts of power when operating, and from power button to login prompt is around 23 seconds. A good half of that is in the bios.