<?xml version="1.0" encoding="UTF-8"?>
<feed xml:lang="en-US" xmlns="http://www.w3.org/2005/Atom">
  <title>Empty Thoughts - Home</title>
  <id>tag:blog.michaeltrier.com,2008:mephisto/</id>
  <generator version="0.7.3" uri="http://mephistoblog.com">Mephisto Noh-Varr</generator>
  <link href="http://blog.michaeltrier.com/feed/atom.xml" rel="self" type="application/atom+xml"/>
  <link href="http://blog.michaeltrier.com/" rel="alternate" type="text/html"/>
  <updated>2008-08-26T04:22:20Z</updated>
  <entry xml:base="http://blog.michaeltrier.com/">
    <author>
      <name>admin</name>
    </author>
    <id>tag:blog.michaeltrier.com,2008-08-26:1451</id>
    <published>2008-08-26T04:21:00Z</published>
    <updated>2008-08-26T04:22:20Z</updated>
    <category term="Django"/>
    <category term="Netcasts"/>
    <link href="http://blog.michaeltrier.com/2008/8/26/this-week-in-django-35-2008-08-24" rel="alternate" type="text/html"/>
    <title>This Week in Django 35 - 2008-08-24</title>
<content type="html">
            &lt;p&gt;&lt;a href=&quot;http://thisweekindjango.com/episode/35/this-week-in-django-35/&quot;&gt;This Week in Django 35&lt;/a&gt; has been posted. Don&#8217;t miss it. We catch up with Robert Lofthouse, Chairman of DjangoCon and EuroDjangoCon.&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://blog.michaeltrier.com/">
    <author>
      <name>admin</name>
    </author>
    <id>tag:blog.michaeltrier.com,2008-08-23:1444</id>
    <published>2008-08-23T22:40:00Z</published>
    <updated>2008-08-23T22:41:47Z</updated>
    <category term="Django"/>
    <link href="http://blog.michaeltrier.com/2008/8/23/django-docs-refactor" rel="alternate" type="text/html"/>
    <title>Django Docs Refactor</title>
<content type="html">
            &lt;p&gt;Django documentation &lt;a href=&quot;http://code.djangoproject.com/changeset/8506&quot;&gt;has been refactored&lt;/a&gt; (Changeset 8506) using the excellent &lt;a href=&quot;http://sphinx.pocoo.org/&quot;&gt;Sphinx&lt;/a&gt; &#8211; Python documentation generator.  This is the same package used to generate the new &lt;a href=&quot;http://docs.python.org/dev/&quot;&gt;Python documentation&lt;/a&gt;  Check out the new docs at &lt;a href=&quot;http://docs.djangoproject.com/&quot;&gt;http://docs.djangoproject.com/&lt;/a&gt;. Now I have to go and update all my shortcut snippets.  Thanks go especially to &lt;a href=&quot;http://www.jacobian.org/&quot;&gt;Jacob Kaplan-Moss&lt;/a&gt; and numerous contributors for all of their hard work on this one.&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://blog.michaeltrier.com/">
    <author>
      <name>admin</name>
    </author>
    <id>tag:blog.michaeltrier.com,2008-08-23:1434</id>
    <published>2008-08-23T00:01:00Z</published>
    <updated>2008-08-23T00:04:07Z</updated>
    <link href="http://blog.michaeltrier.com/2008/8/23/vim-macros-screencast" rel="alternate" type="text/html"/>
    <title>Vim Macros Screencast</title>
<content type="html">
            &lt;p&gt;My good friend &lt;a href=&quot;http://justinlilly.com/&quot;&gt;Justin Lilly&lt;/a&gt; just posted a great short &lt;a href=&quot;http://justinlilly.com/2008/08/22/vim-macros/&quot;&gt;screencast on using Vim macros&lt;/a&gt;.  In the screencast he walks you through using the Vim macro commands to record and play back key sequences.  Justin, several other friends, and I have been helping each other get the most out of &lt;a href=&quot;http://code.google.com/p/macvim/&quot;&gt;MacVim&lt;/a&gt;. I highly recommend you take one minute and give it a viewing.&lt;/p&gt;


	&lt;p&gt;Since I forgot to blog about it earlier he has also created a excellent post on his Vim setup called &lt;a href=&quot;http://justinlilly.com/2008/08/07/vim-my-new-ide/&quot;&gt;Vim: My new &lt;span class=&quot;caps&quot;&gt;IDE&lt;/span&gt;&lt;/a&gt;.  If you&#8217;re into Vim or want to get going on it, this post contains an awesome collection of stuff that Justin has found useful.&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://blog.michaeltrier.com/">
    <author>
      <name>admin</name>
    </author>
    <id>tag:blog.michaeltrier.com,2008-08-19:1418</id>
    <published>2008-08-19T03:11:00Z</published>
    <updated>2008-08-19T03:37:19Z</updated>
    <category term="Django"/>
    <category term="Netcasts"/>
    <link href="http://blog.michaeltrier.com/2008/8/19/this-week-in-django-34-2008-08-17" rel="alternate" type="text/html"/>
    <title>This Week in Django 34 - 2008-08-17</title>
<content type="html">
            &lt;p&gt;&lt;a href=&quot;http://thisweekindjango.com/episode/34/&quot;&gt;This Week in Django 34&lt;/a&gt; has been posted.&lt;/p&gt;


	&lt;p&gt;This week we discuss Django 1.0 Beta 1, a bunch of source commits, some cool projects from the community, and a tip of the week.&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://blog.michaeltrier.com/">
    <author>
      <name>admin</name>
    </author>
    <id>tag:blog.michaeltrier.com,2008-08-15:1407</id>
    <published>2008-08-15T03:47:00Z</published>
    <updated>2008-08-15T04:22:35Z</updated>
    <category term="Django"/>
    <link href="http://blog.michaeltrier.com/2008/8/15/django-1-0-beta-1" rel="alternate" type="text/html"/>
    <title>Django 1.0-Beta 1</title>
<content type="html">
            &lt;p&gt;Just released is &lt;a href=&quot;http://code.djangoproject.com/changeset/8362&quot;&gt;Django 1.0-Beta 1&lt;/a&gt;. This is another &lt;a href=&quot;http://code.djangoproject.com/wiki/VersionOneRoadmap&quot;&gt;huge milestone&lt;/a&gt; in the push towards Django 1.0.  This also means that we are likely to see a more stable trunk, so it looks like it&#8217;s heads down on Django once again.  Check out the &lt;a href=&quot;http://www.djangoproject.com/documentation/release_notes_1.0_beta_1/&quot;&gt;release notes&lt;/a&gt; for more information.&lt;/p&gt;


	&lt;p&gt;But the coding never stops.  Tomorrow begins the Release Candidate sprint in Austin, TX and via &lt;span class=&quot;caps&quot;&gt;IRC&lt;/span&gt; on freenode #django-sprint.  Jump in and squash bugs.&lt;/p&gt;


	&lt;p&gt;I want to thank all of the contributors for their very hard work.&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://blog.michaeltrier.com/">
    <author>
      <name>admin</name>
    </author>
    <id>tag:blog.michaeltrier.com,2008-08-14:1405</id>
    <published>2008-08-14T05:19:00Z</published>
    <updated>2008-08-14T05:43:48Z</updated>
    <category term="Django"/>
    <category term="Netcasts"/>
    <link href="http://blog.michaeltrier.com/2008/8/14/this-week-in-django-33-2008-08-10" rel="alternate" type="text/html"/>
    <title>This Week in Django 33 - 2008-08-10</title>
