<?xml version="1.0" encoding="utf-8"?>
<feed xml:lang="en-us" xmlns="http://www.w3.org/2005/Atom"><title>Simon Willison's Weblog: zachary-voase</title><link href="http://simonwillison.net/" rel="alternate"/><link href="http://simonwillison.net/tags/zachary-voase.atom" rel="self"/><id>http://simonwillison.net/</id><updated>2010-06-01T10:02:00+00:00</updated><author><name>Simon Willison</name></author><entry><title>django-boss</title><link href="https://simonwillison.net/2010/Jun/1/djangoboss/#atom-tag" rel="alternate"/><published>2010-06-01T10:02:00+00:00</published><updated>2010-06-01T10:02:00+00:00</updated><id>https://simonwillison.net/2010/Jun/1/djangoboss/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="http://bitbucket.org/zacharyvoase/django-boss/src"&gt;django-boss&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
Management commands are one of the few bits of Django that I still have to look up in the documentation whenever I write them. django-boss offers a smart alternative to regular management commands, based around decorators and taking the containing app as the first argument.

    &lt;p&gt;&lt;small&gt;&lt;/small&gt;Via &lt;a href="http://blog.zacharyvoase.com/2010/02/03/django-project-conventions/"&gt;Django project conventions, revisited&lt;/a&gt;&lt;/small&gt;&lt;/p&gt;


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/decorators"&gt;decorators&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/django"&gt;django&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/python"&gt;python&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/zachary-voase"&gt;zachary-voase&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/recovered"&gt;recovered&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/djangoboss"&gt;djangoboss&lt;/a&gt;&lt;/p&gt;



</summary><category term="decorators"/><category term="django"/><category term="python"/><category term="zachary-voase"/><category term="recovered"/><category term="djangoboss"/></entry><entry><title>Fixing Django Management Commands</title><link href="https://simonwillison.net/2009/Dec/9/zachary/#atom-tag" rel="alternate"/><published>2009-12-09T08:41:02+00:00</published><updated>2009-12-09T08:41:02+00:00</updated><id>https://simonwillison.net/2009/Dec/9/zachary/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="http://blog.zacharyvoase.com/post/275566873"&gt;Fixing Django Management Commands&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
Zachary Voase proposes dramatically improving Django’s management command API for Django 1.3. I’m in favour—management commands are one of the only APIs in Django that I have to look up every single time I use. My optfunc library was written partially with management commands in mind—Zachary favours the argparse library.


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/argparse"&gt;argparse&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/django"&gt;django&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/managementcommands"&gt;managementcommands&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/optfunc"&gt;optfunc&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/python"&gt;python&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/zachary-voase"&gt;zachary-voase&lt;/a&gt;&lt;/p&gt;



</summary><category term="argparse"/><category term="django"/><category term="managementcommands"/><category term="optfunc"/><category term="python"/><category term="zachary-voase"/></entry><entry><title>disturbyte's zenqueue</title><link href="https://simonwillison.net/2009/May/11/zenqueue/#atom-tag" rel="alternate"/><published>2009-05-11T13:27:53+00:00</published><updated>2009-05-11T13:27:53+00:00</updated><id>https://simonwillison.net/2009/May/11/zenqueue/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="http://github.com/disturbyte/zenqueue"&gt;disturbyte&amp;#x27;s zenqueue&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
Simple, tiny and fast Python message queue server built on top of coroutines and Eventlet, using JSON over TCP as the message format. I’m impressed with how potentially useful this looks considering the small amount of code. The author benchmarks it at 28 thousand messages/second.


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/coroutines"&gt;coroutines&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/eventlet"&gt;eventlet&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/github"&gt;github&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/json"&gt;json&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/message-queues"&gt;message-queues&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/python"&gt;python&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/zachary-voase"&gt;zachary-voase&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/zenqueue"&gt;zenqueue&lt;/a&gt;&lt;/p&gt;



</summary><category term="coroutines"/><category term="eventlet"/><category term="github"/><category term="json"/><category term="message-queues"/><category term="python"/><category term="zachary-voase"/><category term="zenqueue"/></entry></feed>