This week I’m on the road to scenic Pittsburgh for a few days. While there are various wonderful aspects of this trip, there is also the bonus of being to test out various geeky projects that have been percolating around.
The first biggie was finally exploring VOIP clients under Linux. I had tinkered with Wengophone a bit, but the Linux version of it didn’t seem particularly well suited for general VOIP operations. This week I downloaded and installed Twinklephone (one of the oddest names for a FOSS application I’ve found to date), and set it up.
One of the big wins for twinkle is that it supports ALSA devices directly. This is a boon in particular for me because it avoids the “/dev/dsp is already in use by another application” problems that so plagued other sound applications.
Once twinkle was installed (since hunter runs Kubuntu, all I needed to do was ‘apt-get install twinkle’), it was just a matter of specifying my VOIP providers hostname and account information, and voila! I was online. I can place or receive calls while listening to music, from anywhere. At the moment, I’m on a wireless connection in Pittsburgh, connected to my VOIP account, able to receive and send calls directly from the laptop. Outstanding.
“Okay, so it’s another VOIP client. Whatever.” – Actually, I think it’s more than that. It’s not just a VOIP client, it’s also an integrated KDE app. When twinkle runs under KDE, it integrates directly into the other KOffice applications, most importantly KAddressBook. This means when I sync my Treo to my desktop system, all the phone numbers and addresses I keep are also available to twinkle, without having to import, export, or whatever.
ACPI Actually Works
The other big win was one of those mysteries that happens with a ‘dynamically’ updating OS, as most Debian-like systems are. A year or so ago I was curious whether I could suspend / hibernate my laptop just lke every other laptop in the world. Alas, this met with… abject failure. Lockups of the machine, failed reboots, etc. The ACPI tools in Linux were just not ready for prime time.
Last night I decided to try again. In KDE, I clicked on my power icon, and selected ‘Hibernate’. The system quietly shut itself down, turned on the little moon LED, and that was it. I closed the lid, waited a few minutes, then opened it again. Sure enough, it powered up cleanly, restored my session, and I was back in business. All my applications were still loaded and running correctly, even my Tomcat and MySQL servers.
Yes yes, other laptops have been doing this since the dark ages. But Linux has not. I’m ecstatic. Linux takes a while to boot from scratch, and I had been resigned to requiring a full boot from scratch everytime I wanted to sit down and crank out a piece of email. Now, that’s not the case. Hooray!
Coding on the Plane
I seem to have some deep empathic link with airplanes. I do enjoy flying, though the accomodations really aren’t suited for someone my size – I can usually get a bulkhead or exit row seat, so I’m merely compressed as opposed to being in complete agony. But once settled, and in the air, I pull out the laptop, plug in the headphones, and start coding. I’ve done some of my best coding in the air. A reporting and query engine for Keystone was written during a 5 hour flight to San Francisco. Last night’s flight out was no different. I was able to fix a problem with Eclipse that was preventing my project from deploying locally into my Tomcat server. Now my development environment is stable again, and the logjam i was stuck behind has been cleared. I did a small (compressed) happy dance as this was fixed somewhere over New Jersey, getting a strange look from the fellow in 1A, but I was seriously happy. On to pillage!