<content type="html">
            &lt;p&gt;&lt;a href=&quot;http://thisweekindjango.com/episode/33/&quot;&gt;This Week in Django 33&lt;/a&gt; has been posted.&lt;/p&gt;


	&lt;p&gt;This week we discuss the &lt;span class=&quot;caps&quot;&gt;NEW&lt;/span&gt; This Week in Django site, a bunch of source commits, and some cool projects from the community.&lt;/p&gt;


	&lt;p&gt;All show notes from now on will be on the new &lt;a href=&quot;http://thisweekindjango.com/&quot;&gt;This Week in Django&lt;/a&gt; dedicated site.&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://blog.michaeltrier.com/">
    <author>
      <name>admin</name>
    </author>
    <id>tag:blog.michaeltrier.com,2008-08-13:1404</id>
    <published>2008-08-13T01:43:00Z</published>
    <updated>2008-08-13T01:45:18Z</updated>
    <category term="Django"/>
    <category term="Netcasts"/>
    <link href="http://blog.michaeltrier.com/2008/8/13/this-week-in-django-delayed" rel="alternate" type="text/html"/>
    <title>This Week in Django Delayed</title>
<content type="html">
            &lt;p&gt;This Week in Django will be delayed this week.  We hope to get it out by tomorrow evening.  We have been experiencing technical difficulties.  Thank you, and now back to our regular scheduled program&#8230;&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://blog.michaeltrier.com/">
    <author>
      <name>admin</name>
    </author>
    <id>tag:blog.michaeltrier.com,2008-08-08:1396</id>
    <published>2008-08-08T23:46:00Z</published>
    <updated>2008-08-23T15:42:23Z</updated>
    <category term="Django"/>
    <link href="http://blog.michaeltrier.com/2008/8/8/django-1-0-alpha-2" rel="alternate" type="text/html"/>
    <title>Django 1.0-Alpha 2</title>
<content type="html">
            &lt;p&gt;Django 1.0 Alpha 2 &lt;a href=&quot;http://www.djangoproject.com/weblog/2008/aug/08/10-alpha-2/&quot;&gt;was just released&lt;/a&gt;.  This release adds in &lt;a href=&quot;http://code.djangoproject.com/changeset/8219&quot;&gt;GeoDjango&lt;/a&gt;, &lt;a href=&quot;http://blog.michaeltrier.com/2008/7/29/django-gets-intermediate-models&quot;&gt;Intermediary models&lt;/a&gt; and &lt;a href=&quot;http://blog.michaeltrier.com/2008/8/8/file-storage-refactoring-in-django&quot;&gt;file storage refactor&lt;/a&gt;.  &lt;a href=&quot;http://www.djangoproject.com/download/&quot;&gt;Grab a copy&lt;/a&gt; and test it out.&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://blog.michaeltrier.com/">
    <author>
      <name>admin</name>
    </author>
    <id>tag:blog.michaeltrier.com,2008-08-08:1393</id>
    <published>2008-08-08T21:06:00Z</published>
    <updated>2008-08-22T23:51:12Z</updated>
    <category term="Django"/>
    <link href="http://blog.michaeltrier.com/2008/8/8/file-storage-refactoring-in-django" rel="alternate" type="text/html"/>
    <title>File Storage Refactoring in Django</title>
<content type="html">
            &lt;p&gt;With &lt;a href=&quot;http://code.djangoproject.com/changeset/8244&quot;&gt;Changeset 8244&lt;/a&gt; we now have File Storage refactoring in the Django trunk.   This was one of the big Version 1.0 items and helps get Django closer to the goal line.  Congratulations are in order to &lt;a href=&quot;http://gulopine.gamemusic.org/&quot;&gt;Marty Alchin&lt;/a&gt; for all of his hard work over umpteen months.  I really thought it would never make it. :)&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://blog.michaeltrier.com/">
    <author>
      <name>admin</name>
    </author>
    <id>tag:blog.michaeltrier.com,2008-08-05:1381</id>
    <published>2008-08-05T04:45:00Z</published>
    <updated>2008-08-05T04:54:18Z</updated>
    <category term="Django"/>
    <category term="Netcasts"/>
    <link href="http://blog.michaeltrier.com/2008/8/5/this-week-in-django-32" rel="alternate" type="text/html"/>
    <title>This Week in Django 32 - 2008-08-03</title>
