Archive for September, 2007
I am now an Amazon customer
Saturday, September 29th, 2007They finally started selling something that I want to buy.
Almost since the iTunes Music Store first opened, I've been a customer of the iTunes Store. 99¢ a song is fine by me, and I love paying by the song. There are few albums so consistently good that I'll buy the whole thing.
Then iTunes Plus started, and I immediately switched over. Sure, it's 30¢ extra, but I pay that 30¢ as a statement against DRM.
Then came the Amazon MP3 Store.
Amazon sells plain old MP3s, at roughly 256 kbps VBR (in order that nobody can complain about the encoding quality). Since they're plain old MP3s, there's no DRM.
Even better, Amazon beats iTunes' prices: 89–99¢ per song. iTunes charges $1.29 (remember, no DRM, so the proper comparison is to iTunes Plus rather than to non-Plus).
So, in short:
- The encoding is almost as good as or better than iTunes.
- The price is the same as or less than iTunes.
- Amazon's MP3s are never DRMed, whereas iTunes' MPEG-4s are usually DRMed.
Like Simone, I shall buy from Amazon first from now on. (I haven't switched away from iTunes; they'll continue to get my business for songs that Amazon doesn't carry. But, unfortunately for Apple, I expect that set to diminish.) Take notice of this, Apple—get the record labels to let you lower your prices, or you will lose serious market share to Amazon.
Just in case you're wondering…
The Amazon MP3 Store works by downloading a file in a special format: .amz. This is a document for the Amazon MP3 Downloader application. (In case you're wondering, the contents are some binary data, which may just be ciphertext of some sort, encoded in base64.)
The reason they do this is so that it can download the MP3s into a subfolder of your Music folder, rather than your usual Downloads folder (normally your Desktop). That's good, but it has two downsides:
- You need a Windows or Mac OS X PC to download MP3s from Amazon, even though the MP3s themselves will play anywhere.
- If your browser is set not to auto-open files, or doesn't trust the Amazon MP3 Downloader, then you may be sitting there for a moment wondering why the Downloader is not doing anything.
My suggestion to Amazon would be to switch to a custom URL scheme, rather than a custom file format. I don't know about Windows, but this would certainly make it much easier on the Mac, since the custom URL scheme will always work. (It won't help the non-Mac non-Windows users, though, since you still need the Amazon MP3 Downloader to handle the custom URL.)
New utility: Make RAM Disk
Saturday, September 29th, 2007
Make RAM Disk is a simple app to create and mount a RAM disk on Mac OS X 10.4 or later. It encapsulates my previously-stated series of terminal commands into a tiny little app—just launch it and go.
I use my RAM disk for three things:
- Download holding area. I have Mail, Safari, OmniWeb, and Adium all set to download files to the RAM disk. If I decide I don't want to keep the download, I just leave it there until shutdown (only works on my desktop Mac).
- iShowU storage. I create a 1-GiB RAM Disk named “iShowU temp” which iShowU is set to use as its scratch disk. Using a RAM disk for this helps your recording frame rate.
- Xcode build folder. On my laptop, I symlink the project's build folder over to the RAM disk (e.g., mkdir /Volumes/RAM\ Disk/Adium-build && ln -s /Volumes/RAM\ Disk/Adium-build build). This cuts out a lot of the disk grinding that happens during a build, which I believe helps my battery life.
Enjoy!
Ghostwriter has invaded my menubar!
Thursday, September 27th, 2007
WTF?
And no, it's not just in OmniWeb (or, for that matter, my menubar):

Appcasts on Google
Thursday, September 27th, 2007If you publish an appcast, you should also publish a robots.txt file that tells search engines such as Google not index the appcast file. I came to this realization after searching for “appcast editor”: the first four hits, and several of the others, are all just appcasts.
There is no point to having these indexed by Google, so save the bandwidth and help people's search results—tell the search engines not to index them.
And I never did find an appcast editor. I guess I get to write it by hand in vim. (There's one in MacCode, but it's not working yet.)
UPDATE: I knew there was an appcast editor out there! It's Feeder, by Reinvented Software. Thanks to Andy Kim for pointing it out in the comments.
I do believe we have a record
Monday, September 24th, 2007pngout \ %~/Projects/@otherpeoplesprojects/growl/trunk/Core/Resources(0) > NotifyOSX.growlStyle/Contents/Resources/sidetitle.png In: NotifyOSX.growlStyle/Contents/Resources/sidetitle.png In: 29644 bytes Out: NotifyOSX.growlStyle/Contents/Resources/sidetitle.png Out: 527 bytes Chg: -29117 bytes ( 1% of original)
My Simpsons avatar
Sunday, September 23rd, 2007Vacation numbers
Sunday, September 23rd, 2007- Days gone: 3
- New mail messages: 75
- New messages in RSS feed: 86
- Miles driven (total): 133
Commercial Success
Tuesday, September 18th, 2007Now on iTunes: An endcap with various songs from commercials. They've done this before, but this time, the first four tracks are from recent Apple commercials, including the one from the iPhone commercials.
zsh completion rocks
Monday, September 17th, 2007Specifically, enable and configure zshcompsys. Here's what this will get you (6 seconds; 144 K; requires any version of QuickTime):
UPDATE 2007-09-18 11:54 PDT: More info in the comments.
Report-an-Apple-Bug Friday! 70
Friday, September 14th, 2007This bug is Borken implementation of -setNilValueForKey: in Model Object Impl Guide. It was filed on 2007-09-14 at 12:24 PDT.
Quickie: Bindings and KVV
Tuesday, September 11th, 2007A note about your WordPress blog’s tagline
Tuesday, September 11th, 2007On the general options pane, there is a field labeled “Tagline”:

The value shown in that field is WRONG WRONG WRONG!
You see, that's actually supposed to be HTML—or at least, such is the implication of the Atom template's use of bloginfo_rss to get the description. The difference between {get_,}bloginfo_rss and {get_,}bloginfo is that the _rss versions call strip_tags to take out any HTML and escape any non-HTML characters, such as &.
That wouldn't be so bad if strip_tags worked properly, but it doesn't—not on this host, at least. It leaves the second & in the above example unescaped. (“OK, I escaped that one. It must be the only one. I'm off to Subway!”)
As if that wasn't bad enough, WordPress doesn't escape the tagline field's value when putting it back into the field the next time you load up the Options pane. (It does if it's plain text, but not if it's HTML. Go figure.) So if you click “Update Options” again, your HTML goes bye-bye. You need to remember to re-escape it every time you save the General Options.
(Given that, maybe it's not supposed to be HTML after all, and the use of bloginfo_rss in the Atom 0.3 template is a bug.)
Want to know how I found this out? Because the RSS reader in Safari 2 (I don't use 3) was critically failing on the Atom feed. It was slurring posts together once it saw that an ampersand was not escaped.
Relevant versions:
Blog spam count: 2007-08
Monday, September 3rd, 2007Sorry I'm late with this. Here we go.
Spam comments blocked by Negative Turing Test in August 2007 (and September 1–3):
17,837
Looks like last month's lull was temporary. They're ramping back up.

