<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="http://feeds.feedburner.com/~d/styles/rss2full.xsl" type="text/xsl" media="screen"?><?xml-stylesheet href="http://feeds.feedburner.com/~d/styles/itemcontent.css" type="text/css" media="screen"?><rss version="2.0"><channel><title>Playground Blues feed</title><link>http://playgroundblues.com/posts/</link><description>Playground Blues posts feed.</description><language>en-us</language><lastBuildDate>Wed, 06 Aug 2008 21:28:16 -0000</lastBuildDate><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/PlaygroundBlues" type="application/rss+xml" /><item><title>


  A Masterpiece by Massimo Vignelli
</title><link>http://greenfieldbelser.com/big_ideas/?NewsID=75</link><description>




  &lt;blockquote&gt;&lt;p&gt;I conclude that I am no longer a graphic designer, but an information architect, and from now on that is how I will describe the meaning of my work and the scope of my activity.
&lt;/p&gt;
&lt;/blockquote&gt;&lt;p&gt;Amen.
&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;For me, to be an information architect means to organize information in a way that is essentially retrievable, understandable, visually captivating, emotionally involving, and easily identifiable. Information should be semantically rooted, syntactically correct, pragmatically efficient. It doesn’t work otherwise.
&lt;/p&gt;
&lt;/blockquote&gt;&lt;p&gt;Amen.
&lt;/p&gt;
  
  &lt;p&gt;&lt;a href="/tumblelog/items/2617/"&gt;Comment&lt;/a&gt;&lt;/p&gt;
</description><pubDate>Wed, 06 Aug 2008 21:28:16 -0000</pubDate><guid>http://greenfieldbelser.com/big_ideas/?NewsID=75</guid></item><item><title>


  Vincent Bugliosi, who prosecuted Charles Manson, appears before the House Hearing on Limits of Executive Power.
</title><link>http://www.youtube.com/watch?v=GDAFozFn4kU</link><description>




  &lt;blockquote&gt;&lt;p&gt;On December 9, 1998 a previous House Judiciary committee issued four articles of impeachment against President Bill Clinton for doing something infinitely less significant than what the evidence shows the Bush Administration did in this case. Indeed it is a calumny, a slander of the highest rank to even talk about them in the same breadth on the same page.
&lt;/p&gt;
&lt;/blockquote&gt;&lt;p&gt;&lt;a href="http://www.youtube.com/watch?v=_T1ojrKhp6E"&gt;Robert Wexler of Florida&lt;/a&gt; has some passionate words as well: 
&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;Our government was founded by a delicate balance of powers, whereby one branch carefully checks the other branches to prevent a dangerous consolidation of power. The actions of this White House have eviscerated this careful balance. This is not a Democratic or Republican issue, this is an American issue. Without these checks and balances a president can run ruff-shot over any law with impunity. Congress must end this disturbing pattern of behavior.
&lt;/p&gt;
&lt;/blockquote&gt;
  
  &lt;p&gt;&lt;a href="/tumblelog/items/2578/"&gt;Comment&lt;/a&gt;&lt;/p&gt;
</description><pubDate>Sat, 26 Jul 2008 06:14:13 -0000</pubDate><guid>http://www.youtube.com/watch?v=GDAFozFn4kU</guid></item><item><title>


  Update to Playground Blues RSS feed.
</title><link>http://www.playgroundblues.com/</link><description>




  &lt;p&gt;I'm trying something new with my RSS feed. Most of you are subscribed to the 'posts' feed and I've decided to add what I'm calling long-form bookmarks. 
&lt;/p&gt;
&lt;p&gt;These bookmarks will only show up in the /posts/ feed and tumblelog. They will not show up in my Del.icio.us feed. 
&lt;/p&gt;
&lt;p&gt;Carry on.
&lt;/p&gt;
  
  &lt;p&gt;&lt;a href="/tumblelog/items/2575/"&gt;Comment&lt;/a&gt;&lt;/p&gt;
</description><pubDate>Sat, 26 Jul 2008 01:48:46 -0000</pubDate><guid>http://www.playgroundblues.com/</guid></item><item><title>
  Gadget fast


</title><link>http://playgroundblues.com/posts/2008/apr/18/gadget-fast/</link><description>


  &lt;p&gt;My iPhone and laptop will be unplugged starting Friday evening for two days. I&amp;#8217;ve let the fog of distractions generated by these two devices grow too thick so for the next few days (&lt;a href="http://www.nytimes.com/2008/04/15/world/asia/15beijing.html?ex=1365998400&amp;amp;en=dcf809d03fc3958e&amp;amp;ei=5124&amp;amp;partner=permalink&amp;amp;exprod=permalink"&gt;much like China&lt;/a&gt;) they&amp;#8217;ll be turned off. 
&lt;/p&gt;
&lt;p&gt;
  &lt;div class="jellyroll_photo"&gt;
    &lt;a href="http://www.flickr.com/photos/72897141@N00/2423256635/"&gt;&lt;img src="http://static.flickr.com/2052/2423256635_42a9945bc6_m.jpg" title="Gadget fast" alt="Flickr photo"&gt;&lt;/a&gt;
  &lt;/div&gt;

&lt;script type="text/javascript" src="http://www.playgroundblues.com/media/javascript/swfobject.js"&gt;&lt;/script&gt;
&lt;script type="text/javascript"&gt;
  var photo_gallery = new SWFObject("http://www.playgroundblues.com/media/flash/photo_gallery.swf", "photo_gallery_swf", "240", "220", "9", "#FFFFFF");
  photo_gallery.addParam('allowFullScreen', 'true');
  photo_gallery.addVariable('gallery_xml', '/photos/xml/?photos=')
	photo_gallery.write("photo_gallery");
&lt;/script&gt;
&lt;/p&gt;
&lt;p&gt;It doesn&amp;#8217;t stop there. The following week Twitter, Flickr, an my feed reader will be muted. I have nothing against these services, but it&amp;#8217;s time to step back and take the pulse of things around me and see if I&amp;#8217;m missing something. 
&lt;/p&gt;
&lt;p&gt;I used to do more gadget/service fasting and I&amp;#8217;m well over due. My plan is to do some brainstorming for a few projects currently on my plate and catch up on some reading, but more importantly, spend time with my girlfriend. 
&lt;/p&gt;
&lt;p&gt;See you all next week!
&lt;/p&gt;
  
  &lt;p&gt;&lt;a href="/posts/2008/apr/18/gadget-fast/"&gt;Comment&lt;/a&gt;&lt;/p&gt;


