<?xml version='1.0' encoding='UTF-8'?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
  <id>https://www.rpatterson.net/</id>
  <title>Ross Patterson's Blog - Posts tagged pycon2012</title>
  <updated>2025-07-14T00:00:49.512336+00:00</updated>
  <link href="https://www.rpatterson.net/"/>
  <link href="https://www.rpatterson.net/blog/tag/pycon2012/atom.xml" rel="self"/>
  <generator uri="https://ablog.readthedocs.io/" version="0.11.12">ABlog</generator>
  <entry>
    <id>https://www.rpatterson.net/blog/pycon-report-out/</id>
    <title>PyCon 2012 Talks</title>
    <updated>2016-08-12T00:00:00+00:00</updated>
    <author>
      <name>Ross Patterson</name>
    </author>
    <content type="html">&lt;section id="pycon-2012-talks"&gt;

&lt;blockquote&gt;
&lt;div&gt;&lt;p&gt;A bit about my experience at my first PyCon and the talks.&lt;/p&gt;
&lt;/div&gt;&lt;/blockquote&gt;
&lt;p&gt;I’m riding the train home from the last day of the &lt;a class="reference external" href="https://us.pycon.org/2012/community/sprints/projects/"&gt;PyCon sprints&lt;/a&gt; following
the &lt;a class="reference external" href="https://us.pycon.org/2012/schedule/"&gt;PyCon talks&lt;/a&gt; so it’s time
for a report-out.&lt;/p&gt;
&lt;section id="pycon-2012-itself"&gt;
&lt;h2&gt;PyCon 2012 Itself&lt;/h2&gt;
&lt;p&gt;This is a very well organized conference.  The whole thing felt both
smooth &lt;em&gt;and&lt;/em&gt; relaxed, which seems like quite a feat.  It was also
&lt;em&gt;huge&lt;/em&gt; with something like ~2200 attendees if I remember correctly.  I
was still finding &lt;a class="reference external" href="http://plone.org"&gt;Plone&lt;/a&gt; people at the end of the
last day of talks.  It was pretty easy to not find people there.&lt;/p&gt;
&lt;p&gt;The talks were short, I was always surprised when they were over.  I
think this is a great approach.  It draws economy out of the
presenters and cuts down on the zone-out effect.  They had a
&lt;a class="reference external" href="http://guidebook.com/"&gt;Guidebook&lt;/a&gt; app which was pretty cool.  Even
the meals were surprisingly good given that they were provided by the
venue.  Even the wireless was pretty good and I’ve seen much worse at
200-300 person conferences (&lt;em&gt;cough*Plone*cough&lt;/em&gt;).&lt;/p&gt;
&lt;p&gt;Now for the nitpicks…&lt;/p&gt;
&lt;p&gt;It was harder than it should have been to find out which rooms talks
were in.  Firstly, the otherwise excellent Guidebook app, didn’t have
the room numbers on the talk descriptions.  Even the schedule on the
conference web site, however, forced you to scroll around to try to
find out which room corresponded to the track the talk was for.&lt;/p&gt;
&lt;p&gt;The venue was pretty good, but the location is kinda terrible.  On a
good day I can tolerate the more interesting parts of the south bay,
but the &lt;a class="reference external" href="http://maps.google.com/maps/place?q=santa+clara+convention+center&amp;amp;cid=13973534836186469092"&gt;Santa Clara Convention Center&lt;/a&gt;
is &lt;em&gt;deep&lt;/em&gt; in the soulless spotlessness of the business-parkified heart
of Santa Clara.  This might be great if your choice form of
entertainment is the likes of Great America (right across the street)
but if you like any character whatsoever, you’re SOL.  I’m glad the
venue food was better than I’d expect, and in such a location
providing lunch is a must for such a conference, but I would enjoy it
a lot more if there were interesting places to socialize in.&lt;/p&gt;
&lt;/section&gt;
&lt;section id="talk-highlights"&gt;
&lt;h2&gt;Talk Highlights&lt;/h2&gt;
&lt;p&gt;There were a lot of good talks with great coverage of technical
topics.  I was pleasantly surprised to find a healthy amount of
non-technical talks, including talks on docs as well.  Finally, it was
good for a died-in-the-wool web programmer such as myself to be
reminded that Python is used for other things.&lt;/p&gt;
&lt;p&gt;Here are some of the talks I most enjoyed:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a class="reference external" href="http://pyvideo.org/video/674/militarizing-your-backyard-with-python-computer"&gt;Militarizing Your Backyard with Python: Computer Vision and the
Squirrel Hordes&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Favorite quote of the con: “I was &lt;em&gt;sure&lt;/em&gt; this would be the solution.”&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a class="reference external" href="http://pyvideo.org/video/654/a-resume-based-wsgi-load-balancer"&gt;A resume-based WSGI Load Balancer&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a class="reference external" href="http://www.zope.com/about_us/management/james_fulton.html"&gt;Jim&lt;/a&gt;,
you beautiful mad-man!&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a class="reference external" href="http://pyvideo.org/video/719/diversity-in-practice-how-the-boston-python-user"&gt;Diversity in practice: How the Boston Python User Group grew to 1700
people and over 15% women&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;I want to be a part of something like this!&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a class="reference external" href="http://pyvideo.org/video/713/improving-documentation-with-beginners-mind-o"&gt;Improving Documentation with “Beginner’s Mind” (or: Fixing the
Django Tutorial)&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;I’m looking at us, &lt;a class="reference external" href="http://docs.plone.org"&gt;Plone docs&lt;/a&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a class="reference external" href="https://us.pycon.org/2012/schedule/presentation/380/"&gt;Python Metaprogramming for Mad Scientists and Evil Geniuses&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;His re-definition of “Mad Scientist” as someone doing crazy things
becuse it’s cool and they can, and “Evil Genius” as someone doing
crazy things because it works have now become a part of my lexicon.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a class="reference external" href="http://pyvideo.org/video/685/what-python-can-learn-from-java"&gt;What Python can learn from Java&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Gave my faith in Python a healthy shake-up.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a class="reference external" href="http://pyvideo.org/video/660/python-meets-the-arduino"&gt;Python Meets the Arduino&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;It’s looking like microcontrollers for the hobbyist are getting
simple enough for even me to take a stab.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a class="reference external" href="http://pyvideo.org/video/669/building-a-kinect-game-with-python"&gt;Building a Kinect game with Python&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;So cool.  Damn you, Microsoft!  Of course, you wouldn’t be such a
problem if you didn’t do something right.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="note update admonition"&gt;
&lt;p class="admonition-title"&gt;Updated on 12 August 2016&lt;/p&gt;
&lt;p&gt;Imported from Plone on Mar 15, 2021.  The date for this update is the last
modified date in Plone.&lt;/p&gt;
&lt;/div&gt;
&lt;/section&gt;
&lt;/section&gt;
</content>
    <link href="https://www.rpatterson.net/blog/pycon-report-out/"/>
    <summary>A bit about my experience at my first PyCon and the talks.</summary>
    <category term="Plone" label="Plone"/>
    <category term="Zope" label="Zope"/>
    <category term="pycon2012" label="pycon2012"/>
    <published>2012-03-15T00:00:00+00:00</published>
  </entry>
  <entry>
    <id>https://www.rpatterson.net/blog/pycon-2012-sprints/</id>
    <title>PyCon 2012 Sprints</title>
    <updated>2012-03-16T00:00:00+00:00</updated>
    <author>
      <name>Ross Patterson</name>
    </author>
    <content type="html">&lt;section id="pycon-2012-sprints"&gt;

