<?xml version="1.0" encoding="utf-8"?>
<feed xml:lang="en-us" xmlns="http://www.w3.org/2005/Atom"><title>Simon Willison's Weblog: christopher-lenz</title><link href="http://simonwillison.net/" rel="alternate"/><link href="http://simonwillison.net/tags/christopher-lenz.atom" rel="self"/><id>http://simonwillison.net/</id><updated>2009-12-02T09:31:45+00:00</updated><author><name>Simon Willison</name></author><entry><title>Namespaces</title><link href="https://simonwillison.net/2009/Dec/2/namespaces/#atom-tag" rel="alternate"/><published>2009-12-02T09:31:45+00:00</published><updated>2009-12-02T09:31:45+00:00</updated><id>https://simonwillison.net/2009/Dec/2/namespaces/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="http://www.cmlenz.net/archives/2009/12/namespaces"&gt;Namespaces&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
Python’s approach to imports is possibly my favourite feature of the language. I love being able to scan up to the top of a file in my text editor and see exactly where every symbol comes from, no IDE required.


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/christopher-lenz"&gt;christopher-lenz&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/ide"&gt;ide&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/import"&gt;import&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/namespaces"&gt;namespaces&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/python"&gt;python&lt;/a&gt;&lt;/p&gt;



</summary><category term="christopher-lenz"/><category term="ide"/><category term="import"/><category term="namespaces"/><category term="python"/></entry><entry><title>Quoting Christopher Lenz</title><link href="https://simonwillison.net/2008/Dec/6/cmlenz/#atom-tag" rel="alternate"/><published>2008-12-06T10:00:54+00:00</published><updated>2008-12-06T10:00:54+00:00</updated><id>https://simonwillison.net/2008/Dec/6/cmlenz/#atom-tag</id><summary type="html">
    &lt;blockquote cite="http://www.cmlenz.net/archives/2008/12/py3k"&gt;&lt;p&gt;I don't think that Python 3.0 is a bad thing. But that it's displayed so prominently on the Python web site, without any kind of warning that it's not going to work with 99% of the Python code out there, scares the hell out of me. People are going to download and install 3.0 by default, and nothing's going to work. They're going to complain, and many are going to simply walk away.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p class="cite"&gt;&amp;mdash; &lt;a href="http://www.cmlenz.net/archives/2008/12/py3k"&gt;Christopher Lenz&lt;/a&gt;&lt;/p&gt;

    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/christopher-lenz"&gt;christopher-lenz&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/python"&gt;python&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/python3"&gt;python3&lt;/a&gt;&lt;/p&gt;



</summary><category term="christopher-lenz"/><category term="python"/><category term="python3"/></entry><entry><title>CouchDB, XML, and E4X</title><link href="https://simonwillison.net/2008/Mar/5/aboutcmlenz/#atom-tag" rel="alternate"/><published>2008-03-05T00:31:34+00:00</published><updated>2008-03-05T00:31:34+00:00</updated><id>https://simonwillison.net/2008/Mar/5/aboutcmlenz/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="http://www.cmlenz.net/archives/2008/03/couchdb-xml-and-e4x"&gt;CouchDB, XML, and E4X&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
Brilliant—CouchDB now enables SpiderMonkey’s E4X support, meaning CouchDB views can easily query XML documents stored inside JSON objects using E4X syntax.


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/christopher-lenz"&gt;christopher-lenz&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/couchdb"&gt;couchdb&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/e4x"&gt;e4x&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/javascript"&gt;javascript&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/json"&gt;json&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/spidermonkey"&gt;spidermonkey&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/xml"&gt;xml&lt;/a&gt;&lt;/p&gt;



</summary><category term="christopher-lenz"/><category term="couchdb"/><category term="e4x"/><category term="javascript"/><category term="json"/><category term="spidermonkey"/><category term="xml"/></entry><entry><title>Python on Leopard</title><link href="https://simonwillison.net/2007/Oct/31/aboutcmlenz/#atom-tag" rel="alternate"/><published>2007-10-31T17:53:11+00:00</published><updated>2007-10-31T17:53:11+00:00</updated><id>https://simonwillison.net/2007/Oct/31/aboutcmlenz/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="http://www.cmlenz.net/blog/2007/10/python-on-leopa.html"&gt;Python on Leopard&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
readline is finally bundled, so the interactive interpreter works correctly without hunting around for frustratingly elusive add-ons. easy_install is bundled as well.


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/christopher-lenz"&gt;christopher-lenz&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/leopard"&gt;leopard&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/macos"&gt;macos&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/python"&gt;python&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/readline"&gt;readline&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/setuptools"&gt;setuptools&lt;/a&gt;&lt;/p&gt;



