China v. China

Interesting juxtaposition of recent news articles:

Song is Cool

I’m flying Song airlines for the first time, en route to Orlando on business. The individual interactive multimedia consoles are pretty cool. You can check out your altitude, flight path, etc., in real time, which I think helps mitigate the lack of control and attendant anxiety most people feel while flying. There is also a decent selection of “MP3s” (I wonder if they are actually stored as MP3s?) that you can queue up for a personal playlist. I’ve found more than enough selections to last the rest of the flight. (Strangely, I seem to have to hit ‘pause’ at the end of each track to advance to the next). There are also a bunch of satellite TV stations, pay-per-view movies and games, although I haven’t checked those out.

I’m curious about how the music licensing works. The airline would like to provide the attractive feature of a broad variety of music for its customers; at the same time, it probably serves as effective marketing for the labels, just like radio play. You might, for example, check out an album you were thinking of buying on the flight, and purchase it later if you liked it. The chance that inflight music will be copied by customers is very low and presumably they don’t need to worry about DRM. So which way does money flow—from the airlines to the labels or vice-versa? Or are the tracks “free?”

Now playing: The Beatles, Revolver, “Got to Get You Into My Life.”

P.S. After we landed, the interactive multimedia consoles rebooted. It turns out they are running Red Hat Linux, circa 2002. Smart.

Humans Fail Turing Test

I use a relatively unsophisticated but highly effective filter for blog comment spam. The system consists of several hundred keywords (mostly spam-related domain names which would never appear in a genuine comment), and a Turing test. The Turing test is a box at the bottom of the comment form, that says: “Do not put anything in this box if you are a human.”

The Turing test catches between 10-25 spam comments per day; the keyword filter about the same.

Every week or two, however, a human comes along, and fails the Turing test and fills in the “don’t fill in this box” box. I’m not quite sure what to do about that. Maybe the human thinks they are not actually human?

More likely they just don’t read the text next to the box, although it is fairly prominent.

Unfortunately, this seems to be a general phenomenon on the web. Many people have a tendency not to read text on webpages. For example, I’ve gotten a lot of questions along the lines of “How do I access my address book in SquirrelMail?” The answer, of course, is to click on “Addresses.” Similary questions arise with respect to my photo album software salonify — “how do I view a slide show of images?” (A: Click on “Slide Show.”)

My hope is that the next generation is better able to process web content, but I’m not sure that hope is well founded.

Getting back to the blog comment spam issue, it’s interesting to observe what sorts of topics appear most frequently in comment spams. Over the past several months, pornographic links referencing transsexuals seem to outnumber other topics. I wonder: do the spammers have a scientific method to their marketing?

Postal Increase to Pay for Military Retirement