</description><pubDate>Fri, 18 Apr 2008 20:17:59 -0000</pubDate><guid>http://playgroundblues.com/posts/2008/apr/18/gadget-fast/</guid></item><item><title>
  Capistrano rules


</title><link>http://playgroundblues.com/posts/2008/mar/17/capistrano-rules/</link><description>


  &lt;p&gt;I&amp;#8217;ve grown tired of committing changes to my subversion repository, logging into my server, updating my live checkout, and restarting python processes. I finally decided to implement &lt;a href="http://www.capify.org/"&gt;Capistrano&lt;/a&gt; and eliminate this repetition. 
&lt;/p&gt;
&lt;p&gt;Here are my repetitive set of commands:
&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;$ ssh playgroundblues.com
$ cd ~/projects/playgroundblues
$ svn up
$ cd ~/www/playgroundblues.com/www
$ touch django.fcgi
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Now, with the help of Capistrano, I just type:
&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;$ cap deploy
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;You&amp;#8217;ll first need to &lt;a href="http://www.capify.org/install"&gt;install Capistrano&lt;/a&gt; which is as simple as &lt;code&gt;gem install -y capistrano&lt;/code&gt;. Once that&amp;#8217;s complete you need to create a &amp;#8220;capfile&amp;#8221; which is where you&amp;#8217;ll define your tasks:
&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;task :deploy, :hosts =&amp;gt; &amp;quot;username@playgroundblues.com&amp;quot; do
  run &amp;quot;cd ~/projects/playgroundblues; svn up; cd ~/www/playgroundblues.com/www/; touch django.fcgi&amp;quot;
end
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;The above will vary depending on your host and directory setup. After you save the above file and as long as you&amp;#8217;re in the directory where the capfile resides you can, in the terminal, type &lt;code&gt;cap deploy&lt;/code&gt; and Capistrano does the rest. Bliss.
&lt;/p&gt;
  
  &lt;p&gt;&lt;a href="/posts/2008/mar/17/capistrano-rules/"&gt;Comment&lt;/a&gt;&lt;/p&gt;


</description><pubDate>Tue, 18 Mar 2008 04:03:38 -0000</pubDate><guid>http://playgroundblues.com/posts/2008/mar/17/capistrano-rules/</guid></item><item><title>
  Aspen Simulator


</title><link>http://www.playgroundblues.com/posts/2008/mar/13/aspen-simulator/</link><description>


  &lt;p&gt;As much as I&amp;#8217;d like to blog about my trip to Austin and SXSW last week I&amp;#8217;m just too excited over the &lt;a href="http://developer.apple.com/iphone/program/"&gt;iPhone SDK&lt;/a&gt; goodies that dropped last Thursday. 
&lt;/p&gt;
&lt;p&gt;
  &lt;div class="jellyroll_photo"&gt;
    &lt;a href="http://www.flickr.com/photos/72897141@N00/2332111168/"&gt;&lt;img src="http://static.flickr.com/2273/2332111168_c7811d1e0e_m.jpg" title="Aspen Simulator" alt="Flickr photo"&gt;&lt;/a&gt;
  &lt;/div&gt;

&lt;script type="text/javascript" src="http://www.playgroundblues.com/media/javascript/swfobject.js"&gt;&lt;/script&gt;
&lt;script type="text/javascript"&gt;
  var photo_gallery = new SWFObject("http://www.playgroundblues.com/media/flash/photo_gallery.swf", "photo_gallery_swf", "240", "220", "9", "#FFFFFF");
  photo_gallery.addParam('allowFullScreen', 'true');
  photo_gallery.addVariable('gallery_xml', '/photos/xml/?photos=')
	photo_gallery.write("photo_gallery");
&lt;/script&gt;
&lt;/p&gt;
&lt;p&gt;You may be asking yourself, &amp;#8220;he&amp;#8217;s a web guy, why does he care?&amp;#8221; Well, there happens to be a beautiful gem tucked away called the Aspen Simulator.
&lt;/p&gt;
&lt;p&gt;This is a complete pixel and functionally perfect replica of the iPhone and it&amp;#8217;s fantastic for testing web apps. Before I was spending a lot of time back and forth between my iPhone and my desktop but since this thing is so identical I really don&amp;#8217;t have to own an iPhone (but I will anyway). 
&lt;/p&gt;
&lt;p&gt;It&amp;#8217;s a little hard to find, but after installing the &lt;a href="http://developer.apple.com/iphone/devcenter/"&gt;developer tools&lt;/a&gt; look under / Developer / Platforms / AspenSimulator.platform / Developer / Applications. 
&lt;/p&gt;
&lt;h3&gt;A few tricks&lt;/h3&gt;
&lt;p&gt;If you want to do a two finger zoom just hold down the option key while click dragging. You can also rotate the the phone by using the command key and right left arrows. To lock the phone press command L. Still try to figure out how to do a two finger scroll.
&lt;/p&gt;
  
  &lt;p&gt;&lt;a href="http://www.playgroundblues.com/posts/2008/mar/13/aspen-simulator/"&gt;Comment&lt;/a&gt;&lt;/p&gt;


</description><pubDate>Fri, 14 Mar 2008 02:36:39 -0000</pubDate><guid>http://www.playgroundblues.com/posts/2008/mar/13/aspen-simulator/</guid></item><item><title>
  Ah-ha Event Delegation


</title><link>http://www.playgroundblues.com/posts/2008/mar/5/ah-ha-event-delegation/</link><description>


  &lt;p&gt;Wrapping my head around things like OOP took months. It&amp;#8217;s not because I&amp;#8217;m an idiot (I don&amp;#8217;t think) - it&amp;#8217;s just because I needed all the explanations to marinate before having an ah-ha! moment. 
&lt;/p&gt;
&lt;p&gt;I had an ah-ha today, with regards to Event Delegation. I&amp;#8217;ve never seemed to completely understand events, yet I use them all the time. They&amp;#8217;re an essential aspect of Actionscript and Javascript and there are two basic ways of capturing events, Event Handling and Event Delegation. 
&lt;/p&gt;
&lt;p&gt;Most of us, whether we realize it or not, are familiar with Event Handling. Imagine we have an unordered list with a class name &lt;code&gt;.nav&lt;/code&gt; and each item has a link. For this example, I&amp;#8217;m going to use jQuery, so if you wanted to call a javascript function when the user clicks a link in the list, you&amp;#8217;d do the following:
&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;$('.nav a').each(function() {
    $(this).click(handleClick);
});