&lt;blockquote&gt;
&lt;div&gt;&lt;p&gt;Sprinting after PyCon and my first time working with and contributing to Pyramid.&lt;/p&gt;
&lt;/div&gt;&lt;/blockquote&gt;
&lt;section id="sprinting-on-pyramid"&gt;
&lt;h2&gt;Sprinting on Pyramid&lt;/h2&gt;
&lt;p&gt;Really my conference review should be taken worth a grain of salt,
because I never go for the talks, it’s all about &lt;a class="reference external" href="https://us.pycon.org/2012/community/sprints/projects/"&gt;the sprints&lt;/a&gt;.  Having so
thoroughly enjoyed sprinting since I came out of my shell and joined
the &lt;a class="reference external" href="http://plone.org"&gt;Plone&lt;/a&gt; community in earnest, it’s always the
only thing I’m really focused on.  What can I say?  In this wonderful
age where, through open-source communities and the recognition of the
ambiguous stuff that helps them thrive, we all recognize that things
like docs and diversity are as important as the quality of code or the
power of features, I’m still a code monkey at heart.&lt;/p&gt;
&lt;p&gt;Since there were no Plone sprints that I heard of or saw on the
boards, I took the chance to sprint on &lt;a class="reference external" href="http://www.pylonsproject.org/projects/pyramid/about"&gt;Pyramid&lt;/a&gt;, part of the
&lt;a class="reference external" href="http://www.pylonsproject.org/"&gt;Pylons&lt;/a&gt; project and love child of
&lt;a class="reference external" href="http://repoze.org/"&gt;repoze&lt;/a&gt;.  I’ve been wanting to learn Pyramid
for quite some time now since I noticed how many of my favorite &lt;a class="reference external" href="http://zope.org/"&gt;Zope&lt;/a&gt; people have moved to Pyramid.  So I went to the
Pyramid room, sat down and asked what someone with plenty of zope
experience could do.&lt;/p&gt;
&lt;p&gt;The &lt;a class="reference external" href="https://github.com/Pylons/pyramid/wiki/Sprint-Ideas"&gt;Pyramid sprinters&lt;/a&gt; were a great
group, very welcoming and friendly.  They remind me a lot of the
things I most love about the Plone community.  It also gave me the
chance to work closely with &lt;a class="reference external" href="http://plope.com/"&gt;Chris McDonough&lt;/a&gt;.
&lt;a class="reference external" href="https://twitter.com/#!/chrismcdonough"&gt;Chris&lt;/a&gt; is very smart, builds
great software, and is just very kind-hearted.&lt;/p&gt;
&lt;p&gt;Here’s some of the stuff I worked on:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a class="reference external" href="https://github.com/Pylons/pyramid_debugtoolbar/pull/57"&gt;add IP range/network restriction&lt;/a&gt; to
&lt;a class="reference external" href="http://readthedocs.org/docs/pyramid_debugtoolbar/en/latest/"&gt;pyramid_debugtoolbar&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;I used this simple feature task to cut my teeth on the Pyramid
development environment and tool-chain.  It was the first time in a
long time I worked outside a &lt;a class="reference external" href="http://www.buildout.org/"&gt;buildout&lt;/a&gt;
environment and it made for some interesting comparisons.  They keep
things really simple relying only on &lt;a class="reference external" href="http://packages.python.org/distribute/"&gt;distribute’s setuptools&lt;/a&gt; and &lt;a class="reference external" href="http://www.virtualenv.org/en/latest/index.html"&gt;virtualenv&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;I have to say, I still prefer working with buildout.  Buildout’s
caching is much better than &lt;a class="reference external" href="http://packages.python.org/distribute/easy_install.html"&gt;easy_install’s&lt;/a&gt; and
virtualenv so updating the environment after changes is smoother and
faster.  For testing against multiple &lt;a class="reference external" href="http://www.python.org/"&gt;Python&lt;/a&gt; versions and implementations, such as
&lt;a class="reference external" href="http://www.jython.org/"&gt;Jython&lt;/a&gt; and &lt;a class="reference external" href="http://pypy.org/"&gt;PyPy&lt;/a&gt;,
Pyramid uses &lt;a class="reference external" href="http://readthedocs.org/docs/tox/en/latest/"&gt;tox&lt;/a&gt;
which is pretty slick and very useful.  I’d love to see something
like this for deploying the same buildout with different versions of
Python.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a class="reference external" href="https://github.com/repoze/repoze.sendmail/pull/2"&gt;support Python 3&lt;/a&gt; in
&lt;a class="reference external" href="http://pypi.python.org/pypi/repoze.sendmail/"&gt;repoze.sendmail&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;This was my first time tackling Python 2 and 3 compatibility
issues.  I have to say it’s just not as hard as I feared.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;aside class="system-message"&gt;
&lt;p class="system-message-title"&gt;System Message: INFO/1 (&lt;span class="docutils literal"&gt;/builds/rpatterson/ross-pattersons-site/blog/pycon-2012-sprints/index.rst&lt;/span&gt;, line 15); &lt;em&gt;&lt;a href="#id1"&gt;backlink&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Duplicate explicit target name: “repoze.sendmail”.&lt;/p&gt;
&lt;/aside&gt;
&lt;p&gt;&lt;a class="reference external" href="https://github.com/repoze/repoze.sendmail/pull/3"&gt;improve and centralize email message serializing&lt;/a&gt; in
&lt;a class="reference external" href="http://pypi.python.org/pypi/repoze.sendmail/"&gt;repoze.sendmail&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The one place where there was a lot of Python 2 and 3 compatibility
pain was in the encoding of email messages.  In this case, as in
others I suspect, the problem was that encoding was being done all
over the place in a not-very-well-architected way and the real
solution was to clean things up and put in more clearly defined
boundaries and interfaces.&lt;/p&gt;
&lt;p&gt;That task would have been &lt;em&gt;impossible&lt;/em&gt; without &lt;a class="reference external" href="http://pyvideo.org/video/684/the-email-package-past-present-and-future"&gt;R. David Murray&lt;/a&gt;.
I pestered &lt;a class="reference external" href="http://www.bitdance.com/blog/"&gt;him&lt;/a&gt; endlessly and &lt;a class="reference external" href="https://twitter.com/#!/rdavidmurray"&gt;he&lt;/a&gt; helped me learn all the
deep, dark corners of the email protocols and the Python &lt;a class="reference external" href="http://docs.python.org/library/email.html"&gt;email&lt;/a&gt; package, both of which
have considerable quirks which some would call bugs.  At the end of
it, I had a clear sense of all the quirks of encoding emails and all
the things that the &lt;cite&gt;email&lt;/cite&gt; package doesn’t already do.  I baked
those into &lt;a class="reference external" href="https://github.com/repoze/repoze.sendmail/blob/master/repoze/sendmail/encoding.py"&gt;repoze.sendmail.encoding&lt;/a&gt;
and added that support as a part sending mail through
repoze.sendmail.&lt;/p&gt;
&lt;p&gt;Once that was in place, finishing Python 2 and 3 compatibility was a
snap.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a class="reference external" href="https://github.com/Pylons/pyramid_mailer/pull/12"&gt;add Python 3 support&lt;/a&gt; to
&lt;a class="reference external" href="http://readthedocs.org/docs/pyramid_mailer/en/latest/"&gt;pyramid_mailer&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Again, once &lt;cite&gt;repoze.sendmail.encoding&lt;/cite&gt; was in-place, I just ripped
all the email encoding support out of &lt;cite&gt;pyramid_mailer&lt;/cite&gt; and Python 2
and 3 compatibility was a cinch.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;aside class="system-message"&gt;
&lt;p class="system-message-title"&gt;System Message: INFO/1 (&lt;span class="docutils literal"&gt;/builds/rpatterson/ross-pattersons-site/blog/pycon-2012-sprints/index.rst&lt;/span&gt;, line 15); &lt;em&gt;&lt;a href="#id2"&gt;backlink&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Duplicate explicit target name: “pyramid_mailer”.&lt;/p&gt;
&lt;/aside&gt;
&lt;p&gt;&lt;a class="reference external" href="https://github.com/Pylons/pyramid_mailer/issues/14"&gt;fix Cc/Bcc witout To handling&lt;/a&gt; in
&lt;a class="reference external" href="http://readthedocs.org/docs/pyramid_mailer/en/latest/"&gt;pyramid_mailer&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;While I had my hands in &lt;cite&gt;pyramid_mailer&lt;/cite&gt;, I fixed a bug reported by
&lt;a class="reference external" href="http://michael.merickel.org/"&gt;Michael Merickel&lt;/a&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a class="reference external" href="https://github.com/Pylons/pyramid/issues/465"&gt;add support for multiple request parameters&lt;/a&gt; when registering
&lt;a class="reference external" href="http://docs.pylonsproject.org/projects/pyramid/en/1.3-branch/api/config.html?highlight=request_param#pyramid.config.Configurator.add_route"&gt;Pyramid views&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;I’m not even sure what this stuff does, but Pyramid has such great
test coverage, I was able to get started.  I’m still waiting for
feeback to see what I’m not yet understanding.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;updating &lt;a class="reference external" href="http://docs.python.org/library/warnings.html#warnings.catch_warnings"&gt;warnings&lt;/a&gt;
handling in &lt;a class="reference external" href="https://github.com/Pylons/pyramid/pull/467"&gt;Pyramid tests&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Just a simple test fixture update to cleanup output.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="note update admonition"&gt;
&lt;p class="admonition-title"&gt;Updated on 16 March 2012&lt;/p&gt;
&lt;p&gt;Imported from Plone on Mar 15, 2021.  The date for this update is the last
modified date in Plone.&lt;/p&gt;
&lt;/div&gt;
&lt;/section&gt;
&lt;/section&gt;
</content>
    <link href="https://www.rpatterson.net/blog/pycon-2012-sprints/"/>
    <summary>Sprinting after PyCon and my first time working with and contributing to Pyramid.</summary>
    <category term="Plone" label="Plone"/>
    <category term="Pyramid" label="Pyramid"/>
    <category term="Zope" label="Zope"/>
    <category term="buildout" label="buildout"/>
    <category term="pycon2012" label="pycon2012"/>
    <category term="repoze" label="repoze"/>
    <category term="tox" label="tox"/>
    <category term="virtualenv" label="virtualenv"/>
    <published>2012-03-15T00:00:00+00:00</published>
  </entry>
</feed>
