Amoeba Net

Imagine, if you will, a time before the Internet, a dark time even before local area networks were common, when communication was done on dialup lines using modems. Amoeba Net dates to that period, the early 1990s. I was working as a contractor at the proving grounds of a large automobile manufacturer, creating an application to manage the checking in and out of cars from the proving grounds. The idea was that each division would have an application on their end that talked to a central database and control application at the gate house. A division would be able to create entries in the database indicating who was allowed to take what cars off site and when (as there were a lot of prototypes on site, this was rather important). The whole thing was to be written using the dBase III database language as compiled using Clipper. The division offices were to be connected to the gate house using short haul modems (also known as a line driver) and twisted pair wiring. The gate house would poll each division office in turn and request updates to the database. Very simple concept, and it worked great in the development lab. But no plan ever survives contact with the enemy.

In this case, the enemy was the local telco, who was also responsible for installing the twisted pair lines between the divisions and the gate house, a few hundred meters to a kilometer at worst. Well, that’s not exactly what happened. We set everything up and began testing, but the signals from the line drivers were just fading into nowhere and weren’t being picked up on the other end. We were able to check continuity and it was there, but the resistance was way too high. As it turned out, the telco had run each set of lines to the local central office (CO), and then back to the gate house, a distance of tens of kilometers instead of under a kilometer. The line drivers simply weren’t built to push the signal that far. The problem was, the project had a hard implement by date, it was coming up fast, and the date the telco gave for correctly wiring things up was way past that. And that’s where lateral thinking comes in.

Hayes Smartmodem 1200
Lateral Thinking

At the time I was heavily involved with FidoNet and had more than a passing familiarity with Hayes 1200 bps modems. I did a little digging and discovered that you could turn the carrier signal on the modem on and off with AT commands without actually dialing numbers. The records were small, so the speed difference (1200 bps vs 9600 bps) wasn’t an issue, it was just a matter of getting enough modems. We acquired 9 modems, one for the gate house and one for each division and wired them up to the twisted pairs. By turning the carrier off on all the modems, we basically created a modem party line, where everybody was listening in. To send a record to the gatehouse, the sending modem would first check to see if the line was in use (was there a carrier present?), if not, it raised its carrier, which notified the gatehouse computer that someone wanted to talk to it. The gatehouse then raised its carrier and the record was sent to the gatehouse. At the end of the transaction, both modems shut down their carriers and the conversation ended. Sending notifications from the gatehouse to the divisions was slightly (but only slightly) more complicated. The gatehouse would raise its carrier, which would cause the other modems to perk up their ears, it would then broadcast an identifier that told the other modems which of them should raise their carrier. The correct modem would raise carrier and the transaction would be completed, after which both modems would again shutdown. Each transaction had a simple CRC check (as I recall, I based it loosely on the XMODEM protocol), that was used for collision detection. If the gate or division computer got a bad CRC, it was assumed that there was a collision (or some other problem) and the transaction would be retried some random number of seconds later.

All in all, it worked amazingly well. Messages went back and forth between the gatehouse and the divisions and users were able to update the access control lists without an issue. And nobody but the project manager and I knew anything about those Hayes modems.


I don’t really do a lot of reviews (actually lately, haven’t been writing much of anything here, need to change that), but decided that since the Twikini folks are offering a free copy of their software (which isn’t all that expensive anyway, $4.95 for individual use or $9.95 for businesses) in exchange for reviews, good or bad, I thought I’d give it a shot. Twikini is a Twitter client, if you don’t know what Twitter is, just go ahead and skip the rest of this, because it won’t mean anything to you. Ok, now that the non-twitter literate people have left the room, on to the review.

I’ve tried nearly all the Windows Mobile Twitter clients, PockeTwit, TinyTwitter, and of course, Twikini and Twikini is the only one I keep coming back to. It’s not any one feature that does it, but rather a combination of things. It’s fast, frugal with memory and pleasant to look at, a nearly unbeatable combination. It has all the standard features of a normal twitter client: friends timeline, reply timeline, favorites, public timeline. It doesn’t support search as far as I’ve been able to divine. It has the fairly unique feature of allowing you to tweet the current song playing in Windows Media Player, not useful to me, but I’m sure it is to someone. The geolocation feature is the only one that’s ever gotten my address right based on my GPS coordinates. When tweeting it supports shortening URLs and posting pictures via TwitPic as well as adding your location from the GPS.

All in all, I’m pretty happy with it. It’s fast, stable and doesn’t take up a ton of memory, three things that are important on a WinMo device.



Originally uploaded by Jim Nutt.

