June 2008

You are currently browsing the monthly archive for June 2008.

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…

Tags: ,