A useful tool: slock is a tiny c program that locks your screen like xlock. But, with only 147 lines of very straightforward code it would be very difficult to introduce vulnerabilities ![]()
Yearly Archives: 2007
suckless screen lock
Perfection: Spoon + Dancing Robots
I am a huge fan of robots and Spoon so this video is perfection. It is too bad I will be leaving LA two days before Spoon and KeepOn play at NextFest!
Source: IEEE automation blog
Geeky music, tools and bugs
Today’s discoveries:
- TCC is a tiny C compiler that allows you to do #!/usr/bin/tcc -run at the top of C files! It is really handy for those 20 line test programs.
Things I am working on:
- Today I wrote what seems like a proper solution to a QEMU bug that was causing CDROM devices to be unhappy under recent Kernel versions. The bug turns out to be really simple but it took a bit of time to learn about ATAPI and AT devices to understand what was failing.
- I am also working on a patch to give quilt the ability to pull down a series and all patches via http/ftp. It is a bit frustrating being pointed at a patches/ directory but having no quick way of pulling them into your series.
Life: an update
I have not blogged recently because of a number of life changes. I will try to fix that now that I have a steady location and job. To clear the air here is everything I have been doing in a chronological list.
- Graduated from Oregon State University with a computer science degree.
- Traveled to Vienna, Austria to visit Nisha George who is working for TTTech
- Started working for SuSE Labs/Novell as a Kernel developer
- Moved into a neighborhood (SE Portland) right next to Ron Jackson and Karla Beck! Ron has been a great mentor and worked with me on the Bob project
- Went to a drive in theater for the first time, double feature of Die Hard 4 and Transformers, awesome!
- Visited the only American owned sake brewery, Sake One, and bought a sake keg.
- Went to OSCON and met a bunch of Novell and Debian people. Living in Portland is going to Rock!
- Volunteering to help with the Linux Plumbers Conf
Life is good, I am having fun and I will be blogging again soon.
procmail magic: I am not afraid of lists anymore
Yesterday a number of list posts from lists I had forgotten to write a procmail rule for made their way into my inbox. I didn’t like the idea of adding yet more cookie cutter rules to my ever expanding .procmailrc to fix the issue so, I went hunting for a better solution.
After searching for a bit I found jdub’s procmail which got me most of the way there:
# MOST LISTS - Automagically handle lists
:0
* ^((List-Id|X-(Mailing-)?List):(.*[< ]\/[^>]*))
{
LISTID=$MATCH
:0:
* LISTID ?? ^\/[^@\.]*
ifup.$MATCH/
}
# MAJORDOMO - Automagically handle Majordomo lists
:0
* ^Sender:.*owner-[^@]+@[^@\+]+
* ^Sender:.*owner-\/[^@\+]+
{
:0:
ifup.$MATCH/
}
But, vger.kernel.org mailing lists have listname-owner instead of owner-listname so I wrote this:
# MAJORDOMO with inverse owner
:0
* ^Sender:.*-owner@[^@\+]+
* ^Sender:[ ]*\/[^@\+]+
{
:0:
ifup.`echo $MATCH | /bin/sed -e s/-owner//g`/
}
Does anyone know how to skip that sed call? I am not too terribly happy with it but it works.
Final result: 80 insertions, 116 deletions and it handles all of my lists- not just the ones that I remember to add. w00t
guilt: my first Debian package
For the last few weeks I have been working on a Debian package for guilt, a quilt like tool that works on top of a git repository.
Getting the initial package together was easy thanks to dh_make. This created the debian/ directory and basic control files that were needed to Debianize the source. After customizing all of the control files I built the package with dpkg-buildpackage and it seemed to work!
But, I quickly hit a bump in the road, lintian, the Debian package checker complained that there were no man pages.
$ lintian -c guilt_0.20-1_i386.deb
W: guilt: binary-without-manpage guilt
W: guilt: binary-without-manpage guilt-add
...
W: guilt: binary-without-manpage guilt-top
W: guilt: binary-without-manpage guilt-unapplied
Knowing the package would never get sponsored without docs I worked with Josef Sipek, guilt author, to get an asciidoc documentation system built for guilt. In a few days we had built a man page for every command in the system and the lintian warnings were gone, w00t.
With the package in good shape Debian developer Pierre Habouzit kindly sponsored my package. And today I got notification that the package has been uploaded Debian!
Next step: Become a Debian developer.
P.S. If any Debian developers from around Oregon are reading I need my GPG key signed ![]()
In high school I built robots
While digging through a pile of old CDs I found a video documentary of my first high school robotics project, Bob version 1.0. So, I posted the video up on Google Video. The project was a joint venture between Sherwood and Newberg high schools and I was a lead developer.
The year after this project we created a more robust version of the robot that we aptly named Bob version 2.0. Enjoy the film!
Regulatory Binary Free ipw3945 Drivers for Linux

