Archive for July, 2006

Apple’s DRM-LS

It’s interesting how weak Apple’s DRM for iTunes is, and how blithely the media seem to ignore this fact. I’ve never really seen any attention given to the fact that anyone can un-protect any iTunes music file, with no technical knowledge, and nearly zero effort.

This article in information week comes closer than anyone to stating this. That I’ve seen, anyway. The article is mostly about how DRM really usurps control of product from the content producers and transfers to the wanna-be monopolists (like ITMS.) It’s an interesting point, and a nice new way of poking fun at the stupidity and greed of the music distribution industry. But here’s the excerpt I’m talking about:

Removing iTunes’s DRM is pretty straightforward. It’s time-consuming, but it’s not too difficult. You just have to burn a CD with the tracks, re-rip the CD tracks as MP3s, and re-enter the metadata, like title and artist.

In fact, this is overstating the actual effort by quite a lot. All you have to do is: burn audio CD; select audio CD you just burned; import audio CD. Since you create a playlist with all the song titles, and iTunes conveniently matches burned CDs (by track length signatures, one assumes), you do not have to re-key in the artists and other track info. The upshot of this is that you need only spend the cost of a blank CD-R to remove ITMS DRM.

This is such a giant loophole that I call the DRM that Apple uses DRM-LS, as in “Digital Rights Management - Lip Service.” It does nothing at all to stop serious content piracy (which is impossible in any case, because if a human can hear it, a computer can copy it.) It also does nothing to stop a semi-intelligent person from making a DRM-free backup copy of their music. It seems blatantly obvious to me that Apple and the music distribution industry are just winking at each other that they did something to solve the “problem” created by napster et al. (When, in fact, the problem wasn’t caused by napster, it was caused the by the lack of a legitimate, low-friction channel for buying music on line.)

I wish all such DRM systems were so open.

Comments re-enabled.

I installed some more anti-spam stuff, including a CAPTCHA (sorry),

and I’ve turned comments back on.

gdImageGifAnimAddPtr undefined problems trying to build perl GD

I had quite an unexpected amount of trouble installing the perl GD package on this server. First, I needed to install libgd-devel: the makefile generator didn’t notice none of the includes were around. Then I kept getting an undefined symbol:

gdImageGifAnimAddPtr

when trying to load the GD.so during “make test”

The workaround was to disable support for animated GIFs in the configuration. My libgd version is 2.0.28, I guess that must be too old.

Firefox support required. Sorry.

[This post has a number of vague references to avoid embarrassing certain people. Including possibly me.]

At work we are in the middle of buying this really big, important and expensive piece of enterprise software. It’s the kind of thing that you need to have when your business grows to a certain size. In this context, “important” means that having it will improve our revenue by probably millions of dollars over a few years. And “expensive” means that it will cost more than $100,000.

This particular kind of software has a relatively large number of vendors who sell it; there were four top-tier vendors bidding on our contract. They are trying to differentiate themselves on their capabilities, each claiming something the others don’t have. In some cases, they are all claiming the same feature as uniquely theirs. In reality, they are largely all the same in their capabilities. Some do seem slightly better, but none seem so broken that we couldn’t make it work and live with whatever warts it has. So it’s all down to price.

I was on the phone with one of the vendors the other day, confirming a face-to-face meeting where they would get more detailed requirements and then be able to make a bid. Eventually, the sales rep casually asked something like, “I see you asked about FireFox support. We don’t currently support that, but are looking into it. Is that a deal-breaker?”

I thought for a second, said “ummm…” Then: “Yes. We need FireFox support. I think we should cancel the meeting. Thanks for bringing that to our attention ahead of time.”

I think the rep was pretty floored. He even said that he had never had this come up as a blocking issue. He asked if we could use virtualization, or if we had Windows PCs with IE that we could use. I basically said, yes we could do that, but why would I pay $100,000 for a piece of software that I need to use every day, then use some ugly hack to access it? Especially when all the competitors offer the support I want? I explained a bit more that about 80% of the people who needed this software didn’t have Windows computers; they have either Macs or Linux. And the remaining 20% really don’t like to switch out of FireFox in any case.

