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.
It was only a matter of time before the iPhone private SDK was cracked, and it looks as if that matter of time is Up. This news is exciting to me as an iPhone user, but also as a programmer. Assuming Apple doesn't patch this, which is a fairly large assumption, the UIKit will just continue to get more and more community documentation, and get easier and easier to work with. There are so many little apps that I want to see, (...for example, a voice record app!) that no bad can come out of this development.
About django_simpleaggregation: Well, one person responded on the mailing list, but that's it. I guess I hoped to get more of a response, given all of the work that went into the documentation and tutorial for it. In hindsight, I should have posted it to both the django-users and the django-developers mailing lists, instead of just the one for developers. But that's not really an option either, as you look like a jerk for crossposting. In any case, I'm sure people will stumble upon it and find it useful.
Google analytics rocks, by the way. I installed it for this site just a few days ago and am amazed by how polished and easy to use it is for a free site. It would be nice to get more frequent updates on the metrics, but hey, it's free! Not only is it good for figuring out where your traffic is coming from (mine is coming from Europe, mostly), but its good for finding out what people are looking at. In my case, embarrassingly enough, people are looking at that old unfinished django gallery app tutorial.
Besides all of this geeky stuff that this blog is usually about, I've recently started watching the BBC-produced TV show Jekyll. It sounds like a terrible idea for a series, and maybe it is, but it's got me hooked. There's something intrinsically great about a story where one is constantly learning/discovering.
Think about the first time you saw the first Matrix movie, and they started explaining what the Matrix was, or in Memento when you finally started getting the necessary information to piece everything together, or even in The Usual Suspects, when you find out about Kaiser Sose. It's the same thing with every episode of Jekyll. The first episode, you know just a tiny sliver of information about the overall story, and as they reveal more information, what you automatically assumed ended up being wrong.
I have just released version 0.1 of a spinoff project I did today. I've been working on a side project which I'm not ready to talk about yet, and one of the things that I have consistently needed was simple aggregation on Django models. Nothing complicated like what we'll start to see with the new aggregation framework, but just simple things like counts on objects based on the uniqueness of certain fields of a model.
So check that out: Here I'd really appreciate any feedback or comments you can give me.
So, that actually took quite a bit of time an energy to write, document, create a google project, package and upload, etc. More time than I would have liked, but if it helps even one person, then it's worth it.
In other news, I have tried out mod_wsgi for Python and hosting my Django stuff, and WOW I must say that I'm quite impressed. I haven't done any formal testing on it like Graham Dumpleton, the creator, has done, but from my own informal observations I've noticed a good bump up in the snappiness of the app that I'm working on.
I just found a designer! And it's one of those guys that is way too high-profile for my budget, but he's interested in my idea!
WOOHOO!
For the past month or so, in my free time I've been working on a potentially very profitable/successful idea. I've had this idea for years, and have waited for someone else to do it, but nobody did. This summer seemed like the perfect time to realize this idea, and to see just how far I could go with it. There have been challenges in writing the back end for it so far, that much is certain, but by far most of my time has been spent looking for a designer.
I realized almost immediately that my design skills are not adequate to realize my idea in any decent way, so one of the first things that I decided was that I would need to enlist the help of a designer. I have a budget of no more than $1000, so it should be fairly easy to find a decent if not good designer, right? Wrong! I never could have imagined that finding a designer would be so hard!
My first tactic was to email the guy who created inviteshare.com, because I like that design a lot and think he's a budding web designer who just needs to be discovered. He responded, seemingly interested, and as soon as I presented my entire idea he was gone. I'm actually fairly suspicious that he'll try and implement it himself, effectively stealing it from me. But judging from his previous development work, I don't think I have too much to worry about.
My second tactic was to troll at a community for web designers/developers, like sitepoint.com, and look for potential candidates there. One can not appreciate just how many AWFUL designers there are out there, until they visit the critique section of sitepoint. And it's the same for all the designer web forums. For the most part, the good designers don't go there while the bad ones go there to get help from the other bad designers.
My third tactic was to scour blogs of the truly great designers, and look at the comments.
...along with the best agencies:
...and so on and so forth for about 30 of the best of the best designers and agencies.
I would look at who posted comments and go to their websites, but even those people--fans of the best--are way too high-profile for my price range.
Right now, I'm not really sure whether to get some books and try and teach myself the principles of design, or to try and earn some more money, or to simply keep scouring the net for that budding designer that's willing to work for me for a reasonable price.
It'll be extremely interesting to see what ends up happening in the coming months.
All Content

