<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	>

<channel>
	<title>djedna.org &#187; architecture</title>
	<atom:link href="http://www.djedna.org/blog/tag/architecture/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.djedna.org/blog</link>
	<description>Software For The Rockstar's Geek Friend</description>
	<pubDate>Thu, 28 Aug 2008 14:36:18 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6</generator>
	<language>en</language>
	<image>
  <link>http://www.djedna.org/blog</link>
  <url>http://www.djedna.org/blog/favicon.ico</url>
  <title>djedna.org</title>
</image>
		<item>
		<title>An Update In A Tag Cloud</title>
		<link>http://www.djedna.org/blog/2008/06/23/an-update-in-a-tag-cloud/</link>
		<comments>http://www.djedna.org/blog/2008/06/23/an-update-in-a-tag-cloud/#comments</comments>
		<pubDate>Mon, 23 Jun 2008 19:30:57 +0000</pubDate>
		<dc:creator>thomas</dc:creator>
		
		<category><![CDATA[architecture]]></category>

		<category><![CDATA[dj edna project]]></category>

		<guid isPermaLink="false">http://www.djedna.org/blog/2008/06/23/an-update-in-a-tag-cloud/</guid>
		<description><![CDATA[I&#8217;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&#8217;ve had for as long as there have been MP3s &#8212; to create my own jukebox [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;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&#8217;ve had for as long as there have been MP3s &#8212; to create my <a href="http://djedna.gumption.com/" onclick="javascript:pageTracker._trackPageview('/outbound/article/djedna.gumption.com');">own jukebox</a> to securely access my entire music collection from any browser in the world.  It wasn&#8217;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, <a href="http://djedna.org/project/browser/trunk/djedna/catalog" ><code>djedna.catalog</code></a>.  Thus, my work on <a href="http://djedna.org/project/browser/trunk/djedna/catalog2" ><code>djedna.catalog2</code></a> began.</p>
<p>Here is a tag cloud that I created from the <a href="http://djedna.org/project/browser/trunk/djedna/catalog2/models.py" ><code>djedna.catalog2.models</code></a> file using the very cool website, <a href="http://wordle.net/" onclick="javascript:pageTracker._trackPageview('/outbound/article/wordle.net');">wordle</a>:</p>
<p><a href='http://www.djedna.org/blog/wp-content/uploads/2008/06/catalog2-tagcloud.png' title='djedna.catalog2.models tagcloud'><img src='http://www.djedna.org/blog/wp-content/uploads/2008/06/catalog2-tagcloud.png' alt='djedna.catalog2.models tagcloud' width="500" /></a></p>
<p>Yes, that&#8217;s from the actual source code and yes, I&#8217;m a big geek.  So, what do all these occurrences of &#8220;self&#8221; and &#8220;path&#8221; and &#8220;relative&#8221; get us?  Here&#8217;s a list of new features that <code>catalog2</code> will bring to the table when completed:</p>
<ul>
<li>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.</li>
<li><a href="http://www.djangoproject.com/documentation/sites/" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.djangoproject.com');">Django Sites</a> support to allow record labels to administer many individual artist sites from a single interface.</li>
<li>The ability to add arbitrary &#8220;digital assets&#8221; like images, PDFs, or any other file to downloads.  Downloads in the previous version would only contain the tracks.</li>
<li>Support for WAV files in addition to MP3 including the ability to attach multiple versions to a Track.</li>
<li><a href="http://aws.amazon.com/s3" onclick="javascript:pageTracker._trackPageview('/outbound/article/aws.amazon.com');">Amazon S3</a> support for storing and serving media.</li>
<li>Full separation of functionality from presentation in order to make DJ Edna a fully <a href="http://djangoplugables.com/" onclick="javascript:pageTracker._trackPageview('/outbound/article/djangoplugables.com');">plugable Django application</a>.</li>
<li>Brand new default interface/design (or &#8220;theme&#8221;) called <a href="http://en.wikipedia.org/wiki/Jennifer_Marlowe" onclick="javascript:pageTracker._trackPageview('/outbound/article/en.wikipedia.org');">Marlowe</a>.</li>
</ul>
<p>That list of improvements is just off the top of my head.  There&#8217;s a lot of little improvements going into this re-write that I&#8217;m sure I&#8217;m overlooking.</p>
<p>That&#8217;s the good news.  There&#8217;s a boatload of new, highly requested features</p>
<p>The bad news is it&#8217;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 <a href="http://www.djedna.com/" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.djedna.com');">djedna.com</a> umbrella &#8212; you know who you are).  This shouldn&#8217;t come as a surprise to anyone with development experience.  Coding always takes longer than you think &#8212; even when you think it&#8217;ll take longer than you think.  Yes, that&#8217;s recursion and yes, I&#8217;m a big geek.</p>
<p>Although I&#8217;ve completed most of the low level coding for the re-write (with some exceptions), I&#8217;ve been avoiding starting on Marlowe, the new default &#8220;theme&#8221;.  That&#8217;s because HTML/CSS design is not my strong suit.  If it&#8217;s your cup of tea and you&#8217;d be interested in helping out (Django experience/knowledge is <em>not</em> required), send an e-mail to <a href="mailto:thomas@djedna.org">thomas@djedna.org</a>.</p>
<p>Back to the code&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.djedna.org/blog/2008/06/23/an-update-in-a-tag-cloud/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Development Updates</title>
		<link>http://www.djedna.org/blog/2008/04/21/development-updates/</link>
		<comments>http://www.djedna.org/blog/2008/04/21/development-updates/#comments</comments>
		<pubDate>Mon, 21 Apr 2008 14:38:46 +0000</pubDate>
		<dc:creator>thomas</dc:creator>
		
		<category><![CDATA[architecture]]></category>

		<category><![CDATA[dj edna project]]></category>

		<guid isPermaLink="false">http://www.djedna.org/blog/2008/04/21/development-updates/</guid>
		<description><![CDATA[It&#8217;s been a while since I updated everyone on the status of the DJ Edna project source.  I&#8217;ve been working on significantly streamlining the installation process and performing a refactoring that will make it easier to incorporate DJ Edna functionality into existing Django sites.   I&#8217;ve also been working on adding Satchmo integration [...]]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s been a while since I updated everyone on the status of the DJ Edna project source.  I&#8217;ve been working on significantly streamlining the installation process and performing a refactoring that will make it easier to incorporate DJ Edna functionality into existing <a href="http://www.djangoproject.com" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.djangoproject.com');" title="Django Project">Django</a> sites.   I&#8217;ve also been working on adding <a href="http://www.satchmoproject.com/" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.satchmoproject.com');" title="Satchmo Project">Satchmo</a> integration to provide e-commerce functionality for digital products <em>and</em> physical merchandise.  One of the great things about the Satchmo Project is that it comes out of the box with rich support for selling physical items (e.g. t-shirts) including shipping and tax calculations, invoices, shipping labels, product variations (e.g t-shirt sizes/colors), multiple payment processors, gift certificates, and discount codes.  I only had to add support for purchasing DJ Edna digital access permits (i.e. the access you currently get when you redeem a code) which, after a couple of weeks of digging through the Satchmo source code, was easier than I thought it would be.</p>
<p>But e-commerce integration isn&#8217;t complete yet.  While modifying the default Satchmo templates to allow for &#8220;Permit Products,&#8221; it became clear that the existing DJ Edna views and templates were getting a little long in the tooth.  So, like any over-ambitious software architect, I&#8217;ve begun a brand new set of views and templates that will correct many of the deficiencies and properly separate the core functionality of the DJ Edna catalog system from presentation-level functionality.  This should make creating custom DJ Edna installs even easier.</p>
<p>Finally, when this work is complete, I&#8217;ll begin a refactoring of the core catalog models paying special attention to breaking out expensive operations (i.e. scanning a catalog for new tracks) into non-web processes connected to the webapp via a persistent work queue. This should pave the way for a simplified track upload process.</p>
<p>Once all that work is complete, I&#8217;ll be tempted to tag a 1.0 release and move on to some more exciting functionality focused around creating and keeping <a href="http://www.kk.org/thetechnium/archives/2008/03/1000_true_fans.php" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.kk.org');" title="1000 True Fans">True Fans</a>.  More on that in a future post as the current refactoring projects come to a close.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.djedna.org/blog/2008/04/21/development-updates/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
