<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Alex Clark</title>
	<atom:link href="http://blog.aclark.net/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.aclark.net</link>
	<description>Python programmer</description>
	<lastBuildDate>Sun, 13 May 2012 03:54:48 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>Adam Yauch has passed</title>
		<link>http://blog.aclark.net/2012/05/11/adam-yauch-has-passed/</link>
		<comments>http://blog.aclark.net/2012/05/11/adam-yauch-has-passed/#comments</comments>
		<pubDate>Fri, 11 May 2012 13:58:46 +0000</pubDate>
		<dc:creator>Alex Clark</dc:creator>
				<category><![CDATA[Mozilla]]></category>
		<category><![CDATA[Plone]]></category>
		<category><![CDATA[Python]]></category>

		<guid isPermaLink="false">http://blog.aclark.net/?p=4650</guid>
		<description><![CDATA[And why it matters to tech people, like me (I hope my tech colleagues will indulge my thoughts on the recent passing of Beastie Boy Adam Yauch.) TL;DR: I &#60;3 the Beastie Boys and will miss Adam Yauch; and I &#8230; <a href="http://blog.aclark.net/2012/05/11/adam-yauch-has-passed/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><em>And why it matters to tech people, like me</em></p>
<p>(I hope my tech colleagues will indulge my thoughts on the recent passing of Beastie Boy Adam Yauch.)</p>
<p>TL;DR: I &lt;3 the Beastie Boys and will miss Adam Yauch; and I suspect many others in the tech world do, and will, too</p>
<h2>Where I came from</h2>
<p>For as long as I can remember, I&#8217;ve been trying to emulate my heroes. It started with pop music in the 80s and artists like Michael Jackson, Madonna, and of course the Beastie Boys. While I was obsessed with Michael Jackson back then, I don&#8217;t recall trying too hard to emulate the Beastie Boys… until the 90s.</p>
<p>In the early 90s, I was just out of high school (where I discovered Led Zeppelin, Pink Floyd, Beatles, Stones etc), was working full time at Chili&#8217;s, and had no serious plans for college. I was really into music, but didn&#8217;t have the social skills required to participate in any meaningful activities, like playing in a band.</p>
<p>But I loved music.</p>
<p>I listened to Nirvana, Beastie Boys, and any number of other pop, rock and rap acts of the 90s. I went to rock shows at the 8&#215;10 in Baltimore and 9:30 club in DC. I went to festivals like the HFSistival and Lollapalooza. Throughout the decade, I formulated my thoughts on how I would, one day, start a band.</p>
<p>To say the Beastie Boys were inspirational to me during this time period would be a colossal understatement (remember the first time you saw the &#8220;So Watcha Want?&#8221; video?) While I wholly identified with the angst-ridden music of Nirvana, I also equally identified with the good natured spirit of, and dope-ass-jams from, the Beastie Boys: three guys producing kick ass music with, among other instruments, a &#8220;bullshit mic, made out of plastic&#8221;. Most importantly: they never took themselves too seriously. They made great music, but they were also just like you and me. They made you feel like you could do it, too.</p>
<p>In the late 90s and early to mid 2000s, I finally got a chance to play music. I started a band, played some shows, recorded a few albums, and had a lot of fun. Most importantly: I proved to myself I could do it. The shows I put on with my band were awesome; they were true rock shows: those in which the audience responded positively, viscerally. There is no better feeling in the world than that type of self-expression.</p>
<h2><a href="http://blog.aclark.net/wp-content/uploads/2012/05/IMG_0391.jpg"><img class="alignright" title="IMG_0391" src="http://blog.aclark.net/wp-content/uploads/2012/05/IMG_0391.jpg" alt="" width="349" height="467" /></a>Who I am now</h2>
<p>Eventually the band imploded, and I found a new obsession: technology. I have always been obsessed with tech, but never focused on it exclusively until the mid to late 2000s. Now I have a new set of heroes to emulate, and many new things to prove to myself I can do. Maybe I&#8217;ll even play music again one day, but if I don&#8217;t, I know that I accomplished, on some level, what I set out to do. And that is a great feeling.</p>
<h2>Where we are all headed</h2>
<p>We are all headed forward, now, without Adam Yauch to inspire us anew. This sucks more than words can express; but it is, alas, a part of life. Without death to make life precious, there would be no joy in living. We all only have a short period of time in life to accomplish our goals, so it is important that we spend time trying to do so. (And if your goals include helping other people, bonus points from Adam.)</p>
<p>I cannot thank Adam Yauch (MCA), Adam Horovitz (Ad-Rock), and Mike D enough; for providing me with all the inspiration I needed, when I needed it, to live my life; it has made all the difference. I know that Ad-Rock and Mike D will continue to live their lives; and whether that includes performing as &#8220;Beastie Boys&#8221; or not, does not matter to me; I will still be watching, waiting to be inspired again. And to Adam Yauch who has rapped, joked, snowboarded, and philanthropized his way through all our lives: thank you for the inspiration; I use it every day, and I&#8217;ll never forget it was <em>you</em> and your closest two brothers Ad-Rock and Mike D who gave it to me.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.aclark.net/2012/05/11/adam-yauch-has-passed/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>test-plone `tmp`</title>
		<link>http://blog.aclark.net/2012/04/04/test-plone-tmp/</link>
		<comments>http://blog.aclark.net/2012/04/04/test-plone-tmp/#comments</comments>
		<pubDate>Wed, 04 Apr 2012 18:14:02 +0000</pubDate>
		<dc:creator>Alex Clark</dc:creator>
				<category><![CDATA[Plone]]></category>
		<category><![CDATA[Python]]></category>

		<guid isPermaLink="false">http://blog.aclark.net/?p=4606</guid>
		<description><![CDATA[Since Day 1 with Plone circa 2004, I&#8217;ve always taken pride in and greatly enjoyed refining my development environment. It&#8217;s been stable for a while now (&#62; 1 year or so) so I thought I&#8217;d share. Operating system Mac OS &#8230; <a href="http://blog.aclark.net/2012/04/04/test-plone-tmp/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Since Day 1 with Plone circa 2004, I&#8217;ve always taken pride in and greatly enjoyed refining my development environment. It&#8217;s been stable for a while now (&gt; 1 year or so) so I thought I&#8217;d share.</p>
<h1>Operating system</h1>
<p>Mac OS X Latest (Lion, at the time of this writing)</p>
<h1>Terminal</h1>
<p>Mac OS X Terminal</p>
<h1>Editor</h1>
<p>Vim</p>
<h1>Python</h1>
<p>Yes. All versions, via the collective Python buildout:</p>
<ul>
<li><a href="https://github.com/collective/buildout.python">https://github.com/collective/buildout.python</a></li>
</ul>
<h1>Plone</h1>
<p>Yes. All versions, via pythonpackages.com:</p>
<ul>
<li><a href="http://docs.pythonpackages.com/en/latest/advanced.html">http://docs.pythonpackages.com/en/latest/advanced.html</a></li>
</ul>
<h1>Additional tools</h1>
<p>A <a href="https://github.com/aclark4life/binfiles/blob/master/test-plone">shell script to run virtualenv, buildout, etc</a>:</p>
<pre class="brush: bash; title: ; notranslate">
#!/bin/sh
if ! [ -n &quot;$1&quot; ]
then
    echo &quot;Usage:\n\n$0 &lt;dir&gt;\n&quot;
    exit 1
fi
if ! [ -d $1 ]
then
    mkdir $1
fi
cd $1
virtualenv-2.7 .
bin/pip install zc.buildout
bin/buildout init
cat &lt;&lt; EOF &gt; buildout.cfg
[buildout]
extends = http://build.pythonpackages.com/buildout/plone/4.2.x-dev
EOF
bin/buildout
bin/plone start
sleep 4
echo &quot;Adding Plone site...&quot;
curl -d form.submitted:boolean=&quot;True&quot; http://admin:admin@localhost:8080/@@plone-addsite\?site_id=Plone
bin/plone stop
bin/plone fg
</pre>
<p>A <a href="https://github.com/aclark4life/binfiles/blob/master/tmp">Python script to create temporary directories</a>:</p>
<pre class="brush: python; title: ; notranslate">
#!/usr/bin/env python

import os
import tempfile
print os.path.abspath(tempfile.mkdtemp())
</pre>
<p>A default buildout config file:</p>
<pre>
[buildout]
eggs-directory = /Users/aclark/Developer/eggs-directory
download-cache = /Users/aclark/Developer/download-cache
extends-cache = /Users/aclark/Developer/extends-cache
</pre>
<h1>Workflow</h1>
<p>My typical workflow looks like this:</p>
<ul>
<li>Hang in #plone on irc.freenode.net and wait for questions</li>
<li>Hear question and get inspired to run Plone</li>
<li>Run: <strong>$ test-plone `tmp`</strong></li>
</ul>
<p><a href="https://gist.github.com/2304317">~ 1 minute later</a> I&#8217;m browsing <strong>http://localhost:8080/Plone</strong> and can install add-ons, check ZMI settings, etc.</p>
<p><a href="http://blog.aclark.net/wp-content/uploads/2012/04/Screen-Shot-2012-04-04-at-3.19.27-PM.png"><img src="http://blog.aclark.net/wp-content/uploads/2012/04/Screen-Shot-2012-04-04-at-3.19.27-PM.png" alt="" title="Screen Shot 2012-04-04 at 3.19.27 PM" width="582" height="546" class="alignright size-full wp-image-4647" /></a></p>
<p>Enjoy.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.aclark.net/2012/04/04/test-plone-tmp/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>New vanity release</title>
		<link>http://blog.aclark.net/2012/01/30/new-vanity-release/</link>
		<comments>http://blog.aclark.net/2012/01/30/new-vanity-release/#comments</comments>
		<pubDate>Mon, 30 Jan 2012 14:52:48 +0000</pubDate>
		<dc:creator>Alex Clark</dc:creator>
				<category><![CDATA[Plone]]></category>
		<category><![CDATA[Python]]></category>

		<guid isPermaLink="false">http://blog.aclark.net/?p=4590</guid>
		<description><![CDATA[With all the Python stats goodness going on recently, I got inspired to make a new vanity release. This release features the ability to display per package download statistics via the `-v` or `&#8211;verbose` command line argument. Here are some &#8230; <a href="http://blog.aclark.net/2012/01/30/new-vanity-release/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>With all the Python <a href="http://crate.io/">stats</a> <a href="http://python3wos.appspot.com/">goodness</a> going on recently, I got inspired to make a new <a href="http://pythonpackages.com/info/vanity">vanity</a> release. This release features the ability to display per package download statistics via the `-v` or `&#8211;verbose` command line argument.</p>
<p>Here are some of my favorite results.</p>
<h2>Vanity</h2>
<pre>$ vanity vanity -v
     vanity-1.0.zip     2011-04-14      352
   vanity-1.1.0.zip     2011-10-26      139
   vanity-1.1.1.zip     2011-10-28      114
   vanity-1.1.2.zip     2011-10-28      145
vanity-1.2.0.tar.gz     2012-01-30        0
-------------------------------------------
Package `vanity` has been downloaded 750 times!</pre>
<h2>Django</h2>
<pre>$ vanity django -v
Django-1.1.3.tar.gz     2010-12-23    2,618
Django-1.1.4.tar.gz     2011-02-09    4,476
  Django-1.2.tar.gz     2010-05-17   15,876
Django-1.2.1.tar.gz     2010-05-24   65,120
Django-1.2.2.tar.gz     2010-09-09    2,467
Django-1.2.3.tar.gz     2010-09-11   73,984
Django-1.2.4.tar.gz     2010-12-23   49,904
Django-1.2.5.tar.gz     2011-02-09   63,977
Django-1.2.6.tar.gz     2011-09-10      427
Django-1.2.7.tar.gz     2011-09-11    6,825
  Django-1.3.tar.gz     2011-03-23  238,504
Django-1.3.1.tar.gz     2011-09-10  176,054
-------------------------------------------
Package `Django` has been downloaded 700,232 times!</pre>
<h2>Plone</h2>
<pre>$ vanity plone -v
     Plone-3.2.zip     2008-12-31    1,690
   Plone-3.2.1.zip     2009-02-04    2,466
   Plone-3.2.2.zip     2009-03-03    4,893
   Plone-3.2.3.zip     2009-06-20    2,731
   Plone-3.2a1.zip     2008-10-10      976
  Plone-3.2rc1.zip     2008-12-15      758
     Plone-3.3.zip     2009-08-19    4,611
   Plone-3.3.1.zip     2009-09-09    4,148
Plone-3.3.2.tar.gz     2009-11-03    3,043
   Plone-3.3.3.zip     2009-12-08    1,733
   Plone-3.3.4.zip     2010-01-14    4,906
   Plone-3.3.5.zip     2010-03-03   12,131
Plone-3.3.6.tar.gz     2011-07-19      787
   Plone-3.3b1.zip     2009-03-12      940
  Plone-3.3rc1.zip     2009-03-30      743
  Plone-3.3rc2.zip     2009-04-05    1,822
  Plone-3.3rc3.zip     2009-05-23    2,036
  Plone-3.3rc4.zip     2009-07-07    2,163
  Plone-3.3rc5.zip     2009-08-01    1,211
     Plone-4.0.zip     2010-08-30    3,659
   Plone-4.0.1.zip     2010-10-04    4,224
   Plone-4.0.2.zip     2010-11-22    4,022
   Plone-4.0.3.zip     2011-01-21    3,339
   Plone-4.0.4.zip     2011-03-01    2,711
   Plone-4.0.5.zip     2011-04-09    3,152
   Plone-4.0.6.zip     2011-05-22    1,469
   Plone-4.0.7.zip     2011-06-06    2,192
   Plone-4.0.8.zip     2011-07-17      509
   Plone-4.0.9.zip     2011-07-29      958
  Plone-4.0.10.zip     2011-10-12      495
   Plone-4.0a1.zip     2009-11-19      946
   Plone-4.0a2.zip     2009-12-04      921
   Plone-4.0a3.zip     2009-12-21    1,272
   Plone-4.0a4.zip     2010-02-01    1,121
   Plone-4.0a5.zip     2010-02-19      850
   Plone-4.0b1.zip     2010-03-09    1,308
   Plone-4.0b2.zip     2010-04-10    1,028
   Plone-4.0b3.zip     2010-05-04    1,722
   Plone-4.0b4.zip     2010-06-13    1,642
Plone-4.0b5.tar.gz     2010-07-08    1,995
  Plone-4.0rc1.zip     2010-08-06    1,598
     Plone-4.1.zip     2011-07-17    4,479
Plone-4.1.1.tar.gz     2011-09-21      429
Plone-4.1.2.tar.gz     2011-10-08    2,187
Plone-4.1.3.tar.gz     2011-11-29    1,883
   Plone-4.1a1.zip     2011-01-21      699
   Plone-4.1a2.zip     2011-02-11      451
   Plone-4.1a3.zip     2011-02-15      680
   Plone-4.1b1.zip     2011-03-08      958
   Plone-4.1b2.zip     2011-04-09    1,040
  Plone-4.1rc2.zip     2011-05-22      797
  Plone-4.1rc3.zip     2011-06-06    1,329
   Plone-4.2a1.zip     2011-08-10      521
   Plone-4.2a2.zip     2011-09-16      884
Plone-4.2b1.tar.gz     2011-12-06      619
------------------------------------------
Package `Plone` has been downloaded 111,877 times!</pre>
<h2>Pyramid</h2>
<pre>$ vanity pyramid -v
   pyramid-1.0.tar.gz     2011-01-31   24,055
 pyramid-1.0.1.tar.gz     2011-08-13      460
 pyramid-1.0.2.tar.gz     2011-12-15      185
 pyramid-1.0a1.tar.gz     2010-11-05    1,128
 pyramid-1.0a2.tar.gz     2010-11-09      952
 pyramid-1.0a3.tar.gz     2010-11-16      803
 pyramid-1.0a4.tar.gz     2010-11-21    1,732
 pyramid-1.0a5.tar.gz     2010-12-15      639
 pyramid-1.0a6.tar.gz     2010-12-16      834
 pyramid-1.0a7.tar.gz     2010-12-20      912
 pyramid-1.0a8.tar.gz     2010-12-27    1,233
 pyramid-1.0a9.tar.gz     2011-01-08    1,313
pyramid-1.0a10.tar.gz     2011-01-18      960
 pyramid-1.0b1.tar.gz     2011-01-22      871
 pyramid-1.0b2.tar.gz     2011-01-25    1,003
 pyramid-1.0b3.tar.gz     2011-01-28      816
   pyramid-1.1.tar.gz     2011-07-22    5,674
 pyramid-1.1.1.tar.gz     2011-08-13    1,057
 pyramid-1.1.2.tar.gz     2011-08-17    1,560
 pyramid-1.1.3.tar.gz     2011-12-15      160
 pyramid-1.1a1.tar.gz     2011-06-20    1,146
 pyramid-1.1a2.tar.gz     2011-06-23    1,003
 pyramid-1.1a3.tar.gz     2011-06-26    1,252
 pyramid-1.1a4.tar.gz     2011-07-01    1,517
 pyramid-1.1b1.tar.gz     2011-07-10      981
 pyramid-1.1b2.tar.gz     2011-07-13      844
 pyramid-1.1b3.tar.gz     2011-07-15      742
 pyramid-1.1b4.tar.gz     2011-07-18    1,094
   pyramid-1.2.tar.gz     2011-09-13    6,450
 pyramid-1.2.1.tar.gz     2011-09-28   10,357
 pyramid-1.2.2.tar.gz     2011-11-20      322
 pyramid-1.2.3.tar.gz     2011-11-21    3,078
 pyramid-1.2.4.tar.gz     2011-12-06    1,193
 pyramid-1.2.5.tar.gz     2011-12-15      555
 pyramid-1.2.6.tar.gz     2012-01-05      514
 pyramid-1.2.7.tar.gz     2012-01-20      472
 pyramid-1.2a1.tar.gz     2011-08-24      907
 pyramid-1.2a2.tar.gz     2011-08-27      696
 pyramid-1.2a3.tar.gz     2011-08-29    3,268
 pyramid-1.2a4.tar.gz     2011-09-02      593
 pyramid-1.2a5.tar.gz     2011-09-04      840
 pyramid-1.2a6.tar.gz     2011-09-07      602
 pyramid-1.2b1.tar.gz     2011-09-08      493
 pyramid-1.2b2.tar.gz     2011-09-08      700
 pyramid-1.2b3.tar.gz     2011-09-11      674
 pyramid-1.3a1.tar.gz     2011-12-09    1,264
 pyramid-1.3a2.tar.gz     2011-12-14    1,641
 pyramid-1.3a3.tar.gz     2011-12-21    2,716
 pyramid-1.3a4.tar.gz     2012-01-05      675
 pyramid-1.3a5.tar.gz     2012-01-09    2,369
 pyramid-1.3a6.tar.gz     2012-01-20    1,917
---------------------------------------------
Package `pyramid` has been downloaded 97,222 times!</pre>
<p>Enjoy the new release.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.aclark.net/2012/01/30/new-vanity-release/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Hello Plone theming</title>
		<link>http://blog.aclark.net/2012/01/25/hello-plone-theming/</link>
		<comments>http://blog.aclark.net/2012/01/25/hello-plone-theming/#comments</comments>
		<pubDate>Wed, 25 Jan 2012 05:15:50 +0000</pubDate>
		<dc:creator>Alex Clark</dc:creator>
				<category><![CDATA[Plone]]></category>
		<category><![CDATA[Python]]></category>

		<guid isPermaLink="false">http://blog.aclark.net/?p=4564</guid>
		<description><![CDATA[In this post, we introduce a new tutorial aimed at bridging the gap between the incredibly easy to use and enormously powerful Diazo theming engine for Plone, and bootstrapping your first new theme. You do not need to have any &#8230; <a href="http://blog.aclark.net/2012/01/25/hello-plone-theming/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>In this post, we introduce a new tutorial aimed at bridging the gap between the <strong>incredibly easy to use and enormously powerful Diazo theming engine for Plone</strong>, and bootstrapping your first new theme. You do not need to have any Python skills whatsoever to perform these tasks.</p>
<p>New Plone themes are:</p>
<ul>
<li>HTML/CSS/JavaScript/images (Sound familiar? You don&#8217;t need to know any Plone to understand this part.)</li>
<li>A set of rules that map your HTML/CSS/JavaScript/images to Plone content. (This part is Diazo-specific; and while Diazo is not part of Plone, integration is provided by a Python package called plone.app.theming.)</li>
</ul>
<p>The Diazo rules can get complex, but it&#8217;s very easy to get your first rule done and working and then off you go. You may find this <a href="http://readthedocs.org/docs/pythonpackages-docs/en/latest/ex8-diazo.html">new tutorial on pythonpackages.com</a>. Enjoy, and get busy theming Plone.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.aclark.net/2012/01/25/hello-plone-theming/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>New Year&#8217;s Python Meme 2012</title>
		<link>http://blog.aclark.net/2011/12/21/new-years-python-meme-2012/</link>
		<comments>http://blog.aclark.net/2011/12/21/new-years-python-meme-2012/#comments</comments>
		<pubDate>Wed, 21 Dec 2011 18:11:32 +0000</pubDate>
		<dc:creator>Alex Clark</dc:creator>
				<category><![CDATA[Mozilla]]></category>
		<category><![CDATA[Plone]]></category>
		<category><![CDATA[Python]]></category>

		<guid isPermaLink="false">http://blog.aclark.net/?p=4250</guid>
		<description><![CDATA[My response to http://tarekziade.wordpress.com/2011/12/20/new-years-python-meme-2/  (with gratuitous links to pythonpackages.com, my new project, sprinkled throughout). It was fun answering in 2009, so I thought I&#8217;d play again. What’s the coolest Python application, framework or library you have discovered in 2011? Pyramid. &#8230; <a href="http://blog.aclark.net/2011/12/21/new-years-python-meme-2012/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><em>My response to <a href="http://tarekziade.wordpress.com/2011/12/20/new-years-python-meme-2/">http://tarekziade.wordpress.com/2011/12/20/new-years-python-meme-2/</a>  (with gratuitous links to <a href="http://pythonpackages.com">pythonpackages.com</a>, my new project, sprinkled throughout).</em></p>
<p>It was fun <a href="http://blog.aclark.net/2009/12/31/new-years-python-meme/">answering in 2009</a>, so I thought I&#8217;d play again.</p>
<h1>What’s the coolest Python application, framework or library you have discovered in 2011?</h1>
<p><a href="http://www.pylonsproject.org/">Pyramid</a>. In early 2011 I released <a href="http://pythonpackages.com/info/vanity">vanity</a>, which later became <a href="http://pythonpackages.com">pythonpackages.com </a>(more or less). I used building the site as an excuse to learn Pyramid, and it was well worth it.</p>
<p><strong>What new programming technique did you learn in 2011?</strong></p>
<p>I learned to <strong>not</strong> reinvent the wheel, and to collaborate with others on solving hard problems (which in and of itself is hard). Long story short, I took a little bit of heat within the Plone CMS community for creating a &#8220;one off&#8221; migration script:</p>
<ul>
<li><a href="http://pythonpackages.com/info/parse2plone">http://pythonpackages.com/info/parse2plone</a></li>
</ul>
<p>I&#8217;ve since learned my lesson and have been collaborating meaningfully with <a href="https://twitter.com/#!/djay75">Dylan Jay </a>on the more widely-supported <a href="http://pythonpackages.com/info/mr.migrator">mr.migrator</a> and friends.</p>
<p><strong>What’s the name of the open source project you contributed to the most in 2011? What did you do?</strong></p>
<p>I contributed to the <a href="http://plone.org">Plone</a> project quite a bit (as I have been doing for years now), but I also fell in love with <a href="http://mozilla.org">Mozilla</a> (and their mission) and began working on various things, including a virtual machine to help with the development of <a href="http://support.mozilla.com">support.mozilla.com</a>:</p>
<ul>
<li><a href="https://github.com/aclark4life/kitsune-vagrant"><strong></strong>https://github.com/aclark4life/kitsune-vagrant</a></li>
</ul>
<p><strong>What was the Python blog or website you read the most in 2011?</strong></p>
<p><a href="http://news.ycombinator.com/">Hacker news</a>. I have the start-up bug.</p>
<p><strong>What are the three top things you want to learn in 2012?</strong></p>
<p>JavaScript, JavaScript, and JavaScript. I first heard the term 15 years ago and have been avoiding it ever since. Time to jump in.</p>
<p><strong>What is the top software, application or library you wish someone would write in 2012?</strong></p>
<p>I hope someone (me) writes a &#8220;secret&#8221; feature for <a href="http://pythonpackages.com">pythonpackages.com</a> and launches it in first quarter of 2012; and I hope folks find it useful.</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.aclark.net/2011/12/21/new-years-python-meme-2012/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Introducing pythonpackages.com</title>
		<link>http://blog.aclark.net/2011/11/29/introducing-pythonpackages-com/</link>
		<comments>http://blog.aclark.net/2011/11/29/introducing-pythonpackages-com/#comments</comments>
		<pubDate>Tue, 29 Nov 2011 07:24:39 +0000</pubDate>
		<dc:creator>Alex Clark</dc:creator>
				<category><![CDATA[Python]]></category>

		<guid isPermaLink="false">http://blog.aclark.net/?p=4137</guid>
		<description><![CDATA[The website for Python egoists™ I have this overwhelming desire to know how many times my favorite Python packages have been downloaded. Don&#8217;t you? If so, look no further than pythonpackages.com: Count downloads Where you can enter a package like &#8230; <a href="http://blog.aclark.net/2011/11/29/introducing-pythonpackages-com/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<h2>The website for Python egoists™</h2>
<p>I have this overwhelming desire to know how many times my favorite Python packages have been downloaded. Don&#8217;t you? If so, look no further than <a href="http://pythonpackages.com">pythonpackages.com</a>:</p>
<h2 style="text-align: left;"><a href="http://blog.aclark.net/wp-content/uploads/2011/11/Screen-Shot-2011-11-29-at-1.03.48-AM.png"><img class="aligncenter size-full wp-image-4146" title="Screen Shot 2011-11-29 at 1.03.48 AM" src="http://blog.aclark.net/wp-content/uploads/2011/11/Screen-Shot-2011-11-29-at-1.03.48-AM.png" alt="" width="598" height="428" /></a>Count downloads</h2>
<p style="text-align: left;">Where you can enter a package like <a href="http://pythonpackages.com/info/django">Django</a> and find out:</p>
<h2 style="text-align: left;"><a href="http://blog.aclark.net/wp-content/uploads/2011/11/Screen-Shot-2011-11-29-at-1.11.25-AM.png"><img class="aligncenter size-full wp-image-4150" title="Screen Shot 2011-11-29 at 1.11.25 AM" src="http://blog.aclark.net/wp-content/uploads/2011/11/Screen-Shot-2011-11-29-at-1.11.25-AM.png" alt="" width="539" height="446" /></a>Count favorites</h2>
<p style="text-align: left;">Or click on <strong>Count favorites</strong> to reveal how many times it has been favorited:</p>
<p style="text-align: center;"><a href="http://blog.aclark.net/wp-content/uploads/2011/11/Screen-Shot-2011-11-29-at-1.12.04-AM.png"><img class="aligncenter size-full wp-image-4155" title="Screen Shot 2011-11-29 at 1.12.04 AM" src="http://blog.aclark.net/wp-content/uploads/2011/11/Screen-Shot-2011-11-29-at-1.12.04-AM.png" alt="" width="588" height="428" /></a></p>
<h2 style="text-align: left;">Find trash</h2>
<p style="text-align: left;">Or even poke some good natured fun at it, for its <a href="http://pythonpackages.com/trash/django">failure to provide adequate package metadata</a>:</p>
<h2 style="text-align: left;"><a href="http://blog.aclark.net/wp-content/uploads/2011/11/Screen-Shot-2011-11-29-at-1.12.24-AM.png"><img class="aligncenter size-full wp-image-4168" title="Screen Shot 2011-11-29 at 1.12.24 AM" src="http://blog.aclark.net/wp-content/uploads/2011/11/Screen-Shot-2011-11-29-at-1.12.24-AM.png" alt="" width="573" height="516" /></a></h2>
<h2 style="text-align: left;">Discuss packages</h2>
<p>You can even <em>discuss </em>packages on <a href="http://pythonpackages.com">pythonpackages.com</a>:</p>
<p style="text-align: center;"><a href="http://blog.aclark.net/wp-content/uploads/2011/11/Screen-Shot-2011-11-29-at-1.39.37-AM.png"><img class="aligncenter size-full wp-image-4182" title="Screen Shot 2011-11-29 at 1.39.37 AM" src="http://blog.aclark.net/wp-content/uploads/2011/11/Screen-Shot-2011-11-29-at-1.39.37-AM.png" alt="" width="599" height="580" /></a></p>
<h2>Recent activity</h2>
<p>But wait there is more! You can also browse the <a href="http://pythonpackages.com/pypi">latest changelog activity</a> from PyPi right on the site:</p>
<p style="text-align: center;"><a href="http://blog.aclark.net/wp-content/uploads/2011/11/Screen-Shot-2011-11-29-at-1.46.38-AM.png"><img class="aligncenter size-full wp-image-4189" title="Screen Shot 2011-11-29 at 1.46.38 AM" src="http://blog.aclark.net/wp-content/uploads/2011/11/Screen-Shot-2011-11-29-at-1.46.38-AM.png" alt="" width="576" height="574" /></a></p>
<h2 style="text-align: left;">Package info</h2>
<p>Lastly, if you get bored counting package downloads and favorites you can look at the <em>actual</em> <a href="http://pythonpackages.com/info/django">package metadata</a>.</p>
<p style="text-align: center;"><a href="http://blog.aclark.net/wp-content/uploads/2011/11/Screen-Shot-2011-11-29-at-1.51.59-AM.png"><img class="aligncenter size-full wp-image-4198" title="Screen Shot 2011-11-29 at 1.51.59 AM" src="http://blog.aclark.net/wp-content/uploads/2011/11/Screen-Shot-2011-11-29-at-1.51.59-AM.png" alt="" width="579" height="580" /></a></p>
<h2>Conclusion</h2>
<p>Sound interesting? Or utterly silly, perhaps? I think <a href="http://pythonpackages.com">pythonpackages.com</a> is the best of both. It started off as a front end to the command line utility <a href="http://pythonpackages.com/info/vanity">vanity</a>, but has taken on a life of it&#8217;s own.</p>
<p>After a small run on Python reddit and Hacker News, I&#8217;m looking forward to seeing what Python Planet folks think. So please check out <a href="http://pythonpackages.com">pythonpackages.com</a> and let me know. You can leave comments about the site here:</p>
<ul>
<li><a href="http://pythonpackages.com/about">http://pythonpackages.com/about</a></li>
</ul>
<p style="text-align: left;">Or open a new ticket here:</p>
<ul>
<li><a href="https://bitbucket.org/pythonpackages/pythonpackages.com/issues/new">https://bitbucket.org/pythonpackages/pythonpackages.com/issues/new</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blog.aclark.net/2011/11/29/introducing-pythonpackages-com/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Plone.org maintenance</title>
		<link>http://blog.aclark.net/2011/11/29/plone-org-maintenance/</link>
		<comments>http://blog.aclark.net/2011/11/29/plone-org-maintenance/#comments</comments>
		<pubDate>Tue, 29 Nov 2011 05:54:01 +0000</pubDate>
		<dc:creator>Alex Clark</dc:creator>
				<category><![CDATA[Plone]]></category>

		<guid isPermaLink="false">http://blog.aclark.net/?p=4065</guid>
		<description><![CDATA[Plans I am planning to do some work on the plone.org server and website by the end of the year, including: Upgrade to the latest 4.2.x series Switch from xdv to plone.app.theming Reduce the number of NGINXes running on the &#8230; <a href="http://blog.aclark.net/2011/11/29/plone-org-maintenance/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<h2>Plans</h2>
<p>I am planning to do some work on the plone.org server and website by the end of the year, including:</p>
<ul>
<li>Upgrade to the latest 4.2.x series</li>
<li>Switch from xdv to <a href="http://pythonpackages.com/info/plone.app.theming">plone.app.theming</a></li>
<ul>
<li>Reduce the number of NGINXes running on the server by 1 (we currently have an nginx doing the xdv transform)</li>
<li>Repackage the current plone.org theme as plonetheme.ploneorg</li>
</ul>
<li>Clean up the server</li>
<ul>
<li>Separate vendor package configs from buildout generated configs</li>
<li>Remove archived files</li>
</ul>
<li>Prune tickets on <a href="http://dev.plone.org/">dev.plone.org</a></li>
</ul>
<p>I&#8217;ve done some of this work already, earlier this year:</p>
<ul>
<li><a href="    https://github.com/plone/Products.PloneOrg/commits/4.1-compat">https://github.com/plone/Products.PloneOrg/commits/4.1-compat</a></li>
</ul>
<h2>Pitch</h2>
<p>To ensure it gets done by the end of the year, I would like to add this project to my calendar as paid work. So if you are able to help out by donating some portion of the goal, I would appreciate it. Please use the chip-in below to contribute to this effort.</p>
<p><object width="250" height="250" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="src" value="http://widget.chipin.com/widget/id/29e624bb38e7f7a4" /><param name="flashvars" value="" /><param name="allowscriptaccess" value="always" /><param name="wmode" value="transparent" /><embed width="250" height="250" type="application/x-shockwave-flash" src="http://widget.chipin.com/widget/id/29e624bb38e7f7a4" flashvars="" allowscriptaccess="always" wmode="transparent" /></object></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.aclark.net/2011/11/29/plone-org-maintenance/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Plone secrets: Episode 4 &#8211; Varnish in front</title>
		<link>http://blog.aclark.net/2011/11/09/plone-secrets-episode-4-varnish-in-front/</link>
		<comments>http://blog.aclark.net/2011/11/09/plone-secrets-episode-4-varnish-in-front/#comments</comments>
		<pubDate>Wed, 09 Nov 2011 17:50:10 +0000</pubDate>
		<dc:creator>Alex Clark</dc:creator>
				<category><![CDATA[Plone]]></category>

		<guid isPermaLink="false">http://blog.aclark.net/?p=3901</guid>
		<description><![CDATA[This just in from the production department: use Varnish. (And please forgive the heavily meme-laden approach to describing these techniques .) Cache ALL the hosts Our ability to use Varnish in production is no secret by now, or at least &#8230; <a href="http://blog.aclark.net/2011/11/09/plone-secrets-episode-4-varnish-in-front/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><em>This just in from the production department: use Varnish. (And please forgive the heavily meme-laden approach to describing these techniques <img src='http://blog.aclark.net/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> .)<br />
</em></p>
<h2>Cache ALL the hosts</h2>
<p><a href="http://memegenerator.net/cache/instances/400x/10/11036/11301169.jpg"><img class="alignright size-full wp-image-3946" title="11301169" src="http://blog.aclark.net/wp-content/uploads/2011/11/11301169.jpg" alt="" width="400" height="300" /></a>Our ability to use Varnish in production is no secret by now, or at least it shouldn&#8217;t be. What is often less clear is exactly how to use it. One way I like[1], is to run Varnish on your public IP port 80 and make Apache listen on your private IP port 80. Then proxy from Varnish to Apache and enjoy easy caching goodness on all your virtual hosts in Apache.</p>
<h2>Configuration</h2>
<p>This should require less than five minutes of down time to implement. First, configure the appropriate settings. (Well, first install Apache and Varnish if you haven&#8217;t already: `aptitude install varnish apache2` on Ubuntu Linux[0].)</p>
<h3>Varnish</h3>
<p>To modify the listen IP address and port, we typically edit a file like <em>/etc/default/varnish</em> (in Ubuntu). However you do it, configure the equivalent of the following on your system:</p>
<pre>DAEMON_OPTS="-a 174.143.252.11:80 \
             -T localhost:6082 \
             -f /etc/varnish/default.vcl \
             -s malloc,256m"</pre>
<p>This environment variable is then passed to <em>varnishd</em> on the command line. Next, pass traffic to Apache like so (in <em>/etc/varnish/default.vcl</em> on Ubuntu):</p>
<pre>backend default {
 .host = "127.0.0.1";
 .port = "80";
 }</pre>
<p>Now on to Apache.</p>
<p><strong><em>Please note that the syntax above is for Varnish 3.x and the syntax has (annoyingly) changed from 2.x to 3.x.</em></strong></p>
<h3>Apache</h3>
<p>The Apache part is a bit simpler. You just need to change the listen port (on Ubuntu this is done in <em>/etc/apache2/ports.conf</em>), typically from something like:</p>
<pre>Listen *:80</pre>
<p>to:</p>
<pre>Listen 127.0.0.1:80</pre>
<h2>Restart ALL the services</h2>
<p>Now restart both services. If all goes well you shouldn&#8217;t notice any difference, except better performance, and when you make a website change and need to clear the cache[2]. For this, I rely on telnetting to the varnish port and issuing the `ban.url` command (formerly `url.purge` in 2.x):</p>
<pre>$ telnet localhost 6082
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
200 205     
-----------------------------
Varnish Cache CLI 1.0
-----------------------------
Linux,2.6.35.4-rscloud,x86_64,-smalloc,-smalloc,-hcritbit

Type 'help' for command list.
Type 'quit' to close CLI session.

ban.url /
200 0</pre>
<h2>Cache ALL the disks</h2>
<p>This site has Varnish and Apache configured as described in this article. It also has disk caching in Apache enabled, thanks to Elizabeth Leddy&#8217;s article:</p>
<ul>
<li><a href="http://plonechix.blogspot.com/2011/08/10-minute-caching-with-apache.html">http://plonechix.blogspot.com/2011/08/10-minute-caching-with-apache.html</a></li>
</ul>
<p>As a result, it&#8217;s <strong>PEPPY AS THE DICKENS™</strong> on a 512MB &#8220;slice&#8221; (Cloud server) from Rackspace Cloud. And now you know yet another &#8220;Plone secret&#8221;. Now go make your Plone sites faster, and let me know how it goes in the comments section below.</p>
<h2>Notes</h2>
<p>[0] Using the latest distribution, &#8220;oneric&#8221;.</p>
<p>[1] I first saw this technique at NASA when NASA Science was powered by Plone; I found it odd at the time but years later it makes perfect sense.</p>
<p>[2] Ideally you&#8217;d configure this in p.a.caching, but I&#8217;ve not been able to stomach this yet.</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.aclark.net/2011/11/09/plone-secrets-episode-4-varnish-in-front/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Plone: First class Python citizen</title>
		<link>http://blog.aclark.net/2011/10/24/plone-first-class-python-citizen/</link>
		<comments>http://blog.aclark.net/2011/10/24/plone-first-class-python-citizen/#comments</comments>
		<pubDate>Mon, 24 Oct 2011 13:09:42 +0000</pubDate>
		<dc:creator>Alex Clark</dc:creator>
				<category><![CDATA[Plone]]></category>
		<category><![CDATA[Python]]></category>

		<guid isPermaLink="false">http://blog.aclark.net/?p=3735</guid>
		<description><![CDATA[The Plone community and software fit nicely within the larger Python ecosystem. Here&#8217;s why. For almost as long as I have been involved in the Plone project, I&#8217;ve been interested in Plone&#8217;s role in the Python ecosystem. Today as I &#8230; <a href="http://blog.aclark.net/2011/10/24/plone-first-class-python-citizen/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><em>The Plone community and software fit nicely within the larger Python ecosystem. Here&#8217;s why.</em></p>
<p>For almost as long as I have been involved in the <a href="http://plone.org">Plone</a> project, I&#8217;ve been interested in Plone&#8217;s role in the Python ecosystem. Today as I look across the current landscape, I&#8217;m proud to announce a new milestone the Plone community can take pride in. But the change didn&#8217;t happen overnight, so first let&#8217;s take a quick look back.</p>
<h2>PyPI support in PSC</h2>
<p>Circa 2008, Tarek Ziadé and others finished the PyPI integration branch of PloneSoftwareCenter started by Sidnei Da Silva 2 years before.</p>
<p><a href="http://blog.aclark.net/wp-content/uploads/2011/10/Screen-Shot-2011-10-22-at-9.18.04-AM.png"><img class="size-full wp-image-3760 alignnone" title="Screen Shot 2011-10-22 at 9.18.04 AM" src="http://blog.aclark.net/wp-content/uploads/2011/10/Screen-Shot-2011-10-22-at-9.18.04-AM.png" alt="" width="602" height="502" /></a></p>
<p>This was a big step towards the &#8220;Pythonification&#8221; of Plone, mainly because Plone packages could now be published on plone.org in the same way Python packages are published to the Python Package Index: via &#8220;python setup.py upload&#8221;. In fact if you are publishing Plone packages, it is recommended that you release to <em>both</em> PyPI and plone.org simultaneously. This ensures your package is visible to the most number of potential users. And you can use <a href="http://pypi.python.org/pypi/jarn.mkrelease">mkrelease</a> to automate the process.</p>
<h2>Collective docs at RTD</h2>
<p>Just when you thought things couldn&#8217;t get more exciting in Python land, along came <a href="http://readthedocs.org/">readthedocs.org</a> (a Django Dash production, IIRC). And to <a href="https://github.com/collective/collective.developermanual/commit/4dc34d113b1a62064c83f3c431acc7d8deb42f1a">join the fun in July 2011</a>, I moved Mikko Ohtamaa&#8217;s awesome <strong>Plone Community Managed Developer Manual</strong> to the <a href="http://github.com/collective">Github collective</a> and configured the RTD <a href="https://github.com/blog/41-service-integration">service hook</a>.</p>
<p><a href="http://blog.aclark.net/wp-content/uploads/2011/10/Screen-Shot-2011-10-22-at-9.14.14-AM.png"><img class="size-full wp-image-3771 alignnone" title="Screen Shot 2011-10-22 at 9.14.14 AM" src="http://blog.aclark.net/wp-content/uploads/2011/10/Screen-Shot-2011-10-22-at-9.14.14-AM.png" alt="" width="556" height="418" /></a></p>
<p>This means that whenever anyone commits a change to the developer manual, within a few minutes a new Sphinx build <a href="http://collective-docs.readthedocs.org/en/latest/index.html">gets published</a>. It was so easy to set this up, I wish I had done it sooner.</p>
<p>So you can that see over the years, we have been working ourselves into a frenzy of Python goodness! And last week, it got even better.</p>
<h2>Introducing: Plone packages!</h2>
<p>Thanks to the good folks at <a href="http://www.cartwheelweb.com/">Cartwheel Web</a>, makers of the fine <a href="http://opencomparison.org/">Open Comparison</a> service, Plone now has its very own <a href="http://plone.opencomparison.org">grid comparison website</a>! (<a href="http://djangopackages.com">Djangopackages.com</a> was first, followed by <a href="http://pyramid.opencomparison.org">pyramid.opencomparison.org</a>.)</p>
<p><a href="http://blog.aclark.net/wp-content/uploads/2011/10/Screen-Shot-2011-10-22-at-9.13.55-AM.png"><img class="size-full wp-image-3782 alignnone" title="Screen Shot 2011-10-22 at 9.13.55 AM" src="http://blog.aclark.net/wp-content/uploads/2011/10/Screen-Shot-2011-10-22-at-9.13.55-AM.png" alt="" width="563" height="468" /></a></p>
<p>This is a site where folks can add packages hosted elsewhere (e.g. svn, github, pypi), vote on them, and add grid comparisons to compare similarly-featured add-ons, frameworks, and other related software. Grids are the killer feature of this site, and personally I&#8217;ve been waiting to use them to answer questions like:</p>
<blockquote><p><strong>Q: What&#8217;s the best blogging add-on for Plone?</strong></p>
<p><strong>A: http://plone.opencomparison.org/grids/g/weblogs/</strong></p></blockquote>
<p>The content is entirely user driven (TTW only) so please head over to <a href="http://plone.opencomparison.org">plone.opencomparison.org</a>, login with your github ID, and start adding packages! And while you are at it, please report any issues you find here: <a href="https://github.com/opencomparison/opencomparison/issues">https://github.com/opencomparison/opencomparison/issues</a>. Lastly, let&#8217;s all tweet a big thanks to <a href="https://twitter.com/#!/pydanny">@pydanny </a>and <a href="https://twitter.com/#!/audreyr">@audreyr</a> for their hard work and generosity!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.aclark.net/2011/10/24/plone-first-class-python-citizen/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Pillow: one year later</title>
		<link>http://blog.aclark.net/2011/10/14/pillow-one-year-later/</link>
		<comments>http://blog.aclark.net/2011/10/14/pillow-one-year-later/#comments</comments>
		<pubDate>Fri, 14 Oct 2011 17:11:37 +0000</pubDate>
		<dc:creator>Alex Clark</dc:creator>
				<category><![CDATA[Plone]]></category>
		<category><![CDATA[Python]]></category>

		<guid isPermaLink="false">http://blog.aclark.net/?p=3702</guid>
		<description><![CDATA[For anyone unfamiliar with Pillow, it is the &#8220;friendly PIL fork&#8221;: a fork of PIL that aims to remain a good citizen in the PIL community through its actions. Warm and fluffy history Pillow 1.0 was released on 2010-07-31, a &#8230; <a href="http://blog.aclark.net/2011/10/14/pillow-one-year-later/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><em>For anyone unfamiliar with Pillow, it is the &#8220;friendly PIL fork&#8221;: a fork of PIL that aims to remain a good citizen in the PIL community through its actions.</em></p>
<h2>Warm and fluffy history</h2>
<p><a href="http://pypi.python.org/pypi/Pillow"><img class="alignright size-full wp-image-3705" title="logo" src="http://blog.aclark.net/wp-content/uploads/2011/10/logo.jpg" alt="" width="100" height="75" />Pillow</a> 1.0 was released on 2010-07-31, a little over a year later came Pillow 1.7.5 which features:</p>
<ul>
<li>Many packaging fixes (mostly to support dependency libraries)</li>
<li>Windows binaries</li>
<li>Over 13K downloads</li>
</ul>
<p>Pillow is used in Plone&#8217;s <a href="http://launchpad.net/plone/4.1/4.1.2/+download/Plone-4.1.2-UnifiedInstaller.tgz">UnifiedInstaller</a>, and I know <a href="https://github.com/collective/Pillow/commit/8a282c9ea4382045822ca4fc15e586ebd2f7ace7">folks from the Django community </a>are using it.</p>
<h2>Future creature comforts</h2>
<p>All in all, a mild success. So what&#8217;s next? <strong>More of the same</strong>. To <a href="http://stackoverflow.com/questions/2485295/the-problem-with-installing-pil-using-virtualenv-or-buildout/7770547#7770547">quote myself from a recent Stack Overflow answer</a>:</p>
<blockquote><p>If PIL ever does exactly what Pillow does, then the fork will die. Until that happens, we have Pillow.</p></blockquote>
<h2>Bottom line accommodations</h2>
<p>This may never happen of course, which is part of the reason for the fork. You can&#8217;t force someone to maintain software for you. But in the open source world you can grab the bull by the horns (take the lead) and try to make things better. Even better: if your project and community are healthy and functioning properly, your success or failure will be determined by the folks in the community (as it should be). In this case, the Plone and Python communities have spoken clearly.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.aclark.net/2011/10/14/pillow-one-year-later/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

