Copy-Inhibited CDs

Via Slashdot, "MacUser is running an article about how the new Celine Dion CD A New Day Has Come with copy protection mechanisms to prevent the CD from being played on a PC not only won't play on an iMac, but it will lock the CD tray (so it can't be removed) and fubar the firmware (so the machine can't be rebooted), effectivley killing the iMac." ... "What was first thought to be an April Fool's joke, now appears to be true. Some Audio CD protection schemes such as Cactus DATA Shield 100/200, KeyAudio, and perhaps others may be defeated by invalidating the outer ring of the CD with a black marker or post-it sticky note."- Slashdot Posting

"Mac users may want to check the labels on their music CDs twice, as copy-protected audio discs flooding the market may lead to serious problems when they are played on some computer systems." - Cnet News.com

The Postgres Incident

Not understanding past errors, I found out last week just how important it is to use the vacuum command in Postgres.If you don't vacuum your database, your pg_log file can exceed a gigabyte in size and wrap thereby corrupting data. In this case, and perhaps others, all databases in Postgres.

First, many thanks go to Tom Lane who's expertise in this matter helped save my bacon.

It started with the following message:

Database 'xxxx', OID yyyyy, has disappeared from pg_database

I was using Postgres 7.0.2 which came with Red Hat 6.2. Now I should have upgraded a long time ago (more on that later) but this particular problem was caused by not using the vacuum command which cleans up databases and performs other background routines that are necessary to ensure database performance and stability. Now my pg_log file actually wasn't over 1GB as was the traditional indication. So, enter step 1.

Probably the next thing is to look at pg_database and tryto understandwhy all the rows are showing as dead. There are a couple of toolsaround that can dump out the contentsof tuple headers. I'd suggestpg_filedump (http://sources.redhat.com/rhdb/tools.html), but it isintended for 7.1/7.2 and you'd need to do a little surgery to make itwork on 7.0 files. (I think ripping out the code that expects an LSNfield to be present in the page header would be enough.) If you checkthe PG list archives you will find references to one or two olderprograms in the same vein; there might still be something availablethat will work on 7.0 files without modification.

regards, tom lane

This took quite a while as I initially tried to compile the pg_filedump against a 7.2 source, and I should have compiled against a 7.0 source. However, that required a lot of inspection and alteration of the pg_dumpfile source. Eventually it compiled and I sent a rather verbose dump to the list. Tom looked at it and confirmed that somehow the log had either wrapped, was damaged, or both. So the solution was as follows.

Weblogs Going Mainstream

Like most techies, we sing the praises of new items and new ideas and loathe when those ideas become mainstream. They seem to lose that elite quality that made them special. The Internet itself is a prime example. When people would ask me "What's the Internet?" or "What's the Web?" I would revel in the chance to explain what it was and felt quite a sense of pride at my unique knowledge. We knew that it was on it's way to becoming mainstream. When that day finally arrived it was bittersweet.

Web logs are travelling down the same path, as well they should. Links in the Daypop Top 40 point to three articles from large circulation publications explaining weblogs. Wired - The Blogging Revolution, Business 2.0 - Blog Nation and MSNBC - Business pros flock to Weblogs.

I wasn't at the head of the weblog pack, but I did create my own from scratch and I feel a certain sense of elitisim when people ask "What's a weblog?". I know however, that I'm going to loathe the day when people will just view weblogs as a natural option for contributing to the web and say, "Since when have you had a weblog?". In the end it's just a form of publishing folks. So I need to get over myself.