function handleClick(event) {
    // fun stuff goes here
}
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;If you&amp;#8217;re jQuery savvy, the above code should be familiar. We&amp;#8217;re looping over all the anchor tags within the unordered list and assigning the function &amp;#8220;handleClick&amp;#8221; to the click event. Each time someone clicks a link, &amp;#8220;handleClick&amp;#8221; is called and the anchor tag is in the function scope. This is Event Handling.
&lt;/p&gt;
&lt;p&gt;Event Delegation makes things a little simpler by eliminating the need to loop over every anchor tag. We simply apply the click event to the unordered list like so:
&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;$('.nav').click(handleClick);
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Since the click event is registered with the unordered list, it gets fired off when anything inside the list is clicked. The scope of the handleClick function is set to the &lt;code&gt;&amp;lt;ul&amp;gt;&lt;/code&gt; but if you want to target the anchor tag below the mouse click, you use &lt;a href="http://docs.jquery.com/Events_%28Guide%29#event.target"&gt;event.target&lt;/a&gt;. This is Event Delegation.
&lt;/p&gt;
&lt;p&gt;Both are very powerful but in most instances Event Delegation is going to require less code while boosting performance. Many thanks to &lt;a href="http://www.jacobian.org"&gt;Jacob&lt;/a&gt; for making this ah-ha moment possible.
&lt;/p&gt;
  
  &lt;p&gt;&lt;a href="http://www.playgroundblues.com/posts/2008/mar/5/ah-ha-event-delegation/"&gt;Comment&lt;/a&gt;&lt;/p&gt;


</description><pubDate>Thu, 06 Mar 2008 03:38:20 -0000</pubDate><guid>http://www.playgroundblues.com/posts/2008/mar/5/ah-ha-event-delegation/</guid></item><item><title>
  Going mobile


</title><link>http://www.playgroundblues.com/posts/2008/feb/18/going-mobile/</link><description>


  &lt;p&gt;
  &lt;div class="jellyroll_photo"&gt;
    &lt;a href="http://www.flickr.com/photos/72897141@N00/2276634164/"&gt;&lt;img src="http://static.flickr.com/2291/2276634164_cc599ccc10_m.jpg" title="Mobile Playground" alt="Flickr photo"&gt;&lt;/a&gt;
  &lt;/div&gt;

&lt;script type="text/javascript" src="http://www.playgroundblues.com/media/javascript/swfobject.js"&gt;&lt;/script&gt;
&lt;script type="text/javascript"&gt;
  var photo_gallery = new SWFObject("http://www.playgroundblues.com/media/flash/photo_gallery.swf", "photo_gallery_swf", "240", "220", "9", "#FFFFFF");
  photo_gallery.addParam('allowFullScreen', 'true');
  photo_gallery.addVariable('gallery_xml', '/photos/xml/?photos=')
	photo_gallery.write("photo_gallery");
&lt;/script&gt;
&lt;/p&gt;
&lt;p&gt;Over the weekend, I decided to whip up a mobile (iPhone) version of Playground Blues. I walked into Broadway Cafe around 3pm on Saturday, and by 5:30, I had &lt;a href="http://m.playgroundblues.com" title="Mobile playground"&gt;m.playgroundblues.com&lt;/a&gt;. Here&amp;#8217;s how it went down.
&lt;/p&gt;
&lt;h3&gt;Step 1&lt;/h3&gt;
&lt;p&gt;Since I&amp;#8217;m still using Dreamhost and FastCGI, I created my .htaccess file along with my dispatch.fcgi file for my new sub-domain as usual. Made one little change to my dispatch file: instead of having &lt;code&gt;DJANGO_SETTINGS_MODULE&lt;/code&gt; pointing to playgroundblues.settings, I pointed it to playgroundblues.settings_mobile.
&lt;/p&gt;
&lt;p&gt;Then, in my project folder, I made a duplicate of my settings file and renamed it to settings_mobile.py. Let me emphasize again, this is a duplicate.
&lt;/p&gt;
&lt;h3&gt;Step 2&lt;/h3&gt;
&lt;p&gt;Created a new templates folder and named it &amp;#8220;templates_mobile.&amp;#8221; Opened up my settings_mobile.py file and added a new line to the top of my &lt;code&gt;TEMPLATE_DIRS&lt;/code&gt; tuple. This tells Django to first look in mobile templates, and if the template doesn&amp;#8217;t exist, fall back on regular site templates. (Remember, this is only for my mobile site.)
&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;TEMPLATE_DIRS = (
  &amp;quot;/home/playgroundblues/templates_mobile/&amp;quot;,
  &amp;quot;/home/playgroundblues/templates/&amp;quot;,
)
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;Step 3&lt;/h3&gt;
&lt;p&gt;In my new templates_mobile folder, I created a new base template called &amp;#8220;base_mobile.html&amp;#8221; which I&amp;#8217;ll use to extend in all my child templates instead of the main sites base.html. Then I went through the sites pages and recreated mirrored templates in the mobile folder. So /templates/blog/post_detail.html was overwritten by /templates_mobile/blog/post_detail.html. I stripped out extraneous content that was unnecessary for someone on the go, leaving core content and functionality. 
&lt;/p&gt;
&lt;p&gt;The nice thing is if someone happens to creep into a section that you haven&amp;#8217;t gotten to (as long as you didn&amp;#8217;t override base.html), your site will display as it would on a computer proper. If there&amp;#8217;s a more succinct way of doing this, please let me know.
&lt;/p&gt;
  
  &lt;p&gt;&lt;a href="http://www.playgroundblues.com/posts/2008/feb/18/going-mobile/"&gt;Comment&lt;/a&gt;&lt;/p&gt;


</description><pubDate>Mon, 18 Feb 2008 17:17:06 -0000</pubDate><guid>http://www.playgroundblues.com/posts/2008/feb/18/going-mobile/</guid></item><item><title>
  iPhone bookmark iconage