There has been a lot of news about the two cent U.S. postage increase that goes into effect today, but little explanation of why the increase is required. Some reports mention that the increase is needed for a $3 billion “escrow fund,” but do not explain what the escrow fund is for. In case anyone is wondering, Congress required the Postal Service to create the escrow fund to prepay retiree health benefits and fund the military portion of retirement benefits for postal workers who had served in the military. (At least according to Who knew there was a

I realize this is fairly off topic for my blog, but I was wondering about the explanation, so maybe one or two of my readers were as well.

If you’re looking for a more topical connection, perhaps we can blame the postal increase on the War in Iraq.

RAID Followup

Following up on yesterday’s post about my slow server, I just discovered why the RAID reconstruction was going so slowly. When the disc in question was knocked offline, all of the hdparm settings (most notably DMA) were reset. A simple:

 hdparm -c 1 -d 1 -u 1 /dev/hde 

Instantly quadrupled the speed of RAID reconstruction, and also sped up the whole server noticeably.

So, tip for the future (and for Google searchers): if your RAID is reconstructing very slowly, be sure to check the hdparm settings for all of the member discs.

Popularity Out of Control

This blog has been semi-offline for at least a few hours. Sorry about that.

Through an interesting (at least to me) series of events, I discovered that my custom “popularity” hack/plugin was out of control.

It started earlier today when one of the the RAID discs on this server gave a SMART error. I’ve never been able to really judge whether SMART errors are “for real” or not—sometimes I’ve had a disc with a serious SMART error that, after another test, will run fine for another year or two without incident.

In any case, I wasn’t so worried, since this system is running RAID-5, so a single disc failing, even catastrophically, doesn’t result in any data loss or downtime.

I decided to take the disc out of the RAID and run some SMART tests on it. I marked it with mdadm as FAILed (mdadm —fail) and then removed it. Strangely, the disc first passed a short test with no problems, but then ceased to be recognized as having SMART capabilities at all.

I’ve had that problem before and never figured it out—the SMART capabilities seem to come back eventually. Not knowing what best to do, I just put the drive back into the RAID to see what would happen.

Since the disc had already been marked as FAILed, the reconstruction started from scratch. Although I’ve got a pretty good (2Ghz) CPU and plenty (2G) of RAM, kblockd and md0_raid5 are using up most CPU cycles and everything has slowed down significantly. Reconstruction seems to be proceeding fine, just slowly—it will take 24-36 hours at the current rate. Presumably it would be much faster in single user mode, but I can’t take this server offline.

In the meantime, I noticed that my blog had stopped responding entirely, while other blosxom blogs served from this same server were fine (maybe a little more latency than usual). So I started parsing through the differences in my blosxom installation and everyone else’s to see what could possibly be slowing things down so much as to time out the blog.

Eventually I identified the culprit: my custom-made “popularity” plugin, which reports the most popular entries on this blog and the number of hits they have received. I hacked it together several years ago. I think at the time I just wanted to see if it would work, with the plan to come back later and fix it. I guess I forgot the “fix it” part.

My popularity plugin creates a log file that it reads in each time the blog is accessed, and then appends to that file. Over the years, that file has grown to 17 megabytes. Although this is a huge waste of system resources, I didn’t notice it when the system was running at full speed. With the reduced performance from the RAID reconstruction, however, this meant that my blog never finished loading at all.

If you made it this far, you certainly deserve some sort of geek admin award. Congratulations. I deserve some sort of stupid admin award, myself.

P.S. Apparently I must have forgotten to check my horoscope today. The laundry machine flooded the basement when I didn’t check the sink into which the laundry machines empties. I should probably avoid sharp objects for the rest of the day.

Is the World Ready for Curdnerds?

Jamie recently created a drupal site for cheese aficionados. So far the main feature is the blog, but it’s coming along quite nicely. Jamie has had some pretty hair-raising cheesemaking experiences, including a near death brush with mozzarella (photos).

Curdnerds is clearly ready for the world. The question is whether the world is ready for Curdnerds. Time will tell.

Announcing BabyOp

A couple of weeks, I blogged about trying to create some babysitting coop software and “doing it right.” Despite knowing that I’d benefit from the discipline imposed by Python, I ended up coding it in perl and staying in my comfort zone. Still, it’s a lot less screwy than past things I’ve done.

It’s definitely not ready for prime time—barely tested at all; probably buggy; not feature complete; and not nearly secure enough. But I thought I’d announce it so it can start entering search engine indices. The past blog entry is already a #2 google result for babysitting coop software. (Apparently there is very little competition in this niche).

So. Announcing BabyOp: Software for Babysitting Coops.

Chicago 2005 Highlights

Excellent latte at Metropolis Coffee Company near Loyola University. Hypothetical for any law students reading this: could this design be protected by copyright?

Lincoln Park Zoo. Click the image to advance. Watch out for the tiger, he’s a little scary.

(click for big version)

Chinatown. Click the image to advance.

(click for big version)

Happy Belated Chanukah 5766

So I’m a little late, but Happy Belated Chanukah 5766. Among other gifts (to ourselves), we got a Panasonic Lumix DMC-FZ30, about which more later. In the meantime, I’d like to do more photoblogging, and toward that end, I declare all content here to be licensed under Creative Commons Attribution-NonCommercial-NoDerivs 2.5 License. I’m certainly open to granting less restrictive licenses, I’d just like to be asked first.

Oh, right, and no more sweets for the month of January. I’ve had enough.