<?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"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>funksoulcoder</title>
	<atom:link href="http://funksoulcoder.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://funksoulcoder.wordpress.com</link>
	<description>there&#039;s beauty in them there bits</description>
	<lastBuildDate>Wed, 04 Nov 2009 10:45:26 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='funksoulcoder.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>funksoulcoder</title>
		<link>http://funksoulcoder.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://funksoulcoder.wordpress.com/osd.xml" title="funksoulcoder" />
	<atom:link rel='hub' href='http://funksoulcoder.wordpress.com/?pushpress=hub'/>
		<item>
		<title>problem quantisation</title>
		<link>http://funksoulcoder.wordpress.com/2009/10/20/problem-quantisation/</link>
		<comments>http://funksoulcoder.wordpress.com/2009/10/20/problem-quantisation/#comments</comments>
		<pubDate>Tue, 20 Oct 2009 00:17:21 +0000</pubDate>
		<dc:creator>andreb</dc:creator>
				<category><![CDATA[programming]]></category>
		<category><![CDATA[django]]></category>
		<category><![CDATA[mootools]]></category>
		<category><![CDATA[software development]]></category>
		<category><![CDATA[webdev]]></category>

		<guid isPermaLink="false">http://funksoulcoder.wordpress.com/?p=23</guid>
		<description><![CDATA[I think about this a lot. When I solve any problem through programming I always think about the generic problem I&#8217;m solving and when its sufficiently complex I try to break it down into a number of smaller, repeatable problems that have similar characteristics and can leverage much common code. I&#8217;m currently trying to implement my my [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=funksoulcoder.wordpress.com&amp;blog=9657506&amp;post=23&amp;subd=funksoulcoder&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I think about this a lot.</p>
<p>When I solve any problem through programming I always think about the generic problem I&#8217;m solving and when its sufficiently complex I try to break it down into a number of smaller, repeatable problems that have similar characteristics and can leverage much common code.</p>
<p>I&#8217;m currently trying to implement my my current big framework on top of <a title="Django" href="http://www.djangoproject.com/" target="_self">Django</a>. It&#8217;s an interesting project &#8211; it does set things up to be nice and easy. However I have concerns about how it decomposes problems.</p>
<p>Basically its metaphor for subdividing a web-site is to decompose it into a number of applications. An application is something that, in general, will have the following properties:</p>
<ol>
<li>A URL schema (nominally defined in a urls.py)</li>
<li>A set of models that describe a set of Active Records that map onto an SQL database schema.</li>
<li>A set of views. These are basically functions that handle web requests are specific URLs.</li>
<li>A set of templates. Using Django&#8217;s template language.</li>
</ol>
<p>Now, this is a fine set of things to provide. However I feel there are a number of problems with Django&#8217;s approach for anything that is not just a simple &#8220;helloworld&#8221; style project. Even as a novice with Web Development I ran into limitations pretty quickly (though I should point out that I have about 10 years experience with other software domains &#8211; specifically embedded C++ development tools).</p>
<p>The limitations that I see are as follows:</p>
<ol>
<li><strong>Lots of Magic.<br />
</strong>My feeling is that there is a lot of magic that Django does behind the scenes to register classes via Meta-Classes and automagically do  lots of stuff for you. It is not always clear what this stuff is and how it might interact with other non-Django code.  Its a opaque magic. I feel to some extent it violates Python&#8217;s &#8220;better to be explicit than implicit&#8221; philosophy.</li>
<li><strong>Very Web 1.0. </strong>So much of the standard infrastructure is based around a very old stylee web where you view-edit-submit changes. And this process takes you through a series of different web pages. This is quite frustrating.</li>
<li><strong>SQL need only apply. </strong>All the model classes are all based around the central notion of an SQL database. Whilst this is good for small projects if you need any kind of scalability then its not so good.<br />
Interestingly in a <a title="Django and Google App Engine" href="http://sites.google.com/site/io/rapid-development-with-python-django-and-google-app-engine" target="_self">talk at Google I/O Guido van Rossum</a> talks about this limitation.  It basically means you can&#8217;t use any of the &#8220;automated&#8221; Admin style functionality that Django provides.</li>
<li><strong>Implicit Dependencies</strong>.<br />
The dependency structure of Django Applications is implicit in the Python code that comprises your application. To discover all the dependencies of your app you will have to trawl though all your code to figure out what they are.</li>
<li><strong>Fuzzy Deployment Boundaries. </strong>I feel that the boundaries between development and deployment are purposefully made fuzzy via the django-admin and management tools (manage.py) that you&#8217;re supposed to use when using Django.</li>
<li><strong>Untestable. </strong>I don&#8217;t feel that Django Apps are very testable. If we move beyond the Web 1.0 then any reasonably sophisticated application will have a bunch of JavaScript, template files and a set of Django files to provide the Python based functionality. Not to mention default CSS, images and other static content as necessary. I think the conventions for storing templates and such like along with the app are not very strong with Django.</li>
</ol>
<p>So its getting late.</p>
<p>The reason I wanted to get to this phase is that I think there is a better alternative approach to doing this.</p>
<p>Some thinking:</p>
<ul>
<li>We re-use the idea as used in Trac for having Extension points and clear &#8220;kernel&#8221; of functionality to make explicit some of the Magic that the framework is doing behind the scenes. This is a common design pattern and is especially useful when we need to be able to extend a system dynamically. (obviously really, given the name).</li>
<li>We strengthen the concept of an application and turn it more into something that is self-contained and can be built, tested and deployed on its own.</li>
<li>We provide clear separation between build, composition and deployment phases of a application creation. These are analogous to what would be Compilation, Linking and Loading in C or C++.</li>
<li>We provide a framework for implementing Web 2.0 style applications. My current feeling is that this should be based around Panels at both client and server ends. At the client, panels will be presented to users that show data and allow that data to be edited. Meanwhile, server side a &#8220;panel API&#8221; will provide support for the panel &#8211; including doing things like validating form data and sending errors back to the client, help with scrolling through large data sets, in-line tabular editing, AJAX based auto-complete support etc.</li>
<li>AJAX functionality provided by <a title="MooTools Homepage" href="http://mootools.net/" target="_self">MooTools</a>.</li>
<li>Testability &#8211; there should be in-built support for doing client-side unit tests of JavaScript functionality, of server-side API functionality as well as the integration of both into a coherent whole.</li>
</ul>
<p>I will follow this up later this week with more information about what I&#8217;ve protyped and how I intend to proceed.  But the crux is that ultimately I don&#8217;t feel that the Django &#8220;application&#8221; is  particularly useful abstraction in breaking down a sophisticated web site. Lets hope I can come up with something better!</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/funksoulcoder.wordpress.com/23/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/funksoulcoder.wordpress.com/23/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/funksoulcoder.wordpress.com/23/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/funksoulcoder.wordpress.com/23/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/funksoulcoder.wordpress.com/23/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/funksoulcoder.wordpress.com/23/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/funksoulcoder.wordpress.com/23/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/funksoulcoder.wordpress.com/23/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/funksoulcoder.wordpress.com/23/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/funksoulcoder.wordpress.com/23/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/funksoulcoder.wordpress.com/23/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/funksoulcoder.wordpress.com/23/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/funksoulcoder.wordpress.com/23/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/funksoulcoder.wordpress.com/23/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=funksoulcoder.wordpress.com&amp;blog=9657506&amp;post=23&amp;subd=funksoulcoder&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://funksoulcoder.wordpress.com/2009/10/20/problem-quantisation/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/351f313b7de094585b0bf44762d85790?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">fusoco</media:title>
		</media:content>
	</item>
		<item>
		<title>stag dos, illness and petri dishes</title>
		<link>http://funksoulcoder.wordpress.com/2009/10/20/stag-dos-illness-and-petri-dishes/</link>
		<comments>http://funksoulcoder.wordpress.com/2009/10/20/stag-dos-illness-and-petri-dishes/#comments</comments>
		<pubDate>Mon, 19 Oct 2009 23:35:25 +0000</pubDate>
		<dc:creator>andreb</dc:creator>
				<category><![CDATA[personal]]></category>
		<category><![CDATA[life]]></category>
		<category><![CDATA[social]]></category>

		<guid isPermaLink="false">http://funksoulcoder.wordpress.com/?p=17</guid>
		<description><![CDATA[been a funny old week and a bit. I&#8217;ve basically been ill for the most part. I attended a friends stag do in London on the weekend of the 13th &#8211; ended up getting absolutely trashed and lost my jumper in Spearming Rhinos &#8211; classy! After we left another club I ended up detaching from [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=funksoulcoder.wordpress.com&amp;blog=9657506&amp;post=17&amp;subd=funksoulcoder&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>been a funny old week and a bit.</p>
<p>I&#8217;ve basically been ill for the most part. I attended a friends stag do in London on the weekend of the 13th &#8211; ended up getting absolutely trashed and lost my jumper in Spearming Rhinos &#8211; classy!</p>
<p>After we left <em>another</em> club I ended up detaching from my friends and walking back to Paddington to catch the train back home. Needless to say Autumn is here and Summer is a truly distant memory. I froze my arse off waiting for the train.</p>
<p>On Sunday I think my lousy feeling was 100% hangover but on Monday when I woke up I felt like crap again. I attributed this to a prolonged hangover but by the end of the day realised I was actually coming down with a bad cold or a light flu.</p>
<p>So felt like crap for the rest of the week. Only just about started to feel normal again on Thursday and Friday, by which time I had to go down and visit an old friend from University.</p>
<p>I was concerned about being ill and around his daughter and pregnant wife and was re-assured it wasn&#8217;t going to be a problem as long as it wasn&#8217;t swine flu. I needn&#8217;t have worried. Through nursery, which as far as I can tell are just big snot exchanges, kids are basically just giant petri dishes/medical centrifuges where new forms of disease are evolved. I left my friends on the Sunday feeling worse than when I came! Late sunday was a complete write off as was most of Monday.</p>
<p>Anyway, its early in the morning on Tuesday now and at last I&#8217;m feeling much better &#8211; although I have a bit of a lingering cough.</p>
<p><em>Should</em> be in reasonably form for my friend, Antony, who is coming tomorrow to help me with the planning for my big project. We&#8217;ll see how it goes. Hopefully I won&#8217;t be ill too many more times this winter. Must get work done!</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/funksoulcoder.wordpress.com/17/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/funksoulcoder.wordpress.com/17/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/funksoulcoder.wordpress.com/17/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/funksoulcoder.wordpress.com/17/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/funksoulcoder.wordpress.com/17/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/funksoulcoder.wordpress.com/17/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/funksoulcoder.wordpress.com/17/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/funksoulcoder.wordpress.com/17/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/funksoulcoder.wordpress.com/17/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/funksoulcoder.wordpress.com/17/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/funksoulcoder.wordpress.com/17/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/funksoulcoder.wordpress.com/17/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/funksoulcoder.wordpress.com/17/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/funksoulcoder.wordpress.com/17/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=funksoulcoder.wordpress.com&amp;blog=9657506&amp;post=17&amp;subd=funksoulcoder&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://funksoulcoder.wordpress.com/2009/10/20/stag-dos-illness-and-petri-dishes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/351f313b7de094585b0bf44762d85790?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">fusoco</media:title>
		</media:content>
	</item>
		<item>
		<title>welcome</title>
		<link>http://funksoulcoder.wordpress.com/2009/09/26/welcome/</link>
		<comments>http://funksoulcoder.wordpress.com/2009/09/26/welcome/#comments</comments>
		<pubDate>Sat, 26 Sep 2009 01:42:23 +0000</pubDate>
		<dc:creator>andreb</dc:creator>
				<category><![CDATA[meta]]></category>

		<guid isPermaLink="false">http://funksoulcoder.wordpress.com/?p=3</guid>
		<description><![CDATA[I think this is the 3rd attempt to start a blog. I&#8217;m very much hoping that, this time round, it will be a litlte bit more successful than my previous attempts. Why do I think that will be the case? Well I have a cool name for it obviously! The other blog names I had [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=funksoulcoder.wordpress.com&amp;blog=9657506&amp;post=3&amp;subd=funksoulcoder&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I think this is the 3rd attempt to start a blog. I&#8217;m very much hoping that, this time round, it will be a litlte bit more successful than my previous attempts.</p>
<p>Why do I think that will be the case? Well I have a cool name for it obviously! The other blog names I had I could never quite get behind, but I&#8217;m happy with funksoulcoder. It is going to become the basis of my entire online presence.</p>
<p>My username is thus fusoco &#8211; thats <strong>fu</strong>nk <strong>so</strong>ul <strong>co</strong>der get it? You&#8217;re obviously not that dumb and it not really such a hard concept to grasp.</p>
<p>Anyway, I&#8217;m normally pretty reluctant to expose myself (in a figurative, show people my work kind of a way, <strong>not </strong>hang around in a bush late at night waiting to scare people&#8230;) so I thought I&#8217;d give the 100% anonymous thing a try and see what impact that has.</p>
<p>The hidden story there is that my reluctance to put my ideas out there in public is a big cause of procrastination. As soon as I know something that I&#8217;ve written is going ot be seen by even 1 person I tend to put off completion of that thing so as to avoid potential criticism. Yes, its a bit pathetic, and not really very &#8220;Web 2.0&#8243;but work with me here&#8230;I shall overcome!</p>
<p>So, what will I discuss then, I don&#8217;t know &#8211; pretty much anything I think, but probably related to politics, computer science, programming and thoughts on the future &#8211; I&#8217;d love to be a futurologist! Someone who just makes shit up about the future &#8211; what a job! T</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/funksoulcoder.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/funksoulcoder.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/funksoulcoder.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/funksoulcoder.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/funksoulcoder.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/funksoulcoder.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/funksoulcoder.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/funksoulcoder.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/funksoulcoder.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/funksoulcoder.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/funksoulcoder.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/funksoulcoder.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/funksoulcoder.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/funksoulcoder.wordpress.com/3/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=funksoulcoder.wordpress.com&amp;blog=9657506&amp;post=3&amp;subd=funksoulcoder&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://funksoulcoder.wordpress.com/2009/09/26/welcome/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/351f313b7de094585b0bf44762d85790?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">fusoco</media:title>
		</media:content>
	</item>
	</channel>
</rss>
