So Nine Inch Nails has released a new album. So what? I don’t usually keep track of, let alone care, of such things, but this one caught my attention. They’re releasing it from their site, with options from a $5 download (for all 36 songs) in a variety of DRM-free formats (including Flac) to a $300 limited edition boxed set, including vinyl, signed by Trent Reznor (which considering the traffic load is likely sold out by now). And yet more interestingly, one of the options is all of Ghost I, DRM-free, in mp3, for free. Not only that, but there’s even an official torrent for it at The Pirate Bay. You can guess what I’m going to be Scrobbling for a while now.
About the albums, from the site:
Nine Inch Nails presents Ghosts I – IV, a brand new 36 track instrumental collection available right now. Almost two hours of new music composed and recorded over an intense ten week period last fall, Ghosts I – IV sprawls Nine Inch Nails across a variety of new terrain.
Trent Reznor explains, “I’ve been considering and wanting to make this kind of record for years, but by its very nature it wouldn’t have made sense until this point. This collection of music is the result of working from a very visual perspective – dressing imagined locations and scenarios with sound and texture; a soundtrack for daydreams. I’m very pleased with the result and the ability to present it directly to you without interference. I hope you enjoy the first four volumes of Ghosts.”
See also the discussion at Slashdot.
So as I’m learning Common Lisp, as I usually do in a new language, I decide to write an IRC bot. It has been quite an interesting experience. Having had the general framework figured out I started to make it actually do some things, google searches, quotes, etc…
I also recently set up a last.fm account and had nothing better to do on New Year’s Eve, so I thought it would be nifty if I had my bot interact with last.fm in some way, and I found a handy library to do just that, cl-audioscrobbler.
But it always set the time the song played to 6 hours before I actually played it. It was easy to figure out what was going wrong, given I’m in CST, or UTC-6. Last.fm’s API specifies: “UTC date/time in YYYY-MM-DD hh:mm:ss format”. cl-audioscrobbler was sending my *local* time.
So I found the bit of code that figures out what time it is in src/tools.lisp, and naively tried to simply add 6 hours to whatever it produced. Naturally, that didn’t work out so well, and I wound up with something that kinda sorta worked but was hugely complicated and ugly. Then I found the un-braindead way to do it.
Change (get-decoded-time) to (decode-universal-time (get-universal-time) 0)
It’s not much, and chances are cl-audioscrobbler’s author has already found and fixed this (it was obvious looking at the sources that 1.2 support was already well underway), but I sent him a quick note about it anyway.
But it was the first bug in Lisp I’ve ever fixed that wasn’t in my own code, so I’m still pretty happy about it.
Update: As of 2008/01/08 this is fixed with the 0.3.1 release. Thanks to Nicolas Lamirault for accepting my first ever Lisp patch =)