<?xml version="1.0"?>
<rss version="2.0" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:media="http://search.yahoo.com/mrss/" xmlns:yt="http://gdata.youtube.com/schemas/2007" xmlns:atom="http://www.w3.org/2005/Atom">
   <channel>
      <title>PirnatPlanet</title>
      <description>Pipes Output</description>
      <link>http://pipes.yahoo.com/pipes/pipe.info?_id=PFqzsh163RGZIVu4pgt1Yg</link>
      <atom:link rel="next" href="http://pipes.yahoo.com/pipes/pipe.run?_id=PFqzsh163RGZIVu4pgt1Yg&amp;_render=rss&amp;page=2"/>
      <pubDate>Thu, 01 Oct 2015 22:21:09 +0000</pubDate>
      <generator>http://pipes.yahoo.com/pipes/</generator>
      <item>
         <title>Mike: Using Python to Get Out the Vote</title>
         <link>http://feedproxy.google.com/~r/PirnatMike/~3/wi8-Jc-hB48/using-python-to-get-out-the-vote</link>
         <description>Using Python to Get Out the Vote</description>
         <guid isPermaLink="false">http://mike.pirnat.com/2015/08/02/using-python-to-get-out-the-vote</guid>
         <pubDate>Mon, 03 Aug 2015 03:35:43 +0000</pubDate>
         <content:encoded><![CDATA[<p>After taking a year off from <a rel="nofollow" target="_blank" href="http://pyohio.org">PyOhio</a>
due to a scheduling snafu (off-by-one errors
apparently aren't just for software),
I was delighted to be back this year,
and with a fresh talk to boot.</p>
<p>This spring, I helped my wife with the data
munging aspect of a school levy get-out-the-vote
campaign.  We mashed up school directory data
with Ohio voter registration records to
produce targeted contact lists for phone calls,
mailings, and door-to-door visits, reducing
redundant contacts and eliminating wasted contacts.</p>
<p>The technology involved is pretty straightforward,
involving a little bit of Python
and some pretty basic <a rel="nofollow" target="_blank" href="http://www.sqlalchemy.org">SQLAlchemy</a>
and <a rel="nofollow" target="_blank" href="http://alembic.readthedocs.org">Alembic</a> (in fact, it was my
first serious dive into both SQLAlchemy and Alembic).</p>
<p>The talk seemed to go pretty well, and I had some great
conversations about it afterwards.
Hopefully it will be inspiring or at least of some value
to folks looking to do some useful things with Python.</p>
<p>Here are the slides:</p>


 

<p>And you can <a rel="nofollow" target="_blank" href="http://pyvideo.org/video/3694/using-python-to-get-out-the-vote">watch the video</a> too.</p><img src="http://feeds.feedburner.com/~r/PirnatMike/~4/wi8-Jc-hB48" height="1" width="1" alt=""/>]]></content:encoded>
      </item>
      <item>
         <title>Mike: PyCon 2016 Dates</title>
         <link>http://feedproxy.google.com/~r/PirnatMike/~3/CJPq7Dg-qNs/pycon-2016-dates</link>
         <description>PyCon 2016 Dates</description>
         <guid isPermaLink="false">http://mike.pirnat.com/2015/05/21/pycon-2016-dates</guid>
         <pubDate>Fri, 22 May 2015 02:13:15 +0000</pubDate>
         <content:encoded><![CDATA[<p>I blanked on the dates for PyCon 2016 the other day, and Google was strangely
silent on the subject, so here, for your reference (and my SEO benefit), are
the dates for PyCon 2016:</p>
<ul>
<li><strong>Tutorials:</strong> May 28–29, 2016</li>
<li><strong>Conference:</strong> May 30–June 1, 2016</li>
<li><strong>Sprints:</strong> Starting June 2, 2016</li>
</ul>
<p>This means the tutorials will be over a weekend, and the conference will be
during the week instead of the other way around, <em>and</em> it'll be a holiday
weekend.  I'm looking forward to finding out what this does to the dynamic of
the conference.</p>
<p>Hopefully I'll see you there--if I can remember the dates, that is.</p><img src="http://feeds.feedburner.com/~r/PirnatMike/~4/CJPq7Dg-qNs" height="1" width="1" alt=""/>]]></content:encoded>
      </item>
      <item>
         <title>Mike: Announcing Procatindex</title>
         <link>http://feedproxy.google.com/~r/PirnatMike/~3/gxeBYIicNr0/announcing-procatindex</link>
         <description>Announcing Procatindex</description>
         <guid isPermaLink="false">http://mike.pirnat.com/2013/06/01/announcing-procatindex</guid>
         <pubDate>Sat, 01 Jun 2013 04:47:18 +0000</pubDate>
         <content:encoded><![CDATA[<div class="photo">
<a rel="nofollow" target="_blank" href="http://www.flickr.com/photos/mikepirnat/6703979693/" title="Replacements by mikepirnat, on Flickr"><img src="http://farm8.staticflickr.com/7162/6703979693_8b98066917.jpg" width="500" height="333" alt="Replacements"></a>
</div>

<p>If you're even a little bit like me, you think <a rel="nofollow" target="_blank" href="http://procatinator.com">Procatinator</a> is one of
the Internet's greatest achievements.  (If you don't know Procatinator, pop on
over there for a minute or two and you'll know whether the rest of this post is
for you or not.)</p>
<p>If, like me, you have favorite cat GIF/music mashups but can't recall their
exact URLs when you're trying to wow your friends, then my latest silly website
project is for you.</p>
<p>Behold: <strong><a rel="nofollow" target="_blank" href="http://procatindex.com">the Procatindex</a>!!</strong></p>
<p><a rel="nofollow" target="_blank" href="http://procatindex.com">Procatindex.com</a> keeps a list of all the Procatinator cats, with titles
pulled from the music videos used.  The list is automatically refreshed when
there's a new cat, and you can subscribe to the <a rel="nofollow" target="_blank" href="http://procatindex.com/rss">RSS feed</a> to make sure
you never miss the latest additions.</p>
<p>The site and the script that refreshes it were built in a couple of hours with
<a rel="nofollow" target="_blank" href="http://python-requests.org">Requests</a> and <a rel="nofollow" target="_blank" href="http://flask.pocoo.org">Flask</a>, which made short work of the task.
(If you aren't familiar with these, you should check them out.  Though I have
mixed feelings about Flask, it's a wonderful go-to for quick web apps like this.
And Requests has become something I can no longer live without.)</p>
<p>Hopefully this improves the effectiveness of your procatination. Enjoy!</p><img src="http://feeds.feedburner.com/~r/PirnatMike/~4/gxeBYIicNr0" height="1" width="1" alt=""/>]]></content:encoded>
      </item>
      <item>
         <title>Mike: Since You've Been Gone</title>
         <link>http://feedproxy.google.com/~r/PirnatMike/~3/kY9PDk_9fvg/since-youve-been-gone</link>
         <description>Since You've Been Gone</description>
         <guid isPermaLink="false">http://mike.pirnat.com/2013/03/30/since-youve-been-gone</guid>
         <pubDate>Sat, 30 Mar 2013 16:26:41 +0000</pubDate>
         <content:encoded><![CDATA[<div class="photo">
<a rel="nofollow" target="_blank" href="http://www.flickr.com/photos/mikepirnat/8543310490/"
 title="All Gone by mikepirnat, on Flickr"><img
 src="http://farm9.staticflickr.com/8532/8543310490_210113c4d0.jpg"
 width="500" height="375" alt="All Gone"></a>
</div>

<p>To everyone who now has Kelly Clarkson stuck in your head, you're welcome.
(I know what it is you see, for it is in my mind also.)</p>
<p>Thanks largely to last year's 365 project, I posted a record 382 entries
here on the old blog in 2012.  So it feels strange that this is only my third
post for 2013--and I missed February entirely!</p>
<p>What the heck happened to me?  Life!</p>
<ul>
<li>The first half of January was dominated by CodeMash and the <a rel="nofollow">eight-hour
   Django tutorial</a> that I helped put on.</li>
<li>Mid-January through mid-March were consumed by preparations for the
   <a rel="nofollow">half-day web app security tutorial</a> that I presented at PyCon.</li>
<li>I've also been crazy-busy preparing for and running our company's annual
   Hack Day event.  We did a whole secret agent theme, going so far as to
   produce some extremely low-budget but nonetheless epic video segments in
   the style of the Bond films.  Our audio team even made us a theme song,
   which I'm not ashamed to admit I enjoyed playing on a loop on my phone
   while I walked around the office in a tuxedo during the event.</li>
<li>I've been building lots of Legos with my daughter!  She rocks the Lego
   Friends sets on her own, and helps me with my Star Wars and Lord of the
   Rings sets.</li>
<li>Speaking of Lego Lord of the Rings, I kind of got hooked playing the Xbox
   version. So good...</li>
<li>I got a RaspberryPi at PyCon! So the kiddo and I have built a case for it
   out of her spare Legos, and I've shown her a little bit of Python and
   Scratch.  Now we need to find a project, because she's really excited
   about building something with it.  (Thanks, PyCon!)</li>
<li>I made <a rel="nofollow" target="_blank" href="https://github.com/mpirnat/chiisai">a little URL shortener</a> for my pirn.at domain before
   I realized that bit.ly does it all for free and then some.  That's okay.
   It gave me a chance to learn about Flask.  I'll probably write a little bit
   more about it at some point later.</li>
<li>I made <a rel="nofollow" target="_blank" href="https://github.com/mpirnat/sawagu">a little RSS-to-Twitter</a> gizmo to automatically tweet links
   to my blog, using my pirn.at shortener for links.  I'll probably write a
   little bit about it too.</li>
<li>I got all excited at PyCon and made <a rel="nofollow" target="_blank" href="http://pythonipsum.com">PythonIpsum</a>, a lorem
   ipsum generator with a Python-flavored vocabulary.  <a rel="nofollow" target="_blank" href="https://github.com/mpirnat/pythonipsum">Patches welcome!</a></li>
<li>I've been bitten by the site refresh bug and have started tinkering on a
   responsive-ish layout so that this place won't look so daft on a phone.</li>
<li>I've got a photography backlog from CodeMash and PyCon that I hope to
   address shortly.  And then I want to get back to shooting regularly
   (though I've got a case of gear fever, so right now I'm mostly obsessing
   about which lens I'd like to pick up).</li>
<li>The kiddo and I have been watching Clone Wars and Dr. Who together. She's
   been really enjoying watching them with me, and I've really enjoyed helping
   to counter the influence of the Princess Industrial Complex.</li>
</ul>
<p>In short--death by bullet points!  Hopefully with the big conference season
behind me, I'll get back into the swing of things shortly and won't be quite so
much of a stranger here.</p><img src="http://feeds.feedburner.com/~r/PirnatMike/~4/kY9PDk_9fvg" height="1" width="1" alt=""/>]]></content:encoded>
      </item>
      <item>
         <title>Mike: Shiny, Let's Be Bad Guys</title>
         <link>http://feedproxy.google.com/~r/PirnatMike/~3/8pQwSsjodCc/shiny-lets-be-bad-guys</link>
         <description>Shiny, Let's Be Bad Guys</description>
         <guid isPermaLink="false">http://mike.pirnat.com/2013/03/30/shiny-lets-be-bad-guys</guid>
         <pubDate>Sat, 30 Mar 2013 05:14:51 +0000</pubDate>
         <content:encoded><![CDATA[<p>A couple of weeks ago at the amazing-beyond-belief <a rel="nofollow" target="_blank" href="http://us.pycon.org/2013/">PyCon 2013</a>,
<a rel="nofollow" target="_blank" href="http://traceback.org/">David Stanek</a> and I presented <a rel="nofollow" target="_blank" href="https://us.pycon.org/2013/schedule/presentation/14/">a half-day tutorial</a>.
We used a deliberately-vulnerable web application to walk our students through
the <a rel="nofollow" target="_blank" href="https://www.owasp.org/index.php/Category:OWASP_Top_Ten_Project">OWASP Top 10</a>, giving them hands-on experience exploiting these
problems and offering advice on how to mitigate them.</p>
<p>While we had concerns about the amount of material and the time available, not
to mention the size of the class--we had about 80 people show up!--it seemed to
go well, and we got a lot of positive feedback both during the tutorial itself
and throughout the rest of the conference.  One attendee even told us that
thanks to our class, he'd fixed a security problem over lunch immediately after
the tutorial! It was immensely satisfying to hear that we'd been able to
catalyze some actual improvement in the world.</p>
<p>If the official feedback is good enough, we may look to run this again in the
future, whether at smaller venues like PyOhio or next spring at PyCon 2014.</p>
<p>You can clone down the <a rel="nofollow" target="_blank" href="https://github.com/mpirnat/lets-be-bad-guys">tutorial app</a> if you'd like to follow along with
the slides.</p>
<img src="http://feeds.feedburner.com/~r/PirnatMike/~4/8pQwSsjodCc" height="1" width="1" alt=""/>]]></content:encoded>
      </item>
      <item>
         <title>Mike: Web Development with Python and Django</title>
         <link>http://feedproxy.google.com/~r/PirnatMike/~3/Y_117ygiLqQ/web-development-with-python-and-django</link>
         <description>Web Development with Python and Django</description>
         <guid isPermaLink="false">http://mike.pirnat.com/2013/01/13/web-development-with-python-and-django</guid>
         <pubDate>Mon, 14 Jan 2013 04:06:10 +0000</pubDate>
         <content:encoded><![CDATA[<p>I had the honor of working with <a rel="nofollow" target="_blank" href="http://mike.crute.org">Mike Crute</a> and <a rel="nofollow" target="_blank" href="http://traceback.org">David Stanek</a>
to produce and deliver an all-day tutorial session at <a rel="nofollow" target="_blank" href="http://codemash.org">CodeMash 2013</a>,
where we got folks up to speed on Python and then ran them through a series of
iterative exercises as we built a small Django site together.</p>
<p>We promised slides, and though we took a bit of a break to celebrate and then
enjoy the conference, I wanted to make sure we didn't wait too long before
making them available.  Hopefully they will be a useful reference in spite of
their lack of the interactivity inherent in a live tutorial session.</p>
<div class="embed-container aspect-slideshare">



 
</div>

<p>You can clone down the <a rel="nofollow" target="_blank" href="http://github.com/finiteloopsoftware/django-precompiler">sample code repository</a> if you'd like to play
along at home.</p>
<p>I think it's safe to say we had a great time presenting at and attending
CodeMash and are looking forward to continuing to make sure Python is
represented there.</p><img src="http://feeds.feedburner.com/~r/PirnatMike/~4/Y_117ygiLqQ" height="1" width="1" alt=""/>]]></content:encoded>
      </item>
      <item>
         <title>Mike: 366/365: See You Later</title>
         <link>http://feedproxy.google.com/~r/PirnatMike/~3/qAS8plBjvg4/366-365-see-you-later</link>
         <description>366/365: See You Later</description>
         <guid isPermaLink="false">http://mike.pirnat.com/2012/12/31/366-365-see-you-later</guid>
         <pubDate>Tue, 01 Jan 2013 04:59:59 +0000</pubDate>
         <content:encoded><![CDATA[<div class="photo">
<a rel="nofollow" target="_blank" href="http://www.flickr.com/photos/mikepirnat/8336178642/"
 title="366/365: See You Later by mikepirnat, on Flickr"><img
 src="http://farm9.staticflickr.com/8357/8336178642_0b304c9c7f.jpg"
 width="500" height="333" alt="366/365: See You Later"></a>
</div>

<p>Thanks to the leap year, I couldn't resist adding an extra day to the 365
project.  Here we find Andrew, Cory, and Liz headed to dinner at Greenhouse
Tavern on a cold and snowy night far different from the unseasonable weather
we enjoyed last year.  As usual, Greenhouse delivered an amazing culinary
journey that made for both a delightful birthday celebration for Liz and a
satisfying end to a challenging year.</p><img src="http://feeds.feedburner.com/~r/PirnatMike/~4/qAS8plBjvg4" height="1" width="1" alt=""/>]]></content:encoded>
      </item>
      <item>
         <title>Mike: 365/365: 365!</title>
         <link>http://feedproxy.google.com/~r/PirnatMike/~3/shAcFZ7EKmc/365-365-365</link>
         <description>365/365: 365!</description>
         <guid isPermaLink="false">http://mike.pirnat.com/2012/12/30/365-365-365</guid>
         <pubDate>Mon, 31 Dec 2012 01:29:19 +0000</pubDate>
         <content:encoded><![CDATA[<div class="photo">
<a rel="nofollow" target="_blank" href="http://www.flickr.com/photos/mikepirnat/8326981093/"
 title="365/365: 365! by mikepirnat, on Flickr"><img
 src="http://farm9.staticflickr.com/8222/8326981093_9514fbc62d.jpg"
 width="500" height="333" alt="365/365: 365!"></a>
</div>

<p>It's with a bit of surprise, mixed with pride, delight, and no small amount of
relief that I come at last to 365 of 365, the conclusion of my year-long
photographic odyssey.  I barely knew what I was getting myself into <a rel="nofollow">when I
started</a>, but in spite of (and perhaps because of) all the time and work
I put in over the year I can truly say that I've enjoyed it and hopefully grown
and improved.</p>
<p>If you've been following along, thank you for the opportunity to fill your eyes
with what mine have seen this year.  If you've been a voice of encouragement,
thank you for keeping my spirits aloft when it would have been easier to quit.
If you've been a subject of one (or more) photos, or even just put up with me
and my camera, thank you for your patience and cooperation.  No matter what
roles you've played, thank you for indulging me; I hope you've enjoyed watching
it all unfold.</p>
<p>Here we find some celebratory Legos that I assembled for the occasion, with my
<a rel="nofollow" target="_blank" href="http://www.flickr.com/photos/mikepirnat/sets/72157628671711645">365 Flickr set</a> in the background.</p>
<p><strong>ZERO</strong> more days to go--<strong><em>WOO HOO!!!</em></strong></p><img src="http://feeds.feedburner.com/~r/PirnatMike/~4/shAcFZ7EKmc" height="1" width="1" alt=""/>]]></content:encoded>
         <category>photography</category>
      </item>
      <item>
         <title>Mike: 364/365: To the Rescue</title>
         <link>http://feedproxy.google.com/~r/PirnatMike/~3/9sZNJeB9x7U/364-365-to-the-rescue</link>
         <description>364/365: To the Rescue</description>
         <guid isPermaLink="false">http://mike.pirnat.com/2012/12/30/364-365-to-the-rescue</guid>
         <pubDate>Sun, 30 Dec 2012 07:20:38 +0000</pubDate>
         <content:encoded><![CDATA[<div class="photo">
<a rel="nofollow" target="_blank" href="http://www.flickr.com/photos/mikepirnat/8326974847/"
 title="364/365: To the Rescue by mikepirnat, on Flickr"><img
 src="http://farm9.staticflickr.com/8496/8326974847_72c4ffe390.jpg"
 width="500" height="333" alt="364/365: To the Rescue"></a>
</div>

<p>We were just starting to rearrange cars in a driveway to facilitate a departure
from our late-December game night when a car skidded around the corner and
sailed gracefully off the road and into a snow bank.  The high school-aged
driver was clearly well and properly stuck, so we gatherered shovels and came
to his aid, eventually freeing his car.  Unfortunately, this freedom came at
the cost of his front bumper, which the packed snow and ice staunchly refused
to release without damage.</p>
<p>Just one more day to go!</p><img src="http://feeds.feedburner.com/~r/PirnatMike/~4/9sZNJeB9x7U" height="1" width="1" alt=""/>]]></content:encoded>
      </item>
      <item>
         <title>Mike: 363/365: Tower City</title>
         <link>http://feedproxy.google.com/~r/PirnatMike/~3/tSgtoL27RU8/363-365-tower-city</link>
         <description>363/365: Tower City</description>
         <guid isPermaLink="false">http://mike.pirnat.com/2012/12/27/363-365-tower-city</guid>
         <pubDate>Fri, 28 Dec 2012 03:59:19 +0000</pubDate>
         <content:encoded><![CDATA[<div class="photo">
<a rel="nofollow" target="_blank" href="http://www.flickr.com/photos/mikepirnat/8321313541/"
 title="363/365: Tower City by mikepirnat, on Flickr"><img
 src="http://farm9.staticflickr.com/8494/8321313541_fcd9b2426c.jpg"
 width="500" height="333" alt="363/365: Tower City"></a>
</div>

<p>I drove downtown to meet up with <a rel="nofollow" target="_blank" href="http://mike.crute.org">Mike Crute</a> to work on our
<a rel="nofollow" target="_blank" href="http://codemash.org">CodeMash</a> tutorial.  I parked below <a rel="nofollow" target="_blank" href="http://www.towercitycenter.com">Tower City</a>, which afforded me
<a rel="nofollow" target="_blank" href="http://www.flickr.com/photos/mikepirnat/archives/date-taken/2012/12/28/">several photographic opportunities</a>, but I ended up liking this the most.</p>
<p>At this point, shooting something every day has become such a part of my life
that I'm not really sure what I'll do when I've completed the 365.  It's really
hard to believe that it's coming up so quickly...</p>
<p>Two more days to go!</p><img src="http://feeds.feedburner.com/~r/PirnatMike/~4/tSgtoL27RU8" height="1" width="1" alt=""/>]]></content:encoded>
      </item>
   </channel>
</rss>
<!-- fe2.yql.bf1.yahoo.com compressed/chunked Thu Oct  1 22:21:08 UTC 2015 -->
