Merry Christmas

Another Christmas has come and gone. On Christmas Eve Susan cooked a pot roast in the traditional style I grew up with. The meat came from a small order we placed with Dominion Farms, a local organic farming operation. All their animals are fed natural diets, no hormones or antibiotics. The meat was really tasty, so we’ll probably get more from them in the future. My brother Randy joined us for dinner and we played several games of Scrabble afterwards while eating Apple Pie.

Susan and I spent Christmas morning at home opening a few presents for each other and then we drove up to McKinney to spend the rest of the day with family and friends. There was more opening of presents, large quantities of food, and lots of catching up on family news. We played a couple of games include Mexican Train dominoes and something new called Catch Phrase that our niece and nephew talked us into.

I spent some time helping my nephew rip audio tracks from a CD to use as ringtones on a his new phone. I’d forgotten how difficult it can be on Windows boxes to do simple things like converting from one audio file format to another. His phone needed MMA or MP3 audio but Windows would only rip CDs in WMA format. I Googled for downloadable sound utilities but could only find crappy shareware and freeware stuff that mostly didn’t work. Then it occurred to me to see if any free software audio tools had been ported to Windows. I was pleasantly surprised to find Audacity for Windows. It’s really amazing how much better most free software apps are compared to your average Windows programs these days! Audacity really saved the day for us. We were able to edit the track down to size, convert it to MP3 and get it onto his phone’s SD card. And all in time to grab a piece of home made fudge before it vanished.

Moralizing about Free Software

Over on robots.net, I posted a link to an interesting Steven Pinker article about the human moral instinct. Aside from the obvious aspects of the article relevant to cognitive science and AI, it struck me today that the “moralizing trigger” Pinker describes may help explain the difference between the Open Source and Free Software movements. While they’re both effectively doing the same thing, they’re doing it for different reasons. Pinker uses vegetarians as an example:

The psychologist Paul Rozin has studied the toggle switch by comparing two kinds of people who engage in the same behavior but with different switch settings. Health vegetarians avoid meat for practical reasons, like lowering cholesterol and avoiding toxins. Moral vegetarians avoid meat for ethical reasons: to avoid complicity in the suffering of animals. By investigating their feelings about meat-eating, Rozin showed that the moral motive sets off a cascade of opinions. Moral vegetarians are more likely to treat meat as a contaminant — they refuse, for example, to eat a bowl of soup into which a drop of beef broth has fallen. They are more likely to think that other people ought to be vegetarians, and are more likely to imbue their dietary habits with other virtues, like believing that meat avoidance makes people less aggressive and bestial.

Substitute a binary blob in the Linux kernel for the drop of beef broth in the vegetarian soup and this sounds exactly like the difference between the Free vs Open camps. The article goes on to explain how mammal brains seem to have five “moral spheres” which appear to represent something akin to moral absolutes. The way different cultures and individuals map things to those five area creates the moral differences we see and leads to a lot of unfortunate conflict. Could it be that understanding the physiological basis of morality will help not only to solve big problems like Middle East vs West but also smaller ones like Open Source vs Free Software?

Slashdot 10th Anniversary Party

On Friday night, I attended the Slashdot 10th anniversary party. Well, I attended the one in Dallas, anyway. There were others all over the world. It was a fairly uneventful event. For reasons known only to himself, the organizer chose to have it in a small, noisy bar despite many suggestions of better (i.e. bigger, quieter) alternatives. So for about an hour and half 20 to 30 geeks shared a cramped space and engaged in conversations that went something like:

“Hi, is this the Slashdot party?”
“What?”
“IS THIS THE SLASHDOT PARTY?”
“Yes”
“What?”
“YES!”

Most people either shouted into the ear of the person immediately next to them or just gave up on conversation as not worth the effort and sat around staring at each other and waited for the organizer, who had the free T-Shirts. He eventually showed up shortly before the event was scheduled to end and passed out the shirts. A lot of people had given up and left already, so there were plenty to go around.

At a couple of points, the loud music stopped long enough to have some quick conversations and I learned that: 1) I was the only one there who ran Linux on my workstation or laptop 2) most people I talked to ran CentOS Linux on their servers 3) Everyone I talked to had tried Ubunutu and hated it 4) In every case where I could get specifics about what they hated, it turned out to be something I do on Fedora all the time (I’m pretty sure most of what they wanted to do could be done easily on Ubuntu as well, so I don’t know why they were having troubles) and 5) I was the only person there who actually wrote code for Free Software or Open Source projects.