<summary type="html">&lt;p&gt;This Week in Django is a weekly podcast about all things Django.&lt;/p&gt;


	&lt;p&gt;This week we have a very special guest, &lt;b&gt;Justin Bronn&lt;/b&gt;, creator of GeoDjango the &lt;span class=&quot;caps&quot;&gt;GIS&lt;/span&gt; branch of Django.  We also discuss a few source commits, some cool projects from the community, and the Tip of the Week.&lt;/p&gt;</summary><content type="html">
            &lt;div&gt;&lt;img src=&quot;http://media.thisweekindjango.com/images/twid_small.png&quot; /&gt;&lt;/div&gt;

	&lt;p&gt;This Week in Django is a weekly podcast about all things Django.&lt;/p&gt;


	&lt;p&gt;This week we have a very special guest, &lt;b&gt;Justin Bronn&lt;/b&gt;, creator of GeoDjango the &lt;span class=&quot;caps&quot;&gt;GIS&lt;/span&gt; branch of Django.  We also discuss a few source commits, some cool projects from the community, and the Tip of the Week.&lt;/p&gt;


	&lt;p&gt;Please see the Show Notes below for all the pertinent information and links&lt;/p&gt;


	&lt;h2&gt;Downloads&lt;/h2&gt;


	&lt;p&gt;&lt;a href=&quot;http://media.thisweekindjango.com/episodes/twid_032.m4a&quot;&gt;&lt;span class=&quot;caps&quot;&gt;AAC&lt;/span&gt; Enhanced Podcast&lt;/a&gt; (53.6 MB, 1:08:44, &lt;span class=&quot;caps&quot;&gt;AAC&lt;/span&gt;)&lt;/p&gt;


	&lt;p&gt;&lt;a href=&quot;http://media.thisweekindjango.com/episodes/twid_032.mp3&quot;&gt;&lt;span class=&quot;caps&quot;&gt;MP3&lt;/span&gt; Edition&lt;/a&gt; (47.3 MB, 1:08:44, &lt;span class=&quot;caps&quot;&gt;MP3&lt;/span&gt;)&lt;/p&gt;


	&lt;p&gt;&lt;a href=&quot;http://media.thisweekindjango.com/episodes/twid_032.ogg&quot;&gt;&lt;span class=&quot;caps&quot;&gt;OGG&lt;/span&gt; Edition&lt;/a&gt; (34.4 MB, 1:08:44, Vorbis)&lt;/p&gt;


	&lt;p&gt;The Enhanced Podcast version contains screenshots and easy access links to all of the items we discuss throughout the podcast.&lt;/p&gt;


	&lt;h2&gt;Feeds Available&lt;/h2&gt;


	&lt;p&gt;iTunes Feeds are available.  By subscribing using the iTunes feeds the podcasts will automatically be downloaded for you when we release them.&lt;/p&gt;


	&lt;h3&gt;iTunes Feeds&lt;/h3&gt;


	&lt;p&gt;&lt;a href=&quot;http://phobos.apple.com/WebObjects/MZStore.woa/wa/viewPodcast?id=270540230&quot;&gt;This Week in Django &#8211; &lt;span class=&quot;caps&quot;&gt;AAC&lt;/span&gt; Edition&lt;/a&gt;&lt;/p&gt;


	&lt;p&gt;&lt;a href=&quot;http://phobos.apple.com/WebObjects/MZStore.woa/wa/viewPodcast?id=270540241&quot;&gt;This Week in Django &#8211; &lt;span class=&quot;caps&quot;&gt;MP3&lt;/span&gt; Edition&lt;/a&gt;&lt;/p&gt;


	&lt;h3&gt;Regular &lt;span class=&quot;caps&quot;&gt;RSS&lt;/span&gt; Feeds&lt;/h3&gt;


	&lt;p&gt;&lt;a href=&quot;http://media.djangonetcasts.com/twid_aac.xml&quot;&gt;This Week in Django &#8211; &lt;span class=&quot;caps&quot;&gt;AAC&lt;/span&gt; Edition&lt;/a&gt;&lt;/p&gt;


	&lt;p&gt;&lt;a href=&quot;http://media.djangonetcasts.com/twid_mp3.xml&quot;&gt;This Week in Django &#8211; &lt;span class=&quot;caps&quot;&gt;MP3&lt;/span&gt; Edition&lt;/a&gt;&lt;/p&gt;


	&lt;p&gt;&lt;a href=&quot;http://media.djangonetcasts.com/twid_ogg.xml&quot;&gt;This Week in Django &#8211; &lt;span class=&quot;caps&quot;&gt;OGG&lt;/span&gt; Edition&lt;/a&gt;&lt;/p&gt;


	&lt;h2&gt;Give Us Feedback&lt;/h2&gt;


	&lt;p&gt;Want to give us some feedback on the show?  We&#8217;re always looking for ideas or suggestions that will help improve each episode.  Please contact us at feedback &lt;code&gt;__at__&lt;/code&gt; thisweekindjango.com.&lt;/p&gt;


	&lt;h2&gt;Show Notes&lt;/h2&gt;


	&lt;h3&gt;Big News (0:48)&lt;/h3&gt;


	&lt;ul&gt;
	&lt;li&gt;&lt;a href=&quot;http://djangocon.org/&quot;&gt;DjangoCon&lt;/a&gt; tickets have come and go.  If you didn&#8217;t get yours sign up for the waiting list.
	&lt;ul&gt;
	&lt;li&gt;&lt;a href=&quot;http://twitter.com/evilrob/statuses/874978556&quot;&gt;Robert Lofthouse announces waiting list&lt;/a&gt;&lt;/li&gt;
	&lt;/ul&gt;&lt;/li&gt;
	&lt;/ul&gt;


	&lt;ul&gt;
	&lt;li&gt;&lt;a href=&quot;http://code.djangoproject.com/wiki/VersionOneRoadmap#dates&quot;&gt;Version 1.0&lt;/a&gt;
	&lt;ul&gt;
	&lt;li&gt;Beta 1 scheduled to drop on 8/5/08.&lt;/li&gt;
		&lt;li&gt;Push to Beta 2 sprint &#8211; Friday August 8, 2008 in Lawrence, KS and on &lt;span class=&quot;caps&quot;&gt;IRC&lt;/span&gt; (#django-sprint).&lt;/li&gt;
		&lt;li&gt;&lt;a href=&quot;http://jannisleidel.com/2008/07/updated-local-django-sprint-berlin-germany-august-08-09-2008/&quot;&gt;Django Sprint in Berlin&lt;/a&gt;&lt;/li&gt;
	&lt;/ul&gt;&lt;/li&gt;
	&lt;/ul&gt;


	&lt;h3&gt;Interview &#8211; Justin Bronn (5:11)&lt;/h3&gt;


	&lt;p&gt;Justin Bronn is a computer scientist and third-year law student at the University of Houston who enjoys studying legal topics related to intellectual property and spatial law. Prior to creating GeoDjango, Justin worked as a patent engineer for an intellectual property boutique in Houston and developed scientific data analysis applications for the Southwest Research Institute in San Antonio.&lt;/p&gt;


	&lt;p&gt;&lt;a href=&quot;http://cartoanalytics.com/&quot;&gt;CartoAnalytics&lt;/a&gt; is Justin Bronn&#8217;s consulting company. CartoAnalytics provides innovative solutions to harness the power of your geospatial data.&lt;/p&gt;


	&lt;ul&gt;
	&lt;li&gt;Getting started with GeoDjango
	&lt;ul&gt;
	&lt;li&gt;&lt;a href=&quot;http://geodjango.org/&quot;&gt;GeoDjango Site&lt;/a&gt;&lt;/li&gt;
		&lt;li&gt;&lt;a href=&quot;http://code.djangoproject.com/wiki/GeoDjango&quot;&gt;GeoDjango Wiki&lt;/a&gt;&lt;/li&gt;
		&lt;li&gt;&lt;a href=&quot;http://geodjango.org/docs/&quot;&gt;GeoDjango Docs&lt;/a&gt;&lt;/li&gt;
		&lt;li&gt;&lt;a href=&quot;http://blip.tv/file/969352&quot;&gt;GeoDjango: Web Applications for Geographers with Deadlines&lt;/a&gt; &#8211; Video of presentation From O&#8217;Reilly Where 2.0 Conference, Burlingame, CA, May 14, 2008.&lt;/li&gt;
		&lt;li&gt;&lt;a href=&quot;http://www.foss4g2007.org/presentations/viewattachment.php?attachment_id=78&quot;&gt;GeoDjango Presentation at &lt;span class=&quot;caps&quot;&gt;FOSS4G2007&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
		&lt;li&gt;An &lt;span class=&quot;caps&quot;&gt;IRC&lt;/span&gt; channel is available &#8211; join &lt;code&gt;#geodjango&lt;/code&gt; on freenode.&lt;/li&gt;
	&lt;/ul&gt;&lt;/li&gt;
	&lt;/ul&gt;


	&lt;ul&gt;
	&lt;li&gt;Other items mentioned
	&lt;ul&gt;
	&lt;li&gt;&lt;a href=&quot;http://houstoncrimemaps.com/&quot;&gt;Houston Crime Maps&lt;/a&gt; &#8211; excellent reference application for GeoDjango.&lt;/li&gt;
		&lt;li&gt;The &lt;a href=&quot;http://geodjango.org/hg/limited_related/&quot;&gt;limited_related&lt;/a&gt; admin plugin.&lt;/li&gt;
		&lt;li&gt;&lt;a href=&quot;http://www.alistapart.com/articles/takecontrolofyourmaps&quot;&gt;Take Control of Your Maps&lt;/a&gt; &#8211; Excellent article by Paul Smith on using &lt;a href=&quot;http://www.openlayers.org/&quot;&gt;OpenLayers&lt;/a&gt;&lt;/li&gt;
	&lt;/ul&gt;&lt;/li&gt;
	&lt;/ul&gt;


	&lt;ul&gt;
	&lt;li&gt;Open source geospatial libraries:
	&lt;ul&gt;
	&lt;li&gt;&lt;a href=&quot;http://trac.osgeo.org/gdal/&quot;&gt;&lt;span class=&quot;caps&quot;&gt;GDAL&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
		&lt;li&gt;&lt;a href=&quot;http://trac.osgeo.org/geos/&quot;&gt;&lt;span class=&quot;caps&quot;&gt;GEOS&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
		&lt;li&gt;&lt;a href=&quot;http://postgis.refractions.net/&quot;&gt;PostGIS&lt;/a&gt;&lt;/li&gt;
		&lt;li&gt;&lt;a href=&quot;http://openlayers.org/&quot;&gt;OpenLayers&lt;/a&gt;&lt;/li&gt;
		&lt;li&gt;&lt;a href=&quot;http://trac.mapnik.org/&quot;&gt;Mapnik&lt;/a&gt;&lt;/li&gt;
	&lt;/ul&gt;&lt;/li&gt;
	&lt;/ul&gt;


	&lt;ul&gt;
	&lt;li&gt;Data sources
	&lt;ul&gt;
	&lt;li&gt;&lt;a href=&quot;http://planet.osgeo.org/&quot;&gt;OSGeo blog aggregate&lt;/a&gt;&lt;/li&gt;
		&lt;li&gt;&lt;a href=&quot;http://www.census.gov/geo/www/tiger/tgrshp2007/tgrshp2007.html&quot;&gt;Census Bureau &lt;span class=&quot;caps&quot;&gt;TIGER&lt;/span&gt;/Line Shapefile page&lt;/a&gt;&lt;/li&gt;
	&lt;/ul&gt;&lt;/li&gt;
	&lt;/ul&gt;


	&lt;h3&gt;Tracking Trunk (39:51)&lt;/h3&gt;


	&lt;ul&gt;
	&lt;li&gt;&lt;a href=&quot;http://code.djangoproject.com/changeset/8136&quot;&gt;Addition of Intermediate Models &lt;code&gt;(8136)&lt;/code&gt;&lt;/a&gt; &#8211; Excellent addition by &lt;a href=&quot;http://eflorenzano.com/blog/&quot;&gt;Eric Forenzano&lt;/a&gt; and &lt;a href=&quot;http://djangopeople.net/freakboy3742/&quot;&gt;Russell Keith-Magee&lt;/a&gt; that allows you to add join models with extra attributes.
	&lt;ul&gt;
	&lt;li&gt;&lt;a href=&quot;http://www.djangoproject.com/documentation/model-api/#extra-fields-on-many-to-many-relationships&quot;&gt;Django Model Documentation&lt;/a&gt;&lt;/li&gt;
		&lt;li&gt;&lt;a href=&quot;http://www.djangoproject.com/documentation/admin/#working-with-many-to-many-intermediary-models&quot;&gt;Django Admin Documentation&lt;/a&gt;&lt;/li&gt;
		&lt;li&gt;&lt;a href=&quot;http://www.eflorenzano.com/blog/post/intermediary-models-and-pymag/&quot;&gt;Intermediary Models and PyMag&lt;/a&gt; &#8211; Blog post by Eric Florenzano discussing intermediary models.&lt;/li&gt;
	&lt;/ul&gt;
	&lt;/li&gt;
		&lt;li&gt;&lt;a href=&quot;http://code.djangoproject.com/changeset/8162&quot;&gt;Implemented a secure password reset form &lt;code&gt;(8162)&lt;/code&gt;&lt;/a&gt; &#8211; It uses a token and prompts user for new password, plus also adds base36 encoding and decoding.&lt;/li&gt;
	&lt;/ul&gt;


	&lt;ul&gt;
	&lt;li&gt;&lt;a href=&quot;http://code.djangoproject.com/changeset/8179&quot;&gt;Ensure custom primary keys are shown on the formset &lt;code&gt;(8179)&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
	&lt;/ul&gt;


	&lt;ul&gt;
	&lt;li&gt;&lt;a href=&quot;http://code.djangoproject.com/changeset/8191&quot;&gt;Removed several deprecated features for 1.0 &lt;code&gt;(8191)&lt;/code&gt;&lt;/a&gt; &#8211; Removes: 
	&lt;ul&gt;
	&lt;li&gt;&#8220;simple&#8221; cache backend &lt;/li&gt;
		&lt;li&gt;ObjectPaginator &lt;/li&gt;
		&lt;li&gt;edit_inline_type argument for ForeignKey fields &lt;/li&gt;
		&lt;li&gt;QOperator, QNot, QAnd and QOr &lt;/li&gt;
		&lt;li&gt;maxlength argument&lt;/li&gt;
	&lt;/ul&gt;&lt;/li&gt;
	&lt;/ul&gt;


	&lt;h3&gt;Community Catchup (48:10)&lt;/h3&gt;


	&lt;ul&gt;
	&lt;li&gt;&lt;a href=&quot;http://code.google.com/p/django-command-extensions/&quot;&gt;django-command-extensions becomes django-extensions&lt;/a&gt; &#8211; We&#8217;re renaming the project and the import point from &lt;code&gt;extensions&lt;/code&gt; to &lt;code&gt;django_extensions&lt;/code&gt;.  This will happen in one week.&lt;/li&gt;
	&lt;/ul&gt;


	&lt;ul&gt;
	&lt;li&gt;&lt;a href=&quot;http://www.djangosnippets.org/snippets/934/&quot;&gt;Admin Image Widget&lt;/a&gt; Pete Baumgartner, &lt;a href=&quot;http://lincolnloop.com&quot;&gt;LincolnLoop&lt;/a&gt;, posted this nice snippet that displays an image instead of a file path if the current file is an image. If you read the comments, another user updated the code generating the thumbnails to use the popular django open source project &lt;a href=&quot;http://code.google.com/p/sorl-thumbnail/&quot;&gt;sorl-thumbnail&lt;/a&gt;&lt;/li&gt;
	&lt;/ul&gt;


	&lt;ul&gt;
	&lt;li&gt;&lt;a href=&quot;http://patrickbeeson.com/blog/2008/jul/28/how-django-good-seo/&quot;&gt;How Django is good for &lt;span class=&quot;caps&quot;&gt;SEO&lt;/span&gt;&lt;/a&gt; Patrick Beeson is a project manager for E.W. Scripps Interactive Newspaper Group in Knoxville, TN. In the past Patrick has published a few good &lt;a href=&quot;http://patrickbeeson.com/blog/tags/django/&quot;&gt;django related posts&lt;/a&gt; but this was is of interest because it discussed one of the many &#8220;out of the box&#8221; application benefits the django toolset provides.&lt;/li&gt;
	&lt;/ul&gt;


	&lt;ul&gt;
	&lt;li&gt;&lt;a href=&quot;http://code.google.com/p/django-assets/&quot;&gt;django-assets&lt;/a&gt; &#8211; Asset management for Django.  Automatically compresses javascript files.  Supports the following filters: &lt;a href=&quot;http://www.crockford.com/javascript/jsmin.html&quot;&gt;jsmin&lt;/a&gt;, jspacker, csstidy, cssutils, yui_js, yui_css, gzip, cssrewrite.&lt;/li&gt;
	&lt;/ul&gt;


	&lt;ul&gt;
	&lt;li&gt;&lt;a href=&quot;http://vaig.be/2008/08/01/translating-django-apps-good-practices/&quot;&gt;Translating Django apps. Good practices&lt;/a&gt; &#8211; Great rundown by Marc Garcia on how to go about translating your Django applications.  Marc is the Django localizer for the Catalan language.  Learn more about Marc and localization on &lt;a href=&quot;http://blog.michaeltrier.com/2008/4/28/this-week-in-django-20-2008-04-27&quot;&gt;This Week in Django 20&lt;/a&gt;.&lt;/li&gt;
	&lt;/ul&gt;


	&lt;ul&gt;
	&lt;li&gt;&lt;a href=&quot;http://pymag.phparch.com/c/issue/view/77&quot;&gt;Threaded Comments For Your Site&lt;/a&gt; &lt;a href=&quot;http://www.eflorenzano.com/blog/&quot;&gt;Eric Florenzano&#8217;s&lt;/a&gt; article for the relatively new &lt;a href=&quot;http://pymag.phparch.com/&quot;&gt;Python Magazine&lt;/a&gt; was published this month. Eric talks about his open source google code project &lt;a href=&quot;http://code.google.com/p/django-threadedcomments/&quot;&gt;django-threadedcomments&lt;/a&gt; and how to integrate the simple yet flexible threaded commenting system for Django-based websites.&lt;/li&gt;
	&lt;/ul&gt;


	&lt;h3&gt;Tip of the Week (1:00:50)&lt;/h3&gt;


	&lt;p&gt;Use &lt;code&gt;decorator_from_middleware&lt;/code&gt; to create a decorator that can be used in your views, which wraps up a middleware class.&lt;/p&gt;


