<?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-07-22T04:39:09Z</updated>
  <entry xml:base="http://blog.michaeltrier.com/">
    <author>
      <name>admin</name>
    </author>
    <id>tag:blog.michaeltrier.com,2008-07-22:1333</id>
    <published>2008-07-22T03:54:00Z</published>
    <updated>2008-07-22T04:39:09Z</updated>
    <category term="Django"/>
    <category term="Netcasts"/>
    <link href="http://blog.michaeltrier.com/2008/7/22/this-week-in-django-30-2008-07-20" rel="alternate" type="text/html"/>
    <title>This Week in Django 30 - 2008-07-20</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 the NewForms-Admin merge into Trunk, DjangoCon, 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 discuss the NewForms-Admin merge into Trunk, DjangoCon, 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_030.m4a&quot;&gt;&lt;span class=&quot;caps&quot;&gt;AAC&lt;/span&gt; Enhanced Podcast&lt;/a&gt; (41.8 MB, 49:31, &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_030.mp3&quot;&gt;&lt;span class=&quot;caps&quot;&gt;MP3&lt;/span&gt; Edition&lt;/a&gt; (34.1 MB, 49:31, &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_030.ogg&quot;&gt;&lt;span class=&quot;caps&quot;&gt;OGG&lt;/span&gt; Edition&lt;/a&gt; (27.9 MB, 49:31, 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:47)&lt;/h3&gt;


	&lt;ul&gt;
	&lt;li&gt;&lt;a href=&quot;http://code.djangoproject.com/changeset/7967&quot;&gt;NewForms-Admin Branch Merges to Trunk&lt;/a&gt; &#8211; A huge step towards Version 1.0.
	&lt;ul&gt;
	&lt;li&gt;&lt;a href=&quot;http://code.djangoproject.com/wiki/VersionOneRoadmap#schedule&quot;&gt;Version 1.0 Sprint Schedule&lt;/a&gt;&lt;/li&gt;
		&lt;li&gt;&lt;a href=&quot;http://www.djangoproject.com/documentation/admin/&quot;&gt;NewForms Admin Documentation&lt;/a&gt;&lt;/li&gt;
		&lt;li&gt;&lt;a href=&quot;http://www.djangoproject.com/documentation/newforms/&quot;&gt;Updated NewForms Documentation&lt;/a&gt;&lt;/li&gt;
		&lt;li&gt;&lt;a href=&quot;http://oebfare.com/blog/2008/jul/20/newforms-admin-migration-and-screencast/&quot;&gt;newforms-admin Migration and Screencast&lt;/a&gt; &#8211; Great way to get started and make the migration to NewForms-Admin.&lt;/li&gt;
		&lt;li&gt;&lt;a href=&quot;http://code.djangoproject.com/browser/django/tags/notable_moments/pre-newforms-admin&quot;&gt;Pre-NFA Merge Tag&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://djangocon.org/&quot;&gt;DjangoCon Web Site&lt;/a&gt; and &lt;a href=&quot;http://djangocon.org/program/&quot;&gt;DjangoCon Schedule Released&lt;/a&gt; &#8211; It&#8217;s quite a lineup.  We hope to see everyone there.&lt;/li&gt;
	&lt;/ul&gt;


	&lt;h3&gt;Tracking Trunk (15:04)&lt;/h3&gt;


	&lt;ul&gt;
	&lt;li&gt;&lt;a href=&quot;http://code.djangoproject.com/changeset/7946&quot;&gt;Support for pre-1900 dates &lt;code&gt;(7946)&lt;/code&gt;&lt;/a&gt;
	&lt;ul&gt;
	&lt;li&gt;&lt;a href=&quot;http://code.djangoproject.com/changeset/7950&quot;&gt;Missing Files From 7946 &lt;code&gt;(7950)&lt;/code&gt;&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/changeset/7949&quot;&gt;Removed the mysql_old backend &lt;code&gt;(7949)&lt;/code&gt;&lt;/a&gt; &#8211; According to &lt;a href=&quot;http://www.pointy-stick.com/blog/&quot;&gt;Malcolm Tredinnick&lt;/a&gt;, it smells bad and has no friends.&lt;/li&gt;
	&lt;/ul&gt;


	&lt;ul&gt;
	&lt;li&gt;&lt;a href=&quot;http://code.djangoproject.com/changeset/7952&quot;&gt;updated generic create_update views to use newforms &lt;code&gt;(7952)&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/7971&quot;&gt;newforms -&amp;gt; forms switch &lt;code&gt;(7971)&lt;/code&gt;&lt;/a&gt;
 ** django.newforms is now django.forms. Updated your code.&lt;/li&gt;
	&lt;/ul&gt;


	&lt;ul&gt;
	&lt;li&gt;&lt;a href=&quot;http://code.djangoproject.com/changeset/7977&quot;&gt;Added support for optgroups in models and form fields &lt;code&gt;(7977)&lt;/code&gt;&lt;/a&gt;
	&lt;ul&gt;
	&lt;li&gt;&lt;a href=&quot;http://www.djangoproject.com/documentation/model-api/#choices&quot;&gt;Documentation on new optgroups support&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/changeset/7985&quot;&gt;Performance Improvements for urlize and urlizetrunc filters &lt;code&gt;(7985)&lt;/code&gt;&lt;/a&gt; &#8211; This one has bit us on the Django Logger.&lt;/li&gt;
	&lt;/ul&gt;


	&lt;ul&gt;
	&lt;li&gt;&lt;a href=&quot;http://code.djangoproject.com/changeset/7988&quot;&gt;Exception on 400 Response Fallback to 500 Response &lt;code&gt;(7988)&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
	&lt;/ul&gt;


	&lt;h3&gt;Community Catchup (26:16)&lt;/h3&gt;


	&lt;ul&gt;
	&lt;li&gt;&lt;a href=&quot;http://blog.howiworkdaily.com/&quot;&gt;Kevin Fricovsky&lt;/a&gt; &#8211; joins the This Week in Django team as Community Evangelist.  Kevin will be working to produce the show, contacting guests, gathering news items, coming up with ideas.  Kevin has been doing this work regularly anyway so it&#8217;s great of him to team up with us to help out the program:
	&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. You should have this one in your feedreader.&lt;/li&gt;
	&lt;/ul&gt;&lt;/li&gt;
	&lt;/ul&gt;


	&lt;ul&gt;
	&lt;li&gt;&lt;a href=&quot;http://pyworks.mtacon.com/&quot;&gt;PyWorks conference&lt;/a&gt; &#8211; to be held in Atlanta, GA on November 12-14, 2008.&lt;/li&gt;
	&lt;/ul&gt;


	&lt;ul&gt;
	&lt;li&gt;&lt;a href=&quot;http://pycon.blogspot.com/2008/04/pyohio.html&quot;&gt;PyOhio&lt;/a&gt; &#8211; Reminder that this free one day conference is in Columbus, OH on July 26, 2008.&lt;/li&gt;
	&lt;/ul&gt;


	&lt;ul&gt;
	&lt;li&gt;&lt;a href=&quot;http://search.twitter.com/search?q=django&quot;&gt;Twitter Search&lt;/a&gt; &#8211; via Kevin Fricovsky using the new Twitter Search capability to track all tweets about django.&lt;/li&gt;
	&lt;/ul&gt;


	&lt;ul&gt;
	&lt;li&gt;&lt;a href=&quot;http://lucumr.pocoo.org/cogitations/2008/07/17/jinja2-final-aka-jinjavitus-released/&quot;&gt;Jinja2 Final aka Jinjavitus Released&lt;/a&gt; &#8211; &lt;a href=&quot;http://lucumr.pocoo.org/&quot;&gt;Armin Ronacher&lt;/a&gt; and the rest of the &lt;a href=&quot;http://pocoo.org/&quot;&gt;Pocoo&lt;/a&gt; team announced the release of this wicked-fast Django inspired template engine.&lt;/li&gt;
	&lt;/ul&gt;


	&lt;ul&gt;
	&lt;li&gt;&lt;a href=&quot;http://blog.discorporate.us/2008/07/oscon-python-bof/&quot;&gt;&lt;span class=&quot;caps&quot;&gt;OSCON&lt;/span&gt; Python BoF&lt;/a&gt; &#8211; Tuesday, July 22nd 7pm &#8211; 10pm from Jax Bar and Restaurant.  Via &lt;a href=&quot;http://blog.discorporate.us/&quot;&gt;Jason Kirtland&#8217;s excellent blog&lt;/a&gt; discorporate.&lt;/li&gt;
	&lt;/ul&gt;


	&lt;h3&gt;Tip of the Week (38:32)&lt;/h3&gt;


	&lt;p&gt;This tip comes to us via &lt;a href=&quot;http://overtag.dk/wordpress/&quot;&gt;Ben Jao Ming&lt;/a&gt; in his post &lt;a href=&quot;http://overtag.dk/wordpress/2008/07/django-auto-translation-of-field-values/&quot;&gt;Django auto-translation of field values&lt;/a&gt;.&lt;/p&gt;


	&lt;p&gt;If you need to translate content in a field then &lt;code&gt;gettext&lt;/code&gt; is not going to help you out.  Since you can create your own custom fields it&#8217;s easy to wrap a &lt;code&gt;CharField&lt;/code&gt; with the translation behavior:&lt;/p&gt;


&lt;pre&gt;&lt;code class=&quot;python&quot;&gt;
from django.db import models
from django.utils.translation import gettext_lazy as _

class AutoTranslateField(models.CharField):
    __metaclass__ = models.SubfieldBase
    def to_python(self, value):
        return str(_(value))
&lt;/code&gt;&lt;/pre&gt;

	&lt;p&gt;Just add whatever translations you know of to the locale file and run &lt;code&gt;compilemessages&lt;/code&gt;.&lt;/p&gt;


	&lt;h3&gt;Thank You! (42:45)&lt;/h3&gt;


	&lt;ul&gt;
	&lt;li&gt;&lt;a href=&quot;http://video.google.com/videoplay?docid=2538831956647446078&quot;&gt;7 Habits For Effective Text Editing 2.0&lt;/a&gt; &#8211; Awesome video by &lt;a href=&quot;http://www.moolenaar.net/&quot;&gt;Bram Moolenaar&lt;/a&gt;
	&lt;ul&gt;
	&lt;li&gt;&lt;a href=&quot;http://www.digilife.be/quickreferences/QRC/VIM%20Quick%20Reference%20Card.pdf&quot;&gt;Vim Cheatsheet &lt;span class=&quot;caps&quot;&gt;PDF&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
	&lt;/ul&gt;&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;
          </content>  </entry>
  <entry xml:base="http://blog.michaeltrier.com/">
    <author>
      <name>admin</name>
    </author>
    <id>tag:blog.michaeltrier.com,2008-07-22:1332</id>
    <published>2008-07-22T01:42:00Z</published>
    <updated>2008-07-22T02:07:00Z</updated>
    <category term="Django"/>
    <link href="http://blog.michaeltrier.com/2008/7/22/django-1-0-alpha" rel="alternate" type="text/html"/>
    <title>Django 1.0-Alpha</title>
<content type="html">
            &lt;p&gt;In the ongoing march to Version 1.0, the Django project just tagged and bagged the 1.0 Alpha version with &lt;a href=&quot;http://code.djangoproject.com/changeset/8037&quot;&gt;Changeset 8037&lt;/a&gt;.  I encourage everyone to &lt;a href=&quot;http://www.djangoproject.com/download/1.0-alpha/tarball/&quot;&gt;grab the tarball&lt;/a&gt; or &lt;code&gt;svn up&lt;/code&gt; and start banging on the latest and greatest code.&lt;/p&gt;


	&lt;p&gt;&lt;b&gt;update&lt;/b&gt;: &lt;a href=&quot;http://www.djangoproject.com/documentation/release_notes_1.0_alpha/&quot;&gt;Django 1.0 alpha release notes&lt;/a&gt;&lt;/p&gt;


	&lt;p&gt;&lt;b&gt;update&lt;/b&gt;: &lt;a href=&quot;http://www.djangoproject.com/weblog/2008/jul/21/10-alpha/&quot;&gt;Django 1.0 alpha released!&lt;/a&gt; blog post&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://blog.michaeltrier.com/">
    <author>
      <name>admin</name>
    </author>
    <id>tag:blog.michaeltrier.com,2008-07-22:1331</id>
    <published>2008-07-22T00:40:00Z</published>
    <updated>2008-07-22T00:41:56Z</updated>
    <category term="Django"/>
    <link href="http://blog.michaeltrier.com/2008/7/22/newforms-admin-migration-screencast" rel="alternate" type="text/html"/>
    <title>NewForms-Admin Migration Screencast!</title>
<content type="html">
            &lt;p&gt;&lt;a href=&quot;http://oebfare.com&quot;&gt;Brian Rosner&lt;/a&gt; just released a new screencast and blog post, &lt;a href=&quot;http://oebfare.com/blog/2008/jul/20/newforms-admin-migration-and-screencast/&quot;&gt;newforms-admin Migration and Screencast&lt;/a&gt;, that walks you through how to get started with migrating to NewForms-Admin from your existing trunk based code.  The screencast and accompanying blog post are very well done.  It&#8217;s great to get this kind of helpful information, especially from someone that knows so much about the internals of the code.&lt;/p&gt;


	&lt;p&gt;I highly encourage everyone to check it out, especially if you&#8217;re on the fence on whether or not the conversion is worth it.  Brian shows how easy it is to get started.&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://blog.michaeltrier.com/">
    <author>
      <name>admin</name>
    </author>
    <id>tag:blog.michaeltrier.com,2008-07-20:1328</id>
    <published>2008-07-20T14:25:00Z</published>
    <updated>2008-07-20T14:26:40Z</updated>
    <category term="Django"/>
    <link href="http://blog.michaeltrier.com/2008/7/20/djangocon-schedule-available" rel="alternate" type="text/html"/>
    <title>DjangoCon Schedule Available</title>
<content type="html">
            &lt;p&gt;&lt;a href=&quot;http://www.siudesign.co.uk/&quot;&gt;Robert Lofthouse&lt;/a&gt; just announced that the &lt;a href=&quot;http://djangocon.org/program/&quot;&gt;DjangoCon schedule&lt;/a&gt; is available.  There are a ton of exciting speakers and topics being presented.  It&#8217;s going to be a great time and I&#8217;m looking forward to seeing everyone there.  I am curious if people will be extending the conference into the following week and if sprints are being planned.  I&#8217;d like to make the most of it.&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://blog.michaeltrier.com/">
    <author>
      <name>admin</name>
    </author>
    <id>tag:blog.michaeltrier.com,2008-07-18:1323</id>
    <published>2008-07-18T23:47:00Z</published>
    <updated>2008-07-19T00:07:09Z</updated>
    <category term="Django"/>
    <link href="http://blog.michaeltrier.com/2008/7/18/newforms-admin-lands-in-django-trunk" rel="alternate" type="text/html"/>
    <title>NewForms-Admin Lands in Django Trunk</title>
<content type="html">
            &lt;p&gt;&lt;a href=&quot;http://oebfare.com&quot;&gt;Brian Rosner&lt;/a&gt; just now, with &lt;a href=&quot;http://code.djangoproject.com/changeset/7967&quot;&gt;Changeset 7967&lt;/a&gt;, merged the &lt;a href=&quot;http://code.djangoproject.com/wiki/NewformsAdminBranch&quot;&gt;NewForms-Admin branch&lt;/a&gt; of Django into Trunk.  This is a huge step forward in the push to &lt;a href=&quot;http://code.djangoproject.com/wiki/VersionOneRoadmap&quot;&gt;version 1.0&lt;/a&gt;.  I want to personally thank all of the numerous contributors that have made NewForms-Admin possible.  It&#8217;s been an enormous amount of work, and I am so appreciative.  Thanks!&lt;/p&gt;


	&lt;p&gt;&lt;b&gt;update&lt;/b&gt;: &lt;a href=&quot;http://groups.google.com/group/django-users/browse_thread/thread/53ace41d27dfa7d9&quot;&gt;Read the release post&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-17:1320</id>
    <published>2008-07-17T03:24:00Z</published>
    <updated>2008-07-17T03:26:00Z</updated>
    <link href="http://blog.michaeltrier.com/2008/7/17/gitpython-0-1-4-released" rel="alternate" type="text/html"/>
    <title>GitPython 0.1.4 Released</title>
<content type="html">
            &lt;p&gt;I&#8217;m pleased to announce the release of GitPython 0.1.4.  I appreciate 
all of the work from contributors on this release, especially from 
Florian Apolloner who has really taken the lead and managed 
everything.&lt;/p&gt;


	&lt;h2&gt;&lt;span class=&quot;caps&quot;&gt;DOWNLOAD&lt;/span&gt;&lt;/h2&gt;


	&lt;p&gt;You can get it directly from cheeseshop at: &lt;a href=&quot;http://pypi.python.org/pypi/GitPython/&quot;&gt;http://pypi.python.org/pypi/GitPython/&lt;/a&gt;&lt;/p&gt;


	&lt;p&gt;Or checkout the tag with:&lt;/p&gt;


&lt;pre&gt;&lt;code class=&quot;no-highlight&quot;&gt;
$ git fetch --tags 
$ git checkout -b 0.1.4 0.1.4 
&lt;/code&gt;&lt;/pre&gt;

	&lt;h2&gt;&lt;span class=&quot;caps&quot;&gt;CHANGES&lt;/span&gt;&lt;/h2&gt;


	&lt;ul&gt;
	&lt;li&gt;renamed &lt;code&gt;git_python&lt;/code&gt; to &lt;code&gt;git&lt;/code&gt;. Be sure to delete all pyc files 
before testing.&lt;/li&gt;
	&lt;/ul&gt;


	&lt;h3&gt;Commit&lt;/h3&gt;


	&lt;ul&gt;
	&lt;li&gt;Fixed problem with commit stats not working under all conditions.&lt;/li&gt;
	&lt;/ul&gt;


	&lt;h3&gt;Git&lt;/h3&gt;


	&lt;ul&gt;
	&lt;li&gt;Renamed module to cmd. &lt;/li&gt;
		&lt;li&gt;Removed shell escaping completely. &lt;/li&gt;
		&lt;li&gt;Added support for &lt;code&gt;stderr&lt;/code&gt;, &lt;code&gt;stdin&lt;/code&gt;, and &lt;code&gt;with_status&lt;/code&gt;. &lt;/li&gt;
		&lt;li&gt;&lt;code&gt;git_dir&lt;/code&gt; is now optional in the constructor for &lt;code&gt;git.Git&lt;/code&gt;.  Git 
now falls back to &lt;code&gt;os.getcwd()&lt;/code&gt; when &lt;code&gt;git_dir&lt;/code&gt; is not specified. &lt;/li&gt;
		&lt;li&gt;add a &lt;code&gt;with_exceptions&lt;/code&gt; keyword argument to git commands. 
  &lt;code&gt;GitCommandError&lt;/code&gt; is raised when the exit status is non-zero. &lt;/li&gt;
		&lt;li&gt;add support for a &lt;code&gt;GIT_PYTHON_TRACE&lt;/code&gt; environment variable. 
&lt;code&gt;GIT_PYTHON_TRACE&lt;/code&gt; allows us to debug GitPython&#8217;s usage of git 
through the use of an environment variable.&lt;/li&gt;
	&lt;/ul&gt;


	&lt;h3&gt;Tree&lt;/h3&gt;


	&lt;ul&gt;
	&lt;li&gt;Fixed up problem where &lt;code&gt;name&lt;/code&gt; doesn&#8217;t exist on root of tree.&lt;/li&gt;
	&lt;/ul&gt;


	&lt;h3&gt;Repo&lt;/h3&gt;


	&lt;ul&gt;
	&lt;li&gt;Corrected problem with creating bare repo.  Added &lt;code&gt;Repo.create&lt;/code&gt; 
alias.&lt;/li&gt;
	&lt;/ul&gt;


	&lt;p&gt;Please let us know if you find problems.&lt;/p&gt;


	&lt;p&gt;We&#8217;re at a point where we have to decide where to go with the library, so if you have ideas, we&#8217;d like to know that as well.&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://blog.michaeltrier.com/">
    <author>
      <name>admin</name>
    </author>
    <id>tag:blog.michaeltrier.com,2008-07-15:1308</id>
    <published>2008-07-15T15:17:00Z</published>
    <updated>2008-07-15T15:32:34Z</updated>
    <category term="Django"/>
    <category term="Netcasts"/>
    <link href="http://blog.michaeltrier.com/2008/7/15/this-week-in-django-29-2008-07-13" rel="alternate" type="text/html"/>
    <title>This Week in Django 29 - 2008-07-13</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 special guest, Kevin Fricovsky, that joins us as we talk about DjangoCon, EuroPython, 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 special guest, &lt;a href=&quot;http://blog.howiworkdaily.com/&quot;&gt;Kevin Fricovsky&lt;/a&gt;, that joins us as we talk about DjangoCon, EuroPython, 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_029.m4a&quot;&gt;&lt;span class=&quot;caps&quot;&gt;AAC&lt;/span&gt; Enhanced Podcast&lt;/a&gt; (74.2 MB, 1:31:20, &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_029.mp3&quot;&gt;&lt;span class=&quot;caps&quot;&gt;MP3&lt;/span&gt; Edition&lt;/a&gt; (62.8 MB, 1:31:20, &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_029.ogg&quot;&gt;&lt;span class=&quot;caps&quot;&gt;OGG&lt;/span&gt; Edition&lt;/a&gt; (51.5 MB, 1:31:20, 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 (3:38)&lt;/h3&gt;


	&lt;ul&gt;
	&lt;li&gt;&lt;a href=&quot;http://www.europython.org/EuroPython&quot;&gt;EuroPython 2008&lt;/a&gt; has come and gone.  
	&lt;ul&gt;
	&lt;li&gt;&lt;a href=&quot;http://www.europython.org/TalkMaterials&quot;&gt;EuroPython Talk Materials&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://www.djangoproject.com/weblog/2008/jul/13/djangocon/&quot;&gt;DjangoCon&lt;/a&gt; &#8211; Jacob Kaplan-Moss let the cat out of the bag and let us know that a DjangoCon is being planned for the 1.0 release timeframe for September 6th and 7th.  More details to follow.  We&#8217;ll keep you posted.
	&lt;ul&gt;
	&lt;li&gt;&lt;a href=&quot;http://www.djangoproject.com/weblog/2008/jul/13/djangocon/&quot;&gt;Official Announcement&lt;/a&gt;&lt;/li&gt;
		&lt;li&gt;&lt;a href=&quot;http://simonwillison.net/2008/Jul/13/twitter/&quot;&gt;A Quote&lt;/a&gt; from &lt;a href=&quot;http://www.siudesign.co.uk/&quot;&gt;Robert Lofthouse&lt;/a&gt; via &lt;a href=&quot;http://djangopeople.net/simon/&quot;&gt;Simon Willison&#8217;s&lt;/a&gt; blog.&lt;/li&gt;
	&lt;/ul&gt;&lt;/li&gt;
	&lt;/ul&gt;


	&lt;blockquote&gt;
		&lt;p&gt;&#8220;DjangoCon 2008. Venue: Googleplex, San Francisco Bay Area. Dates: 6th and 7th Sept. Official post will be on djangoproject.com soon.&#8221;&lt;/p&gt;
	&lt;/blockquote&gt;


	&lt;ul&gt;
	&lt;li&gt;&lt;a href=&quot;http://blog.howiworkdaily.com/post/2008/jul/7/callcast-jacob-kaplan-moss-and-djangocon-2008/&quot;&gt;Callcast &#8211; Jacob Kaplan-Moss and DjangoCon 2008&lt;/a&gt;&lt;/li&gt;
	&lt;/ul&gt;


	&lt;h3&gt;Tracking Trunk (14:27)&lt;/h3&gt;


	&lt;ul&gt;
	&lt;li&gt;&lt;a href=&quot;http://code.djangoproject.com/changeset/7813&quot;&gt;Added a &lt;code&gt;ping_google&lt;/code&gt; management command to the sitemaps contrib &lt;code&gt;(7813)&lt;/code&gt;&lt;/a&gt; &#8211; Makes it easy to ping Google once your Sitemap is up and running.&lt;/li&gt;
	&lt;/ul&gt;


	&lt;ul&gt;
	&lt;li&gt;&lt;a href=&quot;http://code.djangoproject.com/changeset/7814&quot;&gt;Fixed #2070: refactored Django&#8217;s file upload capabilities. &lt;code&gt;(7814)&lt;/code&gt;&lt;/a&gt;
	&lt;ul&gt;
	&lt;li&gt;Django now handles large files nicely in uploads with the new streaming file upload handling.&lt;/li&gt;
		&lt;li&gt;&lt;a href=&quot;http://www.djangoproject.com/documentation/upload_handling/&quot;&gt;New uploading documentation&lt;/a&gt;&lt;/li&gt;
		&lt;li&gt;There have been a ton of fixes since this landed.&lt;/li&gt;
		&lt;li&gt;&lt;a href=&quot;http://code.djangoproject.com/changeset/7905&quot;&gt;Multi-part &lt;span class=&quot;caps&quot;&gt;MIME&lt;/span&gt; parsing fix &lt;code&gt;(7905)&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
		&lt;li&gt;&lt;a href=&quot;http://code.djangoproject.com/ticket/5361&quot;&gt;Support pluggable backends for FileField &lt;code&gt;(5361)&lt;/code&gt;&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/changeset/7844&quot;&gt;Moved make-messages, compile-messages and daily-cleanup into &lt;code&gt;django-admin.py&lt;/code&gt; &lt;code&gt;(7844)&lt;/code&gt;&lt;/a&gt; &#8211; This makes them easily accessible as management commands and reduces the number of binaries and man pages.
	&lt;ul&gt;
	&lt;li&gt;&lt;a href=&quot;http://code.google.com/p/django-command-extensions/&quot;&gt;django-command-extensions&lt;/a&gt; &#8211; This is a repository for collecting global custom management extensions.&lt;/li&gt;
		&lt;li&gt;&lt;a href=&quot;http://jannisleidel.com/&quot;&gt;Jannis Leidel&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/changeset/7865&quot;&gt;Rolled QuerySetPaginator into the Paginator class, to simplify things. QuerySetPaginator still exists as an alias, for backwards compatibility. &lt;code&gt;(7865)&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
	&lt;/ul&gt;


	&lt;h3&gt;Branching and Merging (34:18)&lt;/h3&gt;


	&lt;ul&gt;
	&lt;li&gt;&lt;a href=&quot;http://code.djangoproject.com/changeset/7872&quot;&gt;Added autodiscover functionality to django.contrib.admin. &lt;code&gt;(7872)&lt;/code&gt;&lt;/a&gt;
	&lt;ul&gt;
	&lt;li&gt;This makes the admin aware of per-app admin.py modules and does an import on them when explicitly called.&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/changeset/7873&quot;&gt;Added some documentation about media defintions in ModelAdmin classes. &lt;code&gt;(7873)&lt;/code&gt;&lt;/a&gt;
	&lt;ul&gt;
	&lt;li&gt;Subtle backward incompatible change&lt;/li&gt;
	&lt;/ul&gt;&lt;/li&gt;
	&lt;/ul&gt;


	&lt;ul&gt;
	&lt;li&gt;Learning NewForms-Admin
	&lt;ul&gt;
	&lt;li&gt;&lt;a href=&quot;http://code.djangoproject.com/wiki/NewformsAdminBranch&quot;&gt;NewForms-Admin Wiki&lt;/a&gt;&lt;/li&gt;
		&lt;li&gt;&lt;a href=&quot;http://code.djangoproject.com/wiki/NewformsHOWTO&quot;&gt;NewForms-Admin HowTo Wiki&lt;/a&gt;&lt;/li&gt;
		&lt;li&gt;&lt;a href=&quot;http://blog.michaeltrier.com/2008/2/9/django-screencasts-7-newforms-admin-i&quot;&gt;Django Screencasts 7 &#8211; NewForms Admin I&lt;/a&gt;&lt;/li&gt;
	&lt;/ul&gt;&lt;/li&gt;
	&lt;/ul&gt;


	&lt;h3&gt;Community Catchup (47:27)&lt;/h3&gt;


	&lt;ul&gt;
	&lt;li&gt;&lt;a href=&quot;http://www.carsonworkshops.com/dev/croft/08sept2008.html&quot;&gt;How to build Django web apps&lt;/a&gt; &#8211; Looks to be a great workshop with one of Django&#8217;s superstars, &lt;a href=&quot;http://jeffcroft.com/&quot;&gt;Jeff Croft&lt;/a&gt;.&lt;/li&gt;
	&lt;/ul&gt;


	&lt;ul&gt;
	&lt;li&gt;&lt;a href=&quot;http://www.techcrunch.com/2008/07/03/how-to-build-a-web-app-in-four-days-for-10000-say-hello-to-matt/&quot; title=&quot;Say Hello To Matt&quot;&gt;How To Build A Web App in Four Days For $10,000&lt;/a&gt;&lt;/li&gt;
	&lt;/ul&gt;


	&lt;ul&gt;
	&lt;li&gt;&lt;a href=&quot;http://code.google.com/p/django-treemenus/&quot;&gt;django-treemenus&lt;/a&gt; &#8211; Very cool application by &lt;a href=&quot;http://djangopeople.net/julien/&quot;&gt;Julien Phalip&lt;/a&gt; that makes it easy to add tree menus to your Django app and manage the structure dynamically from the customized admin interface. View the &lt;a href=&quot;http://www.julienphalip.com/blog/2008/05/26/django-treemenus-new-release-04/&quot;&gt;0.4 release post&lt;/a&gt; for more information.&lt;/li&gt;
	&lt;/ul&gt;


	&lt;ul&gt;
	&lt;li&gt;&lt;a href=&quot;http://www.eflorenzano.com/blog/post/first-two-django-screencasts/&quot;&gt;First Two Django Screencasts&lt;/a&gt; &#8211; Eric Florenzano never sleeps. His first foray into screencasts are quite impressive.  He covers:
1. Setting up a Django Environment
2. Using Django-Pagination&lt;/li&gt;
	&lt;/ul&gt;


	&lt;ul&gt;
	&lt;li&gt;&lt;a href=&quot;http://marinho.webdoisonline.com/blog/p/interview-with-jacob-kaplan-moss_160/&quot;&gt;Interview with Jacob Kaplan-Moss&lt;/a&gt; &#8211; Great interview by Brazilian &lt;a href=&quot;http://djangopeople.net/marinho/&quot;&gt;Marinho Brandão&lt;/a&gt;.&lt;/li&gt;
	&lt;/ul&gt;


	&lt;ul&gt;
	&lt;li&gt;&lt;a href=&quot;http://lethain.com/entry/2008/jul/10/yahoo-s-build-your-own-search-service-in-django/&quot;&gt;Yahoo&#8217;s Build your Own Search Service in Django&lt;/a&gt; &#8211; &lt;a href=&quot;http://djangopeople.net/lethain/&quot;&gt;Will Larson&lt;/a&gt; offers two informative articles on integrating &lt;span class=&quot;caps&quot;&gt;BOSS&lt;/span&gt; with Django.
	&lt;ul&gt;
	&lt;li&gt;&lt;a href=&quot;http://lethain.com/entry/2008/jul/12/polishing-up-our-django-boss-search-service/&quot;&gt;Polishing Up Our Django &#38; &lt;span class=&quot;caps&quot;&gt;BOSS&lt;/span&gt; Search Service&lt;/a&gt;&lt;/li&gt;
	&lt;/ul&gt;&lt;/li&gt;
	&lt;/ul&gt;


	&lt;h3&gt;Tip of the Week (1:10:41)&lt;/h3&gt;


	&lt;p&gt;&lt;a href=&quot;http://mike.axiak.net/&quot;&gt;Mike Axiak&lt;/a&gt; offers the following tip for getting started with contributing to Django source code.&lt;/p&gt;


	&lt;p&gt;1. Find a closed ticket that interests you.
2. Take a look at a closed ticket, but not the patch.
3. Check out the revision prior to the one that closed the ticket.
4. Write a patch for Django with your own implementation.
5. Compare your patch with the committed patch and try to learn from the differences.&lt;/p&gt;


	&lt;p&gt;Once you&#8217;re comfortable do it for real.&lt;/p&gt;


	&lt;ul&gt;
	&lt;li&gt;&lt;a href=&quot;http://code.djangoproject.com/changeset/7876&quot;&gt;Framework and tests to check for the correct operation of django-admin and manage.py&lt;/a&gt;&lt;/li&gt;
	&lt;/ul&gt;


	&lt;h3&gt;Thank You! (1:23:24)&lt;/h3&gt;


	&lt;ul&gt;
	&lt;li&gt;&lt;a href=&quot;http://code.google.com/p/django-chunks/&quot;&gt;Django-Chunks&lt;/a&gt; &#8211; Simple keyed content that you can insert into your templates.&lt;/li&gt;
		&lt;li&gt;&lt;a href=&quot;http://cloud27.com/&quot;&gt;Cloud27&lt;/a&gt; &#8211; A social network built on &lt;a href=&quot;http://pinax.hotcluboffrance.com/&quot;&gt;Pinax&lt;/a&gt;.&lt;/li&gt;
		&lt;li&gt;&lt;a href=&quot;http://blog.michaeltrier.com/2008/6/2/this-week-in-django-24-2008-06-01&quot;&gt;This Week in Django 24&lt;/a&gt; &#8211; Interview with Pinax / Cloud27 founder &lt;a href=&quot;http://jtauber.com/&quot;&gt;James Tauber&lt;/a&gt;.&lt;/li&gt;
		&lt;li&gt;&lt;a href=&quot;irc://irc.freenode.net/django&quot;&gt;Django-Hotclub Channel&lt;/a&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://blog.howiworkdaily.com/&quot;&gt;How I Work Daily&lt;/a&gt;&lt;/li&gt;
		&lt;li&gt;&lt;a href=&quot;http://groups.google.com/group/django-nyc&quot;&gt;Django-NYC&lt;/a&gt; &#8211; Discussion group for Django-NYC attendees.  If you&#8217;re in the NY area, be sure to check it out.&lt;/li&gt;
	&lt;/ul&gt;&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;
          </content>  </entry>
  <entry xml:base="http://blog.michaeltrier.com/">
    <author>
      <name>admin</name>
    </author>
    <id>tag:blog.michaeltrier.com,2008-07-13:1298</id>
    <published>2008-07-13T21:13:00Z</published>
    <updated>2008-07-13T21:15:17Z</updated>
    <category term="Django"/>
    <link href="http://blog.michaeltrier.com/2008/7/13/djangocon-officially-announced" rel="alternate" type="text/html"/>
    <title>DjangoCon Officially Announced</title>
<content type="html">
            &lt;p&gt;There&#8217;s been &lt;a href=&quot;http://blog.howiworkdaily.com/post/2008/jul/7/callcast-jacob-kaplan-moss-and-djangocon-2008/&quot;&gt;lots of discussion&lt;/a&gt; and &lt;a href=&quot;http://simonwillison.net/2008/Jul/13/twitter/&quot;&gt;hints&lt;/a&gt; over the past several days about a forthcoming Django based conference called DjangoCon.  The &lt;a href=&quot;http://www.djangoproject.com/weblog/2008/jul/13/djangocon/&quot;&gt;official announcement&lt;/a&gt; was just released.  I&#8217;ve always been fond of small intimate group settings and this one will certainly be that with only 200 attendees allowed to participate.  I only hope that I get one of the coveted spots.&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://blog.michaeltrier.com/">
    <author>
      <name>admin</name>
    </author>
    <id>tag:blog.michaeltrier.com,2008-07-13:1295</id>
    <published>2008-07-13T19:47:00Z</published>
    <updated>2008-07-13T19:52:39Z</updated>
    <category term="SQL"/>
    <link href="http://blog.michaeltrier.com/2008/7/13/full-text-search-on-sqlite" rel="alternate" type="text/html"/>
    <title>Full-Text Search on SQLite</title>
<summary type="html">&lt;p&gt;Although some people may be aware that SQLite supports Full-Text Search&#8221; (FTS) I would guess that not many have much experience with getting it setup and using it.  I only base this information on the fact that the documentation on the SQLite site as well as what I could find on the Googles has been pretty slim.  As a result I thought it would be good to provide a walkthrough on getting SQLite &lt;span class=&quot;caps&quot;&gt;FTS&lt;/span&gt; setup and working.&lt;/p&gt;</summary><content type="html">
            &lt;p&gt;Although some people may be aware that &lt;a href=&quot;http://www.sqlite.org/&quot;&gt;SQLite&lt;/a&gt; supports &lt;a href=&quot;http://www.sqlite.org/cvstrac/wiki?p=FtsUsage&quot;&gt;Full-Text Search&lt;/a&gt; (FTS) I would guess that not many have much experience with getting it setup and using it.  I only base this information on the fact that the documentation on the SQLite site as well as what I could find on the Googles has been pretty slim.  As a result I thought it might would to provide a walkthrough on getting SQLite &lt;span class=&quot;caps&quot;&gt;FTS&lt;/span&gt; setup and working.  That said I must preface this by saying that the instructions here apply specifically to Mac &lt;span class=&quot;caps&quot;&gt;OS X&lt;/span&gt;.&lt;/p&gt;


	&lt;h2&gt;Too Many Options&lt;/h2&gt;


	&lt;p&gt;There are a lot of &lt;a href=&quot;http://www.sqlite.org/download.html&quot;&gt;downloads available&lt;/a&gt; for SQLite, and that alone can cause some confusion.  The thing to keep in mind is that with SQLite you&#8217;re really dealing with two parts: the engine and the client.  The client is what you use to interact with a SQLite database on the command-line.  The engine is the functionality itself and can operate independently of the command-line application.&lt;/p&gt;


	&lt;p&gt;When it comes to building from source code, there&#8217;s a couple of different options as well. First there&#8217;s the raw source.  But you can also get an amalgamation of the source.  This comes in two different flavors: with and without configure scripts and makefiles.  You might be curious as to why there are so many options, and it really comes down to being able to support the many different ways people use SQLite.  Some folks are only interested in using SQLite in an embedded environment where they might be linking to the engine directly.  On the other spectrum some people are using SQLite as a nice testing platform for doing web development.  This often requires the SQLite engine, a language-engine interface (dbapi) library, and the client application.&lt;/p&gt;


	&lt;p&gt;To support &lt;span class=&quot;caps&quot;&gt;FTS&lt;/span&gt; within SQLite we have a couple options. SQLite supports the idea of loadable plugin modules.  In other words technically we could build the &lt;span class=&quot;caps&quot;&gt;FTS&lt;/span&gt; plugin as a dynamically loadable module and then load it before use.  The second option is to statically link the &lt;span class=&quot;caps&quot;&gt;FTS&lt;/span&gt; plugin into the SQLite source code at build time.  This is the approach I will take here.&lt;/p&gt;


	&lt;h2&gt;Compiling and Installing&lt;/h2&gt;


	&lt;p&gt;The source code bundle that we need is the &lt;a href=&quot;http://www.sqlite.org/sqlite-amalgamation-3.5.9.tar.gz&quot;&gt;sqlite-amalgamation package&lt;/a&gt;.  The amalgamation is a single large source code file that contains the entire SQLite implementation, and (as of version 3.5.3) the Full-text search engine. Therefore we want to be sure we get at least release version 3.5.3, just to make things simple.  Since there&#8217;s two amalgamation packages be sure to select the one that contains the configure script and makefile for building it.&lt;/p&gt;


	&lt;p&gt;First let&#8217;s download and extract the source code:&lt;/p&gt;


&lt;pre&gt;&lt;code class=&quot;no-highlight&quot;&gt;
$ curl -O http://www.sqlite.org/sqlite-amalgamation-3.5.9.tar.gz
$ tar -xvzf sqlite-amalgamation-3.5.9.tar.gz
$ cd sqlite-amalgamation-3.5.9
&lt;/code&gt;&lt;/pre&gt;

	&lt;p&gt;Now that we have the source we just need to follow the standard process for configuring, compiling, and installing the package.  The most important piece is setting configuration parameters appropriately for our platform.  Since we want to statically include &lt;span class=&quot;caps&quot;&gt;FTS&lt;/span&gt; we need to let the compile know that&#8217;s what we plan to do.  Additionally since I&#8217;ll be installing on Mac &lt;span class=&quot;caps&quot;&gt;OS X I&lt;/span&gt; need to be sure to tell the Makefile that I&#8217;ll be changing the default location for the installation.  To do this let&#8217;s issue the following command:&lt;/p&gt;


&lt;pre&gt;&lt;code class=&quot;no-highlight&quot;&gt;
$ CFLAGS=&quot;-DSQLITE_ENABLE_FTS3=1&quot; ./configure --prefix=/usr
&lt;/code&gt;&lt;/pre&gt;

	&lt;p&gt;Note that we&#8217;ve enabled &lt;span class=&quot;caps&quot;&gt;FTS3&lt;/span&gt;, the latest version, plus we&#8217;ve also modified the installation prefix to &lt;code&gt;/usr&lt;/code&gt; from the default &lt;code&gt;/usr/local&lt;/code&gt;.  This last piece is important because if you don&#8217;t do that you&#8217;ll actually end up with two versions of SQLite, one that you&#8217;ll access through the command-line and one that Python itself will be accessing.  This tripped me up for a bit, because it appears that you&#8217;re using the latest version.&lt;/p&gt;


	&lt;p&gt;Along these lines, it is important to not get confused by the actual &lt;code&gt;_sqlite3.so&lt;/code&gt; library used by Python.  On my Mac this is located in the following directory:&lt;/p&gt;


	&lt;p&gt;&lt;code&gt;/System/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/lib-dynload/&lt;/code&gt;&lt;/p&gt;


	&lt;p&gt;It appears that this loadable module simply calls out to the installation in &lt;code&gt;/usr/lib/sqlite3&lt;/code&gt;.&lt;/p&gt;


	&lt;p&gt;The next thing we need to do is actually compile the source and install it.  So to do that issue the following two statements:&lt;/p&gt;


&lt;pre&gt;&lt;code class=&quot;no-highlight&quot;&gt;
$ make
$ sudo make install
&lt;/code&gt;&lt;/pre&gt;

	&lt;p&gt;At this point the latest SQLite should be installed and ready to go on your system.  We can verify this two different ways.  First let&#8217;s verify that the command-line client is in fact updated:&lt;/p&gt;


&lt;pre&gt;&lt;code class=&quot;no-highlight&quot;&gt;
$ sqlite3 --version
3.5.9
&lt;/code&gt;&lt;/pre&gt;

	&lt;p&gt;If you got something other than that you might want to re-check the steps.  Secondly we want to be sure that Python is using the correct version.&lt;/p&gt;


	&lt;p&gt;Note: I assume Python here because that&#8217;s what I&#8217;m using but if you&#8217;re using a different language you&#8217;ll want to modify the checks accordingly.  If you are still seeing the older version then you might want to investigate how SQLite is being used in your system.  Since it has such a small footprint it&#8217;s not uncommon for it to be just bundled in with the program. I know that a search on my system found at least 4 or 5 different installations of SQLite.&lt;/p&gt;


&lt;pre&gt;&lt;code class=&quot;python&quot;&gt;
$ python
&amp;gt;&amp;gt;&amp;gt; import sqlite3
&amp;gt;&amp;gt;&amp;gt; sqlite3.sqlite_version
'3.5.9'
&lt;/code&gt;&lt;/pre&gt;

	&lt;p&gt;The above assumes that you&#8217;re using Python 2.5+.  If you&#8217;re using an older version of Python then you will likely be using the &lt;a href=&quot;http://pysqlite.org/&quot;&gt;pysqlite&lt;/a&gt; module.&lt;/p&gt;


	&lt;h2&gt;Usage&lt;/h2&gt;


	&lt;p&gt;Once we have SQLite with Full-Text Search capability built in the next step is to just get familiar with the how it all works.  I&#8217;m not going to go into too much detail here, because there is pretty good &lt;a href=&quot;http://www.sqlite.org/cvstrac/wiki?p=FtsUsage&quot;&gt;usage documentation&lt;/a&gt; on the SQLite website.&lt;/p&gt;


	&lt;p&gt;The key piece is that when you want to utilize &lt;span class=&quot;caps&quot;&gt;FTS&lt;/span&gt; on SQLite you need to create your table as a virtual table that utilizes the &lt;span class=&quot;caps&quot;&gt;FTS&lt;/span&gt; engine.  To do that we need to modify the table creation syntax slightly:&lt;/p&gt;


&lt;pre&gt;&lt;code class=&quot;sql&quot;&gt;
CREATE VIRTUAL TABLE posts using FTS3(title, body);
&lt;/code&gt;&lt;/pre&gt;

	&lt;p&gt;After we&#8217;ve created the appropriate virtual table we can interact with it just like any other table.  The difference is we have access to a new keyword syntax: the &lt;code&gt;MATCH&lt;/code&gt; operator.  The &lt;code&gt;MATCH&lt;/code&gt; operator is used to access the &lt;span class=&quot;caps&quot;&gt;FTS&lt;/span&gt; functionality.&lt;/p&gt;


	&lt;p&gt;For instance if we want to find all posts that contain the word &lt;code&gt;python&lt;/code&gt; in them we can issue the following &lt;span class=&quot;caps&quot;&gt;SQL&lt;/span&gt;:&lt;/p&gt;


&lt;pre&gt;&lt;code class=&quot;sql&quot;&gt;
SELECT * FROM posts WHERE posts MATCH 'python';
&lt;/code&gt;&lt;/pre&gt;

	&lt;p&gt;This will actually find all posts where the title or body columns contain the text &lt;code&gt;python&lt;/code&gt;.  In addition to this simple syntax the &lt;span class=&quot;caps&quot;&gt;FTS&lt;/span&gt; engine supports things like &lt;code&gt;OR&lt;/code&gt; and not (&lt;code&gt;-&lt;/code&gt;) types of statements, as well as more complex items like prefix searching:&lt;/p&gt;


&lt;pre&gt;&lt;code class=&quot;sql&quot;&gt;
SELECT * FROM posts WHERE posts MATCH 'py*';
&lt;/code&gt;&lt;/pre&gt;

	&lt;p&gt;Note: one of the limitations (there&#8217;s many) of SQLite&#8217;s &lt;span class=&quot;caps&quot;&gt;FTS&lt;/span&gt; is that you can&#8217;t use more than one &lt;code&gt;MATCH&lt;/code&gt; operator in a query.  To counteract this just be sure to combine search terms into a single &lt;code&gt;MATCH&lt;/code&gt; operator statement and take advantage of the search syntax to do and, or, not, etc&#8230;&lt;/p&gt;


	&lt;h2&gt;Have Fun&lt;/h2&gt;


	&lt;p&gt;Well I hope this is enough to get you on your way to using Full-Text Search within SQLite.  If you have any special tips, please be sure to leave me a comment.&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://blog.michaeltrier.com/">
    <author>
      <name>admin</name>
    </author>
    <id>tag:blog.michaeltrier.com,2008-07-12:1293</id>
    <published>2008-07-12T16:24:00Z</published>
    <updated>2008-07-12T16:26:47Z</updated>
    <category term="Django"/>
    <link href="http://blog.michaeltrier.com/2008/7/12/cloud27-a-social-network" rel="alternate" type="text/html"/>
    <title>Cloud27 - A Social Network</title>
<content type="html">
            &lt;p&gt;This morning I got my first glimpse of what will become &lt;a href=&quot;http://cloud27.com/&quot;&gt;Cloud27&lt;/a&gt;, featuring a sporty design by &lt;a href=&quot;http://www.20seven.org/&quot;&gt;Greg Newman&lt;/a&gt;, and I already like what I see. Cloud27 is a new social network based on &lt;a href=&quot;http://pinax.hotcluboffrance.com/&quot;&gt;Pinax&lt;/a&gt;, a Django reference application for reusable applications.&lt;/p&gt;


	&lt;p&gt;So if there&#8217;s Pinax, why Cloud27?  Well Pinax is where all development and new ideas happen.  Pinax is project intended to provide a starting point for websites.  Cloud27 will actually be focussed on building out on the base of Pinax and expanding it into a kick-ass social network application.&lt;/p&gt;


	&lt;p&gt;To find out a whole lot more about reusable applications and Pinax, I highly recommend a listen to &lt;a href=&quot;http://blog.michaeltrier.com/2008/6/2/this-week-in-django-24-2008-06-01&quot;&gt;This Week in Django 24&lt;/a&gt;, featuring Pinax / Cloud27 founder &lt;a href=&quot;http://jtauber.com/&quot;&gt;James Tauber&lt;/a&gt;.&lt;/p&gt;


	&lt;p&gt;I&#8217;ll be keeping an eye on Cloud27.&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://blog.michaeltrier.com/">
    <author>
      <name>admin</name>
    </author>
    <id>tag:blog.michaeltrier.com,2008-07-12:1292</id>
    <published>2008-07-12T15:57:00Z</published>
    <updated>2008-07-13T06:36:50Z</updated>
    <category term="SQL"/>
    <link href="http://blog.michaeltrier.com/2008/7/12/two-new-great-books" rel="alternate" type="text/html"/>
    <title>Two New Great Books</title>
<summary type="html">&lt;p&gt;There seems to be a plethora of Python related books coming out these days.  I just stumbled across two interesting ones&#8230;&lt;/p&gt;</summary><content type="html">
            &lt;div&gt;&lt;img src=&quot;http://blog.michaeltrier.com/assets/2008/7/12/sqlalchemy.jpg&quot; height=&quot;120&quot; width=&quot;120&quot; /&gt;&lt;/div&gt;&lt;div&gt;
There seems to be a plethora of Python related books coming out these days.  I just stumbled across two interesting ones.  First up is &lt;a href=&quot;http://www.amazon.com/Essential-SQLAlchemy-Rick-Copeland/dp/0596516142&quot;&gt;Essential SQLAlchemy&lt;/a&gt;.  I desperately want this book but I&#8217;m tired of paper books.  It&#8217;s available on Safari Online, but I don&#8217;t have that.  I&#8217;d really like to see a Kindle version.  I&#8217;ll probably end up buying the paper, because it looks to be very exciting.
&lt;/div&gt;

&lt;div&gt;
&lt;img src=&quot;http://blog.michaeltrier.com/assets/2008/7/12/pylons.jpg&quot; height=&quot;120&quot; width=&quot;120&quot; /&gt;&lt;/div&gt;
&lt;div&gt;
Secondly is &lt;a href=&quot;http://www.amazon.com/Definitive-Guide-Pylons/dp/1590599349&quot;&gt;The Definitive Guide to Pylons&lt;/a&gt;.  This book is offered as a &lt;a href=&quot;http://pylonsbook.com/&quot;&gt;free beta book&lt;/a&gt;, but will also be available for purchase through Apress.  I&#8217;ve skimmed the contents but plan to spend some time with it in the coming week.  I&#8217;m really interested in the Deployment chapter, so I&#8217;ll probably start there first.  
&lt;/div&gt;
          </content>  </entry>
  <entry xml:base="http://blog.michaeltrier.com/">
    <author>
      <name>admin</name>
    </author>
    <id>tag:blog.michaeltrier.com,2008-07-08:1288</id>
    <published>2008-07-08T00:53:00Z</published>
    <updated>2008-07-08T00:55:07Z</updated>
    <category term="Django"/>
    <category term="Netcasts"/>
    <link href="http://blog.michaeltrier.com/2008/7/8/no-twid-this-week" rel="alternate" type="text/html"/>
    <title>No TWiD This Week</title>
<content type="html">
            &lt;p&gt;Apologies to all but there will be no This Week in Django podcast this week.  Enjoy the week off and we look forward to seeing you all next week on &lt;a href=&quot;http://www.ustream.tv/channel/brosner-twid-live&quot;&gt;TWiD Live&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-07:1287</id>
    <published>2008-07-07T20:03:00Z</published>
    <updated>2008-07-07T20:07:38Z</updated>
    <category term="Django"/>
    <link href="http://blog.michaeltrier.com/2008/7/7/callcast-with-jacob-kaplan-moss" rel="alternate" type="text/html"/>
    <title>Callcast with Jacob Kaplan-Moss</title>
<content type="html">
            &lt;p&gt;Kevin Fricovsky at the &lt;a href=&quot;http://blog.howiworkdaily.com/&quot;&gt;&lt;span class=&quot;caps&quot;&gt;HIWD&lt;/span&gt;&lt;/a&gt; (How I Work Daily) blog just posted a very interesting &lt;a href=&quot;http://blog.howiworkdaily.com/post/2008/jul/7/callcast-jacob-kaplan-moss-and-djangocon-2008/&quot;&gt;callcast with Jacob Kaplan-Moss&lt;/a&gt;, one of Django&#8217;s core developer.  In the callcast, Jacob discusses a planned DjangoCon 2008 conference to be held in the San Francisco Bay area.  The idea of a conference centered around Django sounds very exciting.  I highly recommend that you give it a listen.&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://blog.michaeltrier.com/">
    <author>
      <name>admin</name>
    </author>
    <id>tag:blog.michaeltrier.com,2008-07-02:1278</id>
    <published>2008-07-02T01:48:00Z</published>
    <updated>2008-07-03T17:53:21Z</updated>
    <category term="Django"/>
    <category term="Netcasts"/>
    <link href="http://blog.michaeltrier.com/2008/7/2/this-week-in-django-28-2008-06-30" rel="alternate" type="text/html"/>
    <title>This Week in Django 28 - 2008-06-30</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 talk about quite a few source commits (kicking-ass), some cool projects from the community, the Tip of the Week, and a question from the &lt;span class=&quot;caps&quot;&gt;IRC&lt;/span&gt;.&lt;/p&gt;</summary><content type="html">
            &lt;div&gt;&lt;img src=&quot;http://blog.michaeltrier.com/assets/2007/12/14/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 talk about quite a few source commits (kicking-ass), some cool projects from the community, the Tip of the Week, and a question from the &lt;span class=&quot;caps&quot;&gt;IRC&lt;/span&gt;.&lt;/p&gt;


	&lt;p&gt;Let us know if downloads are better for those of you in Europe.&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.djangonetcasts.com/twid_028.m4a&quot;&gt;&lt;span class=&quot;caps&quot;&gt;AAC&lt;/span&gt; Enhanced Podcast&lt;/a&gt; (50.3 MB, 1:01:06, &lt;span class=&quot;caps&quot;&gt;AAC&lt;/span&gt;)&lt;/p&gt;


	&lt;p&gt;&lt;a href=&quot;http://media.djangonetcasts.com/twid_028.mp3&quot;&gt;&lt;span class=&quot;caps&quot;&gt;MP3&lt;/span&gt; Edition&lt;/a&gt; (42 MB, 1:01:06, &lt;span class=&quot;caps&quot;&gt;MP3&lt;/span&gt;)&lt;/p&gt;


	&lt;p&gt;&lt;a href=&quot;http://media.djangonetcasts.com/twid_028.ogg&quot;&gt;&lt;span class=&quot;caps&quot;&gt;OGG&lt;/span&gt; Edition&lt;/a&gt; (32.9 MB, 1:01:06, 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&lt;/h3&gt;


	&lt;p&gt;&lt;a href=&quot;http://djangopeople.net/malcolm/&quot;&gt;Malcolm Tredinnick&lt;/a&gt; is back!!!&lt;/p&gt;


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


	&lt;ul&gt;
	&lt;li&gt;QuerySet Refactor Cleanup &#8211; Several tickets related to QuerySet Refactor merge and unrelated but just database stuff in general:
	&lt;ul&gt;
	&lt;li&gt;&lt;a href=&quot;http://code.djangoproject.com/changeset/7739&quot;&gt;Corrected DateQuerySet to handle nullable fields &lt;code&gt;(7739)&lt;/code&gt;&lt;/a&gt; &#8211; Previously if the date field was nullable no results were returned. &lt;/li&gt;
		&lt;li&gt;&lt;a href=&quot;http://code.djangoproject.com/changeset/7740&quot;&gt;Corrected values and values_list across nullable joins &lt;code&gt;(7740)&lt;/code&gt;&lt;/a&gt; &#8211; Previously, if we were querying across a nullable join and then a non-nullable one, the second join would not be a &lt;span class=&quot;caps&quot;&gt;LEFT OUTER&lt;/span&gt; join, which would exclude certain valid results from the result set. &lt;/li&gt;
		&lt;li&gt;&lt;code&gt;(7741)&lt;/code&gt;, &lt;code&gt;(7773)&lt;/code&gt;, and &lt;code&gt;(7760)&lt;/code&gt; through &lt;code&gt;(7766)&lt;/code&gt; &#8211; Lots of miscellaneous QuerySet changes&lt;/li&gt;
		&lt;li&gt;&lt;a href=&quot;http://code.djangoproject.com/changeset/7784&quot;&gt;Delete multi-table objects correctly. &lt;code&gt;(7784)&lt;/code&gt;&lt;/a&gt; &#8211; When model inheritance is used, the parent objects should be deleted as part of the &lt;code&gt;delete()&lt;/code&gt; call on the child. &lt;/li&gt;
		&lt;li&gt;&lt;a href=&quot;http://code.djangoproject.com/changeset/7791&quot;&gt;Changed the way extra() bits are handled when QuerySets? are merged. &lt;code&gt;(7791)&lt;/code&gt;&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/changeset/7748&quot;&gt;django.contrib.auth no longer requires Sites framework &lt;code&gt;(7748)&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/7754&quot;&gt;Allow cache tag timeout value to be a variable &lt;code&gt;(7754)&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/7794&quot;&gt;Removed an unused OrderingField &lt;code&gt;(7794)&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/7795&quot;&gt;Normalize file paths for get_FIELD_filename &lt;code&gt;(7795)&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/7798&quot;&gt;exact lookups in MySQL are now case-sensitive &lt;code&gt;(7798)&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/7799&quot;&gt;Enforce the required attribute on BooleanField &lt;code&gt;(7799)&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/7807&quot;&gt;Allow empty content in flatpages. &lt;code&gt;(7807)&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/7806&quot;&gt;Removed default ordering on the User class &lt;code&gt;(7806)&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
	&lt;/ul&gt;


	&lt;h3&gt;Community Catchup (19:28)&lt;/h3&gt;


	&lt;ul&gt;
	&lt;li&gt;&lt;a href=&quot;http://lukeplant.me.uk/blog.php?id=1107301686&quot;&gt;Django newforms-admin upgrade&lt;/a&gt; &#8211; &lt;a href=&quot;http://djangopeople.net/spookylukey/&quot;&gt;Luke Plant&lt;/a&gt; discusses his experiences with upgrading to the Django NewForms-Admin branch.  Great post if you&#8217;re considering making the jump.&lt;/li&gt;
	&lt;/ul&gt;


	&lt;ul&gt;
	&lt;li&gt;&lt;a href=&quot;http://kssproject.org/docs/tutorial/kss-in-django-with-kss-django-application/tutorial-all-pages&quot;&gt;Kss in Django&lt;/a&gt; &#8211; &lt;span class=&quot;caps&quot;&gt;KSS&lt;/span&gt; is a javascript framework that aims to allow Ajax development without javascript. It uses stylesheets with &lt;span class=&quot;caps&quot;&gt;CSS&lt;/span&gt;-compliant syntax to setup behaviours in the client and a set of well-defined commands that are marshalled back from the server to manipulate the &lt;span class=&quot;caps&quot;&gt;DOM&lt;/span&gt;.&lt;/li&gt;
	&lt;/ul&gt;


	&lt;ul&gt;
	&lt;li&gt;&lt;a href=&quot;http://www.djangosnippets.org/snippets/834/&quot;&gt;Oh Django Song&lt;/a&gt; &#8211; Creative Mac &lt;span class=&quot;caps&quot;&gt;OS X&lt;/span&gt; snippet.&lt;/li&gt;
	&lt;/ul&gt;


	&lt;ul&gt;
	&lt;li&gt;&lt;a href=&quot;http://dakrauth.com/blog/entry/python-and-django-setup-mac-os-x-leopard/&quot;&gt;Python and Django Setup for Mac &lt;span class=&quot;caps&quot;&gt;OS X&lt;/span&gt; Leopard&lt;/a&gt; &#8211; Exhaustive walkthrough by &lt;a href=&quot;http://djangopeople.net/dakrauth/&quot;&gt;David A Krauth&lt;/a&gt; on setting up Django on Mac &lt;span class=&quot;caps&quot;&gt;OS X&lt;/span&gt;.&lt;/li&gt;
	&lt;/ul&gt;


	&lt;ul&gt;
	&lt;li&gt;&lt;a href=&quot;http://paltman.com/2008/06/29/edit-inline-support-for-generic-relations/&quot;&gt;Edit Inline Support for Generic Relations&lt;/a&gt; &#8211; Patrick Altman delivers an article discussing how he implemented edit-inline support for generic relations.&lt;/li&gt;
	&lt;/ul&gt;


	&lt;ul&gt;
	&lt;li&gt;&lt;a href=&quot;http://oebfare.com/blog/2008/jun/24/django-code_swarm/&quot;&gt;Django code_swarm&lt;/a&gt; &#8211; A kick ass-swarm visualizer by &lt;a href=&quot;http://oebfare.com/&quot;&gt;Brian Rosner&lt;/a&gt; for the Django source code from initial release to today.
	&lt;ul&gt;
	&lt;li&gt;&lt;a href=&quot;http://vis.cs.ucdavis.edu/~ogawa/codeswarm/&quot;&gt;&lt;code&gt;code_swarm&lt;/code&gt;&lt;/a&gt; &#8211; An experiment in organic software visualization.&lt;/li&gt;
		&lt;li&gt;&lt;a href=&quot;http://vimeo.com/1227290&quot;&gt;SQLAlchemy Code Swarm&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://ryanberg.net/blog/2008/jun/24/basics-creating-tumblelog-django/&quot;&gt;The basics of creating a tumblelog with Django&lt;/a&gt; &#8211; Interesting post by Ryan Berg.  Similar projects are Jelly-Roll and SyncR and Django Lifestream.
	&lt;ul&gt;
	&lt;li&gt;&lt;a href=&quot;http://code.google.com/p/jellyroll/&quot;&gt;jellyroll&lt;/a&gt;&lt;/li&gt;
		&lt;li&gt;&lt;a href=&quot;http://code.google.com/p/django-syncr/&quot;&gt;django-syncr&lt;/a&gt;&lt;/li&gt;
		&lt;li&gt;&lt;a href=&quot;http://code.google.com/p/django-lifestream/&quot;&gt;django-lifestream&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://42topics.com/blog/2008/06/an-interview-with-adrian-holovaty/&quot;&gt;An Interview with Adrian Holovaty &#8211; Creator of Django&lt;/a&gt; &#8211; Another excellent interview by Shabda Raaj.&lt;/li&gt;
	&lt;/ul&gt;


	&lt;h3&gt;Tip of the Week (43:49)&lt;/h3&gt;


	&lt;p&gt;Ever need to reorder the fields on your Model Form?&lt;/p&gt;


	&lt;ul&gt;
	&lt;li&gt;&lt;a href=&quot;http://simonwillison.net/2008/Jun/27/cookbooknewformsfieldordering/&quot;&gt;CookBookNewFormsFieldOrdering&lt;/a&gt; &#8211; Post by &lt;a href=&quot;http://djangopeople.net/simon/&quot;&gt;Simon Willison&lt;/a&gt;.&lt;/li&gt;
		&lt;li&gt;&lt;a href=&quot;http://code.djangoproject.com/wiki/CookBookNewFormsFieldOrdering&quot;&gt;Django Wiki CookBook&lt;/a&gt;&lt;/li&gt;
	&lt;/ul&gt;


&lt;pre&gt;&lt;code class=&quot;python&quot;&gt;
class TranslationForm(BookForm):
    translator = forms.CharField(max_length=40)

    def __init__(self, *args, **kwargs):
        super(TranslationForm, self).__init__(*args, **kwargs)
        self.fields.keyOrder = ['title', 'author', 'translator', 'publisher', 'copyright']
&lt;/code&gt;&lt;/pre&gt;

	&lt;h3&gt;&lt;span class=&quot;caps&quot;&gt;IRC&lt;/span&gt; Ad Nauseam (47:10)&lt;/h3&gt;


	&lt;p&gt;&lt;a href=&quot;http://code.djangoproject.com/wiki/IrcFAQ&quot;&gt;Django &lt;span class=&quot;caps&quot;&gt;IRC FAQ&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;


	&lt;p&gt;&lt;a href=&quot;http://code.djangoproject.com/wiki/BackwardsIncompatibleChanges&quot;&gt;Backwards Incompatible Changes Information&lt;/a&gt;&lt;/p&gt;


	&lt;blockquote&gt;
		&lt;p&gt;&lt;a href=&quot;http://charlieokeefe.blogspot.com/&quot;&gt;Charlie O&#8217;Keefe&lt;/a&gt; say, &#8220;I&#8217;ve gotten into designing restful &lt;span class=&quot;caps&quot;&gt;URL&lt;/span&gt; schemes, basically organizing a web app around resources.  Learning Django I was frustrated to find that nothing seems to be done this way.  Is there any tool that can help with that?&#8221;&lt;/p&gt;
	&lt;/blockquote&gt;


	&lt;ul&gt;
	&lt;li&gt;&lt;a href=&quot;http://code.google.com/p/django-rest-interface/&quot;&gt;django-rest-interface&lt;/a&gt; &#8211; Google Summer of Code project by Andreas Stuhlmüller.&lt;/li&gt;
	&lt;/ul&gt;


	&lt;h3&gt;Thank You! (50:58)&lt;/h3&gt;


	&lt;ul&gt;
	&lt;li&gt;&lt;a href=&quot;http://code.google.com/p/macvim/&quot;&gt;MacVim&lt;/a&gt;
	&lt;ul&gt;
	&lt;li&gt;&lt;a href=&quot;http://code.djangoproject.com/wiki/TextMate&quot;&gt;Using TextMate with Django&lt;/a&gt; &#8211; Great TextMate bundle by &lt;a href=&quot;http://news.e-scribe.com/&quot;&gt;Paul Bissex&lt;/a&gt;.&lt;/li&gt;
		&lt;li&gt;&lt;a href=&quot;http://www.e-texteditor.com/&quot;&gt;E Text Editor&lt;/a&gt; &#8211; Cool TextMate clone for Windows.  Utilizes TextMate bundles.&lt;/li&gt;
		&lt;li&gt;&lt;a href=&quot;http://code.djangoproject.com/wiki/UsingVimWithDjango&quot;&gt;Using Vim with Django&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://github.com/brosner/bosnowsgi/tree/master&quot;&gt;BosnoWsgi&lt;/a&gt; &#8211; Brian Rosner&#8217;s Tool for managing &lt;span class=&quot;caps&quot;&gt;WSGI&lt;/span&gt; processes
	&lt;ul&gt;
	&lt;li&gt;&lt;a href=&quot;http://www.tildeslash.com/monit/&quot;&gt;Monit&lt;/a&gt; &#8211; Great Unix System management&lt;/li&gt;
		&lt;li&gt;&lt;a href=&quot;http://www.cherrypy.org/&quot;&gt;CherryPy&lt;/a&gt; &#8211; a pythonic, object-oriented &lt;span class=&quot;caps&quot;&gt;HTTP&lt;/span&gt; framework.&lt;/li&gt;
		&lt;li&gt;&lt;a href=&quot;http://www.eflorenzano.com/blog/post/hosting-django-site-pure-python/&quot;&gt;Hosting a Django Site with Pure Python&lt;/a&gt; &#8211; Great post by &lt;a href=&quot;http://djangopeople.net/ericflo/&quot;&gt;Eric Florenzano&lt;/a&gt;.&lt;/li&gt;
		&lt;li&gt;&lt;a href=&quot;http://lincolnloop.com/blog/2008/mar/25/serving-django-cherrypy/&quot;&gt;Serving Django via CherryPy&lt;/a&gt;&lt;/li&gt;
	&lt;/ul&gt;&lt;/li&gt;
	&lt;/ul&gt;


	&lt;ul&gt;
	&lt;li&gt;Bill Gates Retires
	&lt;ul&gt;
	&lt;li&gt;&lt;a href=&quot;http://blog.michaeltrier.com/2008/6/26/bill-gates-unhinged&quot;&gt;Bill Gates Unhinged&lt;/a&gt; &#8211; amazing email from Bill Gates about his frustrations with using Microsoft software.&lt;/li&gt;
		&lt;li&gt;&lt;a href=&quot;http://twit.tv/149&quot;&gt;TWiT Podcast&lt;/a&gt;&lt;/li&gt;
		&lt;li&gt;&lt;a href=&quot;http://blog.seattlepi.nwsource.com/microsoft/archives/141821.asp&quot;&gt;Story by Todd Bishop&lt;/a&gt;&lt;/li&gt;
	&lt;/ul&gt;&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;&lt;a href=&quot;http://twitter.com/mtrier/&quot;&gt;Michael on Twitter&lt;/a&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-06-28:1274</id>
    <published>2008-06-28T02:31:00Z</published>
    <updated>2008-06-28T02:31:19Z</updated>
    <link href="http://blog.michaeltrier.com/2008/6/28/irc-personals" rel="alternate" type="text/html"/>
    <title>IRC Personals</title>
<content type="html">
            &lt;p&gt;I think I&#8217;m hanging out in the wrong channels:&lt;/p&gt;


	&lt;p&gt;&lt;img src=&quot;http://blog.michaeltrier.com/assets/2008/6/28/personals.jpg&quot; /&gt;&lt;/p&gt;


	&lt;p&gt;Thanks Alex Gaynor, that was very creative.&lt;/p&gt;
          </content>  </entry>
</feed>
