Showing posts from November, 2004


At university , the main computer science lab was divided into two sides: half Sun workstations running Solaris and half Dell workstations running NT (there was a Linux lab elsewhere). The tension between the two sides was high and rife with rude looks and derogatory comments. The Unix side, as it was known, held in contempt the Windows side. We felt Unix superior. How can they get any work done without grep (1) and sed (1) and a real shell and a real editor, we wondered? We were adamant in our supremecy. How on Earth could they hack in Windows? Maybe they were just drunk. Of course we were silly and, to be fair, Solaris was slow as hell and CDE the ugliest thing I have ever used. Nonetheless, each side continued unabated, at least until the day that the poster showed up. It was a gigantic Microsoft poster, parading as some developer reference, but ultimately a piece of well-placed advertising. And it was on the lab's Unix side. What were we to do? Would all our walls soo

Utter Domination

I won't mention that, despite drafting last, I am currently first in our office fantasy football league. P.S. Luis may be in last place in fantasy football, but he is in first place in real-world managing.

I Voted Today

I wrote an "applet" to display the current Homeland Security Threat Level: It is in module homeland in GNOME CVS. It is a little rough, a quick hack, but it works. See the TODO. Update! Thanks to the power of open source, now with color coding and tooltips:

If You C Jordan

I know it is stylish to scream Vote! and some people even threaten your life over exercising suffrage, but my feelings are less grand, certainly less drastic. If you are informed and have an opinion, please vote. Apathy is not an excuse. I used to be a member of the Royal Family: Using the kernel event layer (triumphant debut in 2.6.10-rc1 ) is easy: int kobject_uevent (struct kobject *kobj, enum kobject_action action, struct attribute *attr) kobj specifies the kobject that is to emit this signal. kobjects are like gobjects but for the kernel. They form the basis of sysfs, where each directory in sysfs is associated with a kobject and consequently sysfs is actually a filesystem representation of an object hierarchy. So we are modeling the signals as originating from a specific sysfs path. As an example, if we were sending out a kernel event related to a specific partition, we might pass &bdev->bd_part->kobj here, which might correspond to /sys/block/hda/hda2 .