&lt;pre&gt;&lt;code class=&quot;python&quot;&gt;
from django.utils.decorators import decorator_from_middleware 
from django.middleware.middlewaremodule import MiddlewareClass 

decoratorfunc = decorator_from_middleware(MiddlewareClass)
&lt;/code&gt;&lt;/pre&gt;

	&lt;p&gt;This code is not documented but added as part of cache reworking.  See this thread for more information:&lt;/p&gt;


	&lt;ul&gt;
	&lt;li&gt;&lt;a href=&quot;http://groups.google.com/group/django-developers/browse_thread/thread/ccf1de98b1bf1ad9/30089e18b680cd6d?#30089e18b680cd6d&quot;&gt;GoogleGroups Discussion&lt;/a&gt;&lt;/li&gt;
	&lt;/ul&gt;


	&lt;h3&gt;Thank You! (1:03:19)&lt;/h3&gt;


	&lt;ul&gt;
	&lt;li&gt;Brian Rosner
	&lt;ul&gt;
	&lt;li&gt;&lt;a href=&quot;http://oebfare.com/&quot;&gt;Brian Rosner Blog&lt;/a&gt;&lt;/li&gt;
		&lt;li&gt;&lt;a href=&quot;http://twitter.com/brosner/&quot;&gt;Brian on Twitter&lt;/a&gt;&lt;/li&gt;
		&lt;li&gt;&lt;a href=&quot;http://www.ustream.tv/channel/brosner-twid-live&quot;&gt;TWiD Live&lt;/a&gt;&lt;/li&gt;
	&lt;/ul&gt;&lt;/li&gt;
	&lt;/ul&gt;


	&lt;ul&gt;
	&lt;li&gt;Kevin Fricovsky
	&lt;ul&gt;
	&lt;li&gt;&lt;a href=&quot;http://montylounge.com/&quot;&gt;Monty Lounge Industries&lt;/a&gt; &#8211; Kevin&#8217;s web strategy, design, and development company.&lt;/li&gt;
		&lt;li&gt;&lt;a href=&quot;http://howiworkdaily.com/&quot;&gt;How I Work Daily&lt;/a&gt; &#8211; Kevin&#8217;s blog.&lt;/li&gt;
	&lt;/ul&gt;&lt;/li&gt;
	&lt;/ul&gt;


	&lt;ul&gt;
	&lt;li&gt;Michael Trier
	&lt;ul&gt;
	&lt;li&gt;&lt;a href=&quot;http://twitter.com/mtrier/&quot;&gt;Michael on Twitter&lt;/a&gt;&lt;/li&gt;
	&lt;/ul&gt;&lt;/li&gt;
	&lt;/ul&gt;
          </content>  </entry>
  <entry xml:base="http://blog.michaeltrier.com/">
    <author>
      <name>admin</name>
    </author>
    <id>tag:blog.michaeltrier.com,2008-08-04:1379</id>
    <published>2008-08-04T03:39:00Z</published>
    <updated>2008-08-23T22:13:49Z</updated>
    <category term="SQL"/>
    <link href="http://blog.michaeltrier.com/2008/8/4/creating-a-custom-table-object-in-sqlalchemy" rel="alternate" type="text/html"/>
    <title>Creating a Custom Table Object in SQLAlchemy</title>