</title><link>http://www.playgroundblues.com/posts/2008/jan/15/iphone-bookmark-iconage/</link><description>


  &lt;p&gt;If you&amp;#8217;re wondering how to control the icon that gets generated for your webpage with the new 1.1.3 iPhone release, look no further than &lt;a href="http://developer.apple.com/iphone/devcenter/designingcontent.html"&gt;Apple&amp;#8217;s iPhone Dev Center&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;Apple has added a section called &amp;#8220;Create a WebClip Bookmark Icon&amp;#8221; and it calls for a 57x57 pixel icon. After some testing today I&amp;#8217;ve concluded this recommended sizing results in a fuzzy icon, largely due to the iPhone being a 163 ppi display. 
&lt;/p&gt;
&lt;p&gt;Instead of sticking with the recommended sizing I bumped it up to 158x158. When this gets scaled you&amp;#8217;ll be left with a crisp icon that sits nicely amongst Apples crisp icons. Onward.
&lt;/p&gt;
  
  &lt;p&gt;&lt;a href="http://www.playgroundblues.com/posts/2008/jan/15/iphone-bookmark-iconage/"&gt;Comment&lt;/a&gt;&lt;/p&gt;


</description><pubDate>Wed, 16 Jan 2008 03:39:53 -0000</pubDate><guid>http://www.playgroundblues.com/posts/2008/jan/15/iphone-bookmark-iconage/</guid></item><item><title>
  Django Basic Apps


</title><link>http://playgroundblues.com/posts/2007/dec/2/django-basic-apps/</link><description>


  &lt;p&gt;I&amp;#8217;ve been working on abstracting some Django applications from past projects so they can effortlessly be plugged into future projects. I hate writing the same blog application repeatedly, so this is an attempt to make life easier. I think this will be a fun, little suite of plug-n-play Django apps that everyone can benefit from. 
&lt;/p&gt;
&lt;p&gt;
  &lt;div class="jellyroll_photo"&gt;
    &lt;a href="http://www.flickr.com/photos/72897141@N00/2082654505/"&gt;&lt;img src="http://static.flickr.com/2212/2082654505_fc62bd9732_m.jpg" title="Basic Colors" alt="Flickr photo"&gt;&lt;/a&gt;
  &lt;/div&gt;

&lt;script type="text/javascript" src="http://www.playgroundblues.com/media/javascript/swfobject.js"&gt;&lt;/script&gt;
&lt;script type="text/javascript"&gt;
  var photo_gallery = new SWFObject("http://www.playgroundblues.com/media/flash/photo_gallery.swf", "photo_gallery_swf", "240", "220", "9", "#FFFFFF");
  photo_gallery.addParam('allowFullScreen', 'true');
  photo_gallery.addVariable('gallery_xml', '/photos/xml/?photos=')
	photo_gallery.write("photo_gallery");
