Posted on Aug. 7, 2007 at MIDNIGHT

Sphinx Search ROCKS! I'm pretty sure it'll be the solution to my MusicBrainz problems for my secret project. I'm going to set up a simple postgres server holding the MusicBrainz database, with Sphinx Search installed, and have it index on a cron. It'll be awesome! After trying out Lucene and its derivatives and being so underwhelmed, it's exciting to discover an app that truly seems to rock. I'll report back on it later, but right now the indexer is 4 million queries into a 60 million query index. Yeah, it's going to be a while.

I've been wanting to test drive two new technologies this past week, the first is Blueprint, the CSS Framework which I saw on Digg a few days ago. I also really wanted to try some new stuff with FreeComments, including saving people's login information in the session. I'm messing with both of those things in a side-side project related to The Totally Rad Show which I think promises to be really fun. I've spent only a couple of hours on it, but I think it's going to be probably my first project that people end up using.

So, Stick Tuned for a fun announcement from me in the next week or 2 weeks at the latest. (The problem with this project is there's lots of data to enter which will take time.)

That's it for today, a short and sweet entry into this blog-o-rama.


Posted on July 31, 2007 at 10:29 P.M.

I don't know how Google manages to do it! They've linked music track/artist/album to online music vendors, a deceivingly simple-sounding task which has been the bane of my existence for the last two weeks.

Let's start with two of the big players:

iTunes

iTunes has a terrible API: You go to iTunes Link Maker and type in the keywords of your choice. You can come up with a programmatic way to access this but it involves parsing invalid HTML.

Amazon

Amazon's API is a good programmatic interface to its own internal service, but unfortunately that service is TERRIBLE. Take this, for example: a CD from a wonderful band called Rodrigo y Gabriela. One of the songs on it is named "Ixtapa", so let's do a search for "Ixtapa Rodrigo y Gabriela." Makes sense, right? Apparently not to Amazon's search. In fact, amazon's search really has no concept of the song. It's not something that they sell. Amazon knows all about album titles and artists, but not about the song itself. This renders it useless for linking song to vendor!

But what about open source?

MusicBrainz

So the next thing that I try is using MusicBrainz, an open source database of music metadata, which seems to have Amazon.com linking information built right in. However, reading through the wiki, for hours, and hours, and hours, is not fun. They have bits and pieces from all different times of the project's lifecycle, most of which is irrelevant. But after a while I find out that to get access to the web services, you either need to limit your requests to 1 per second (unacceptable in my case), or you have to set up your own MusicBrainz server. OK, let's do that!

Oh wait, they forgot to mention that it's the most rediculous dependency-ridden piece of bloatware ever. It's so bad that they don't even really have a guide on how to set it up--they've given up and just created a virtual machine for people to download. OK, well fine, let's download that and go from there. What's this? There's more setup? Apparently so, because I had to leave my computer to import data and compute indexes for 3 days straight.

Finally, finally, I am ready to start accessing that music -> amazon.com data, when I notice something: Non-Commercial license. After all of this, the AMAZON SPECIFIC PORTION ONLY is licensed differently, and I cannot use it. I am disappointed with this service, to say the least. MusicBrainz needs a major overhaul in its software dependencies (Hint: Use Python, it's got batteries included.) It also needs to take a serious look at its licensing scheme. If it can address these two things, it will be much further along in its goal to make a great community database.

Information has a long way to go. Music metadata and the ability to link to different music vendors should be ubiquitous and available in a standard way. Nobody is benefiting by putting a lock and key on this sort of data. The people who really lose, in the end, is the music vendors who get ultimately less sales. Hopefully someday soon they see the light, and fight to make this information accessible.


Search

 

Recent Links

  • git-issues: A distributed issue tracker built-in to Git.
  • I predicted this back in March--can't believe a solution has surfaced so soon. It makes so much sense to build in an issue tracker to a revision control system. Since you're working with the code, might as well track the issues in the same system and take advantage of the extra metadata. This is really cool (and as a bonus, it's written in Python) so I hope to see it really grow and flourish!

  • How I Work Daily
  • Daily blog by Kevin Fricovsky. In addition to having some really great content, he has started to post audio interviews with people from the Django community. This is a site to keep an eye on in the coming days and months.

  • django-arcade
  • Demo site for django-arcade, an open source reusable Django app to add new flash games to any django-powered site. Looks very cool for easily creating game portals. It also comes from my future employer.

  • Facebook Chat and Scalability (with Erlang)
  • Eugene Letuchy talks about how they they took Facebook Chat from no users to 70 million users, with the help of Erlang.

  • Simon Willison: The Implications of OpenID
  • I somehow missed this presentation when it came out, but it's an absolutely fantastic overview and defense of OpenID by Simon Willison. If you are in any way interested in what OpenID is and what it can offer, you owe it to yourself to check out this presentation.

  • StupidXML
  • Probably the simplest XML library that I've seen for Python. Sometimes you just want to generate some stupid XML, and this is the perfect tool for the job.

  • See the rest of my links...

Pownce

Badges

  • django badge
  • apache badge
  • GeoURL
  • XFN Friendly
  • Valid HTML 4.01 Transitional