<content type="html">
            &lt;p&gt;A frequently asked question on the &lt;a href=&quot;http://groups.google.com/group/sqlalchemy&quot;&gt;SQLAlchemy Discussion Group&lt;/a&gt; and on the &lt;span class=&quot;caps&quot;&gt;IRC&lt;/span&gt; channel (#sqlalchemy on freenode) is how to go about implementing a custom Table object, which automatically adds specific columns to every table.&lt;/p&gt;


	&lt;p&gt;For example, if you want all of your tables to contain &lt;code&gt;created_at&lt;/code&gt; and &lt;code&gt;updated_at&lt;/code&gt; columns, you might be inclined to try and subclass &lt;code&gt;Table&lt;/code&gt;. Unfortunately, &lt;code&gt;Table&lt;/code&gt; is not easy to subclass due to the metaclass which controls its creational pattern.   Instead we can use a factory function to handle it for us:&lt;/p&gt;


&lt;pre&gt;&lt;code class=&quot;python&quot;&gt;
def TimeStampTable(*args, **kwargs):
    args = args + (
        Column('created_at', DateTime, nullable=False, default=datetime.now),
        Column('updated_at', DateTime, onupdate=datetime.now)
    )
    return Table(*args, **kwargs)
&lt;/code&gt;&lt;/pre&gt;

	&lt;p&gt;This function simply adds the extra columns to the &lt;code&gt;Table&lt;/code&gt; args and returns the new &lt;code&gt;Table&lt;/code&gt;.  We can then use it in our code like so:&lt;/p&gt;


&lt;pre&gt;&lt;code class=&quot;python&quot;&gt;
my_table = TimeStampTable('my_table', metadata, 
    Column('id', Integer, primary_key=True)
)
&lt;/code&gt;&lt;/pre&gt;

	&lt;p&gt;I&#8217;ve been using this approach on a recent project and it works quite well.  This idea comes from &lt;a href=&quot;http://techspot.zzzeek.org/&quot;&gt;Mike Bayer&lt;/a&gt;.&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://blog.michaeltrier.com/">
    <author>
      <name>admin</name>
    </author>
    <id>tag:blog.michaeltrier.com,2008-07-29:1359</id>
    <published>2008-07-29T23:40:00Z</published>
    <updated>2008-07-30T00:57:26Z</updated>
    <category term="Django"/>
    <category term="Netcasts"/>
    <link href="http://blog.michaeltrier.com/2008/7/29/this-week-in-django-31" rel="alternate" type="text/html"/>
    <title>This Week in Django 31 - 2008-07-27</title>
