An Update In A Tag Cloud »

I’ve been hard at work on an almost complete re-write of the DJ Edna codebase. The original version of DJ Edna was written mainly as a way to learn Django and to scratch an itch of mine that I’ve had for as long as there have been MP3s — to create my own jukebox to securely access my entire music collection from any browser in the world. It wasn’t until I was almost done with that personal project that I hit upon the idea of opening up the code and using it to build digital music distribution sites for artists. Although I was able to finagle the code to work well for this new use, there were some ugly kluges and late decisions that necessitated a rewrite of the core package, djedna.catalog. Thus, my work on djedna.catalog2 began.

Here is a tag cloud that I created from the djedna.catalog2.models file using the very cool website, wordle:

djedna.catalog2.models tagcloud

Yes, that’s from the actual source code and yes, I’m a big geek. So, what do all these occurrences of “self” and “path” and “relative” get us? Here’s a list of new features that catalog2 will bring to the table when completed:

  • Artist interface (to go along with the existing Fan and Admin interfaces) to allow track uploads, simplified meta-information editing, and music e-commerce workflows.
  • Django Sites support to allow record labels to administer many individual artist sites from a single interface.
  • The ability to add arbitrary “digital assets” like images, PDFs, or any other file to downloads. Downloads in the previous version would only contain the tracks.
  • Support for WAV files in addition to MP3 including the ability to attach multiple versions to a Track.
  • Amazon S3 support for storing and serving media.
  • Full separation of functionality from presentation in order to make DJ Edna a fully plugable Django application.
  • Brand new default interface/design (or “theme”) called Marlowe.

That list of improvements is just off the top of my head. There’s a lot of little improvements going into this re-write that I’m sure I’m overlooking.

That’s the good news. There’s a boatload of new, highly requested features

The bad news is it’s taking much longer than I had anticipated (apologies to those that are waiting patiently for me to complete this before starting on their implementations under the djedna.com umbrella — you know who you are). This shouldn’t come as a surprise to anyone with development experience. Coding always takes longer than you think — even when you think it’ll take longer than you think. Yes, that’s recursion and yes, I’m a big geek.

Although I’ve completed most of the low level coding for the re-write (with some exceptions), I’ve been avoiding starting on Marlowe, the new default “theme”. That’s because HTML/CSS design is not my strong suit. If it’s your cup of tea and you’d be interested in helping out (Django experience/knowledge is not required), send an e-mail to thomas@djedna.org.

Back to the code…

MinneBar Postmortem »

I gave a somewhat rambling presentation about the DJ Edna project and developing with Django at MinneBar last Saturday. It went off mostly without a hitch, including the to-be-expected demonstration error. I had neglected to test the sign-up functionality on my laptop before the demo and, of course, that’s what everyone wanted to see. Instead, they saw a Django error/debug page (which, in and of itself, is kinda cool to look at — it’s one of Django’s nice-to-have out-of-the-box features).

“Can’t assign requested address”

Had I actually tested registration on the laptop (as opposed to only on my main development machine) I’d have discovered that it was not configured to send outgoing e-mail, such as when you sign-up for a new account. Doh! And the error message “Can’t assign requested address” threw me too. Luckily, it was the end of the session so I was able to graciously get out of it, but for those of you that were there, that’s what the error was.

That’s it for my postmortem comments. Back to the code for me. If you were at MinneBar and happened to see me present, feel free to leave a comment or ask any follow-up questions on this post.

Also remember that you can follow DJ Edna progress on the project timeline or check out the roadmap of where the project is headed.

MinneBar 08 Schedule »

It was released last night. I go on at 11:00 in room 324. See you Saturday.

Updated Project Milestones: In Anticipation Of Nessman »

I took some time away from coding this morning to work on the DJ Edna Project Trac. I configured it to use Askimet spam filtering so I could re-enable anonymous ticket creation after a flood of “spam tickets” forced me to turn it off a week ago.

Since I was in a Trac mood, I went ahead and began to set up project milestones and some tickets to outline what needs to be done to reach them.

If you’re waiting for the code to hit a stable point, you might want to subscribe to the active ticket RSS feed to know when we hit our first major release, “Nessman”. Of course, chances are that when that happens, there will be an excited post here on the blog too.

If you just want to try things out, there’s no need to wait for Nessman. In fact, the installation instructions have been greatly simplified so feel free to dive in, the water is warm. And if you do happen to hit any snags along the way, you can always ask questions on the DJ Edna Users Group or submit a ticket.

MinneBar »

I’ll be giving my DJ Edna and Django presentation at the next MinneBar BarCamp on Saturday, May 10th, 2008. So, for those of you that didn’t brave the snowstorm to see me give the presentation (for the first time) at the March 2008 Ruby Users of Minnesota meeting, this is your chance.

This will be my first BarCamp and I’m excited to see what all my developer friends have been raving about.