</summary><category term="christopher-lenz"/><category term="leopard"/><category term="macos"/><category term="python"/><category term="readline"/><category term="setuptools"/></entry><entry><title>CouchDB "Joins"</title><link href="https://simonwillison.net/2007/Oct/25/couchdb/#atom-tag" rel="alternate"/><published>2007-10-25T08:27:27+00:00</published><updated>2007-10-25T08:27:27+00:00</updated><id>https://simonwillison.net/2007/Oct/25/couchdb/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="http://www.cmlenz.net/blog/2007/10/couchdb-joins.html"&gt;CouchDB &amp;quot;Joins&amp;quot;&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
Different approaches to indexing a blog post and its associated comments in the non-relational CouchDB.


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/christopher-lenz"&gt;christopher-lenz&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/couchdb"&gt;couchdb&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/databases"&gt;databases&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/erlang"&gt;erlang&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/joins"&gt;joins&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/relational"&gt;relational&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/views"&gt;views&lt;/a&gt;&lt;/p&gt;



</summary><category term="christopher-lenz"/><category term="couchdb"/><category term="databases"/><category term="erlang"/><category term="joins"/><category term="relational"/><category term="views"/></entry><entry><title>BabelDjango</title><link href="https://simonwillison.net/2007/Aug/20/babeldjango/#atom-tag" rel="alternate"/><published>2007-08-20T14:59:12+00:00</published><updated>2007-08-20T14:59:12+00:00</updated><id>https://simonwillison.net/2007/Aug/20/babeldjango/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="http://babel.edgewall.org/wiki/BabelDjango"&gt;BabelDjango&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
Tools for integrating Christopher Lenz’s Babel i18n framework with Django.


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/babel"&gt;babel&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/christopher-lenz"&gt;christopher-lenz&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/django"&gt;django&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/i18n"&gt;i18n&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/python"&gt;python&lt;/a&gt;&lt;/p&gt;



</summary><category term="babel"/><category term="christopher-lenz"/><category term="django"/><category term="i18n"/><category term="python"/></entry><entry><title>Announcing Babel</title><link href="https://simonwillison.net/2007/Jul/20/aboutcmlenz/#atom-tag" rel="alternate"/><published>2007-07-20T12:20:49+00:00</published><updated>2007-07-20T12:20:49+00:00</updated><id>https://simonwillison.net/2007/Jul/20/aboutcmlenz/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="http://www.cmlenz.net/blog/2007/06/announcing_babe.html"&gt;Announcing Babel&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
Impressive new Python i18n / l10n package, with improved message extraction and a huge amount of bundled locale data.


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/babel"&gt;babel&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/christopher-lenz"&gt;christopher-lenz&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/cldr"&gt;cldr&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/i18n"&gt;i18n&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/l10n"&gt;l10n&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/locale"&gt;locale&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/python"&gt;python&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/unicode"&gt;unicode&lt;/a&gt;&lt;/p&gt;



</summary><category term="babel"/><category term="christopher-lenz"/><category term="cldr"/><category term="i18n"/><category term="l10n"/><category term="locale"/><category term="python"/><category term="unicode"/></entry><entry><title>Logic in Templates</title><link href="https://simonwillison.net/2007/Jul/19/aboutcmlenz/#atom-tag" rel="alternate"/><published>2007-07-19T08:35:56+00:00</published><updated>2007-07-19T08:35:56+00:00</updated><id>https://simonwillison.net/2007/Jul/19/aboutcmlenz/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="http://www.cmlenz.net/blog/2007/06/logic-in-templa.html"&gt;Logic in Templates&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
I don’t think it would hurt Django to have a bit more support for conditional logic in templates, but I wouldn’t go as far as supporting the ability to call Python functions directly.


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/christopher-lenz"&gt;christopher-lenz&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/django"&gt;django&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/logic"&gt;logic&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/python"&gt;python&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/templates"&gt;templates&lt;/a&gt;&lt;/p&gt;



</summary><category term="christopher-lenz"/><category term="django"/><category term="logic"/><category term="python"/><category term="templates"/></entry></feed>