<summary type="html">&lt;p&gt;This Week in Django is a weekly podcast about all things Django.&lt;/p&gt;


	&lt;p&gt;This week we discuss &lt;b&gt;Satchmo&lt;/b&gt;, the Django open-source E-Commerce application with Chris Moffitt and Bruce Kroeze.  We also look at a few source commits and some cool projects from the community.&lt;/p&gt;</summary><content type="html">
            &lt;div&gt;&lt;img src=&quot;http://media.thisweekindjango.com/images/twid_small.png&quot; /&gt;&lt;/div&gt;

	&lt;p&gt;This Week in Django is a weekly podcast about all things Django.&lt;/p&gt;


	&lt;p&gt;This week we discuss &lt;b&gt;Satchmo&lt;/b&gt;, the Django open-source E-Commerce application with Chris Moffitt and Bruce Kroeze.  We also look at a few source commits and some cool projects from the community.&lt;/p&gt;


	&lt;p&gt;&lt;b&gt;Apologies&lt;/b&gt; for some of the microphone noise.&lt;/p&gt;


	&lt;p&gt;Please see the Show Notes below for all the pertinent information and links&lt;/p&gt;


	&lt;h2&gt;Downloads&lt;/h2&gt;


	&lt;p&gt;&lt;a href=&quot;http://media.thisweekindjango.com/episodes/twid_031.m4a&quot;&gt;&lt;span class=&quot;caps&quot;&gt;AAC&lt;/span&gt; Enhanced Podcast&lt;/a&gt; (89.3 MB, 1:52:43, &lt;span class=&quot;caps&quot;&gt;AAC&lt;/span&gt;)&lt;/p&gt;


	&lt;p&gt;&lt;a href=&quot;http://media.thisweekindjango.com/episodes/twid_031.mp3&quot;&gt;&lt;span class=&quot;caps&quot;&gt;MP3&lt;/span&gt; Edition&lt;/a&gt; (77.4 MB, 1:52:43, &lt;span class=&quot;caps&quot;&gt;MP3&lt;/span&gt;)&lt;/p&gt;


	&lt;p&gt;&lt;a href=&quot;http://media.thisweekindjango.com/episodes/twid_031.ogg&quot;&gt;&lt;span class=&quot;caps&quot;&gt;OGG&lt;/span&gt; Edition&lt;/a&gt; (63.3 MB, 1:52:43, Vorbis)&lt;/p&gt;


	&lt;p&gt;The Enhanced Podcast version contains screenshots and easy access links to all of the items we discuss throughout the podcast.&lt;/p&gt;


	&lt;h2&gt;Feeds Available&lt;/h2&gt;


	&lt;p&gt;iTunes Feeds are available.  By subscribing using the iTunes feeds the podcasts will automatically be downloaded for you when we release them.&lt;/p&gt;


	&lt;h3&gt;iTunes Feeds&lt;/h3&gt;


	&lt;p&gt;&lt;a href=&quot;http://phobos.apple.com/WebObjects/MZStore.woa/wa/viewPodcast?id=270540230&quot;&gt;This Week in Django &#8211; &lt;span class=&quot;caps&quot;&gt;AAC&lt;/span&gt; Edition&lt;/a&gt;&lt;/p&gt;


	&lt;p&gt;&lt;a href=&quot;http://phobos.apple.com/WebObjects/MZStore.woa/wa/viewPodcast?id=270540241&quot;&gt;This Week in Django &#8211; &lt;span class=&quot;caps&quot;&gt;MP3&lt;/span&gt; Edition&lt;/a&gt;&lt;/p&gt;


	&lt;h3&gt;Regular &lt;span class=&quot;caps&quot;&gt;RSS&lt;/span&gt; Feeds&lt;/h3&gt;


	&lt;p&gt;&lt;a href=&quot;http://media.djangonetcasts.com/twid_aac.xml&quot;&gt;This Week in Django &#8211; &lt;span class=&quot;caps&quot;&gt;AAC&lt;/span&gt; Edition&lt;/a&gt;&lt;/p&gt;


	&lt;p&gt;&lt;a href=&quot;http://media.djangonetcasts.com/twid_mp3.xml&quot;&gt;This Week in Django &#8211; &lt;span class=&quot;caps&quot;&gt;MP3&lt;/span&gt; Edition&lt;/a&gt;&lt;/p&gt;


	&lt;p&gt;&lt;a href=&quot;http://media.djangonetcasts.com/twid_ogg.xml&quot;&gt;This Week in Django &#8211; &lt;span class=&quot;caps&quot;&gt;OGG&lt;/span&gt; Edition&lt;/a&gt;&lt;/p&gt;


	&lt;h2&gt;Give Us Feedback&lt;/h2&gt;


	&lt;p&gt;Want to give us some feedback on the show?  We&#8217;re always looking for ideas or suggestions that will help improve each episode.  Please contact us at feedback &lt;code&gt;__at__&lt;/code&gt; thisweekindjango.com.&lt;/p&gt;


	&lt;h2&gt;Show Notes&lt;/h2&gt;


	&lt;h3&gt;Big News (0:00)&lt;/h3&gt;


	&lt;ul&gt;
	&lt;li&gt;&lt;a href=&quot;http://www.pyohio.org/&quot;&gt;PyOhio&lt;/a&gt; was amazing.  Kudos to &lt;a href=&quot;catherinedevlin.blogspot.com/&quot;&gt;Catherine Devlin&lt;/a&gt; for doing an awesome job.&lt;/li&gt;
		&lt;li&gt;&lt;a href=&quot;http://www.djangoproject.com/weblog/2008/jul/21/10-alpha/&quot;&gt;Django 1.0 Alpha&lt;/a&gt; &#8211; Test it out and provide feedback.&lt;/li&gt;
		&lt;li&gt;&lt;a href=&quot;http://code.djangoproject.com/wiki/VersionOneRoadmap#schedule&quot;&gt;Django Push to Beta Sprint&lt;/a&gt; &#8211; August 1 in Washington, DC and on &lt;span class=&quot;caps&quot;&gt;IRC&lt;/span&gt;.&lt;/li&gt;
		&lt;li&gt;&lt;a href=&quot;http://twitter.com/twiderrific&quot;&gt;Twiderrific on Twitter&lt;/a&gt;&lt;/li&gt;
	&lt;/ul&gt;


	&lt;h3&gt;Interview &#8211; Satchmo Developers (8:33)&lt;/h3&gt;


	&lt;p&gt;&lt;a href=&quot;http://www.satchmoproject.com/&quot;&gt;Satchmo&lt;/a&gt; is a Django based E-Commerce solution.&lt;/p&gt;


	&lt;ul&gt;
	&lt;li&gt;Chris Moffitt &#8211; Project Lead
	&lt;ul&gt;
	&lt;li&gt;&lt;a href=&quot;http://www.satchmoproject.com/blog/&quot;&gt;Satchmo Blog&lt;/a&gt;&lt;/li&gt;
		&lt;li&gt;&lt;a href=&quot;http://djangopeople.net/moffitcb/&quot;&gt;Django People Page&lt;/a&gt;&lt;/li&gt;
	&lt;/ul&gt;
	&lt;/li&gt;
		&lt;li&gt;Bruce Kroeze
	&lt;ul&gt;
	&lt;li&gt;&lt;a href=&quot;http://coderseye.com/&quot;&gt;Coder&#8217;s Eye Blog&lt;/a&gt;&lt;/li&gt;
		&lt;li&gt;&lt;a href=&quot;http://solidsitesolutions.com/&quot;&gt;Solid Site Solutions&lt;/a&gt;&lt;/li&gt;
		&lt;li&gt;&lt;a href=&quot;http://gosatchmo.com&quot;&gt;GoSatchmo&lt;/a&gt; &#8211; Commercial support site for Satchmo&lt;/li&gt;
	&lt;/ul&gt;&lt;/li&gt;
	&lt;/ul&gt;


	&lt;ul&gt;
	&lt;li&gt;Mentioned Items
	&lt;ul&gt;
	&lt;li&gt;&lt;a href=&quot;http://oscommerce.org/&quot;&gt;OSCommerce&lt;/a&gt; &#8211; Popular &lt;span class=&quot;caps&quot;&gt;PHP&lt;/span&gt; based E-Commerce solution.&lt;/li&gt;
		&lt;li&gt;&lt;a href=&quot;http://pinax.hotcluboffrance.com/&quot;&gt;Pinax&lt;/a&gt; &#8211; reusable apps reference application.&lt;/li&gt;
		&lt;li&gt;&lt;a href=&quot;http://shop.fsf.org/&quot;&gt;Free Software Foundation&lt;/a&gt;&lt;/li&gt;
		&lt;li&gt;&lt;a href=&quot;http://oohgabooga.com/&quot;&gt;Ooh-Ga-Boo-Ga&lt;/a&gt; &#8211; Huge installation of Satchmo&lt;/li&gt;
	&lt;/ul&gt;&lt;/li&gt;
	&lt;/ul&gt;


	&lt;h3&gt;Tracking Trunk (1:02:46)&lt;/h3&gt;


	&lt;ul&gt;
	&lt;li&gt;&lt;a href=&quot;http://code.djangoproject.com/changeset/8015&quot;&gt;Changed/fixed the way Django handles &lt;code&gt;SCRIPT_NAME&lt;/code&gt; and &lt;code&gt;PATH_INFO&lt;/code&gt; &lt;code&gt;(8015)&lt;/code&gt;&lt;/a&gt; &#8211; Basically, &lt;span class=&quot;caps&quot;&gt;URL&lt;/span&gt; resolving will only use the &lt;code&gt;PATH_INFO&lt;/code&gt; and the &lt;code&gt;SCRIPT_NAME&lt;/code&gt; will be prepended by &lt;code&gt;reverse()&lt;/code&gt; automatically. Allows for more portable development and installation. Also exposes &lt;span class=&quot;caps&quot;&gt;SCRIPT&lt;/span&gt;_NAME in the HttpRequest instance.&lt;/li&gt;
	&lt;/ul&gt;


	&lt;ul&gt;
	&lt;li&gt;&lt;a href=&quot;http://code.djangoproject.com/changeset/8050&quot;&gt;To ensure that a model BooleanField? has an explicit value set &lt;code&gt;(8050)&lt;/code&gt;:&lt;/a&gt; &#8211;  Since it&#8217;s not required, by default, set the default properly in the constructor.&lt;/li&gt;
	&lt;/ul&gt;


	&lt;ul&gt;
	&lt;li&gt;&lt;a href=&quot;http://code.djangoproject.com/changeset/8088&quot;&gt;Handle sitemaps with more than 50,000 URLs in them &lt;code&gt;(8088)&lt;/code&gt;&lt;/a&gt; &#8211;  Implemented by using pagination.
	&lt;ul&gt;
	&lt;li&gt;&lt;a href=&quot;http://www.sitemaps.org/protocol.php&quot;&gt;sitemaps spec&lt;/a&gt; limit of 50,000.&lt;/li&gt;
	&lt;/ul&gt;&lt;/li&gt;
	&lt;/ul&gt;


	&lt;h3&gt;Community Catchup (1:08:41)&lt;/h3&gt;


	&lt;ul&gt;
	&lt;li&gt;&lt;a href=&quot;http://blog.howiworkdaily.com/post/2008/jul/18/callcast-discussion-nathan-borror/&quot;&gt;Callcast &#8211; Discussion with Nathan Borror&lt;/a&gt; &#8211; Another great discussion by &lt;a href=&quot;http://djangopeople.net/kfricovsky/&quot;&gt;Kevin Fricovsky&lt;/a&gt;, this time with &lt;a href=&quot;http://playgroundblues.com/&quot;&gt;Nathan Borror&lt;/a&gt;.
	&lt;ul&gt;
	&lt;li&gt;&lt;a href=&quot;http://code.google.com/p/django-basic-apps/&quot;&gt;django-basic-apps&lt;/a&gt;&lt;/li&gt;
	&lt;/ul&gt;&lt;/li&gt;
	&lt;/ul&gt;


	&lt;ul&gt;
	&lt;li&gt;&lt;a href=&quot;http://semanticdjango.org/&quot;&gt;Semantic Django&lt;/a&gt; &#8211; David Larlet&#8217;s website where he archives a collection of open source semantic reusable django apps including such technologies as OpenID, OAuth, Microformats, &lt;span class=&quot;caps&quot;&gt;RDF&lt;/span&gt;, FOAF, &lt;span class=&quot;caps&quot;&gt;REST&lt;/span&gt;, Atom, Snippets and Patchs.&lt;/li&gt;
	&lt;/ul&gt;


	&lt;ul&gt;
	&lt;li&gt;&lt;a href=&quot;http://jeffcroft.com/blog/2008/jul/25/top-ten-things-suck-about-django-revisited/&quot;&gt;Top ten things that suck about Django, revisited&lt;/a&gt; &#8211; &lt;a href=&quot;http://djangopeople.net/jcroft/&quot;&gt;Jeff Croft&lt;/a&gt; does a follow up article on a &lt;a href=&quot;http://jeffcroft.com/blog/2006/jul/20/top-ten-things-suck-about-django/&quot;&gt;post he did two years ago&lt;/a&gt; updating the status of the items needing improvement. 
	&lt;ul&gt;
	&lt;li&gt;&lt;a href=&quot;http://code.google.com/p/sorl-thumbnail/&quot;&gt;sorl-thumbnail&lt;/a&gt;&lt;/li&gt;
	&lt;/ul&gt;&lt;/li&gt;
	&lt;/ul&gt;


	&lt;ul&gt;
	&lt;li&gt;&lt;a href=&quot;http://ericholscher.com/blog/2008/jul/23/automating-tests-django/&quot;&gt;Automating tests in Django&lt;/a&gt; &#8211; Great post by &lt;a href=&quot;http://djangopeople.net/ericholscher/&quot;&gt;Eric Holscher&lt;/a&gt; that goes through how to create integration tests for your Django applications in an automated way through the use of a Middleware that logs the test creation output to a file.
	&lt;ul&gt;
	&lt;li&gt;&lt;a href=&quot;http://blog.michaeltrier.com/2008/7/24/automating-test-creation&quot;&gt;Automating Test Creation&lt;/a&gt; &#8211; Empty&#8217;s feedback on it. &lt;/li&gt;
		&lt;li&gt;&lt;a href=&quot;http://ericholscher.com/blog/2008/jul/26/testmaker-002-even-easier-automated-testing-django/&quot; title=&quot;Even easier automated testing in Django&quot;&gt;Testmaker .002&lt;/a&gt; &#8211;  Eric updates us with new additions to his open source test project including adding a management command, making it simple to add TestMaker to your project just but adding a reference to &lt;span class=&quot;caps&quot;&gt;INSTALLED&lt;/span&gt;_APPS.&lt;/li&gt;
	&lt;/ul&gt;&lt;/li&gt;
	&lt;/ul&gt;


	&lt;ul&gt;
	&lt;li&gt;&lt;a href=&quot;http://lincolnloop.com/blog/2008/jul/20/building-community-site-django-40-hours-or-less/&quot;&gt;Building a Community Site with Django in 40 Hours or Less&lt;/a&gt; &#8211; Excellent writeup on the &lt;a href=&quot;http://lincolnloop.com/&quot;&gt;Lincoln Loop&lt;/a&gt; blog that shows how they quickly built out a Biking Trail application in Django on top of the &lt;a href=&quot;http://pinax.hotcluboffrance.com/&quot;&gt;Pinax&lt;/a&gt; platform.
	&lt;ul&gt;
	&lt;li&gt;&lt;a href=&quot;http://sct.sphene.net/wiki/show/Start/&quot;&gt;Sphene Community Tools&lt;/a&gt;&lt;/li&gt;
	&lt;/ul&gt;&lt;/li&gt;
	&lt;/ul&gt;


	&lt;ul&gt;
	&lt;li&gt;&lt;a href=&quot;http://sharjeel.2scomplement.com/2008/07/24/django-subdomains/&quot;&gt;Django Subdomains&lt;/a&gt; &#8211; Every have the requirement to implement customized subdomains in your django app, mapping to a model key? It makes for clean, personal, simple to remember url (ex. username.yourappname.com). If you&#8217;ve ever used the popular Basecamp web application you&#8217;re familiar with their &lt;span class=&quot;caps&quot;&gt;URL&lt;/span&gt; structure &#8211; [companyname].projectpath.com. This tutorials details how you can do the same as well as references other posts who attempted the same thing, and issues they all ran into along the way.&lt;/li&gt;
	&lt;/ul&gt;


	&lt;ul&gt;
	&lt;li&gt;&lt;a href=&quot;http://www.djangosnippets.org/snippets/903/&quot;&gt;Creator/updater fields for admin&lt;/a&gt; &#8211; Peter Baumgartner, &lt;a href=&quot;http://lincolnloop.com&quot;&gt;LincolnLoop&lt;/a&gt;, recently got his hands dirty customizing a newforms-admin implementation and created a a customized ModelAdmin class that sets fields for models saved in admin corresponding to the user that created the object and the user that last updated the object. Seems trivial for the currently edited model but the catalyst for this was making sure inlines received the same auditing synchronization. He also leverage JQuery to provide additional client side logic.&lt;/li&gt;
	&lt;/ul&gt;


	&lt;ul&gt;
	&lt;li&gt;&lt;a href=&quot;http://lethain.com/entry/2008/jul/23/replacing-django-s-orm-with-sqlalchemy/&quot;&gt;Replacing Django&#8217;s &lt;span class=&quot;caps&quot;&gt;ORM&lt;/span&gt; with SQLAlchemy&lt;/a&gt; &#8211; &lt;a href=&quot;http://djangopeople.net/lethain/&quot;&gt;Will Larson&lt;/a&gt; steps through how to use SQLAlchemy within Django but replacing the &lt;span class=&quot;caps&quot;&gt;ORM&lt;/span&gt;.
	&lt;ul&gt;
	&lt;li&gt;&lt;a href=&quot;http://blog.michaeltrier.com/2008/7/24/replacing-django-orm-with-sqlalchemy&quot;&gt;Replacing Django&#8217;s &lt;span class=&quot;caps&quot;&gt;ORM&lt;/span&gt; with SQLAlchemy&lt;/a&gt; &#8211; Empty&#8217;s feedback on it.&lt;/li&gt;
		&lt;li&gt;&lt;a href=&quot;http://code.google.com/p/tranquil/&quot;&gt;Tranquil&lt;/a&gt; &#8211; another way to use &lt;a href=&quot;http://www.sqlalchemy.org/&quot;&gt;SQLAlchemy&lt;/a&gt; with Django.&lt;/li&gt;
	&lt;/ul&gt;&lt;/li&gt;
	&lt;/ul&gt;


	&lt;ul&gt;
	&lt;li&gt;&lt;a href=&quot;http://twit.tv/floss34&quot;&gt;&lt;span class=&quot;caps&quot;&gt;FLOSS&lt;/span&gt; Weekly interviews Jacob Kaplan-Moss&lt;/a&gt; &#8211; &lt;a href=&quot;http://www.stonehenge.com/merlyn/&quot;&gt;Randal Schwartz&lt;/a&gt; interviews &lt;a href=&quot;http://www.jacobian.org/&quot;&gt;Jacob Kaplan-Moss&lt;/a&gt; at &lt;span class=&quot;caps&quot;&gt;OSCON&lt;/span&gt; about Django.&lt;/li&gt;
	&lt;/ul&gt;


	&lt;h3&gt;Thank You! (1:46:38)&lt;/h3&gt;


	&lt;ul&gt;
	&lt;li&gt;&lt;a href=&quot;http://www.vim.org/scripts/script.php?script_id=1658&quot;&gt;&lt;span class=&quot;caps&quot;&gt;NERD&lt;/span&gt;_Tree&lt;/a&gt; &#8211; Excellent &lt;span class=&quot;caps&quot;&gt;VIM&lt;/span&gt; plugin that gives a project drawer like behavior.&lt;/li&gt;
	&lt;/ul&gt;


	&lt;ul&gt;
	&lt;li&gt;Brian Rosner
	&lt;ul&gt;
	&lt;li&gt;&lt;a href=&quot;http://oebfare.com/&quot;&gt;Brian Rosner Blog&lt;/a&gt;&lt;/li&gt;
		&lt;li&gt;&lt;a href=&quot;http://twitter.com/brosner/&quot;&gt;Brian on Twitter&lt;/a&gt;&lt;/li&gt;
		&lt;li&gt;&lt;a href=&quot;http://www.ustream.tv/channel/brosner-twid-live&quot;&gt;TWiD Live&lt;/a&gt;&lt;/li&gt;
	&lt;/ul&gt;&lt;/li&gt;
	&lt;/ul&gt;


	&lt;ul&gt;
	&lt;li&gt;Kevin Fricovsky
	&lt;ul&gt;
	&lt;li&gt;&lt;a href=&quot;http://montylounge.com/&quot;&gt;Monty Lounge Industries&lt;/a&gt; &#8211; Kevin&#8217;s web strategy, design, and development company.&lt;/li&gt;
		&lt;li&gt;&lt;a href=&quot;http://howiworkdaily.com/&quot;&gt;How I Work Daily&lt;/a&gt; &#8211; Kevin&#8217;s blog&lt;/li&gt;
	&lt;/ul&gt;&lt;/li&gt;
	&lt;/ul&gt;


	&lt;ul&gt;
	&lt;li&gt;Michael Trier
	&lt;ul&gt;
	&lt;li&gt;&lt;a href=&quot;http://blog.michaeltrier.com/&quot;&gt;Empty Thoughts Blog&lt;/a&gt;&lt;/li&gt;
		&lt;li&gt;&lt;a href=&quot;http://twitter.com/mtrier/&quot;&gt;Michael on Twitter&lt;/a&gt;&lt;/li&gt;
	&lt;/ul&gt;&lt;/li&gt;
	&lt;/ul&gt;
          </content>  </entry>
  <entry xml:base="http://blog.michaeltrier.com/">
    <author>
      <name>admin</name>
    </author>
    <id>tag:blog.michaeltrier.com,2008-07-29:1351</id>
    <published>2008-07-29T13:25:00Z</published>
    <updated>2008-08-22T23:50:41Z</updated>
    <category term="Django"/>
    <link href="http://blog.michaeltrier.com/2008/7/29/django-gets-intermediate-models" rel="alternate" type="text/html"/>
    <title>Django Gets Intermediate Models</title>