Today at the Kernel Introduction Keith Packard corrected Jonathan Corbet and said that the Linux ipw3945 wireless driver no longer requires a binary regulatory daemon to run. After poking around the Sourceforge project website for a second I couldn’t find the code and asked Keith about it.
It turns out the binary free project is now hosted at bughost.org. At this time the new driver requires running linux-wireless git tree so it isn’t easy to use and build like the old driver but the lack of a binary userspace daemon should guarantee that the code is merged into mainline sometime in the future. Thanks to Intel for finding a better solution to this.
LCA Day #2
The talk “Demystifying PCI” in the LinuxChix miniconf by Kristen Carlson Accardi was a highlight of day two. Using sysfs and lspci on a running system was an effective way to introduce the PCI bus and is certainly more entertaining than reading the PCI spec. A couple of new things I picked up from the talk: lspci -x prints out the configuration space of the PCI devices in hex which lead to the observation that the vendor code for Intel is 8086, ha!
It was also good to meet Kristen in person; she had helped me with a patch for adding the docking station entries to sysfs. Hopefully we can get her down to Oregon State to give a talk to our open source development class.

After the conference on Tuesday Google sponsored a party for all conference goers. It was a great night to meet and chat. In particular I got a chance to meet a few of our donors including conference organizer Lindsay Holmwood. Thanks again to everyone who donated.
LCA Day #1
I had been meaning to post daily updates from LCA but the conference is just too awesome to get a chance to blog- ROCK!

As a Debian groupie I started the conference off with a brief by the Debian project leader (DPL) Anthony Towns. The first minute of the talk was really strong. Then his phone rang and he took the call! It was the first time I had ever seen this at a conference.
After a good minute of “uh huh *pause* yes, yes, ok ok” he got off the phone and asked one of the audience members to call his mum. Naturally, everyone was very confused. It turned out he was moving today and his mom was the only person in the area to look after the movers.
With that brief interruption the Debian miniconf was off!
A few of the highlights:
- Funny: m68k buildd is keeping up properly thanks to an emulated build box running on amd64
- Hopeful: the rework of the GNU Free Documentation License to fit into the DFSG
- Sad: There were updates on IceWeasel. Why is Sun better at working with Debian than the much more open Mozilla Corp?

The next talk was interesting because of the problem domain: honey bees. Jamie Honan, the presenter, was trying to find a way to keep an eye on his remote bee hives to prevent them from swarming. The problem with a swarming hive is that his next door neighbor is allergic to bees. The best detection method of a swarming hive is smacking the hive and listening to the frequency of the reaction. He didn’t have a mechanical process for smacking the hive yet but a device like the Fascinating Electronics USB servo controller that I brought along for show and tell would work great.
The last session I went to before the embedded show and tell was a talk by Keith Packard on the direction that X.org is heading. If all goes according to plan it shouldn’t be necessary to have much of an xorg.conf in a few more versions as most everything will be hot-pluggable. w00t!
It was a great day. Thanks to the Seven who are putting this week together.