Once I got my free T-Shirt, I headed home. It was too dark to snap a photo inside with my phone (no flash) so I shot one of the exterior of the Inwood Theater. The dark, noisy bar is attached to the theater’s lobby.

I haven’t forgotten the Austin Makers Faire. Full account coming soon. Stay tuned.

Object Oriented Programming in C

One of the C projects I’m working on needed some object oriented features of the type one would normally use C++ for. I thought it shouldn’t be too hard to do some minimal OO stuff in C and it turns out there are plenty of examples and complete frameworks out there to help. If you’d like a complete OO framework for C, Laurent Deniau’s webpage, Object Oriented Programming in C, is a good place to start. The most interesting system described is the C Object System (COS) which is described as “strongly inspired from CLOS and Objective-C and to a lesser extend by Cecil, Dylan, Haskell, Python, Slate and SmallTalk”. The description also notes that COS provides dynamic message dispatching that’s up to 1.5 times faster than Objective-C and generic message forwarding that’s up to 80 times faster than Objective-C. COS is designed to match the simplicity, flexibility, and extensibility of Python, Ruby, or Smalltalk while retaining the efficiency and portability of C. The COS framework is licensed under the LGPL. Pretty cool.

Laurent also describes the Object Oriented C (simplified) framework, which is a small (300 sloc) pile of code derived from OOC-2.0 that provides C programmers with a feature set similar to Java. There’s also “Exception in C”, which provides a Try-Catch-Finally implementation for C.

I also found Axel-Tobias Schreiner’s book, Object Oriented Programming in C very helpful. A PDF version of the book is available online (alternate link).

Free Software and Free Music

It seems hardly a day goes by lately without reading about some new attack on the performance or sharing of music by the music industry itself. The RIAA is doing a pretty good job of destroying the legacy music industry all by itself. Their latest attempts to shut down Internet radio stations through punative licensing fees got me wondering about the state of free music. I know it’s out there and a little searching even turned up some directories and lists of public domain and freely licensed music. But surprisingly I didn’t immediately spot any Internet radio stations or even regular podcasts where I could listen to new free music. Are there any? I also didn’t see much in the way blogs or news sites devoted to the topic.

Maybe this is a case where the free software community could educate our musician friends about the benefits of using licenses that protect their listener’s freedom to share and perform the music. I know quite a few musicians in local bands but, as far as I know, most of them rely on the traditional music industry and their legacy music distribution techniques.

Maybe some musicians or listeners in the free music community can point me to some good starting places to learn more about state of things and find the latest news?

The Year is off to a Good Start for Free Software

Everywhere I look lately, I’m seeing good news about 3D graphics acceleration support for free software users.

Since I started collecting numbers last year, the highest glxgears results we’d seen for any free software driver was a little over 3,000 FPS. Now we’re begining to see number for the R300 code that has been added to the X.Org radeon driver and we have two reports in the 5,000 – 6,000 FPS range on ATI X800/X850 hardware. These may be the highest glxgears number attained on free software to date (if there are higher ones, hopefully somebody will send us a report). With numbers like that, I think the Ubuntu folks won’t be able to use performance as a reason for switching to proprietary drivers (at least for ATI).

A growing number of reports are showing improvments in the performance of the X.Org Intel graphics driver too.

Meanwhile, the nouveau project, which is busy reverse engineering nVidia’s proprietary hardware, has hit a milestone. They posted a screen shot of their driver successfully running glxgears in late December.

Nouveau also came up in a recent debate on the linux kernel mailing list over proprietary binary drivers. Alan Cox suggested getting nouveau’s DRM module (that’s Direct Rendering Manager, not Digital Restrictions Management) into the kernel ASAP. The DRM module is the kernel side of the X.Org DRI driver. The nouveau folks don’t think the code is quite ready but it’s good to know nVidia 3D acceleration is getting closer.

Not enough good news? The Open Graphics Project took delivery of their first OGD1 development boards and are now in a testing cycle. The development board, which includes two FPGA chips, will have a GPU clock rate of 150MHz. Performance is expected to clock in faster than an ATI Radeon 7000 and a little below the nVidia Ge Force2 GTS. The hardware design is completely open and licensed under the GNU GPL. When the development is completed the design will be moved to custom ASICs, allowing a cheaper (and possibly faster) final board for end users.