<summary type="html">&lt;p&gt;With &lt;a href=&quot;http://code.djangoproject.com/changeset/8136&quot;&gt;Changeset 8136&lt;/a&gt; Django gains the ability to specify intermediate models in a declarative way.  This makes it possible to have extra attributes on your many-to-many join table.  Check out &lt;a href=&quot;http://www.djangoproject.com/documentation/model-api/#extra-fields-on-many-to-many-relationships&quot;&gt;the docs&lt;/a&gt; for more information.&lt;/p&gt;</summary><content type="html">
            &lt;p&gt;With &lt;a href=&quot;http://code.djangoproject.com/changeset/8136&quot;&gt;Changeset 8136&lt;/a&gt; Django gains the ability to specify intermediate models in a declarative way.  This makes it possible to have extra attributes on your many-to-many join table.  Check out &lt;a href=&quot;http://www.djangoproject.com/documentation/model-api/#extra-fields-on-many-to-many-relationships&quot;&gt;the docs&lt;/a&gt; for more information.&lt;/p&gt;


	&lt;p&gt;I&#8217;ve been watching this one for almost a very long time and I&#8217;m glad to see it get in.  Special thanks go to &lt;a href=&quot;http://eflorenzano.com/blog/&quot;&gt;Eric Florenzano&lt;/a&gt; and &lt;a href=&quot;http://djangopeople.net/freakboy3742/&quot;&gt;Russell Keith-Magee&lt;/a&gt;&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://blog.michaeltrier.com/">
    <author>
      <name>admin</name>
    </author>
    <id>tag:blog.michaeltrier.com,2008-07-24:1342</id>
    <published>2008-07-24T18:50:00Z</published>
    <updated>2008-08-23T15:42:27Z</updated>
    <link href="http://blog.michaeltrier.com/2008/7/24/gitpython-ported-to-freebsd" rel="alternate" type="text/html"/>
    <title>GitPython Ported to FreeBSD</title>