Well, after losing my old phone and having my Sony Clie decide to die, this is what I got to replace them both. I’m still a bit ambivalent about it using Windows Mobile 5, PalmOS 5 seemed a bit more refined, if more limited. And I miss the half-vga (320×480) screen of my Clie, this is only quarter VGA (320×240) and I notice the difference when reading ebooks. On the other hand, this supports EVDO, WiFi and Bluetooth, so it’s much easier to be always connected. I was able to find replacement Bible and ebook reader software, they work ok, but not quite as well as their PalmOS counterparts. I have found quite a community of people dedicated to getting the most out of the device though, so I’m having a bit of fun hacking the software to make things work more the way I’d like them to. All in all, I’m pretty happy with it, it’s a good PDA and a reasonable phone to boot (but it’s definitely a PDA first and phone second). It does what I need it to and has plenty of hacking potential as well.

URL Change

I’ve made a small change in the location of the blog and given it a new URL, it’s now at instead of Permalinks to earlier posts should still work, as I’ve put some logic on the original page to redirect them to this one. I made the change primarily because Kara (my wife) is interested in getting into web design and I want to free up the URL for her use later.

My Desktop

For those interested in such things, I’ve put a bunch of links in the sidebar to the software that runs on my laptop. I run Gentoo Linux with initng managing system services. On the desktop I run evilwm, a very minimalist window manager (no window decorations, no icons, nothing). Gkrellm serves as a system monitor, clock, and general launch pad with SystemTray from the ROX project serving to hold stuff like instant messenging clients, etc. My background wallpaper changes every 30 seconds to a random image chosen from pictures I’ve taken. In general, the idea is to have a very sparse desktop that responds well to the keyboard and doesn’t use a lot of resources.

Averatec 3250 Revisited

I’ve had my laptop for a few months now, so I thought I’d post another update on it. In general it’s been pretty reliable, however, the one thing that did fail was the DVD burner. After doing a bit of research, it would appear that the QSI drives used by Averatec are somewhat lacking in the reliability department. So, rather than waste time getting it serviced under warranty with another poor quality drive, I went ahead and ordered a slot loading Pioneer DVD burner to replace it. It fits in the same spot as the original drive but has a black bezel and is slot loading instead of a tray. I actually prefer the slot load drive as it takes up less space when loading or unloading a CD/DVD.

I’ve also finally managed to get 3D accelerated video working on Linux as well. This has the added advantage that I can finally get the backlight on the LCD to shut off, which saves power whilst on batteries. I also found a replacement DSDT file that allows controlling the fan speed and backlight brightness through software. And, in the vein of saving power, I discovered a little program called Athcool which allows the system to save more power when lightly loaded. Plus, it makes everything run cooler, which reduces the need for the fan, further reducing the load on the battery.

There’s now an online community supporting the Averatec laptops unofficially. There’s lots of good info and a number of knowledgeable people there, I highly recommend checking it out.

Averatec Update

Thought I’d update my experiences with the Averatec 3250 laptop I purchased and Linux. I’m currently using Gentoo Linux on the machine, the 2005.0 release, with a 2.6.11 kernel. I was having trouble with the USB going south when left idle for more than a few hours, I eventually managed to trace it back to the Local APIC (lapic) that I was enabling on the kernel command line in grub. Removing “lapic” from the command line solved the problem and seems to make the machine more stable in general.

I’m using SoftwareSuspend2 on the system to handle hibernation as the ACPI sleep doesn’t work correctly under Linux. SoftwareSuspend2 works a treat, but I do have to tell it to switch to text mode before suspending or the X server gets dazed and confused and won’t wake back up properly on occasion.

On the wireless front, I was finally able to get the native linux drivers for the RaLink WiFi card to work. They don’t play well with the standard Gentoo network stuff though, so I had to write some basic scripts to configure them and start networking. Nothing too complicated, just running the RaConfig utility to set the ESSID, etc. before actually starting the network. Performance seems reasonably good, but I don’t use it full time. I’ve noticed an apparent slowdown after transferring large amounts of data, then things pick up again after a few minutes, however, that may be an artifact of the lousy wireless conditions at my house.

On the X front, I finally got accelerated X working. Most of the problem was a “D’OH” issue on my part. I kept trying to install the x11-drm ebuild in Gentoo, but it wouldn’t compile on recent kernels. As it turns out, I don’t need it *sigh*. After setting the video driver to “via” and enabling dri and whatnot in the x config, 3d acceleration is working. It’s not great (I wouldn’t try to use it for games!), but it is better than the unaccelerated video.

In general, I’m quite happy with the machine and all the hardware seems to work great with Linux. The only non-open source drivers needed are for the modem, which, frankly, I don’t use all that often (ever?). They do work though, so if I need them, I can load them.

Personal Information Management

Edd Dumbill has this useful post on personal productivity in Linux. What interested me most was the comment about Tomboy. I’ve used InfoSelect from Micro Logic for a number of years, but not as much the last few years as it’s a Windows only application. While it does run in Wine, that’s not a perfect solution and I’ve been looking for a Linux native app to fill that niche. It looks like Tomboy might just be that application. I’ve just started playing with it, so I can’t say how good it is with any authority, but so far, it looks nice and appears to work as advertised.