<?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>jessenoller.com &#187; Python</title>
	<atom:link href="http://jessenoller.com/category/programming/python/feed/" rel="self" type="application/rss+xml" />
	<link>http://jessenoller.com</link>
	<description>python, programming and other things</description>
	<lastBuildDate>Wed, 11 Jan 2012 19:01:39 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>PSF Grants, and some additional color</title>
		<link>http://jessenoller.com/2012/01/01/psf-grants-and-some-additional-color/</link>
		<comments>http://jessenoller.com/2012/01/01/psf-grants-and-some-additional-color/#comments</comments>
		<pubDate>Sun, 01 Jan 2012 20:59:33 +0000</pubDate>
		<dc:creator>jesse</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[psf]]></category>
		<category><![CDATA[Python]]></category>

		<guid isPermaLink="false">http://jessenoller.com/?p=1118</guid>
		<description><![CDATA[Doug Hellmann and Mike Driscoll put up an excellent post on the Python Software Foundation blog about most of the grant-type work that the foundation performed over the 2011 year. To add some color to it - reviews and discussions about grants and awarding this comprises quite a bit of the board-level work that ...]]></description>
			<content:encoded><![CDATA[<p>Doug Hellmann and Mike Driscoll put up an <a href="http://pyfound.blogspot.com/2012/01/psf-grants-over-37000-to-python.html">excellent post</a> on the Python Software Foundation blog about most of the grant-type work that the foundation performed over the 2011 year. To add some color to it — reviews and discussions about grants and awarding this comprises quite a bit of the board-level work that goes on (excluding individual committees).</p>
<p>You can see from the post quite a bit of the capital spent goes to support other conferences — as I’ve stated before, money that comes into the foundation in the forms of donations and PyCon “<a href="http://jessenoller.com/2011/05/25/pycon-everybody-pays/">revenue</a>” goes back into the system to be issued out to things like this.</p>
<p>This is why I am so hot to encourage grants around <a href="http://jessenoller.com/2011/12/09/porting-to-python-3-an-offer-for-you/">Porting to Python 3</a> — I think that the PSF can, in the next year, increase grant work for conference and outreach as well as developer work (such as porting libraries and other projects). None of these things should be solely focused on CPython alone — PyPy, Jython, etc should all be recipients of grants.</p>
<p>And therein lies the rub.</p>
<p>The PSF does not “go looking” for places to issue grants — the <a href="http://morepypy.blogspot.com/2011/03/thank-you-to-psf.html">PyPy grant at PyCon 2011</a> was a bit of an aberration in that I proposed it to the board directly.</p>
<p>We need applications from the community! We can do things such as cover meetup fees for user groups, or help fund conferences, or development work. Jessica McKellar, I and others recently revamped the <a href="http://www.python.org/psf/grants/">PSF grants page</a> to hopefully provide a better outline of how grants work.</p>
<p>If you have more questions — feel free to ask me here or via email — the PSF’s mission is happily broad, and we’re here to serve and represent the community as best we can. But we do need to hear from you!</p>
<p> </p>
<p> </p>
<p class="wp-flattr-button"></p>]]></content:encoded>
			<wfw:commentRss>http://jessenoller.com/2012/01/01/psf-grants-and-some-additional-color/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>2011 In Review: The Python Portion</title>
		<link>http://jessenoller.com/2011/12/30/2011-in-review-the-python-portion/</link>
		<comments>http://jessenoller.com/2011/12/30/2011-in-review-the-python-portion/#comments</comments>
		<pubDate>Fri, 30 Dec 2011 21:15:18 +0000</pubDate>
		<dc:creator>jesse</dc:creator>
				<category><![CDATA[Personal]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[pycon]]></category>
		<category><![CDATA[Python]]></category>

		<guid isPermaLink="false">http://jessenoller.com/?p=1115</guid>
		<description><![CDATA[As I said in my post this morning - "2011 in Review: The Personal Portion" - it's that time where we're all taking stock and reflecting back on 2011.
In this post's case, I'm taking stock of the things that changed for me - things that stick out in my mind and projects I've either ...]]></description>
			<content:encoded><![CDATA[<p>As I said in my post this morning — “2011 in Review: The Personal Portion” — it’s that time where we’re all taking stock and reflecting back on 2011.</p>
<p>In this post’s case, I’m taking stock of the things that changed for me — things that stick out in my mind and projects I’ve either started, floundered or run completely into ground.</p>
<h2><strong>Design and Experience Matter</strong></h2>
<p>Perhaps the biggest shift for me in Python-as-a-whole is a movement more towards the social / management aspects. I’m a Python Software Foundation board member, so obviously me needing to take a “bigger view” isn’t that surprising. What has been surprising to me is that everywhere I turn, I see things <strong>we</strong> as a whole can do better.</p>
<p>Now, before you think I’m about to go off the deep end; let me assure you — I wouldn’t trade the community I’m lucky to be part of for anything, as <a href="http://jessenoller.com/2011/07/28/thank-you-the-impossibility-of-its-going-to-be-ok/">I’ve said more eloquently before</a>. However, only a fool believes that anything is perfect, and only the insane only focus on the flaws.</p>
<p>Taking a step back, I’ve seen more and more things that I think we can do a better job at, and these realizations all revolve around my continued “transition” from more back-end to more front-end design and coding. As I’ve become more focused on the users/community and those who are new, I’ve grown to internalize the fact that design and experience matter not only in code, and in a GUI, but they matter to a community and language as a whole.</p>
<p>I’ve spent the better part of this past year focused on issues around this — encouraging people to get involved in the “softer” side of things — helping out with documentation, mentorship and education, trying to get people to think more about one another and those just getting started and introduced to things.</p>
<p>I think that we as a community — and I mean everyone — from Django to Plone, from Twisted to Tornado, from PyPy to cPython can take a look at the “more human” aspects and find things to improve. Sometimes it requires fresh eyes to show you what’s broken — people who do code reviews regularly know this.</p>
<p>For an example, look at Kenneth Reitz’ <a href="http://docs.python-requests.org/en/latest/index.html">Requests</a> module — billed as “HTTP for Humans” — this might be a perfect example of the point I’m trying to get across. Built on top of “less friendly” libraries, it’s API is a <strong>joy</strong> to use. It’s simple, it’s clear — the documentation is well done and the entire project feels very <strong>welcoming</strong>. Perhaps “Welcoming” is the best word for what I’m looking for.</p>
<p>I get stuck in wanting to fix “all the things” — and I can’t help but get mired down in the details of how we make everything more welcoming and the experience better, how do we lower the barrier and reduce friction. The result is that I’ve broken my promises to myself and taken on more things than I can possibly hope to do justice.</p>
<p>How do we make things more welcoming, how do we help the new people, how do we help those of us growing stuck in our ways to find and explore new things? How can we do this as a community to lift us all up? What I think we need is a series of small, positive changes. Little things like, say:</p>
<ul>
<li>User friendly READMEs and Documentation. Yes — I said <strong>friendly</strong> — don’t assume your users are magical super smart engineers and users. While the article is more web focused, I enjoyed “<a href="http://uxdesign.smashingmagazine.com/2011/12/28/myth-of-sophisticated-user/">The Myth of the Sophisticated User</a>” — please don’t assume people are running bleeding edge version of everything, and please don’t assume everyone knows 20 years of Python package development.</li>
<li>Mentorship! Set up something within your project or team that is focused on mentoring people to a point where that person is comfortable to be a <strong>contributor</strong>.</li>
<li>Stop the vitriol. If you find yourself angry when you’re typing that reply to a mailing list; walk away. If you see others being hostile or just flat out rude, call them out on it (privately first, no reason to be a jerk). Aim to be polite and welcoming.</li>
<li>The next time you’re putting something up on the web? Take a moment to think about or learn about making something — yes — pretty and usable. Even if it’s something simple, take a moment to realize that you’re building something that may be your future user’s <strong>first experience</strong> with you. It may be as simple as picking up “<a href="http://amzn.to/qnFMJO">Design for Hackers</a>” (which I quite liked) or just going with something with <strong>sane defaults</strong> — like <a href="http://twitter.github.com/bootstrap/">twitter bootstrap</a>.</li>
<li>Speaking of <strong>sane defaults</strong> — please be opinionated. When a new user wants to install something, don’t give them the complete history of packaging, just gently explain to them how to do it. Even if I don’t agree with the way you do that, it’s a far cry from 20 years of development history being dumped on someone when a simple <strong>pip install &lt;blah&gt;</strong> could work. The same goes for your software: Pick sane, rational defaults and abstract away as much as you can. Put examples of usage before the API in documentation.</li>
<li>APIs and syntax <strong>matter</strong>: your communications channels to your users are APIs and syntax just as much as your actual code and libraries.</li>
</ul>
<p>Moving on — I hate to say it this way; but think of the Users and target audience. Remember, you — the person reading this — and I — are in a tiny minority of the population where software (for the most part) isn’t magic, we understand history and we’re <strong>very</strong> tolerant of unfriendly things and failures because that’s how we “grew up”.</p>
<p>Not everyone knows how to build an interpreter; or a web framework — it doesn’t mean they still can’t contribute.</p>
<h2>The Python Software Foundation</h2>
<p>As most of you know — I am one of the directors of the Python Software Foundation, and have been the past two years. 2011 was another year where the PSF got to do some pretty cool things. I’ve been stressing and pushing more and more that the PSF has to be focused not just on the “IP” of Python, or just on cPython development — we have to take a larger view of the entire community — this means encouraging projects such as <a href="http://morepypy.blogspot.com/2011/03/thank-you-to-psf.html">PyPy</a>, <a href="http://pyfound.blogspot.com/2011/11/boston-python-workshop-psf-grant.html">outreach workshops</a>, <a href="http://pyfound.blogspot.com/2011/10/psf-granted-pytexas-2011-us750.html">conferences</a>, etc via grants and support.</p>
<p>You should really take a look at the <a href="http://pyfound.blogspot.com/">Python Software Foundation’s blog</a> — Doug Hellmann, Brian Curtin and others have done their best to document and showcase what the PSF has been up to, and where we’re trying to help.</p>
<p>My primary focus has been encouraging things such as the <a href="http://mail.python.org/mailman/listinfo/outreach-and-education">Outreach and Education</a> committee, and working behind the scenes with a lot of people to improve the Python.org infrastructure. More recently I’ve been working on a project which should hopefully become public soon — but is tied to my first point about Design and Experience and the PSF.</p>
<p>I want the PSF to grow in the good works it performs — more grants as we can afford it, getting better hosting for things as needed, helping out projects like <a href="http://readthedocs.org/">Read The Docs</a> or helping <a href="http://pyfound.blogspot.com/2011/12/psf-proffers-payment-to-port-to-python.html">push forward Python 3</a>. The PSF is the <strong>Python</strong> Software Foundation — we need and should be supporting and helping everything from PyPy to PyPI, cPython to Scipy.</p>
<p>I think the best way for me to help here is to pick up where I left off <a href="http://jessenoller.com/python-software-foundation/"><strong>documenting</strong> the PSF</a>. Once again — the design and interface matter.</p>
<h2>The Sprints Committee</h2>
<p>As part of my board work back in 2010 I helped start the <a href="http://pythonsprints.com/">Python Sprints project</a> — and under Brian Curtin’s guidance in 2011, it has continued to make small donations in places it matters. In 2012, I’d like to see if I can spin back around and help it grow more and flourish, perhaps even be able to provide more money where it’s needed. It’s growth has been slow — but that’s also due to us seeing less sprints overall it seems.</p>
<h2>GetPython3.com</h2>
<p>Started as a side project (yes. another one. sigh.) <a href="http://getpython3.com/">Get Python 3</a> is meant to serve as a pile of information and resources about Python 3 — and as many of the aspects of Python 3 as possible. Where to get funding, how to port, what is ported. I’ve actually gotten some excellent help from others (see <a href="https://github.com/jnoller/getpython3.com/commits/master">github</a>) and I’m hoping to grow it more. I’ve gotten pretty good feedback on it — and I never turn down a patch!</p>
<h2>Python (Core) Mentorship</h2>
<p>Driven from my experience with the first point about being welcoming, I’ve done my best to spin up the <a href="http://pythonmentors.com/">Python Core Mentorship</a> group, a team / list focused on mentoring new people into contributing to core Python. To quote the home page:</p>
<blockquote>
<p>The mission of the Python Core Mentor Program is to provide an open and welcoming place to connect students, programmers – and anyone interested in contributing to the Python Core development. This project is based on the idea that the best way to welcome new people into any project is a venue which connects them to a variety of mentors who can assist in guiding them through the contribution process, including discussions on lists such as python-dev, and python-ideas, the bug tracker, mercurial questions, code reviews, etc.</p>
</blockquote>
<p>While traffic is low, I think it has done it’s job — as with everything else on my list, I’d like to see growth — as it is, due to everything else on my plate, others have stepped up to help lead and guide the group. As it is, I’ve run into a case where as I’ve found with many other projects like this — people are already “tapped out” — myself included. More on resource contention later — and I should really do a poll and gauge the list for the relative level of success they feel the group has engendered.</p>
<h2>Python Speed Project</h2>
<p>Another side-burner project is the <a href="http://speed.python.org/">Speed.python.org</a> project — this one makes me sad(der) than my other time-starved projects. While we have finally been able to set it up as a PyPy build slave and have it feeding results to speed.pypy.org (see the <a href="http://speed.pypy.org/timeline/">speed-python results</a>), it has not taken off as much as I hoped. We have a beast of a machine (<a href="http://jessenoller.com/2011/06/29/announcing-the-new-speed-python-org-machine/">see my initial announcement</a>) — but we’ve hit the resource wall like everything else. Not enough people with enough time and the right skills.</p>
<h2>The Elephant in the room: PyCon 2012</h2>
<p>My single biggest project this year has been getting PyCon 2012 ready to fly — everything from getting <a href="https://us.pycon.org/2012/">the new website launched</a>, the staff assembled, writing a <a href="https://us.pycon.org/2012/codeofconduct/">code of conduct</a>, and providing white-glove service and support (and getting) our <a href="https://us.pycon.org/2012/sponsors/">amazing list of sponsors</a>.</p>
<p>I can’t really estimate how many hours I’ve “worked” on Python — but I can tell you every hour has been worth it. Even though it’s sucked my time from other things and projects, it looks like it’s going to be an <strong>amazing</strong> conference. <a href="http://pycon.blogspot.com/2011/12/pycon-us-2012-i-got-something-special.html">We have robots</a>, we have <a href="https://us.pycon.org/2012/schedule/lists/talks/">amazing talks</a>, amazing <a href="https://us.pycon.org/2012/keynotes/">keynote and plenary speakers</a> (Paul Graham and Stormy Peters for starters). We have <a href="https://us.pycon.org/2012/schedule/tutorials/">awesome tutorials</a> and even <strong>more to come</strong>.</p>
<p>PyCon represents the single biggest “community act” that the Python Software Foundation performs — not only does the PSF <strong>fund</strong> PyCon, but it manages it, assumes the risk, etc. I wrote about it in detail in my post “<a href="http://jessenoller.com/2011/09/23/pycon-2012-sponsorship-making-the-case-for-sponsorship/">Making the Case for Sponsorship</a>” and in the “<a href="http://jessenoller.com/2011/05/25/pycon-everybody-pays/">Everybody Pays</a>” post. I’m hoping to continue to write up more and more of the details of the inner workings of PyCon, as I think it’s an important series of data points and lessons. Remember — any funds “left” from PyCon go the PSF which allow the foundation to issue grants to other conferences, to developers, groups and workshops. <em>It helps us help you</em>.</p>
<p>PyCon 2012 is the thing I am most proud of; <a href="https://us.pycon.org/2012/sponsors/">we have 80 sponsors and partners</a> (Such as OpenHatch and PyLadies), we have a solid team of organizers working together to bring PyCon 2012 to fruition. We have a <a href="https://us.pycon.org/2012/assistance/">robust financial aid program</a> as is tradition. I can only hope that I have the tenacity and will to see it come together and be able to look at a sea of 1500 Pythonistas — new and old in Santa Clara.</p>
<p>ps: You can <a href="https://us.pycon.org/2012/registration/">register here</a>. :)</p>
<h2>Blood from a Stone</h2>
<p>How do you get more time from people who are busy? Time and Time again, I’ve found myself asking that question. Each one of the projects I’ve listed has hit the same issue over and over again. How do you get the volunteers necessary to help? Heck, even <a href="http://jessenoller.com/2011/08/24/help-needed-multiprocessing/">my call for help with multiprocessing</a> in August fell on a mostly flat note — probably due to me.</p>
<p>I no longer feel “ok” asking for help with new projects simply due to the fact that I know <strong>everyone</strong> is busy — it’s insane of me to ask people to take their time away from their projects or families or jobs.</p>
<p>What that means however is that I have completely failed in the <a href="http://jessenoller.com/2011/05/21/on-family-cranking-and-changing/">not-taking-on-new-things department</a> — and I don’t see this changing much without me flat out learning to <em>tell myself</em><strong><em> </em>“no”</strong>. I believe in this community — I believe in the people, the friends I have, the language and everything involved. It’s not just another tool for me; it never has been. I’m still learning, and mostly failing (or flailing, depends on where I’m standing).</p>
<h2>Finishing this one off</h2>
<p>Looking at the list I’ve typed out above, I suddenly have the feeling that I didn’t actually <strong>do</strong> much last year, I know thats wrong (a nasty look from my family members would easily remind me of that). I have been able to help out where I can making things more friendly, more welcoming and to reach out when and where I can to offer help, and support.</p>
<p>I’ve watched the community change in some dramatic ways, I’ve looked on as PyPy has gained amazing momentum, more and more vendors and companies have come out with Python support and stating that they’re using Python (and are hiring). I’ve gotten to work with PSF members, the board, and many, many others — all I can do is keep at it, and hope I do things justice.</p>
<p class="wp-flattr-button"></p>]]></content:encoded>
			<wfw:commentRss>http://jessenoller.com/2011/12/30/2011-in-review-the-python-portion/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Quick example of extending UserCreationForm in Django</title>
		<link>http://jessenoller.com/2011/12/19/quick-example-of-extending-usercreationform-in-django/</link>
		<comments>http://jessenoller.com/2011/12/19/quick-example-of-extending-usercreationform-in-django/#comments</comments>
		<pubDate>Mon, 19 Dec 2011 15:35:12 +0000</pubDate>
		<dc:creator>jesse</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Python]]></category>

		<guid isPermaLink="false">http://jessenoller.com/?p=1100</guid>
		<description><![CDATA[I just banged my head against this, and with no good answers floating around out there, I thought I'd share. In my case, I just wanted to extend the basic django.contrib.auth.forms.UserCreationForm in order to make it so when a user was added, an email address had to be supplied in addition to the username ...]]></description>
			<content:encoded><![CDATA[<p>I just banged my head against this, and with no good answers floating around out there, I thought I’d share. In my case, I just wanted to extend the basic <strong>django.contrib.auth.forms.UserCreationForm</strong> in order to make it so when a user was added, an email address had to be supplied in addition to the username and password fields.</p>
<p>Here is a working example (<strong>forms.py</strong>) — just so I don’t forget it:</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p1100code1'); return false;">View Code</a> PYTHON</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p11001"><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
</pre></td><td class="code" id="p1100code1"><pre class="python" style="font-family:monospace;"><span style="color: #ff7700;font-weight:bold;">from</span> django <span style="color: #ff7700;font-weight:bold;">import</span> forms
<span style="color: #ff7700;font-weight:bold;">from</span> django.<span style="color: black;">contrib</span>.<span style="color: black;">auth</span>.<span style="color: black;">models</span> <span style="color: #ff7700;font-weight:bold;">import</span> User
<span style="color: #ff7700;font-weight:bold;">from</span> django.<span style="color: black;">contrib</span>.<span style="color: black;">auth</span>.<span style="color: black;">forms</span> <span style="color: #ff7700;font-weight:bold;">import</span> UserCreationForm
&nbsp;
<span style="color: #ff7700;font-weight:bold;">class</span> UserCreateForm<span style="color: black;">&#40;</span>UserCreationForm<span style="color: black;">&#41;</span>:
    <span style="color: #dc143c;">email</span> = forms.<span style="color: black;">EmailField</span><span style="color: black;">&#40;</span>required=<span style="color: #008000;">True</span><span style="color: black;">&#41;</span>
&nbsp;
    <span style="color: #ff7700;font-weight:bold;">class</span> Meta:
        model = User
        fields = <span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;username&quot;</span>, <span style="color: #483d8b;">&quot;email&quot;</span>, <span style="color: #483d8b;">&quot;password1&quot;</span>, <span style="color: #483d8b;">&quot;password2&quot;</span><span style="color: black;">&#41;</span>
&nbsp;
    <span style="color: #ff7700;font-weight:bold;">def</span> save<span style="color: black;">&#40;</span><span style="color: #008000;">self</span>, commit=<span style="color: #008000;">True</span><span style="color: black;">&#41;</span>:
        <span style="color: #dc143c;">user</span> = <span style="color: #008000;">super</span><span style="color: black;">&#40;</span>UserCreateForm, <span style="color: #008000;">self</span><span style="color: black;">&#41;</span>.<span style="color: black;">save</span><span style="color: black;">&#40;</span>commit=<span style="color: #008000;">False</span><span style="color: black;">&#41;</span>
        <span style="color: #dc143c;">user</span>.<span style="color: #dc143c;">email</span> = <span style="color: #008000;">self</span>.<span style="color: black;">cleaned_data</span><span style="color: black;">&#91;</span><span style="color: #483d8b;">&quot;email&quot;</span><span style="color: black;">&#93;</span>
        <span style="color: #ff7700;font-weight:bold;">if</span> commit:
            <span style="color: #dc143c;">user</span>.<span style="color: black;">save</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>
        <span style="color: #ff7700;font-weight:bold;">return</span> <span style="color: #dc143c;">user</span></pre></td></tr></table></div>

<p>You have to modify the save method on the form to add the email to user object returned by the super call. You can use this to expose other fields on the User object as needed.</p>
<p class="wp-flattr-button"></p>]]></content:encoded>
			<wfw:commentRss>http://jessenoller.com/2011/12/19/quick-example-of-extending-usercreationform-in-django/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Porting to Python 3: An offer for you.</title>
		<link>http://jessenoller.com/2011/12/09/porting-to-python-3-an-offer-for-you/</link>
		<comments>http://jessenoller.com/2011/12/09/porting-to-python-3-an-offer-for-you/#comments</comments>
		<pubDate>Fri, 09 Dec 2011 14:53:34 +0000</pubDate>
		<dc:creator>jesse</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Python]]></category>

		<guid isPermaLink="false">http://jessenoller.com/?p=1090</guid>
		<description><![CDATA[
Recent posts and discussions around porting of existing libraries and frameworks to Python 3 have been pretty interesting. I think that there have been a lot of good points brought up in the discussion (See: Armin's Post (and followup), Nick's entry on Python 3 and Nick's email to Python-Ideas).
On a personal level; I've felt ...]]></description>
			<content:encoded><![CDATA[<p><img style="display: block; margin-left: auto; margin-right: auto;" src="http://jessenoller.com/wp-content/uploads/2011/12/35gb001.jpg" border="0" alt="35gb00" width="320" height="240" /></p>
<p>Recent posts and discussions around porting of existing libraries and frameworks to Python 3 have been pretty interesting. I think that there have been a lot of good points brought up in the discussion (See: <a href="http://lucumr.pocoo.org/2011/12/7/thoughts-on-python3/">Armin’s Post</a> (and <a href="https://plus.google.com/116865269069705863179/posts/NEjutqcoVcB">followup</a>), <a href="http://readthedocs.org/docs/ncoghlan_devs-python-notes/en/latest/py3k_binary_protocols.html">Nick’s entry on Python 3</a> and <a href="http://mail.python.org/pipermail/python-ideas/2011-December/012993.html">Nick’s email to Python-Ideas</a>).</p>
<p>On a personal level; I’ve felt frustrated that there’s not much that I can do myself — I do believe that 2.7 is the proper end of the road of Python 2, and I do think that Python 3 is the future of the language. Does that mean Python 3 is perfect? Oh hell no. Does it mean that we can do work to make Python 3 the “Python 3″ we all want and need?</p>
<p>Yes it does.</p>
<p>So; while there is nothing I can do directly other than continue to work on the site I’ve been slowly building — <a href="http://getpython3.com/">GetPython3.com</a> with help from the community — there is an aspect I can help with from a <a href="http://www.python.org/psf/">Python Software Foundation</a> / Grants level. That means money (well, not unlimited).</p>
<p>As some of you might know — the PSF has actually issued grants to developers who have applied to port important libraries to Python 3 — as I say on the GetPython3 page:</p>
<blockquote>
<p>In short: yes — there’s a bevy of information, videos and blog posts out there that can help you on your way. Python 3 is the future of the Python language, and entities such as the <a href="http://www.python.org/psf/">Python Software Foundation </a>strongly believe in supporting the porting effort.</p>
<p>For example, the Python Software Foundation has issued developer grants to port projects such as the <a href="http://pyfound.blogspot.com/2011/04/psf-grant-funds-porting-work-for-email.html">email package</a>, <a href="http://groups.google.com/group/comp.lang.python/browse_thread/thread/3675e342b40310e9/157ae91ccee19151?show_docid=157ae91ccee19151">PyOpenSSL</a>, and <a href="http://pyfound.blogspot.com/2011/09/psf-provides-grant-to-port-webob.html">WebOb</a>. It has also provided developer grants for other general Python development work, such as to Brett Cannon that allowed him to completely revamp the <a href="http://docs.python.org/devguide/">Python developer’s guide</a>.</p>
<p>The Python Software Foundation is here for not just CPython, or python-core, or python-the-language. It is here for Python — the community, it’s efforts, its developers, designers and people.</p>
<p>Certain projects — most notably <a href="http://pypy.org/">PyPy</a> — have already started <a href="http://pypy.org/py3donate.html">donation programs</a> to help fund large-scale development efforts to Python 3. Others may soon follow.</p>
</blockquote>
<p>Additionally to the grants-to-developers aspect — the <a href="http://pythonsprints.com/">PSF Sprints project</a> has been issuing grants for Python sprints in general, which means you can apply / ask for a grant for a port-to-python3 workshop or sprint any time!</p>
<p>But; back to where I was going…</p>
<p>My offer to you, the community is this — I can not guarantee you will get a grant, or funding — but what I can do, and what is within my power as a fellow member and PSF Director is offer to help write, and review applications to the PSF Board of directors for grant applications.</p>
<p>That’s right — I will assist you in writing an application that will be submitted to the PSF Board for approval, for grants aimed at porting libraries or frameworks to Python 3; or doing specific documentation / core work for Python 3. I can help you write it; provide templates, discuss it with you (I may have some elves help me) and ultimately help you put it in front of the board for approval.</p>
<p>Obviously; the PSF does not have unlimited funds; nor can it spend funds irrationally. Python 3 is important however — critically so — and while we can not fund everything, we can do what we can. I am aiming at libraries/frameworks which are in widespread use (e.g. notable) and that other projects/libraries/frameworks depend on heavily (for example, see <a href="http://www.python.org/3kpoll">the Py3k poll</a>).</p>
<p>Before getting started, you should read the basic <a href="http://www.python.org/psf/grants/">PSF Grant guidelines</a> and you should look through the information on <a href="http://getpython3.com/">http://getpython3.com/</a>.</p>
<p>If you are interested in this; drop an email to <a href="mailto:jnoller@python.org">jnoller@python.org</a> — I don’t promise immediate up-to-the-second turn around — I’ve obviously got a lot on my plate right now, but I will do my best to help.</p>
<p class="wp-flattr-button"></p>]]></content:encoded>
			<wfw:commentRss>http://jessenoller.com/2011/12/09/porting-to-python-3-an-offer-for-you/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>PyCon 2012 Proposals Due October 12 — 14 Days!</title>
		<link>http://jessenoller.com/2011/09/29/pycon-2012-proposals-due-october-12-14-days/</link>
		<comments>http://jessenoller.com/2011/09/29/pycon-2012-proposals-due-october-12-14-days/#comments</comments>
		<pubDate>Thu, 29 Sep 2011 12:55:03 +0000</pubDate>
		<dc:creator>jesse</dc:creator>
				<category><![CDATA[pycon]]></category>
		<category><![CDATA[pycon 2012]]></category>
		<category><![CDATA[Python]]></category>

		<guid isPermaLink="false">http://jessenoller.com/?p=1067</guid>
		<description><![CDATA[The deadline for PyCon 2012 tutorial, talk, and poster proposals is under 14 days away, so be sure to get your submissions in by October 12, 2011 (as always, if it's October 12th anywhere in the world, submissions are still open!).
Whether you’re a first-timer or an experienced veteran, PyCon is depends on you, the ...]]></description>
			<content:encoded><![CDATA[<p>The deadline for PyCon 2012 tutorial, talk, and poster proposals is under <strong>14 days away</strong>, so be sure to get your submissions in by <strong>October 12, 2011 </strong>(as always, if it’s October 12th anywhere in the world, submissions are still open!).</p>
<p>Whether you’re a first-timer or an experienced veteran, PyCon is depends on you, the community, coming together to build the best conference schedule possible — PyCon is first and foremost about the community, driven by volunteers both on an organizational level, and by speakers.</p>
<p>Our <a href="http://us.pycon.org/2012/cfp/">call for proposals</a> lays out the details it takes to be included in the lineup for the conference in Santa Clara, CA on March 7–15, 2012. I should note that this year we have gone away from consistent groups of invited speakers — meaning, all talks, regardless of who submits them are not guaranteed a speaking slot. All talks are judged and reviewed on the merits of the talk and the speakers themselves.</p>
<p>If you’re unsure of what to write about, our recent survey yielded a large list of <a href="http://pycon.blogspot.com/2011/09/need-talk-ideas.html">potential talk topics</a>, and plenty of <a href="http://pycon.blogspot.com/2011/09/need-tutorial-ideas.html">ideas for tutorials</a>. We’ve also come up with <a href="http://pycon.blogspot.com/2011/08/writing-good-proposal.html">general tips on proposal writing</a> to ensure everyone has the most complete proposal when it comes time for review. As always, the program committee wants to put together an incredible conference, so they’ll be working with submitters to fine tune proposal details and help you produce the best submissions. Even if you are still incubating a talk idea: submit the proposal now in rough form and we can assist you in fleshing out and refining the proposal during the review process.</p>
<p>We’ve had plenty of great news to share since we first announced the call for proposals. Paul Graham of Y Combinator was <a href="http://pycon.blogspot.com/2011/09/announcing-first-pycon-2012-keynote.html">recently announced</a> as a keynote speaker, making his return after a 2003 keynote. David Beazley, famous for his mind-blowing talks on CPython’s Global Interpreter Lock, was <a href="http://pycon.blogspot.com/2011/09/announcing-first-pycon-2012-plenary.html">added to the plenary talk series</a>.</p>
<p>Sponsors can now list their job openings on the “<a href="http://us.pycon.org/2012/sponsors/jobs/">Job Fair</a>” section of the PyCon site <a href="http://pycon.blogspot.com/2011/09/announcing-pycon-2012-fair-page-sponsor.html">as we previously announced</a> — providing an excellent resource for job seekers, and providers.</p>
<p>We’re hard at work to bring you the best conference yet, so stay tuned to PyCon news at the <a href="http://pycon.blogspot.com/">PyCon blog</a> and on Twitter at <a href="https://twitter.com/#!/pycon">https://twitter.com/#!/pycon</a>.</p>
<p>We recently eclipsed last year’s sponsorship count of 40 and are currently at a record 54 organizations supporting PyCon. If you or your organization are interested in sponsoring PyCon, we’d love to hear from you, so check out our <a href="http://us.pycon.org/2012/sponsors/">sponsorship page</a>.</p>
<p>And as always — quick thanks to all of our awesome PyCon 2012 Sponsors:</p>
<ul>
<li><strong>Diamond Level:</strong> <a href="http://www.google.com/">Google</a> and <a href="https://www.dropbox.com/">Dropbox</a>.</li>
<li><strong>Platinum Level: </strong><a href="http://newrelic.com/">New Relic</a>, <a href="http://www.surveymonkey.com/">SurveyMonkey</a>, <a href="http://www.microsoft.com/">Microsoft</a>, <a href="http://www.eventbrite.com/">Eventbrite</a>, <a href="http://www.nasuni.com/">Nasuni</a> and <a href="https://gondor.io/">Gondor.io</a></li>
<li><strong>Gold Level: </strong><a href="http://www.disneyanimation.com/">Walt Disney Animation Studios</a>, <a href="http://www.ccpgames.com/">CCP Games</a>, <a href="http://www.linode.com/">Linode</a>, <a href="http://www.enthought.com/">Enthought</a>, <a href="http://www.canonical.com/">Canonical</a>, <a href="https://www.dotcloud.com/">Dotcloud</a>, <a href="http://loggly.com/">Loggly</a>, <a href="http://revsys.com/">Revsys</a>, <a href="http://www.zeomega.com/">ZeOmega</a>, <a href="http://bitly.com/">Bitly</a>,<a href="http://www.activestate.com/python">ActiveState</a>, <a href="http://www.jetbrains.com/pycharm/">JetBrains</a>, <a href="http://www.caktusgroup.com/">Caktus</a>, <a href="http://disqus.com/">Disqus</a>, <a href="http://www.spotify.com/">Spotify</a>, <a href="https://snoball.com/">Snoball</a>, <a href="http://www.evite.com/">Evite</a>, <a href="http://www.tartansolutions.com/doku.php/cloud/cloud">PlaidCloud</a> and <a href="http://www.mozilla.org/">Mozilla</a></li>
<li><strong>Silver Level: </strong><a href="http://www.chicagopython.com/">Imaginary Landscape</a>, <a href="http://www.wisertogether.com/">WiserTogether</a>, <a href="http://www.net-ng.com/">Net-ng</a>, <a href="http://www.olark.com/">Olark</a>, <a href="http://www.americangreetings.com/">AG Interactive</a>, <a href="https://bitbucket.org/">Bitbucket</a>, <a href="http://theopenbastion.com/">Open Bastion</a>, <a href="http://www.10gen.com/">10Gen</a>, <a href="http://gocept.com/">gocept</a>, <a href="https://lexmachina.com/">Lex Machina</a>,<a href="http://fwix.com/">fwix</a>, <a href="https://github.com/">github</a>, <a href="http://toastdriven.com/">toast driven</a>, <a href="http://aarki.com/">Aarki</a>, <a href="http://www.threadless.com/">Threadless</a>, <a href="http://www.coxmediagroup.com/">Cox Media</a>, <a href="http://www.myyearbook.com/">myYearBook</a>, <a href="http://accense.com/">Accense Technology</a>, <a href="http://wingware.com/">Wingware</a>, <a href="http://www.freshbooks.com/">FreshBooks</a>, and <a href="http://www.bigdoor.com/">BigDoor</a></li>
<li><strong>Lanyard: </strong><a href="http://dreamhost.com/">Dreamhost</a></li>
<li><strong>Sprints: </strong><a href="http://www.reddit.com/">Reddit</a></li>
<li><strong>FLOSS: </strong><a href="http://osuosl.org/">OSU/OSL</a>, <a href="http://openhatch.org/">OpenHatch</a></li>
</ul>
<p>Thank you — and as always, feel free to reach out to <a href="http://mail.python.org/mailman/listinfo/pycon-organizers">the team</a> or any of the staff with any questions you might have.</p>
<ul>
<li>The PyCon Organizers — <a href="http://us.pycon.org/2012">http://us.pycon.org/2012</a></li>
<li>Jesse Noller — Chairman — <a href="mailto:jnoller@python.org">jnoller@python.org</a></li>
<li>Brian Curtin — Publicity Coordinator — <a href="mailto:brian@python.org">brian@python.org</a></li>
</ul>
<p class="wp-flattr-button"></p>]]></content:encoded>
			<wfw:commentRss>http://jessenoller.com/2011/09/29/pycon-2012-proposals-due-october-12-14-days/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PyCon 2012 Sponsorship — Making the case for sponsorship.</title>
		<link>http://jessenoller.com/2011/09/23/pycon-2012-sponsorship-making-the-case-for-sponsorship/</link>
		<comments>http://jessenoller.com/2011/09/23/pycon-2012-sponsorship-making-the-case-for-sponsorship/#comments</comments>
		<pubDate>Fri, 23 Sep 2011 17:23:07 +0000</pubDate>
		<dc:creator>jesse</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[pycon]]></category>
		<category><![CDATA[pycon 2012]]></category>
		<category><![CDATA[Python]]></category>

		<guid isPermaLink="false">http://jessenoller.com/?p=1063</guid>
		<description><![CDATA[PyCon 2012 already has a record-breaking 52 sponsors! I can not thank every one of them enough (but I will give my thanks again at the end of this post individually), and we are always looking for more sponsors to join the ones we have.
I wanted to take a moment to explain what makes ...]]></description>
			<content:encoded><![CDATA[<p>PyCon 2012 already has a record-breaking 52 sponsors! I can not thank every one of them enough (but I will give my thanks again at the end of this post individually), and we are always looking for more sponsors to join the ones we have.</p>
<p>I wanted to take a moment to explain what makes sponsorship good for the community, and a sound investment for sponsors new and old, prospective and future.</p>
<p>This year, as chair, I’ve taken it upon myself to push and manage PyCon sponsorship (corporate, non profit, media, etc) for a variety of reasons. First, as someone who has been a sponsor in the past (and present) and as someone who spends a lot of time “selling” the Python Software Foundation, and the community to others — I feel very closely tied to PyCon and sponsorship.</p>
<p>Not to mention — corporate sponsorship is what allows us to keep this probably one of the <strong>least expensive </strong>international technical conferences you could possibly attend this upcoming year. Without sponsorship — and the array of sponsors we have right now for PyCon 2012, the conference could simply <strong>not happen</strong> at the size it has reached, or have a robust financial aid program, keep tickets and tutorials cheap, etc. We have, once again intentionally capped attendance at a level to allow for this, and to help keep PyCon’s community feel and closeness.</p>
<p>Running a conference is, frankly, a dangerous game. As I noted in <a href="http://jessenoller.com/2011/05/25/pycon-everybody-pays/">my blog post</a> several months ago discussing some of the financial workings of PyCon and its financial philosophy. It is <strong>very easy</strong> to lose a <strong>lot</strong> of money, very quickly. PyCon is held / financed / backed by the Python Software Foundation. This means lack of sponsorship, low attendance, etc could — with a simple misstep — bankrupt the foundation. Sponsorship helps shore up the gamble you make signing contracts on catering, room bookings, rental of the space where the conference is held, audio/video costs, etc. Although, if you make a big enough mistake — nothing will prevent things from going south. This means careful planning, budgeting and negotiation.</p>
<p>Also, while PyCon has always been, and will continue to be a <strong>community focused</strong> and therefore, low cost and inclusive conference, not really focused on profiting from attendees, any revenue that comes out of PyCon (profit, if you will) goes directly to the Python Software Foundation. This money, in turn, is used to improve infrastructure of Python resources, provide developer grants for programming work, <a href="http://www.python.org/psf/records/board/resolutions/">provide grants</a> to conferences <strong><a href="http://pyfound.blogspot.com/">all over the world</a></strong> and many other community projects.</p>
<p>In the last few months alone the PSF has issued grants to PyTexas, EuroPython, Python Ireland, PyCon India, and many, many others. We have issued grants for porting modules to Python 3, service such as <a href="http://readthedocs.org/">Read The Docs</a>, etc. Any revenue/profit is flipped back into funding PyCon, and the community as a whole.</p>
<p>PyCon provides a very tangible entity for corporate sponsors — it’s an easier “sell” than direct PSF sponsorship, and therefore is a fundamentally better conduit for funds into the PSF.</p>
<p>That’s all fine you say: those are great things for the community, and conference — but <strong>why</strong> would a company want to sponsor PyCon? Sponsors receive tangible benefits such as recruiting at the conference, advertising and marketing, getting community involvement known (call it community karma), etc. Sponsorship isn’t just a matter of asking a company to fund the conference because “it’s good for the community” — it’s a matter of showing them that not only is it good for the community — it’s good for their goals and needs.</p>
<h3 style="font-size: 1.17em;"><strong>PyCon is an excellent recruitment tool.</strong></h3>
<p><strong></strong> If you’re looking for Python programmers, a venue filled with 1500 Python hackers of all types — from web developers, to designers, to distributed systems engineers and operations people is an <strong>excellent</strong> place for you and your company to find “that special someone”. I know a lot of Python hackers out there who have been hired by companies they “met” at PyCon. I also know a lot of speakers and tutorial teachers who have received jobs or job offers after speaking/teaching at PyCon.</p>
<p>Just as PyCon is an excellent venue for companies looking to hire, robust sponsorship allows people at the conference know what companies out there could be hiring Python hackers. Companies like Walt Disney Animation Studios, Google, Dropbox, and others as well as companies that aren’t well known for being Python shops. It’s a great venue for <strong>job seekers</strong> to find employers.</p>
<p>The <a href="http://us.pycon.org/2012/sponsors/jobs/">Jobs Fair page</a> we added this year for sponsors, and those looking for jobs is a logical extension of this. Anything we can do to connect people and companies is great.</p>
<h3 style="font-size: 1.17em;"><strong>PyCon is an excellent marketing tool.</strong></h3>
<p><strong></strong>If you are looking to sell something — an editor, hosting, a service, etc — PyCon’s 1500 attendee pool provides an amazing cross section of people. Not just hard core developers — entrepreneurs and startup founders, IT business people and leaders. Python is a language that as time goes by — I am less and less surprised where it pops up — and more surprised when it <strong>isn’t</strong> being used somewhere within a company.</p>
<p>It is literally everywhere — a frequently unsung hero for many companies. Sometimes, companies use it without even knowing it.</p>
<p>Python — and it’s community — and therefore PyCon is amazingly diverse. This means when you sponsor PyCon, you are advertising to an amazingly diverse group of people. Skill sets from all walks of technology — and a surprising number of people to whom Python is a tool they use prolifically to get some other job done (like say, video rendering or controlling robots). PyCon’s attendees reflect the stunning makeup of it’s community. You can’t go wrong getting your companies names on attendee’s lips.</p>
<h3 style="font-size: 1.17em;"><strong>PyCon is a great way to raise visibility.</strong></h3>
<p><strong></strong> This is as much a sub-point of my previous note on marketing as anything else but it deserves some attention. If you’re a company who is trying to get the word out, trying to spread the news about your new product or service, people <strong>notice</strong> PyCon sponsors. Not only are you listed on the website, you get signs, booths and entries in the program guide at the conference. It can be en excellent tool for buzz and discussion about and launching a new product or service.</p>
<p>Even if you’re not selling something — and you just want to get the word out about your company’s open source efforts, opinion and ideas and use of Python — PyCon is a fantastic platform to do so. It can literally be a platform you use to launch you name and brand into the community’s shared mind.</p>
<h3 style="font-size: 1.17em;"><strong>PyCon sponsorship breeds good will.</strong></h3>
<p><strong></strong>I wish I had studies to show it, but people within the community and at the conference itself see companies sponsoring PyCon and understand that while those companies might be selling, marketing or recruiting — are still doing the community a <strong>huge</strong> favor by acting as sponsors. As I said before — the community benefits are many, just as the sponsor benefits are. I can not stress this point enough — the companies that help PyCon via sponsorship or attendance do it for many reasons — some of them financial, but the <strong>social</strong> aspects are something all of our sponsor from the past can attest to. Python is an open source language, with a strong open source ethos running through its community — and seeing companies give back both through code and financially means a lot to everyone in the community — even other sponsors.</p>
<p>PyCon sponsors help set an example for the community in terms of involvement and support.</p>
<h3 style="font-size: 1.17em;"><strong>PyCon sponsorship is a good, simple and cost-effective investment.</strong></h3>
<p><strong></strong>I <strong>wish</strong> all conference had sponsorship packages as cheap and as robust as the ones PyCon has outlined in it’s <a href="http://us.pycon.org/2012/sponsors/prospectus/">prospectus</a>. Heck — a good recruiter to find talent can cost a company $30,000 or more <strong>alone</strong> — by comparison, the sponsorship levels and prices PyCon has are fantastic deals (especially when you factor in that companies under 25 people can get a 50% off discount on two of those levels). For less than a price of a good computer and monitor — you can be a Silver sponsor. For less than the price if you include the desk and furniture or software licenses? A Gold sponsor. For less than the price of a good recruiter, or Google Ad campaign? You can be a Platinum or Diamond sponsor and reach out to not just PyCon <strong>attendees</strong> but to the entire Python community.</p>
<h3 style="font-size: 1.17em;">PyCon is a professional event.</h3>
<p>I swell with pride standing in the shoes of the conference chairs that have come before me. PyCon, while focused on the <strong>community,</strong> the <strong>language, </strong><strong>learning, teaching, </strong>being a ton of fun for all of its attendees, and excellent location to hack and network is one of the most friendly-yet-professional conferences I have ever had the privilege to attend.</p>
<p>PyCon is <strong>backed</strong> by the Python Software Foundation — but it is run by volunteers — even I, as chair, am not paid. For all of us involved, it’s a labor of love. It is a way for us to give back to the community, ecosystem and companies and sponsors attending or sponsoring. And while it may be volunteer based — it’s 100% professional. From the website, to the program guide, from talk selection and booth assignment — everything is treated with sincerity, respect and trust.</p>
<p>Sponsors can look at PyCon not just as a good investment, or platform — but as a safe one — and if they can not, I have failed as chair of the conference. The same applies to every single attendee.</p>
<h3 style="font-size: 1.17em;">But too much of a good thing?</h3>
<p>As with all things, there is a flip side to this. Sponsorship is great for sponsors, and the community — but PyCon is fundamentally community focused, and hence we must walk a line between having robust sponsorship packages, and going the “full sponsorship monty” so to speak. This means that to this day, I hold firm on the policy that sponsorship does not guarantee or provide tutorial or speaking slots to any sponsor.</p>
<p>At PyCon, we are all equals, especially when it comes to talks. Joe developer from nowhere, Antarctica can submit a talk, tutorial or poster session as can Bob the developer from a Diamond sponsor and they <strong>have equal chances of being accepted</strong>. If the talk is good, if the speaker is known to be a good speaker, if the content and subject are compelling, a proposal will be accepted <strong>on its merits</strong> (but even then we can not accept all the deserving ones).</p>
<p>Other conferences guarantee speaking slots for sponsors — I feel this runs counter to the PyCon ethos and community philosophy. Not only are we open in our source, we treat each other as equals and with respect. Ours is the meritocracy of ideas and work — and this point can not get lost or forgotten in our — my — work on our sponsors’ behalf to increase the value and return on investment they see.</p>
<p>We also try to keep the advertising and visibility at the conference tasteful — limiting banner sizes and locations, focusing on the vendor area experience while also giving sponsors free admissions to the entire conference so they too can partake in the learning, hacking and networking. We find this to be a good balance between the needs of the attendees and the needs and desires of the sponsors.</p>
<p>Trust me, if I thought walking around in a NASCAR-like track suit covered in logos would help our sponsors, I just might — ask the other staff! But that’s just me.</p>
<p>In closing — I want to encourage you and companies you know or work for, to take part in PyCon and get involved. Even if you can not, or do not want to be sponsors, I encourage you to <a href="http://us.pycon.org/2012/speaker/">submit proposals</a>, lightning talks when the conference comes, attend the sprints, and recruit on the “down-low” by just talking and hacking with everyone.</p>
<p>I encourage you, and will work with you day and night to join us as sponsors — but I value your involvement in the community, and the conference more. Even by just attending, you are enriching us all. If you have suggestions on how to make sponsorship better for sponsors — or general comments or concerns, feel free to <a href="mailto:jnoller+pycon@gmail.com">email me</a>.</p>
<h3 style="font-size: 1.17em;">Giving thanks</h3>
<p>Finally, I’d like to thank all of our <a href="http://us.pycon.org/2012/sponsors/">current sponsors</a> — and an a yet-to-be-named mystery sponsor:</p>
<ul>
<li><strong>Diamond Level:</strong> <a href="http://www.google.com/">Google</a> and <a href="https://www.dropbox.com/">Dropbox</a>.</li>
<li><strong>Platinum Level: </strong><a href="http://newrelic.com/">New Relic</a>, <a href="http://www.surveymonkey.com/">SurveyMonkey</a>, <a href="http://www.microsoft.com/">Microsoft</a>, <a href="http://www.eventbrite.com/">Eventbrite</a>, <a href="http://www.nasuni.com/">Nasuni</a> and <a href="https://gondor.io/">Gondor.io</a></li>
<li><strong>Gold Level: </strong><a href="http://www.disneyanimation.com/">Walt Disney Animation Studios</a>, <a href="http://www.ccpgames.com/">CCP Games</a>, <a href="http://www.linode.com/">Linode</a>, <a href="http://www.enthought.com/">Enthought</a>, <a href="http://www.canonical.com/">Canonical</a>, <a href="https://www.dotcloud.com/">Dotcloud</a>, <a href="http://loggly.com/">Loggly</a>, <a href="http://revsys.com/">Revsys</a>, <a href="http://www.zeomega.com/">ZeOmega</a>, <a href="http://bitly.com/">Bitly</a>, <a href="http://www.activestate.com/python">ActiveState</a>, <a href="http://www.jetbrains.com/pycharm/">JetBrains</a>, <a href="http://www.caktusgroup.com/">Caktus</a>, <a href="http://disqus.com/">Disqus</a>, <a href="http://www.spotify.com/">Spotify</a>, <a href="https://snoball.com/">Snoball</a>, <a href="http://www.evite.com/">Evite</a>, and <a href="http://www.tartansolutions.com/doku.php/cloud/cloud">PlaidCloud</a></li>
<li><strong>Silver Level: </strong><a href="http://www.chicagopython.com/">Imaginary Landscape</a>, <a href="http://www.wisertogether.com/">WiserTogether</a>, <a href="http://www.net-ng.com/">Net-ng</a>, <a href="http://www.olark.com/">Olark</a>, <a href="http://www.americangreetings.com/">AG Interactive</a>, <a href="https://bitbucket.org/">Bitbucket</a>, <a href="http://theopenbastion.com/">Open Bastion</a>, <a href="http://www.10gen.com/">10Gen</a>, <a href="http://gocept.com/">gocept</a>, <a href="https://lexmachina.com/">Lex Machina</a>, <a href="http://fwix.com/">fwix</a>, <a href="https://github.com/">github</a>, <a href="http://toastdriven.com/">toast driven</a>, <a href="http://aarki.com/">Aarki</a>, <a href="http://www.threadless.com/">Threadless</a>, <a href="http://www.coxmediagroup.com/">Cox Media</a>, <a href="http://www.myyearbook.com/">myYearBook</a>, <a href="http://accense.com/">Accense Technology</a>, <a href="http://wingware.com/">Wingware</a>, <a href="http://www.freshbooks.com/">FreshBooks</a>, and <a href="http://www.bigdoor.com/">BigDoor</a> </li>
<li><strong>Lanyard: </strong><a href="http://dreamhost.com/">Dreamhost</a></li>
<li><strong>Sprints: </strong><a href="http://www.reddit.com/">Reddit</a></li>
<li><strong>FLOSS: </strong><a href="http://osuosl.org/">OSU/OSL</a>, <a href="http://openhatch.org/">OpenHatch</a></li>
</ul>
<p>And of course, if you want more information on sponsorship — visit the <a href="http://us.pycon.org/2012/sponsors/info/">PyCon 2012 Sponsorship page</a>.</p>
<ul>
</ul>
<p class="wp-flattr-button"></p>]]></content:encoded>
			<wfw:commentRss>http://jessenoller.com/2011/09/23/pycon-2012-sponsorship-making-the-case-for-sponsorship/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Help needed: multiprocessing</title>
		<link>http://jessenoller.com/2011/08/24/help-needed-multiprocessing/</link>
		<comments>http://jessenoller.com/2011/08/24/help-needed-multiprocessing/#comments</comments>
		<pubDate>Wed, 24 Aug 2011 15:53:55 +0000</pubDate>
		<dc:creator>jesse</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Python]]></category>

		<guid isPermaLink="false">http://jessenoller.com/?p=1048</guid>
		<description><![CDATA[Originally, this post was going to be much more different than what is has become - the original title was "Failing in Public" - but I don't think "failing" is fair to me personally, or to anyone who has ever helped me, or contributed a patch or a fix to the multiprocessing module.
Yesterday, I ...]]></description>
			<content:encoded><![CDATA[<p>Originally, this post was going to be much more different than what is has become — the original title was “Failing in Public” — but I don’t think “failing” is fair to me personally, or to anyone who has ever helped me, or contributed a patch or a fix to the multiprocessing module.</p>
<p>Yesterday, I made a statement on <a href="https://twitter.com/jessenoller/status/106097964841304065">twitter</a>:</p>
<blockquote>
<p>I am officially looking for someone to take over multiprocessing maintenance from me. <a href="http://bugs.python.org/issue6721">http://bugs.python.org/issue6721</a></p>
</blockquote>
<p>Ignoring any comments in that bug; I maintain that a later <a href="https://twitter.com/jessenoller/status/106137546140028928">tweet</a> is still true:</p>
<blockquote>
<p>Sometimes good points and poignant criticism can be buried in a pile of crap.</p>
</blockquote>
<p>In hindsight; I could have worded the original message differently “taking over maintenance” means that I am, and always have been the sole contributor to the multiprocessing code base, which is patently false. Antoine, and many other python core developers, and people within the community have submitted bug reports, patches, tests and documentation. My words were intentionally harsh — but the direction of that harshness was to me; I feel that as the “leader” (for some measurement of “lead”) I have been remiss in my responsibilities and leadership.</p>
<p>Sure; I could be less harsh on myself — but the level of <a href="http://5by5.tv/b2w/6">expectational debt</a> that I’ve incurred against myself for the module and the maintenance has grown, and grown. Even if I find myself leading <a href="http://us.pycon.org/2012">PyCon</a>, busy as a PSF Director, pushing the <a href="http://pythonmentors.com/">core-mentors program</a>, the <a href="http://pythonsprints.com/">sprints program</a>, and a lot of other community projects, I am still responsible for the care and feeding for the creature I helped create and birth. I’ve committed the sin of “<a href="http://www.codinghorror.com/blog/2008/06/dont-go-dark.html">going dark</a>”.</p>
<p>For some history, see:</p>
<ul>
<li><a href="http://jessenoller.com/2009/01/28/multiprocessing-in-hindsight/">Multiprocessing in Hindsight</a></li>
<li><a href="http://jessenoller.com/2008/12/04/python-30-some-multiprocessing-info-administrative-notes/">Python 3.0, some multiprocessing info, administrative notes.</a></li>
<li><a href="http://jessenoller.com/2008/07/30/the-2630-multiprocessing-todo-list/">The 2.6/3.0 Multiprocessing todo list</a></li>
<li><a href="http://jessenoller.com/2008/06/13/programmer-insecurity-and-mea-culpa/">Programmer Insecurity and Mea Culpa</a></li>
</ul>
<p>Months ago — I spun up the <a href="http://mail.python.org/mailman/listinfo/multiprocessing-sig">multiprocessing-sig mailing list</a>, in hopes to engage more people — highly active users, interested people, etc to help me pay down the debt. Of course, in retrospect; it’s unfair for me to expect anyone but me to help me pay down the debt I’ve incurred. On the other hand, the responsible thing for me to do — the mature thing for me to do — is to ask for help — not to “wash my hands” of anything, but rather to take this as an opportunity to look as multiprocessing as something greater than what I originally envisioned and submitted to core.</p>
<p>I hear from people every day who are using the module — every day, something I helped birth helps people get things done. Multiprocessing has grown up by virtue of becoming part of Python core, and daily — despite the bugs, the debt and the quirks — it helps developers achieve something they might have otherwise been unable (or at least, had a more difficult time) to do.</p>
<p>The module is expansive — it has pools, tools for distributed programming via managers, pipes for interprocess communications, it’s feature set is both large, and ultimately complex in its underpinnings. That complexity — that feature set — is the reason why that debt, the bugs, the quirks has grown over time. If it wasn’t being used — I wouldn’t have so many emails about it — or bugs filed against it.</p>
<p>So where are we/it today?</p>
<p>Today, multiprocessing has widespread usage — in Python 3, there’s actually a new module named <a href="http://docs.python.org/dev/library/concurrent.futures.html">concurrent.futures</a> that builds on the building blocks of multiprocessing and threading. Packages like <a href="http://celeryproject.org/">Celery</a> use it extensively (and work around internal quirks). For Python 3 — the sky is the future for what multiprocessing <strong>could be</strong> — additional functionality, moving parts of it (such as the pool abstractions) into the concurrent namespace, extending and improving the Manager classes, etc. For Python 2.7 — bug fixes, doc fixes only.</p>
<p>If you search the Python bug tracker for the word “<a href="http://bugs.python.org/issue?%40search_text=multiprocessing&amp;ignore=file%3Acontent&amp;title=&amp;%40columns=title&amp;id=&amp;%40columns=id&amp;stage=&amp;creation=&amp;creator=&amp;activity=&amp;%40columns=activity&amp;%40sort=activity&amp;actor=&amp;nosy=&amp;type=&amp;components=&amp;versions=&amp;dependencies=&amp;assignee=&amp;keywords=&amp;priority=&amp;%40group=priority&amp;status=1&amp;%40columns=status&amp;resolution=&amp;nosy_count=&amp;message_count=&amp;%40pagesize=50&amp;%40startwith=0&amp;%40action=search">multiprocessing</a>” regardless of assignee, you’ll get 119 hits. That’s right; 119 — not all of them are multiprocessing <strong>bugs</strong> — and many of them are dupes, or fixed in recent versions. What that query gets you is an idea of the debt that has to be paid down and resolved. Each one of those bugs needs to be looked at, reproduced, de-duped and patched. Some of them may be documentation issues, some are pretty hairy (like the aforementioned <a href="http://bugs.python.org/issue6721">http://bugs.python.org/issue6721</a> as well as <a href="http://bugs.python.org/issue4106">http://bugs.python.org/issue4106</a> and <a href="http://bugs.python.org/issue8713">http://bugs.python.org/issue8713</a>).</p>
<p>What I asking for — rather than washing my hands of anything, or any attempt to absolve myself of responsibility, is for <strong>help</strong>. I am stretched thin — too thin to do this myself, or to be the only person who can maintain, understand or work on this module. It’s <strong>too big</strong> for that, it’s too <strong>important</strong> for me to be the arbiter of it any longer. It’s bigger than me.</p>
<p>Aside from the bug queue; there’s a short list of things that need to be done — the docs need to have a fresh, hard set of eyes on them, there are things (behaviors, features) that are undocumented. The test suite needs a <strong>complete</strong> overhaul — when I inherited the code, this is the <em>first thing I should have done</em> — but I didn’t. The problem is that the test suite is mired in magic and complexity, and without an expansive, maintainable test suite, I don’t feel confident that the bug list can be addressed with confidence.</p>
<p>So, I come to you with my hat in my hands, a humbled man. It’s unreasonable for me to ask for others to “pay down” the debt I’ve incurred; but it’s irresponsible, immature and misguided of me to think that I alone, or any single person can go at this alone. So I need your help — and, if in time, someone choses to be the “leader” for the module, then I will gladly step back. Until then, I will try to continue to be a guiding hand and at least point people in the proper direction, commit patches, etc.</p>
<p>If you are interested; please speak up — or just wade into the bug queue. You can sign up to the <a href="http://mail.python.org/mailman/listinfo/multiprocessing-sig">multiprocessing-sig list</a>, and ask questions there, or if you’re new to core Python, and want some additional mentorship, check out the <a href="http://pythonmentors.com/">Python Core Mentorship program</a> — that list serves as a gentle and polite, welcoming introduction to core development. No question — no matter how green — is off limits, and it’s already got an excellent track record of helping people get up to speed.</p>
<p>In closing; I’m going to apologize — we all know lives change, careers change, and interests change. All of these things have happened to me, but in changing so quickly and taking on different roles, I left something important behind. In doing so, I have done a great disservice to you, the community and users.</p>
<p>I will also thank you; without you — the users, current and future helpers, multiprocessing wouldn’t exist or be relevant in any context. Without you, I wouldn’t have the drive to even write this post, fight to get multiprocessing into the std lib to begin with, or perform any of the other roles I do.</p>
<p>So; thank you.</p>
<p class="wp-flattr-button"></p>]]></content:encoded>
			<wfw:commentRss>http://jessenoller.com/2011/08/24/help-needed-multiprocessing/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Quick Python/Developer tips for OSX Lion</title>
		<link>http://jessenoller.com/2011/07/30/quick-pythondeveloper-tips-for-osx-lion/</link>
		<comments>http://jessenoller.com/2011/07/30/quick-pythondeveloper-tips-for-osx-lion/#comments</comments>
		<pubDate>Sat, 30 Jul 2011 11:38:25 +0000</pubDate>
		<dc:creator>jesse</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Python]]></category>

		<guid isPermaLink="false">http://jessenoller.com/?p=964</guid>
		<description><![CDATA[
Yes; of course I upgraded to OSX Lion on day one. To quote myself from twitter:

I am happy in the warm coziness and stark whiteness of Steve Jobs' monoculture.

Regardless of that though, I had very few hiccups with Lion itself - but a few things you need to deal with going in:

Be on a ...]]></description>
			<content:encoded><![CDATA[<p><img style="display: block; margin-left: auto; margin-right: auto;" src="http://jessenoller.com/wp-content/uploads/2011/07/lion_king-5067.jpg" border="0" alt="Lion king 5067" width="300" height="174" /></p>
<p>Yes; of course I upgraded to OSX Lion on day one. To quote myself from twitter:</p>
<blockquote>
<p>I am happy in the warm coziness and stark whiteness of Steve Jobs’ monoculture.</p>
</blockquote>
<p>Regardless of that though, I had very few hiccups with Lion itself — but a few things you need to deal with going in:</p>
<ul>
<li>Be on a high bandwidth connection. The downloads you have to make are huge.</li>
<li>XCode 4.x is now free in the App Store — you <strong>need this</strong> — the first thing you need to install after Lion is the latest version of XCode from the App Store, if you do this, all your virtualenvs, your homebrew environment (at least mine) just Keep Working. Save yourself some pain.
<ul>
<li>Side note: <a href="https://twitter.com/#!/kennethreitz">@kennethreitz</a>, gentleman scholar, has actually done a custom <a href="https://github.com/kennethreitz/osx-gcc-installer">osx-gcc-installer</a> — this contains a system install of GCC and all the goodness you need (such as install_name_tool) for Python hacking. So you might be able to skip the massive XCode install.</li>
<li>When installing XCode, for some unknown <strong>unholy</strong> reason, if you have not quit itunes, and itunes helper (see activity monitor) prior to starting the XCode installer, the install will hang. Do yourself a favor and kill it with fire.</li>
<li>Remember; the binary directory for the dev tools is in /Developer/usr/bin/ — this includes gcc-4.2</li>
<li>Do yourself a favor, drop “<strong>export ARCHFLAGS=”-arch x86_64”</strong>” into your .bash_profile.</li>
</ul>
</li>
<li>If you’re running <a href="https://github.com/mxcl/homebrew">homebrew</a>; after the upgrade, I recommend a <strong>brew update &amp;&amp; brew upgrade</strong></li>
<li>If you use mercurial — you need to install the updated version <a href="http://mercurial.berkwood.com/binaries/Mercurial-1.9-py2.7-macosx10.7.zip">found here</a>.</li>
<li>Just for good measure, do a global (sudo) reinstall of virtualenv, virtualenvwrapper and pip. Make sure they’re pointed at the right default Python (in my case the system one).</li>
<li>If you are using VMWare Fusion: You really need to be running the latest version of 3.x.</li>
<li>If you are using Bootcamp, and plan on turning on full disk encryption, see this note from <a href="http://news.ycombinator.com/item?id=2826759">Hacker News</a> (this is why I confine windows to VMware images)</li>
</ul>
<p>Other than the above; my dev environment pretty much just kept rocking — Lion’s default Python install is a healthy Python 2.7.1 — double nice++ — <a href="http://code.google.com/p/macvim/">MacVim</a>, editor of choice just kept plugging away, although I have not tried the “official unreleased” version they have for Lion. I have a slight aversion to running beta builds of my editor.</p>
<p>Some of you are going to run into some annoyances; I can’t help you with all of them, but I can help you with the two interface changes I could not deal with (I actually like all the other ones).</p>
<ul>
<li>First; go into system preferences &gt; mission control and uncheck “<strong>Automatically rearrange spaces based on most recent use</strong>” — trust me, you’ll thank me.</li>
<li>Second, there’s this … annoying animation when you make new application windows (See the <a href="http://arstechnica.com/apple/reviews/2011/07/mac-os-x-10-7.ars/4">Ars Lion Review</a> | <a href="http://amzn.to/pRgOOe">kindle version</a>). The animation offends me on a cellular level. You disable it by running this on the command line: 
<pre>defaults write NSGlobalDomain NSAutomaticWindowAnimationsEnabled -bool NO ; killall Dock</pre>
</li>
<li>Show hidden files in finder:
<pre>defaults write com.apple.finder AppleShowAllFiles -bool YES</pre>
</li>
<li>Show full paths in finder:
<pre>defaults write com.apple.finder _FXShowPosixPathInTitle -bool YES</pre>
</li>
<li><strong>Note:</strong> Don’t like mucking around with the command line, or want to have something with a birds eye view that can control just about anything, check out “<a href="http://secrets.blacktree.com/">Secrets</a>” from blacktree. I’m fine with magic PLIST hacks, but this does put a nice UI on all the hacks.</li>
<li>Also, if you’re a power user, or want tiling behavior for windows — see <a href="http://irradiatedsoftware.com/sizeup/">SizeUp</a> or <a href="http://mizage.com/divvy/">Divvy</a> (I use <a href="http://irradiatedsoftware.com/sizeup/">Sizeup</a>) both of which are excellent additions to window management, even in Lion. I tend to be anal about window coordination on the screen even with mission control/expose.</li>
</ul>
<p>Other than that; I’m a happy camper. The new scroll behavior on the trackpads is amazing, if not jarring when using a mouse. Everything just pretty much kept working for me. But then again, I’m pretty easy to please.</p>
<p>See also — “<a href="http://www.macworld.com/article/161330/2011/07/four_lion_terminal_hacks.html">Four Lion Terminal Hacks</a>” from Macworld and “<a href="http://lifehacker.com/5817644">Top 10 Secret Features in OSX Lion</a>” from Lifehacker — if you really, really hate the UI changes, see “<a href="http://lifehacker.com/5824564/how-to-de+ios+ify-mac-os-x-lion">How to de-IOSify</a>” from Lifehacker. More cool tips and tricks: “<a href="http://www.macstories.net/tutorials/miscellaneous-lion-tips-and-tricks/">Miscellaneous Lion Tips and Tricks</a>” and also “<a href="http://www.macstories.net/stories/miscellaneous-lion-tips-and-tricks-part-2/">Miscellaneous Lion Tips and Tricks part two</a>”.</p>
<p><em>p.s.</em> I originally forgot to mention this — but the full disk encryption in Lion is implemented <strong>damn well</strong> — it’s easy for users to “get” — seamless, and transparent. In my honest opinion, this is worth the price of upgrading <strong>alone</strong> if you have a laptop. It’s so well done, and it simply shows how crappy filevault was — it also goes to show that if you make crypto easy and transparent for users, they might actually use it. See the <a href="http://arstechnica.com/apple/reviews/2011/07/mac-os-x-10-7.ars/13">Ars Review</a> for a deeper dive. See also “<a href="http://blog.romant.net/osx/pgp-wde-vs-lion-disk-encryption/">PGP WDE vs. Lion Disk Encryption</a>”</p>
<p><em>p.p.s. </em>See <a href="http://arstechnica.com/apple/guides/2011/07/ask-ars-do-i-have-to-use-the-mac-app-store-to-install-lion.ars">this ArsTechnica article</a> about how to create a bootable copy of the Lion install disk you can use to do offline installs for other machines. I’d recommend doing the same for XCode if you have more than one mac to upgrade (or you lack FiOS).</p>
<p> </p>
<p class="wp-flattr-button"></p>]]></content:encoded>
			<wfw:commentRss>http://jessenoller.com/2011/07/30/quick-pythondeveloper-tips-for-osx-lion/feed/</wfw:commentRss>
		<slash:comments>18</slash:comments>
		</item>
		<item>
		<title>Announcing the new speed.python.org machine!</title>
		<link>http://jessenoller.com/2011/06/29/announcing-the-new-speed-python-org-machine/</link>
		<comments>http://jessenoller.com/2011/06/29/announcing-the-new-speed-python-org-machine/#comments</comments>
		<pubDate>Thu, 30 Jun 2011 03:48:58 +0000</pubDate>
		<dc:creator>jesse</dc:creator>
				<category><![CDATA[cpython]]></category>
		<category><![CDATA[pypy]]></category>
		<category><![CDATA[Python]]></category>

		<guid isPermaLink="false">http://jessenoller.com/?p=942</guid>
		<description><![CDATA[I hinted at this on twitter earlier - but now that I've had a chance to ssh into the box finally, and, well - run some benchmarks and translate PyPy - I am very happy to announce that the PSF has acquired quite the beefy machine for the planned speed.python.org site discussed at the ...]]></description>
			<content:encoded><![CDATA[<p>I hinted at this on twitter earlier — but now that I’ve had a chance to ssh into the box finally, and, well — run some benchmarks and translate PyPy — I am very happy to announce that the PSF has acquired quite the beefy machine for the planned speed.python.org site discussed at the <a href="http://www.boredomandlaziness.org/2011/03/python-vm-summit-somewhat-coherent.html">Python VM summit at PyCon 2011</a>.</p>
<p>The goal of “speed.python.org” is to port the <a href="http://speed.pypy.org/">PyPy Speed Center</a> from “just” a PyPy benchmark tool/suite/site and into one for PyPy, CPython, etc — essentially, a massive source of benchmark information for a range of full Python interpreters. These benchmarks are <strong>real world</strong> micro and macro benchmarks — something <a href="http://qinsb.blogspot.com/2011/03/unladen-swallow-retrospective.html">we have Unladen Swallow to thank for</a> — quoting Reid:</p>
<blockquote>
<p>I’m also proud of our macro-benchmark suite of real world Python applications which lives on and PyPy uses it for speed.pypy.org. In all the performance work I’ve done before and after Unladen, I have to say that our macro benchmark suite was the most useful. Every performance change was easy to check with a before and after text snippet.</p>
</blockquote>
<p>I’ll also note, some of the benchmark suite lives in the <a href="http://hg.python.org/benchmarks/">Python HG repo</a> — PyPy has done a lot of customizations and tweaks — most of all, they’ve turned it into an awesome site and resource, and having this data, comparing say — Python 2.6/2.7/PyPy/Python3/Jython/<strong>etc </strong>with historical / per build data (so we could find performance <strong>regressions</strong> for all of these interpreters will be <strong>amazing</strong>.</p>
<p>There’s already work occurring on the PyPy side on codespeed (the tool) to make it more generic and usable outside of just PyPy. There’s also two Google Summer Of Code projects which should help — “<a href="http://www.google-melange.com/gsoc/project/google/gsoc2011/daniloaf/5001">Turn Codespeed into a multi-project, statistically savvy application</a>” and “<a href="http://www.google-melange.com/gsoc/project/google/gsoc2011/dasich/5001">Developing a benchmark suite (for Python 3.x)</a>”.</p>
<p>My part to play in all of this was to act, as the magical PSF fairy and sprinkle resource dust into the idea. Fundamentally, I view Python.org not as “CPython.org” — I view it as Python-the-Community.org. I view it as a resource where all interpreters share equal footing, where all of our resources should live and grow (I have a side project for that too…). This single, shared machine is step one in realizing that vision (although I’d be remiss in not noting that plenty of non-cpython things also share our HG repository, and use the mailman infrastructure we have today).</p>
<p>That all said — I finally get to “finish” playing the magical PSF fairy for this, and announce, that due to an <strong>amazing </strong>donation to the PSF from the <a href="http://hp.com/go/linux">HP Open Source Program Office</a> (Thanks Bob!) of a <strong>huge</strong> machine, and the generous, <strong>free</strong> <em>racking, stacking hosting and monitoring</em> from the kick-ass team at <a href="http://osuosl.org/">OSU/OSL</a> we now have this mega machine.</p>
<p>Originally, the PSF was going to <strong>fund</strong> the purchase of this machine from it’s own pockets — but Van Lindberg connected me to Bob at the HP Open Source Program Office, and <strong>bam</strong> — magic happened. HP’s generosity got us the following machine:</p>
<ul>
<li>DL380 HP DL380G7 X5670 LFF  (2U)</li>
<li>Dual HP NC382i Dual Port Multifunction Gigabit Server Adapters</li>
<li>HP Smart Array P410i/1GB FBWC Controller</li>
<li>4x 4GB (1x4GB) Dual Rank x4 PC3-10600 (DDR3-1333) Registered CAS-9 Memory Kit</li>
<li>2x HP 750W Common Slot Gold Hot Plug Power Supply Kit</li>
<li>HP iLO Advanced including 1yr 24x7 Technical Support and Updates Electronic  License</li>
<li>4x HP 300GB 6G SAS 15K rpm LFF (3.5-inch) Dual Port Enterprise 3yr Warranty Hard Drive</li>
<li>2   HP DL380 G7 Intel® Xeon® X5680 (3.33GHz/6-core/130W/12MB) FIO Processor Kit</li>
</ul>
<p>Yes. HP donated a box with 12 cores (24 with hyperthreading enabled) and 16GB of ram, and a high speed RAID to us for this project. And man, does it <strong>fly:</strong></p>
<blockquote>
<p><strong>Hardware:Processor: 2 x Intel Xeon X5680 @ 3.33GHz (24 Cores), Motherboard: HP ProLiant DL380 G7, Chipset: Intel 5520 I/O + ICH10, Memory: 4 x 4096 MB, Disk: 1200GB LOGICAL VOLUME, Graphics: ATI ES1000<br />Software:OS: Ubuntu 11.04, Kernel: 2.6.38–8-server (x86_64)<br /></strong></p>
</blockquote>
<p><a href="http://osuosl.org/">OSU/OSL</a> is going to be our host — they assembled the machine, racked, stacked and they’re going to be our hosts. The entire team — Lance and Peter especially, have been patient, understanding and incredibly helpful. They got this machine up for us today, and helped me work through some auth issues — returning emails within <strong>minutes</strong>. I’m really looking forward to continuing to work with them — the open source lab at oregon state is an astounding resource for open source. Astounding.</p>
<p>Over the next few weeks, I will be identifying the people who will be taking this from my largely incapable hands and turning it into the resource it will become — in addition to running benchmarks, it’s probably going to help Brett Cannon <a href="http://sayspy.blogspot.com/2011/06/my-personal-plans-for-python-33.html">generate in depth code coverage reports</a> for the standard library — something we intend on breaking out and sharing amongst the interpreters as a common code base.</p>
<p>This is great news — and I’m looking forward to the next few months as the hard part of the project takes off — getting the speed site up and running and working for the community. For the record, I had to test the speed of this beast somehow — so I picked the most resources intensive thing I could think of — translating PyPy using CPython 2.7:</p>
<pre>[Timer] Timings:
[Timer] annotate                       ---  732.2 s
[Timer] rtype_lltype                   ---  482.5 s
[Timer] pyjitpl_lltype                 ---  533.4 s
[Timer] backendopt_lltype              ---  146.4 s
[Timer] stackcheckinsertion_lltype     ---   38.9 s
[Timer] database_c                     ---  184.9 s
[Timer] source_c                       ---  344.7 s
[Timer] compile_c                      ---  137.5 s
[Timer] ===========================================
[Timer] Total:                         --- 2600.4 s</pre>
<p>As a point of comparison — checking the latest build bot result from PyPy:</p>
<pre>[Timer] Timings:
[Timer] annotate                       --- 1452.8 s
[Timer] rtype_lltype                   ---  748.6 s
[Timer] pyjitpl_lltype                 --- 1206.6 s
[Timer] backendopt_lltype              ---  560.5 s
[Timer] stackcheckinsertion_lltype     ---  109.9 s
[Timer] database_c                     ---  712.8 s
[Timer] source_c                       --- 1295.1 s
[Timer] compile_c                      ---  472.6 s
[Timer] ===========================================
[Timer] Total:                         --- 6558.8 s</pre>
<p>So, yeah — not apples to apples, but there’s a slight speedup.</p>
<p>We now have the foundation for an amazing, real world bench mark and testing site for Python/Python’s interpreters. This is going to be awesome, and it could not have been done without the work and discussion by the people at the PyCon language summit, the PyPy folks for putting together an awesome site, and without the support of the PSF — but most of all, the generous support from HP and OSU/OSL. My thanks goes out to everyone involved, and I’m honored to be able to help get this project off the ground finally. Let’s show everyone what Python — as a community, working on concert with one another is capable of doing.</p>
<p>PS: <a href="https://gist.github.com/1055624">Here’s a run of the basic tests from the cpython repo benchmark tool</a></p>
<p><img style="display: block; margin-left: auto; margin-right: auto;" src="http://jessenoller.com/wp-content/uploads/2011/07/HPR_D_B_RGB_150_SM.png" border="0" alt="HPR D B RGB 150 SM" width="150" height="150" /><img style="display: block; margin-left: auto; margin-right: auto;" src="http://jessenoller.com/wp-content/uploads/2011/06/osl_logo.png" border="0" alt="Osl logo" width="250" height="127" /></p>
<p class="wp-flattr-button"></p>]]></content:encoded>
			<wfw:commentRss>http://jessenoller.com/2011/06/29/announcing-the-new-speed-python-org-machine/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Python Debugging; Embarrassment, Contracts and Nothing is private</title>
		<link>http://jessenoller.com/2011/05/31/python-debugging-embarrassment-contracts-and-nothing-is-private/</link>
		<comments>http://jessenoller.com/2011/05/31/python-debugging-embarrassment-contracts-and-nothing-is-private/#comments</comments>
		<pubDate>Tue, 31 May 2011 12:41:20 +0000</pubDate>
		<dc:creator>jesse</dc:creator>
				<category><![CDATA[motivation]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://jessenoller.com/?p=932</guid>
		<description><![CDATA[
(photo courtesy of Sean MacEntee via flickr)
Some interesting bits and pieces (leftovers) from the weekend - I have a tendency to queue up a pile of "read later" stuff or emailing myself a pile of things to talk about/link to/etc. Sometimes, I actually get to go through it all. Today - I get to ...]]></description>
			<content:encoded><![CDATA[<p><img style="display: block; margin-left: auto; margin-right: auto;" src="http://jessenoller.com/wp-content/uploads/2011/05/random_links.jpg" border="0" alt="Random links" width="240" height="80" /></p>
<p style="text-align: center;">(photo courtesy of <a href="http://www.flickr.com/photos/smemon/5144379598/">Sean MacEntee via flickr</a>)</p>
<p>Some interesting bits and pieces (leftovers) from the weekend — I have a tendency to queue up a pile of “read later” stuff or emailing myself a pile of things to talk about/link to/etc. Sometimes, I actually get to go through it all. Today — I get to share it to!</p>
<p>First up — <a href="https://twitter.com/#!/voidspace">Michael Foord</a> (fuzzyman) did two excellent posts — <a href="http://www.voidspace.org.uk/python/weblog/arch_d7_2011_05_28.shtml#e1214">the first is on privacy in Python</a> — not big-P privacy, but rather the programming/object privacy. It’s a good read because it reenforces the point that even if you think you’re being clever and hiding something in a closure to make it private, you can still get access to it. Remember too — dunders (__foo) are just name-mangling. In Python, nothing is private (insert bad tasting joke about Python being facebook here).</p>
<p><a href="http://www.voidspace.org.uk/python/weblog/arch_d7_2011_05_28.shtml#e1215">Michael’s second post</a> is on the NamedTuple kerfluffle that was stirred up <a href="http://blog.ccpgames.com/kristjan/2011/05/28/namedtuple-and-exec/">Kristjan Valur’s post on the use of exec() and namedtuple</a> (short version: namedtuple creates a string defining the class and then calls exec to create the object. I think Michael is spot on — I think exec() gets a bad rap frankly, sure — it’s something of a hand-grenade, if you use it wrong, you’re going to get hurt, but in this case I have to agree with Raymond in his comment on <a href="http://bugs.python.org/issue3974">bug 3974</a> — the current implementation is clear and maintainable. I don’t like the sternness of the reply — but he is right. Kristjan’s use-case is an interesting one, but I don’t think it’s one that warrants the removal of the existing implementation. I’m wondering if a “fallback if exec doesn’t exist” is worth inclusion.</p>
<p>Then again, I’ve spoken to people who refuse to use namedtuples because they now know how the sausage is made. I still think the sausage is <em>delicious</em>.</p>
<p>Next is a pretty <a href="http://news.ycombinator.com/item?id=2599652">interesting discussion</a> on a presentation that came out of <a href="http://blog.protoshare.com/2011/04/getting-over-embarrassment-and-getting-done/">Pixar on getting over embarrassment in order to get things done</a> — I don’t have much to add above the comments on hacker news, except to say I think the same mental blocks they talk about for animators apply to programmers, writers, etc. We hide from code reviews, we hide our writing until we think it’s “Pitch Perfect” — when in reality, we shouldn’t. We should be sharing, discussing and collaborating earlier, more frequently and more often.</p>
<p>Share and Ship early and often — see also “<a href="http://www.codinghorror.com/blog/2008/06/dont-go-dark.html">Don’t Go Dark</a>”.</p>
<p>Finally, I was happy to see the “<a href="http://jeetworks.org/node/99">Quick and Easy Debugging in Python</a>” post from Jeet Sukumaran — it’s always nice to evolve past sprinkling print fairy dust all over your code for debugging — even if we all still do it despite knowing or using PDB. Just to add to his post, if you want to increase your PDB-Fu, I recommend this “<a href="http://pythonconquerstheuniverse.wordpress.com/2009/09/10/debugging-in-python/">Debugging in Python</a>” post by Steve Ferg, and the <a href="http://docs.python.org/library/pdb.html">official documentation</a> for PDB. We should really add a <a href="http://docs.python.org/howto/index.html">HOWTO</a> for this.</p>
<p>p.s. For additional good-reading, check out “<a href="http://www.43folders.com/node/47671/322109">Priorities Don’t Exist in a Vacuum</a>” and “<a href="http://www.43folders.com/2010/02/05/first-care">First Care</a>”- while not germane to what’s I’ve already written about, they’re a good essays on priorities. Thanks to the latest “<a href="http://5by5.tv/b2w/17">Back to Work</a>” podcast.</p>
<p class="wp-flattr-button"></p>]]></content:encoded>
			<wfw:commentRss>http://jessenoller.com/2011/05/31/python-debugging-embarrassment-contracts-and-nothing-is-private/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Minified using disk: basic
Page Caching using disk: enhanced
Object Caching 1499/1731 objects using disk: basic

Served from: jessenoller.com @ 2012-02-07 03:16:15 -->