What amuses me most about this scenario?

1. Rule #1 of being a sales rep: never ask the question “is X a deal-breaker?” if there is any chance at all of hearing “yes.” Don’t give the mark a way out. (Not that this would have mattered in the long run. As soon as we found out it was a Windows/IE only application, that would have been the end.)

2. It’s not so freaking hard to support FireFox and IE. All you need to do is not use some stupid ActiveX control, and have at least one engineer use FireFox. They both have great DHTML, Javascript and XML-HTTP support. They both support Flash and Java fairly well.

Actually, the second reason is a really important one. If you are not smart enough as an engineering organization to avoid proprietary, lock-in technology to the extent that supporting users beyond that is too costly, then I don’t want to use your stuff.

Pre-installed linux hardware.

Some companies are trying to sell PCs with pre-installed Linux. Hopefully they fare better than VA Linux did. One that looks interesting is system76.com. They ship with Ubuntu, and have some interesting form factors, including one that is a dead rip-off of the Mac Mini.

My notebook PC (an Apple Powerbook) is getting a bit long in the tooth. It’s soooo dog slow, that I would like something snappier. The new Mac Pros are very nice, but so expensive. A nice, light notebook without a Windows tax might be a good alternative.

Note to self: RRDtool

We use gnuplot at work to make our custom one-off pretty graphs that monitor traffic:

Screenshot 37

It’s kind of pain to use, I think largely because of it’s history as an X11/postscript graphing tool. If you just want a PNG, it’s not really the sweet spot. Gnuplot seems better suited to plotting equations than it does to reams of traffic data.

I noticed our Google mini uses rrdtool; it looked a lot like gnuplot, so I’m looking into it further to see if it’s easier to do little consoles like ours.

Update: needs freetype2 and libpng:

yum install libpng-devel

yum install freetype-devel

How to upgrade to a recent FireFox on CentOS 4.x

I like CentOS more and more. Yesterday, I actually set it up as a workstation on a PC instead of a server. In doing so, I discovered that the FireFox that ships with CentOS is really old, like 1.0.7.

To upgrade to the latest thing, you need to enable the “centosplus” repository. Like this:

         yum --enablerepo=centosplus upgrade firefox

Note to self: Mac utils to investigate

DropCopy from 10base-t.com: a bonjour file-sharing utility

RCDefaultApp: new version is available.

Sharepoints: NFS/SMB/AFS file share management application. It’s now donate ware, which I always am happier to pay than shareware.

Mactracker: a nifty looking mac hardware information database.

How to unmount a dead smbfs file system.

Little known fact (to me, at least): if you have a mounted smbfs file system, and the server reboots, then the smbfs will not re-connect with the server. It will be essential a wedged file system, causing all to access it to hang.

“umount -f” does not fix this. Neither does “kill -9″ of the mountd process responsible for the FS.

The magic command is:

umount -l /path/to/mount

samba (smbfs) problems: bad superblock error on mount

At work today, we had this problem, and I wasted a long time trying to figure it out. Basically, we have a machine that serves up a big disk over smb/cifs/netbios/whatever you want to call it. There are something like 120 machines that are supposed to mount this as a file system using the smbfs that is now built in to the Linux kernel. We are using mostly FC3, but are switching over to CentOS, to get a little more stability. Pretty soon we’ll have over 200 machines, and it’s a pain to upgrade them all.

But the problem was that batches of them would get “bad superblock error or too many mounts” when they tried to mount the file system. At first I thought that there was some quota or limit on the samba server side, and we just had too many clients mounting the file system. That wasn’t the problem.

Then I noticed that the failure seemed to correlate with slight variations in kernel on the client side. It wasn’t perfect, and it turned out to not be the problem either.

The problem was, in fact, that the smbfs kernel module just does not work if the “samba-client” RPM is not installed on the machine. The kernel module is there. It just needs the client libraries to work. It would have been real nice if the error was “oh gosh, samba library not found” instead of “bad superblock.” Oh well. The fix was simple:

yum -y install samba-client

on all the affected machines.