<content type="html">
            &lt;p&gt;Wen Heping &lt;a href=&quot;http://www.FreeBSD.org/cgi/query-pr.cgi?pr=ports/125826&quot;&gt;submitted a port&lt;/a&gt; of &lt;a href=&quot;http://gitorious.org/projects/git-python&quot;&gt;GitPython&lt;/a&gt; to be included with &lt;a href=&quot;http://www.freebsd.org/&quot;&gt;FreeBSD&lt;/a&gt;.  It has been great to see all the people that have taken interest in GitPython and have worked to support the project.&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://blog.michaeltrier.com/">
    <author>
      <name>admin</name>
    </author>
    <id>tag:blog.michaeltrier.com,2008-07-24:1341</id>
    <published>2008-07-24T17:53:00Z</published>
    <updated>2008-08-22T23:51:04Z</updated>
    <category term="Django"/>
    <category term="Screencasts"/>
    <category term="Testing"/>
    <link href="http://blog.michaeltrier.com/2008/7/24/automating-test-creation" rel="alternate" type="text/html"/>
    <title>Automating Test Creation</title>
<summary type="html">&lt;p&gt;Eric Holscher just posted a very nice article titled &lt;a href=&quot;http://ericholscher.com/blog/2008/jul/23/automating-tests-django/&quot;&gt;Automating tests in Django&lt;/a&gt;.  The post goes through how to create integration tests for your Django applications in an automated way through the use of a Middleware that logs the test creation output to a file.  It&#8217;s a creative approach and certainly very interesting.  One additional benefit is that Eric created a screencast to go along with the post that is excellently done.&lt;/p&gt;</summary><content type="html">
            &lt;p&gt;Eric Holscher just posted a very nice article titled &lt;a href=&quot;http://ericholscher.com/blog/2008/jul/23/automating-tests-django/&quot;&gt;Automating tests in Django&lt;/a&gt;.  The post goes through how to create integration tests for your Django applications in an automated way through the use of a &lt;a href=&quot;http://www.djangoproject.com/documentation/middleware/&quot;&gt;Middleware&lt;/a&gt; that logs the test creation output to a file.  It&#8217;s a creative approach and certainly very interesting.  One additional benefit is that Eric created a screencast to go along with the post that is excellently done.&lt;/p&gt;


	&lt;p&gt;There is one thing about this approach to testing that doesn&#8217;t quite sit right with me and that&#8217;s that it seems like the testing process is backwards. If you&#8217;re creating tests based on what you have how are you possibly going to cover what&#8217;s specified but not implemented properly?  It&#8217;s the same reason I&#8217;m not a fan of &lt;a href=&quot;http://en.wikipedia.org/wiki/Doctest&quot;&gt;doctests&lt;/a&gt;.  I think they encourage the wrong behavior, especially when often the output your matching to is so complex that the tendency is to just copy and paste from live results.  I recognize that a lot of people don&#8217;t feel the same way, and perhaps I just need to give the idea more time to sink in.&lt;/p&gt;


	&lt;p&gt;I really appreciate all of the screencasts that are starting to show up within the Django community.  I think it&#8217;s a vehicle that a lot of people enjoy and learn well from. I know that I&#8217;m certainly looking foward to more screencasts from Eric.&lt;/p&gt;
          </content>  </entry>
</feed>