&lt;/script&gt;
&lt;/p&gt;
&lt;p&gt;I&amp;#8217;m calling this suite Basic Apps with the hopes they&amp;#8217;ll live up to their name. They&amp;#8217;re freely distributed under the &lt;a href="http://www.opensource.org/licenses/bsd-license.php" title="New BSD License"&gt;New BSD License&lt;/a&gt; and hosted at Google Code. The goal is to use the month of December to get feedback from everyone and finalize the models, so &lt;strong&gt;beware of model changes.&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;The apps I&amp;#8217;ll be introducing today include Basic Blog, Basic Places, Basic People, Basic Library, and Basic Profiles. Before you run off keep in mind these are &lt;em&gt;basic&lt;/em&gt; apps. You won&amp;#8217;t see anything earth shattering. The idea is to be simple and pluggable so when it comes time to add a blog or user profiles to your project you&amp;#8217;ve got a jumping off point. That said, I&amp;#8217;d like to provide a brief description of each app:
&lt;/p&gt;
&lt;h3&gt;&lt;a href="http://code.google.com/p/django-basic-blog/" title="Basic Blog"&gt;Basic Blog&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;This is a blog, nothing more nothing less. There is a Post model and a Category model. The dependancies include Django Comments and &lt;a href="http://code.google.com/p/django-tagging/" title="Django Tagging"&gt;Django Tagging&lt;/a&gt;. 
&lt;/p&gt;
&lt;h3&gt;&lt;a href="http://code.google.com/p/django-basic-places/" title="Basic Places"&gt;Basic Places&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;This app stores place information, (gasp!) The models include Place Type, City, Point, and Place. Django Tagging is the only dependancy. 
&lt;/p&gt;
&lt;h3&gt;&lt;a href="http://code.google.com/p/django-basic-people/" title="Basic People"&gt;Basic People&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;This app stores people information. (you&amp;#8217;re kidding!) This app has nothing to do with Users. The people that go here are individuals that will never have access to your project. It is used heavily with the library app. The models include Person Type and Person.
&lt;/p&gt;
&lt;h3&gt;&lt;a href="http://code.google.com/p/django-basic-library/" title="Basic Library"&gt;Basic Library&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;This actually contains three apps: Music, Movies, and Books. All three are independent and should be placed independently in your PYTHONPATH. Movies has one model, Movie. Books has two, Book and Publisher. Music has Label, Band, Album, and Song. All three depend on the Basic People app. They all have a Genre model to boot!
&lt;/p&gt;
&lt;h3&gt;&lt;a href="http://code.google.com/p/django-basic-profiles/" title="Basic Profiles"&gt;Basic Profiles&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;This app extends the Django User app, providing added user information. The models include Profile, Mobile Service, Link, Service, and Service Type.
&lt;/p&gt;
&lt;p&gt;All of these apps need Python 2.4 or higher and Django 0.97 or higher. If you have any feature requests or notice any issues please create a ticket on the corresponding Google Code site using the Issues tab. I&amp;#8217;ve also started a &lt;a href="http://groups.google.com/group/django-basic-apps" title="Django Basic Apps Google Groups"&gt;Django Basic Apps&lt;/a&gt; discussion over at Google Groups. Now, let&amp;#8217;s build some shit.
&lt;/p&gt;
  
  &lt;p&gt;&lt;a href="/posts/2007/dec/2/django-basic-apps/"&gt;Comment&lt;/a&gt;&lt;/p&gt;


</description><pubDate>Sun, 02 Dec 2007 15:45:28 -0000</pubDate><guid>http://playgroundblues.com/posts/2007/dec/2/django-basic-apps/</guid></item><item><title>
  Make Flash and Javascript Sing


</title><link>http://playgroundblues.com/posts/2007/mar/18/make-flash-and-javascript-sing/</link><description>


  &lt;p&gt;Yes its true. You can make Javascript and Flash play together! Way back in 2005 the company formerly known as Macromedia threw together a nice &lt;a href="http://weblogs.macromedia.com/flashjavascript/"&gt;little kit&lt;/a&gt; to make these two languages play nicely. Here&amp;#8217;s how. 
&lt;/p&gt;
&lt;p&gt;First we need to secure some crutial files. The first is a SWF called JavaScriptFlashGateway.swf which allows us to setup a &amp;#8220;proxy&amp;#8221; between our Flash and Javascript. Second, make sure you link up JavaScriptFlashGateway.js. Third, put JavaScriptSerializer.as and JavaScriptProxy.as in your Actionscript class path so you can import them into your Flash movies. 
&lt;/p&gt;
&lt;p&gt;Once all that is in place it&amp;#8217;s time to write some code. For this example I&amp;#8217;m going to make a ball move across the screen using two input fields in an HTML form which will allow a person to enter X and Y values to move the ball across the screen. Before we can get any further we need establish an ID so things are nice a secure between our Flash and Javascript. We&amp;#8217;re going to use the current time as our ID like so:
&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;var uid = new Date().getTime();
var flashproxy = new FlashProxy(uid, 'JavaScriptFlashGateway.swf');
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Now lets add some code to our flash movie. In the first frame add:
&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;import JavaScriptProxy;

var Ball = {}
Ball.moveBall = function (p_x:Number, p_y:Number) {
    ball_mc._x = p_x;
    ball_mc._y = p_y;
}

var proxy:JavaScriptProxy = new JavaScriptProxy(_root.lcId, Ball);
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;We&amp;#8217;re simply importing the JavaScriptProxy class and creating a Ball class. The Ball class gets a method called moveBall which is what we&amp;#8217;ll call via javascript. Notice the JavaScriptProxy is passed our ID that we created earlier and a reference to the Ball class. 
&lt;/p&gt;
&lt;p&gt;Lets turn back to our HTML file and add some more Javascript to complete the deal. 
&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;var tag = new FlashTag('flash/ball.swf', 400, 350);
tag.setFlashvars('lcId='+uid);
tag.write(document);

function move_ball () {
    var x = document.moveball.x.value;
    var y = document.moveball.y.value;
    flashproxy.call(&amp;quot;moveBall&amp;quot;, x, y)
}
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Here we&amp;#8217;re using the handy FlashTag class to embed our ball.swf into our page. We&amp;#8217;re also passing the ID we created earlier, very important. The move_ball function is what we&amp;#8217;ll call upon submission of the HTML form. It uses the flashproxy instance to call our Actionscript method &amp;#8220;moveBall&amp;#8221; passing it the x and y coordinates into the SWF thus moving the ball. 
&lt;/p&gt;
&lt;p&gt;Hope this makes a little sense. The code can be &lt;a href="http://www.playgroundblues.com/media/source/JavaScript_Flash_Tutorial.zip"&gt;downloaded here&lt;/a&gt; or you can just look at it &lt;a href="http://www.playgroundblues.com/media/source/JavaScript_Flash_Tutorial/"&gt;here&lt;/a&gt;. I&amp;#8217;ve also created &lt;a href="http://www.playgroundblues.com/laboratory/"&gt;another example&lt;/a&gt; that utilizes a Flash video player and playlist. You can also call Javascript functions from within your Flash movie. There is one gotcha that I&amp;#8217;ve come across in order to do this. Be sure to set the Flash parameter allowScriptAccess to &amp;#8220;always&amp;#8221;. Otherwise communication from Flash to Javascript won&amp;#8217;t work.&lt;br /&gt;
&lt;/p&gt;
  
  &lt;p&gt;&lt;a href="/posts/2007/mar/18/make-flash-and-javascript-sing/"&gt;Comment&lt;/a&gt;&lt;/p&gt;


</description><pubDate>Sun, 18 Mar 2007 20:48:08 -0000</pubDate><guid>http://playgroundblues.com/posts/2007/mar/18/make-flash-and-javascript-sing/</guid></item><item><title>
  The waves of creativity


</title><link>http://playgroundblues.com/posts/2007/may/17/waves-creativity/</link><description>


  &lt;p&gt;There are a lot of environmental factors that go into fostering a creative environment. As creative persons mature, we become more in-tune with what works best for us when it&amp;#8217;s time to dream up new ideas and solutions. Some of us trek to coffeehouses while others listen to Bach, Satie or Mogwai. Whatever we do we&amp;#8217;re all essentially trying to achieve a certain state of mind. 
&lt;/p&gt;
&lt;p&gt;Before I go any further here is a quick explanation of the human brain by neuronal scientist, &lt;a href="/people/richard-m-restak/" title="Richard M. Restak"&gt;Richard Restak&lt;/a&gt;:
&lt;/p&gt;
&lt;p&gt;
&lt;blockquote&gt;
  &lt;p&gt;The adult human brain weights about three pounds and consists of about 100 billion nerve cells or neurons along with an even greater number of non-neuronal cells called glia (in Greeg, glia means &amp;quot;glue&amp;quot;) interspersed among the neurons. The neurons are responsible for the communication of information throughout the brain.... The cerebral cortex contains about 30 billion neurons linked to one another by means of a million billion neuronal connections called synapses.  ...each neuron is no more than two or three degrees of separation from one another. 
&lt;/p&gt;
  &lt;cite&gt;&lt;a href="/books/mozarts-brain-and-fighter-pilot/"&gt;Mozart&amp;#39;s Brain and the Fighter Pilot&lt;/a&gt; page 2&lt;/cite&gt;
&lt;/blockquote&gt;
&lt;/p&gt;
&lt;p&gt;My very basic understanding is that synapses are essentially electrochemical connections that vibrate at varying frequencies. These frequencies can be &lt;a href="http://en.wikipedia.org/wiki/Brainwaves" title="Brainwaves"&gt;measured&lt;/a&gt; and grouped into four different categories: Beta, Alpha, Theta and Delta. 
&lt;/p&gt;
&lt;p&gt;By now you&amp;#8217;re probably wondering what the hell does this have to do with creativity. Well let me quickly explain these four &amp;#8220;states of mind.&amp;#8221; Beta is the frequency we find ourselves in all too often. It&amp;#8217;s associated with being tense, alert, or afraid. Alpha is a state of relaxation without the loss of awareness. Theta is a day dream state and Delta is a state of unconsciousness, a sleep state. 
&lt;/p&gt;
&lt;p&gt;When we seek out our ideal creative environments we are essentially trying to lower our brainwaves from Beta to Alpha. This takes time and cannot be done instantaneously. We can immediately go from Delta to Beta but not vise versa. We have to be someplace familiar where we feel safe and secure. A place were we can let our guard down. 
&lt;/p&gt;
&lt;p&gt;Certain types of people exist in a constant state of Beta, some job types require it. When you intermingle Beta&amp;#8217;s with Alpha&amp;#8217;s and Theta&amp;#8217;s you undoubtedly create a source of tension. This is because the Beta&amp;#8217;s set the tone for the room and raise everyone to their frequency. This is why you rarely see sales and account management mixed with designers and illustrators. 
&lt;/p&gt;
&lt;p&gt;Environment is worth more than any salary. I think most designers would agree when I say I&amp;#8217;d much rather be making peanuts at a Googleplex than six figures at Joe&amp;#8217;s Banner Ad Emporium. 
&lt;/p&gt;
&lt;p&gt;More info can be found here:
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="http://www.doctorhugo.org/brainwaves/brainwaves.html" title="What are Brainwaves?"&gt;What are Brainwaves?&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://www.amazon.com/exec/obidos/ASIN/0609604457" title="Mozart's Brain and the Fighter Pilot"&gt;Mozart&amp;#8217;s Brain and the Fighter Pilot&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://brain.web-us.com/brainwavesfunction.htm" title="Brainwave functions"&gt;Brainwave functions&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;em&gt;Disclaimer: I&amp;#8217;m no scientist. I just think this stuff is interesting and worth spreading. Correct me in the comments if necessary.&lt;/em&gt;
&lt;/p&gt;
  
  &lt;p&gt;&lt;a href="/posts/2007/may/17/waves-creativity/"&gt;Comment&lt;/a&gt;&lt;/p&gt;


</description><pubDate>Sat, 17 Mar 2007 20:48:47 -0000</pubDate><guid>http://playgroundblues.com/posts/2007/may/17/waves-creativity/</guid></item><item><title>
  Not so convergent 


</title><link>http://playgroundblues.com/posts/2007/mar/14/not-so-convergant/</link><description>


  &lt;p&gt;Talking about &amp;#8220;convergence&amp;#8221; is like talking about &amp;#8220;the war on terror.&amp;#8221; They&amp;#8217;re two incredibly broad terms with unforeseeable outcomes. Convergence has been vogue for a while and I&amp;#8217;m a little skeptical about its usage to describe media convergence. At this years SXSW, for the first time, someone summed up what I&amp;#8217;ve been trying to understand.
&lt;/p&gt;
&lt;p&gt;
  &lt;div class="jellyroll_photo"&gt;
    &lt;a href="http://www.flickr.com/photos/72897141@N00/420745547/"&gt;&lt;img src="http://static.flickr.com/165/420745547_ea912227e0_m.jpg" title="Bruce Sterling" alt="Flickr photo"&gt;&lt;/a&gt;
  &lt;/div&gt;

&lt;script type="text/javascript" src="http://www.playgroundblues.com/media/javascript/swfobject.js"&gt;&lt;/script&gt;
&lt;script type="text/javascript"&gt;
  var photo_gallery = new SWFObject("http://www.playgroundblues.com/media/flash/photo_gallery.swf", "photo_gallery_swf", "240", "220", "9", "#FFFFFF");
  photo_gallery.addParam('allowFullScreen', 'true');
  photo_gallery.addVariable('gallery_xml', '/photos/xml/?photos=')
	photo_gallery.write("photo_gallery");
&lt;/script&gt;
&lt;/p&gt;
&lt;p&gt;When I think of convergence I do so in terms of the classic media outlets converging with the Internet. There is a lot of convergence rhetoric at my job and in the field of news. Advertising is also experiencing the pains of understanding what the web is and how to leverage it. Convergence seems more like a trojan horse to me, creeping into peoples minds making them think it will deliver harmony between old and new. It&amp;#8217;s just not true. 
&lt;/p&gt;
&lt;p&gt;
&lt;blockquote&gt;
  &lt;p&gt;Its not about media convergence. I love that idea, it's something you listen to along time. I don't know how many guys in the movie business and TV business are always telling me that some day the Internet will grow up and be more like TV and movies which are real businesses, unlike the Internet. You know they don't converge. Broadband eats everything. It eats the living daylights out of it. 
&lt;/p&gt;
  &lt;cite&gt;&amp;mdash; &lt;a href="/people/bruce-sterling/"&gt;Bruce Sterling&lt;/a&gt;&lt;/cite&gt;
&lt;/blockquote&gt;
&lt;/p&gt;
&lt;p&gt;While old media tries to &amp;#8220;converge&amp;#8221; over the next few years we&amp;#8217;re going to see more &lt;a href="http://www.salon.com"&gt;Salon&amp;#8217;s&lt;/a&gt;, &lt;a href="http://www.newsvine.com"&gt;Newsvine&amp;#8217;s&lt;/a&gt;, and &lt;a href="http://www.digg.com"&gt;Digg&amp;#8217;s&lt;/a&gt; take over. They&amp;#8217;ll do so because they don&amp;#8217;t have to change old minds. The &lt;a href="http://www.hollywoodreporter.com/hr/content_display/features/columns/e3if463a30783104b1095bfd087a35ac0f5" title="Google, Viacom stuck in a lovers' quarrel"&gt;Google / Viacom battle&lt;/a&gt; will be nothing short of entertaining. This is how the old always dies off, clinging to what they know and understand. 
&lt;/p&gt;
&lt;p&gt;&lt;div class="audio_inline"&gt;
  &lt;div class="audio_player"&gt;
    &lt;object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0" width="460" height="35" bgcolor="000000" id="audio_player_id"&gt;
      &lt;param name="movie" value="http://www.playgroundblues.com/media/flash/audio_player.swf"&gt;
      &lt;param name="flashvars" value="mp3=http://www.playgroundblues.com/media/audios/bruce-sterling/sxsw_2007.mp3&amp;amp;width=460&amp;amp;height=35"&gt;
      &lt;param name="salign" value="lt"&gt;
      &lt;param name="allowScriptAccess" value="always"&gt;
      &lt;embed src="http://www.playgroundblues.com/media/flash/audio_player.swf" flashvars="mp3=http://www.playgroundblues.com/media/audios/bruce-sterling/sxsw_2007.mp3&amp;amp;width=460&amp;amp;height=35" width="460" height="35" salign="lt" allowScriptAccess="always" name="audio_player_id" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" bgcolor="000000"&gt;&lt;/embed&gt;
    &lt;/object&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;/p&gt;
  
  &lt;p&gt;&lt;a href="/posts/2007/mar/14/not-so-convergant/"&gt;Comment&lt;/a&gt;&lt;/p&gt;


</description><pubDate>Wed, 14 Mar 2007 19:21:18 -0000</pubDate><guid>http://playgroundblues.com/posts/2007/mar/14/not-so-convergant/</guid></item><item><title>
  RIP Print


</title><link>http://playgroundblues.com</link><description>


  &lt;p&gt;Print is about to die and we better prepare ourselves. I was doing some christmas shopping last week and stumbled into a Sony Style story. I&amp;#8217;m not a fan of the Sony brand but they do seem to come out with some daring devices. The first thing that struck me was the &lt;a href="http://www.learningcenter.sony.us/assets/itpd/reader/" title="Sony Reader"&gt;Sony Reader.&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;The Sony Reader is basically a very thin screen that uses &lt;a href="http://eink.com/" title="E-Ink"&gt;E-Ink technology&lt;/a&gt; to display text and basic graphics. The resolution is shocking, it&amp;#8217;s like staring at a piece of paper. The device has a lot of problems and the operating system is pretty clunky and locked down but you can tell this is the beginning of something. 
&lt;/p&gt;
&lt;p&gt;One thing is for certain, this dawn of reader devices will kill print. They will get vibrant colors, more responsive interfaces, and durability. You can bet other companies are developing their own devices and this is the end of the road for print and it&amp;#8217;s so exciting. 
&lt;/p&gt;
  
  &lt;p&gt;&lt;a href=""&gt;Comment&lt;/a&gt;&lt;/p&gt;


</description><pubDate>Mon, 11 Dec 2006 23:19:11 -0000</pubDate><guid>http://playgroundblues.com</guid></item><item><title>
  The Future Role of Libraries


</title><link>http://playgroundblues.com/posts/2006/nov/20/future-role-libraries/</link><description>


  &lt;p&gt;If Libraries want to stay relevant they have to redefine their role in communities. The common perception is they have books, lots of books. This is obvious. Over the last decade the perception has grown to include internet access. However, this isn&amp;#8217;t enough to survive. If you live in a progressive town like myself, WiFi is ubiquitous. When the Library is competing with Henry&amp;#8217;s Coffeehouse, well, I don&amp;#8217;t need to tell you who wins.
&lt;/p&gt;
&lt;p&gt;In the next half decade we&amp;#8217;ll most likely have access to any book imaginable through the use of a single device. Whether we like this idea or not it will at some point replace the role of the book. Books have lived a long life when compared to the Music medium. Music has been on a steady pace of evolution from vinyl to eight track to cassette to CD and now digital. Digital seems to be the evolutionary end because it&amp;#8217;s intangible. Google is hard at work scanning the Worlds books which are longing for a digital resting place. 
&lt;/p&gt;
&lt;p&gt;Do Libraries become insignificant when digital books reach a tipping point? Not unless they transform their role as repositories of knowledge to places of gathering. Nothing can replace face to face interactions. When we gain knowledge we ultimately seek understanding.
&lt;/p&gt;
&lt;p&gt;When Open Source infected the programming world it became one of the most significant movements in history. The speed with which we&amp;#8217;ve created the Information Age would not have been possible without this movement. If Libraries applied the Open Source philosophy to Education they could usher in the dawn of a new age, The Age of Education. This could rival some of the best Universities. This wouldn&amp;#8217;t be a normal teacher/class education. The books would be our teachers. People would roam the halls seeking other people. Understanding would be gained through discussion and debate. Some of us would travel long distances to Libraries famous for their people and discussions. 
&lt;/p&gt;
&lt;p&gt;&lt;div class="jellyroll_photo"&gt;
  &lt;a href="http://www.playgroundblues.com/media/photos/lawrence_library_proposal.jpg"&gt;&lt;img src="http://www.playgroundblues.com/media/photos/lawrence_library_proposal.jpg" width="250" title="Lawrence Library proposal" alt="Photo"&gt;&lt;/a&gt;
&lt;/div&gt;
&lt;/p&gt;
&lt;p&gt;For centuries Libraries have been entrusted with housing knowledge. That trust is quickly being handed over to the Internet. Libraries now have the opportunity to be handed the trust of understanding. 
&lt;/p&gt;
&lt;p&gt;The preceding was sparked by some plans I saw for a new Library to be built in my town of Lawrence, Kansas. The design feels so open and welcoming with its huge windows and roof top gardens. It has a sense of curiosity with it&amp;#8217;s inconsistent fourth floor appearing to look in a different direction than the other floors. It feels like a place I would go to have conversations and seek understanding. 
&lt;/p&gt;
  
  &lt;p&gt;&lt;a href="/posts/2006/nov/20/future-role-libraries/"&gt;Comment&lt;/a&gt;&lt;/p&gt;


</description><pubDate>Tue, 21 Nov 2006 02:59:51 -0000</pubDate><guid>http://playgroundblues.com/posts/2006/nov/20/future-role-libraries/</guid></item><item><title>
  Warming up to context.


</title><link>http://playgroundblues.com/posts/2006/sep/8/warming-context/</link><description>


  &lt;p&gt;Context can be described as, &amp;#8220;the circumstances that form the setting for an event, statement, or idea, and in terms of which it can be fully understood and assessed.&amp;#8221; Context plays an important role in communication and I&amp;#8217;d like start by providing better context to posts.
&lt;/p&gt;
&lt;p&gt;You may have noticed a left column on my blog post pages. It now contains geo location information regarding where the post was written, categories it belongs to, links that exist within the post and photos that were taken on the day the it was published.
&lt;/p&gt;
&lt;h4&gt;What does all this mean?&lt;/h4&gt;
&lt;p&gt;The goal is to give posts an added level of meaning. In some instances I&amp;#8217;ve noticed a correlation between &lt;a href="http://www.domaki.com/posts/2006/jul/10/its-time-behave/" title="It's time to behave"&gt;photos&lt;/a&gt; and what I decided to write or maybe a &lt;a href="http://www.domaki.com/posts/2005/sep/24/innocent-bystander/" title="Innocent Bystander"&gt;location&lt;/a&gt; inspired a post. Sometimes it may not be as apparent but, if anything, it brings a little more life to information. 
&lt;/p&gt;
&lt;p&gt;I&amp;#8217;m planning on adding photos that correlate to the location pages once I have time to play with the new &lt;a href="http://blog.flickr.com/flickrblog/2006/08/geotagging_one_.html" title="Geotagging one day later"&gt;geo data&lt;/a&gt; in Flickr. I&amp;#8217;d love to see other examples of this practice. Suggestions are always welcome. 
&lt;/p&gt;
  
  &lt;p&gt;&lt;a href="/posts/2006/sep/8/warming-context/"&gt;Comment&lt;/a&gt;&lt;/p&gt;


</description><pubDate>Fri, 08 Sep 2006 20:48:39 -0000</pubDate><guid>http://playgroundblues.com/posts/2006/sep/8/warming-context/</guid></item><item><title>
  Nothing In Disguise 


</title><link>http://playgroundblues.com/posts/2006/jul/19/nothing-disguise/</link><description>


  &lt;p&gt;A few Sunday&amp;#8217;s back I was in a coffee house determined to work. Instead, I quickly fell into a dream state which is the plague of many Sunday mornings. I felt guilty about being so unproductive, but, I had no pressing deadlines, no urgent emails, no clients knocking at my door. Later that night I felt a surge of creativity and began painting, which got me wondering. Lets see what &lt;a href="http://www.amazon.com/gp/product/1555972608/" title="If You Want To Write by Brenda Ueland"&gt;Brenda Ueland&lt;/a&gt; says:
&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;Our idea that we must always be energetic and active is all wrong. Bernard Shaw says that it is not true that Napoleon was always snapping out decisions to a dozen secretaries and aides-de-camp, as we are told, but that he moodled around for months. Of course he did. And that is why these smart, energetic, do-it-now, pushing people so often say: &amp;#8220;I am not creative.&amp;#8221; They are, but they should be idle, limp and alone for much of the time, as lazy as men fishing on a levee, and quietly looking and thinking, not &lt;em&gt;willing&lt;/em&gt; all the time.
&lt;/p&gt;
&lt;/blockquote&gt;&lt;p&gt;It&amp;#8217;s important to make time for nothing. It allows you to open your mind to thought you might not normally invite in. In a way, these moments cultivate our creative fields. When it&amp;#8217;s time to harvest, ideas should be ripe for the pickings. Basically, the answers we arrive at are a result of past thought. Neglect these moments and you limit the quality of creative outcomes.
&lt;/p&gt;
&lt;p&gt;&amp;#8220;Some 40 thousand (and counting) elementary schools have eliminated recess in favor of more time for academics,&amp;#8221; says &lt;a href="http://www.amazon.com/gp/product/0738210536/" title="Power of Play by David Elkind"&gt;David Elkind&lt;/a&gt;. This is shocking. From what I recall, recess was the most rejuvenating part of my elementary day. &amp;#8220;Our schools are now contributing to the suppression of curiosity, imagination and fantasy.&amp;#8221;
&lt;/p&gt;
&lt;p&gt;As we get older we unknowingly loose touch with our creative side and our imagination. I remember looking at clouds and immediately spotting frogs, space ships or elephants. Now I have to concentrate to come up with anything. Making time for relaxing and dreaming is so important, if for no other reason than to look up and see a giraffe float by. 
&lt;/p&gt;
  
  &lt;p&gt;&lt;a href="/posts/2006/jul/19/nothing-disguise/"&gt;Comment&lt;/a&gt;&lt;/p&gt;


</description><pubDate>Wed, 19 Jul 2006 20:48:19 -0000</pubDate><guid>http://playgroundblues.com/posts/2006/jul/19/nothing-disguise/</guid></item><item><title>
  Broken Window Theory


</title><link>http://playgroundblues.com/posts/2005/apr/8/broken-window-theory/</link><description>


  &lt;p&gt;Lately I&amp;#8217;ve become a little obsessed with the &amp;#8220;Broken Window Theory.&amp;#8221; I was introduced to this theory by &lt;a href="http://www.squidfingers.com"&gt;Travis&lt;/a&gt; and &lt;a href="http://www.alwayscurious.com"&gt;Charlie&lt;/a&gt;. Soon after, it began popping into my head at work, home, or while I was coding. Then I started noticing it in &lt;a href="http://www.gladwell.com/tippingpoint/"&gt;books&lt;/a&gt; and on the &lt;a href="http://www.npr.org/templates/story/story.php?storyId=4520866"&gt;radio&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;The theory is normally applied to urban decay and crime, however, it can be applied to almost anything. How did your apartment get so dirty? How did your code get out of control? Well, it&amp;#8217;s all because of one sock, one poorly placed if statement, or one broken window.
&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;One broken window, left unrepaired for any substantial length of time, instills a sense of abandonment &amp;#8212; a sense that the powers that be don&amp;#8217;t care. So another window gets broken. People start littering. Graffiti appears. Serious structural damage begins. In a relativly short space of time, the structure becomes damaged beyond the desire to fix it, and the sense of abandonment becomes reality. 
&lt;/p&gt;
&lt;/blockquote&gt;&lt;p&gt;The preceding quote was taken from &lt;a href="http://www.pragmaticprogrammer.com/ppbook/"&gt;The Pragmatic Programmer&lt;/a&gt; by Andrew Hunt and David Thomas. It basically means watch out for the small stuff. If you can keep the tiny cracks out early they won&amp;#8217;t turn into gorges. The hope is that if your projects are pristine and another person is invited to change or update something they will take notice in its perfection and not want to be the first to break a window.
&lt;/p&gt;
  
  &lt;p&gt;&lt;a href="/posts/2005/apr/8/broken-window-theory/"&gt;Comment&lt;/a&gt;&lt;/p&gt;


</description><pubDate>Fri, 08 Apr 2005 19:38:30 -0000</pubDate><guid>http://playgroundblues.com/posts/2005/apr/8/broken-window-theory/</guid></item></channel></rss>
