<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
     xmlns:content="http://purl.org/rss/1.0/modules/content/"
     xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
     xmlns:atom="http://www.w3.org/2005/Atom"
     xmlns:wfw="http://wellformedweb.org/CommentAPI/"
     xmlns:dc="http://purl.org/dc/elements/1.1/"
     xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd"
     >
  <channel>
    <title>From Python Import Podcast</title>
    <link>http://www.frompythonimportpodcast.com</link>
    <description>a small-batch artisanal podcast for irreverent pythonistas</description>
    <pubDate>Sat, 01 Feb 2020 20:00:05 GMT</pubDate>
    <generator>Blogofile</generator>
    <language>en</language>
    <atom:link href="http://feeds.feedburner.com/FromPythonImportPodcast" rel="self" type="application/rss+xml" />
    <sy:updatePeriod>hourly</sy:updatePeriod>
    <sy:updateFrequency>1</sy:updateFrequency>
    <itunes:summary>From Python Import Podcast is a podcast about Python</itunes:summary>
    <itunes:image href="http://www.frompythonimportpodcast.com/static/content/fpip3d3-300x300.jpg" />
    <itunes:subtitle>a small-batch artisanal podcast for irreverent pythonistas</itunes:subtitle>
    <itunes:keywords>programming, python, software, development</itunes:keywords>
    <itunes:explicit>yes</itunes:explicit>
    <itunes:author>Mike Pirnat, David Noyes, Benjamin W. Smith, David Stanek, Mike Crute, Chris Miller</itunes:author>
    <itunes:owner>
        <itunes:name>Mike Pirnat, David Noyes, Benjamin W. Smith, David Stanek, Mike Crute, Chris Miller</itunes:name>
        <itunes:email>christopher@ctmiller.net</itunes:email>
    </itunes:owner>

    
        <itunes:category text="Technology" />
        <itunes:category text="Business">
            <itunes:category text="Careers" />
        </itunes:category>
        <itunes:category text="Education">
            <itunes:category text="Training" />
        </itunes:category>

    <item>
      <title>Are You There, Internet?</title>
      <link>http://www.frompythonimportpodcast.com/2014/03/06/are-you-there-internet</link>
      <dc:creator>Mike Pirnat</dc:creator>
      <pubDate>Thu, 06 Mar 2014 22:00:00 EST</pubDate>
      <category><![CDATA[Announcements]]></category>
      <guid isPermaLink="true">http://www.frompythonimportpodcast.com/2014/03/06/are-you-there-internet</guid>
      <description>Are You There, Internet?</description>
    <content:encoded><![CDATA[<p>Are you there, Internet?  It's me, <a href="https://twitter.com/__fpip__">@__fpip__</a>.</p>
<p>How are you?  Doing okay?  Made it through the holidays all right?  Surviving
the onslaught of polar vortices?  Ready to be done with winter (or whatever
season it is for you right now)?  Are you excited for <a href="http://us.pycon.org">PyCon</a> yet?</p>
<p>Yeah, us too.</p>
<p>We just wanted to drop you a quick note to let you know we haven't forgotten
about you.  We had some scheduling issues that messed up our emerging
every-other-month cadence, and the machine that we use for editing the show
decided to go to the big computer store in the sky.</p>
<p>Though we are delayed, we are undaunted; in fact, we just recorded a new
episode a couple days ago that we hope to release in the next week or so (once
our hardware issues are resolved).</p>
<p>We've heard your feedback as well and have been taking steps to improve the
quality of our audio.  We won't promise perfection, but we will pledge to
iteratively improve.  (And honestly, even though the Hangout recordings aren't
the greatest, we think they're a huge improvement over some of the shows from a
couple years ago in echoey conference rooms or bar basements.  YMMV, of course.)</p>
<p>Can you do us a favor?  One thing that happened last year when we had hosting
problems was that we fell out of the iTunes store and had to set everything up
all over again, which means we lost all of our ratings and reviews, as well as
our subscription base.  So we'd really love it if you could <a href="https://itunes.apple.com/us/podcast/from-python-import-podcast/id525611633">pop on over to
iTunes</a> and give us some ratings and reviews (and heck, why not
subscribe while you're there?).</p>
<p>Thanks; you're <em>super</em>.</p>
<p>Have you got a particular topic you're interested in hearing about?  Have
something else we should know about?  Drop us a line via <a href="https://twitter.com/__fpip__">Twitter</a> or on
our site's contact form and let us know!  Or say hi to <a href="http://mike.pirnat.com">Mike</a> at
<a href="http://us.pycon.org">PyCon</a> and we can hang out.</p>
<p>So... That should cover everything for now.  We'll talk again soon.  Until
then, take care.  Be excellent to each other, and Python on.</p>
<p>XOXO,</p>
<p>From Python Import Podcast</p>
]]></content:encoded>
    </item>
    <item>
      <title>A Rackspace Odyssey</title>
      <link>http://www.frompythonimportpodcast.com/2013/09/09/a-rackspace-odyssey</link>
      <dc:creator>Mike Pirnat</dc:creator>
      <pubDate>Mon, 09 Sep 2013 14:24:00 EDT</pubDate>
      <category><![CDATA[Announcements]]></category>
      <guid isPermaLink="true">http://www.frompythonimportpodcast.com/2013/09/09/a-rackspace-odyssey</guid>
      <description>A Rackspace Odyssey</description>
    <content:encoded><![CDATA[<div class="excerpt">

<p>This is going to be a lot longer than the things we usually post; buckle up.</p>
<p>One of our obstacles in recording and releasing new episodes has been some
hosting issues that resulted from a server relocation that never quite put
everything back in place correctly, and the people who could fix them were those
of us who had the least amount of time to do so.  I'd been thinking for some
time about moving the site to a hosting solution that wouldn't result in those
kinds of bottlenecks any more, so when <a href="http://www.rackspace.com">Rackspace</a> community advocate
<a href="http://jessenoller.com">Jesse Noller</a> started announcing <a href="https://twitter.com/jessenoller/status/355757374906183680">free accounts</a> for open
source and community projects this summer, I jumped at the chance to shake
things up.</p>
<p>I'm very pleased to announce that we've now fully migrated over to the new
setup, and so far things are pretty darn good.</p>
</div>

<p>Full disclosure time--in exchange for getting the awesome hookup, we've been
asked to:</p>
<ol>
<li>Link to Rackspace on the site (you'll see some bling in the sidebar and
    footer now)</li>
<li>Mention Rackspace in episodes (you'll hear a PBS-style "made possible by"
    blurb in all future shows)</li>
<li>Write a blog post about our experience (spoiler alert--you're already
    reading it!)</li>
</ol>
<p>As I got our new setup going, I took extensive, stream-of-consciousness notes so
that I could capture everything that I was thinking and feeling. I'm going to
spare you from them and instead attempt to boil it all down into what I found to
be the positive and negative experiences of getting everything working.</p>
<h5>Account Creation &amp; Initial Experience</h5>
<p>Creating an account was pretty straightforward.  The only thing I struggled with
was coming up with a username that fit the requirement of being more than six
characters (I had intended to use "fpip", our short abbreviation for "From
Python Import Podcast").  Rackspace sent some really good follow-up emails as
the account was created that helped me want to start doing things right away.
The welcome videos were a nice high point as well; more companies--in any
market--should provide this kind of high-level tour of their products.</p>
<p>However, the quick start guide linked to from one of the welcome emails was a
disappointment--the knowledge center article it brought me to was pretty
minimal, mostly containing links to things that didn't feel very quick startish
to me: info about support levels, about monitoring service, about patching, and
a video about creating a server with a managed service level.  That's all either
really dry, not what I'm looking for, or not applicable to our unmanaged
account.  For me, a quick start guide should be a "here's how you Rackspace for
dummies" sort of thing.</p>
<h5>Creating a Server</h5>
<p>So, instead of reading the quick start that wasn't, I just jumped in and made a
server.  The control panel web interface makes this super-easy, offering a ton
of different starting images and memory/storage combinations.  This interface
also lets you choose a region for your image to live in (basically, which data
center it will be hosted in).  Since I'm in the US, the choice of the DC area,
Dallas, or Chicago didn't make a lot of difference to me (Sydney might be
important if you're outside the US), but the most important advice is that you
aren't going to get charged for data for chatter between boxes that are inside
the same region, but will be charged for data that crosses from one region to
another, so you want to keep all the things that will communicate all in the
same region.</p>
<p>One nice thing about the control panel interface is that any time you're going
to go do things, you'll get some extra context with helpful text and links to
offer how-tos and advice.  This is a great feature that again I'd like to see
other people implement.  I especially liked that the server creation came with
guidance for logging in and getting at least a basic level of security going.
<em>However</em>, the knowledge center articles that are linked again don't always
contain all the information that one might expect them to, which in some cases
left me scrambling to fill in the blanks.  The basic security documentation, for
example, does a great job of going through things in a n00b-friendly,
step-by-step way, only to completely omit the explanation of how to set up
iptables rules.  Since I've been out of the amateur sysadmin game for at least a
decade, the "create /etc/iptables.test.rules and add some rules" instruction
left me feeling really stupid and more than a little annoyed.</p>
<p>That said, I <em>did</em> have a shiny, fresh Ubuntu box in just a few short moments,
and I was able to quickly get the basics (git, make, nginx, etc.) installed and
running.</p>
<h5>Cloud Files &amp; CDN</h5>
<p>I could have just uploaded all of our audio files to the new server and call it
done, but Rackspace offers a cloud storage solution similar to Amazon's S3, and
makes it trivial to provide public access to it via <a href="http://www.akamai.com">Akamai</a>'s content
distribution network.  CDNs rule for publishing big, static content like audio
and video, making them quickly and redundantly available around the world, so I
definitely wanted to take advantage of this.</p>
<p>The control panel again makes it trivial to create a container for your files.
Once the container has been created, you can use the web interface to upload
files, or use <a href="http://cyberduck.ch">Cyberduck</a>.  I started by using the web interface, but
came to deeply regret it:</p>
<ol>
<li>It quickly saturated my upstream bandwidth, leading to significant spousal
    disapproval while I pushed up a couple GB of audio files.</li>
<li>There's no progress bar, so I had to open and periodically refresh a second
    window to keep track of my progress.</li>
<li>There's also no indicator of which file is being uploaded, so it's a good
    idea to only upload one at a time.</li>
</ol>
<p>"Use Cyberduck" is much better advice, and it turned out to be a lot easier to
set up than I had expected.  I had expected "use Cyberduck" to link to a
knowledge center article about its use or configuration, and instead it just
links to the Cyberduck site.  Fortunately, Cyberduck is already hip to Rackspace
Cloud Files and just needs your username and API key.</p>
<p>I enabled logging (since I want to be able to count downloads of our episodes)
and time-to-live values very easily through the web interface, but I ran into a
couple of interesting gotchas with the CDN stuff.  First, the hints around
turning on logging suggest that your logs will go into a magical .ACCESS_LOGS
container that suddenly appears once you have some log data... and they do, but
those are the access logs from using the private file storage interface (through
the website and the API), <em>not</em> the logs from the CDN that represent the public
downloads of our files.  Those go into an even more magical .CDN_ACCESS_LOGS
container that appears sometime around 24 hours after you first start accessing
your files via the CDN.  Not huge, but kind of an expectation management goof.</p>
<p>The bigger issue that I ran into was that the MIME types of files are detected
when you first upload them, and there doesn't seem to be any way to change them.
In practical terms, this means that my .ogg audio files had gotten detected as
"audio/mpeg" and wouldn't play in HTML5 audio tags in Firefox on the Mac (which
wants them to be "audio/ogg").  The web interface and the API allow you to set
additional headers for metadata, but you can't edit the Content-Type at all.
Cyberduck <em>thinks</em> you can set a custom Content-Type, but it ends up coming out
of the CDN as a "X-Object-Meta-Content-Type" which is totally not useful.  I
briefly tried renaming files from .ogg to .oga in both Cyberduck and the web
interface in the hopes that changing the extension would cause the MIME type to
be re-detected; when that failed I was forced to reupload all of our ogg audio
with .oga extensions.  This is probably the single worst annoyance of my
overall Rackspace experience; but now I know, and <a href="http://s3.media.squarespace.com/production/465215/5432662/wp-content/uploads/2009/08/thebattle_zoom.png">knowing is half the
battle</a>.</p>
<h5>DNS</h5>
<p>Since we're trying to reduce the <a href="http://en.wikipedia.org/wiki/Bus_factor">bus factor</a> involved in running FPIP, I
was really excited to take advantage of Rackspace's DNS capabilities.  They
offer both a web interface and API hooks in case you like to write custom
clients or need to manage DNS programmatically.  Like a good boy should, I tried
starting with documentation but found it pretty lacking--there's some <em>very</em>
high-level marketing fluff, and then the main documentation is about the API.
What I really wanted was somewhere in between, so that I'd know what I was
getting into and at what point in the process I would start creating unintended
consequences.</p>
<p>In the end, I just forged ahead and found that the actual experience of using
the web interface was much simpler than I expected.  My biggest concern was that
the first "create domain" would cause untold horrors to unfurl across the
universe of domain name servers turned out to be completely unfounded; it's just
a placeholder until you start adding records, and even then it won't matter
until you use your registrar's interface to use Rackspace's DNS servers for your
domain.  Once you've done the "create domain" step, adding and editing records
is pretty straightforward, and I was able to quickly duplicate our existing A,
CNAME, MX, and TXT records.</p>
<p>I like that the sidebar help links include information on <a href="http://en.wikipedia.org/wiki/Sender_Policy_Framework">SPF</a> and
<a href="http://en.wikipedia.org/wiki/Dkim">DKIM</a>, though it wasn't really relevant to us (we're not exactly in the
business of email deliverability).  I also like that in the web interface, TTLs
can be specified in either seconds or minutes.</p>
<h5>Sending Email</h5>
<p>Speaking of sending email, I think it's kind of cool that Rackspace users get a
free <a href="http://www.mailgun.com">Mailgun</a> account, which would make sending modest volumes of
email really easy and reliable.  My needs--the back end of a contact form that
mostly just gets spam in languages I can't read--didn't justify plugging into
Mailgun, so I just installed Postfix and got on with it.</p>
<h5>Backups &amp; Monitoring</h5>
<p>Once you've got everything Just Right, it's super-easy to take a backup image of
your server that you can use to restore from or create new servers as you need.
This is pretty great as it allows you to quickly create additional servers from
the same mold if you need to scale things out horizontally.  You can even
automate the creation of images to back up servers regularly.</p>
<p>The web interface also makes it really easy to set up monitoring on your
servers, allowing you to be automatically notified if your site isn't up, or
you're running into load or diskspace problems, etc.  This comes at a small
incremental cost per check, but I appreciate the peace of mind.  Of course, we
aren't running hundreds of servers so your mileage may vary.</p>
<h5>API</h5>
<p>I've mentioned the API a few times now, so let's finally talk about it.
Rackspace provides a comprehensive API for manipulating their services.  As far
as I can tell, with the API you can do everything the web control panel can do
(and probably more).  If you like writing RESTful API client code, you can do
that; if not, Rackspace provides wrappers in a variety of languages.  Obviously,
I chose to mess with <a href="https://github.com/rackspace/pyrax">Pyrax</a>, the Python implementation.</p>
<p>My goal was to write a script to pull down CDN logs so that I can continue to
track downloads of our shows.</p>
<p>After making a virtualenv and pip installing Pyrax, I set down to absorb the
documentation, only to find that the "getting started" link was incorrect.  I
notified folks at Rackspace and I expect this is already fixed or will be soon.
I obtained my API key (almost but not quite where the docs say to look, I
believe due to updates to the web interface).  I found further frustration in
the process of trying to authenticate and start using the API--the documentation
and examples are really unclear and confusing and need a serious rewrite to
clean them up for human-friendliness.  Here's <a href="https://github.com/fpip/stats/blob/master/download_logs.py">my little script</a>
that hopefully clarifies the process of authenticating and connecting.  The high
points are:</p>
<ol>
<li>Set the identity type using pyrax.set_setting</li>
<li>Plug into your credential file using pyrax.set_credential_file</li>
<li>Authenticate using pyrax.authenticate</li>
<li>Make a connection to a service--in my case, pyrax.connect_to_cloudfiles; be
    sure to include the region!</li>
</ol>
<p>Other than the initial auth frustration, I found the API decently documented,
with responsibilities clearly separated, and overall straightforward and
pleasant enough to work with that I'll consider exploring it further.</p>
<h5>Concluding Thoughts</h5>
<p>Overall, my Rackspace experience has been quite positive, and I'd recommend
checking them out to see if it's a good fit for what you want to do.  I'd like
to sincerely thank Jesse and Rackspace for helping to breathe a little new life
into the podcast by giving us a chance to play with their toys.</p>
<p>There are some documentation issues that should be addressed--I know Rackspace
prides itself on its "fanatical support", but a DIYer like myself doesn't want
to have to contact support to sort out things that refreshed or improved
documentation would make trivial.  And I'd like to see just a little more
control in the Cloud Files stuff.</p>
<p>Now that we're all set up, I'm excited to be preparing some new episodes to be
released this fall.  Stay tuned!</p>
]]></content:encoded>
    </item>
    <item>
      <title>Not Quite Dead Yet</title>
      <link>http://www.frompythonimportpodcast.com/2013/07/30/not-quite-dead-yet</link>
      <dc:creator>Mike Pirnat</dc:creator>
      <pubDate>Tue, 30 Jul 2013 00:00:00 EDT</pubDate>
      <category><![CDATA[Announcements]]></category>
      <guid isPermaLink="true">http://www.frompythonimportpodcast.com/2013/07/30/not-quite-dead-yet</guid>
      <description>Not Quite Dead Yet</description>
    <content:encoded><![CDATA[<p>Gosh, it's been a year since we launched the new site at <a href="http://pyohio.org">PyOhio</a>, and
nearly that much time since we released a new episode.</p>
<p>Excuses? Oh yeah, we've got 'em--life, work, other hobbies, family,
relationships, infrastructure issues, conference speaking... the list goes on
and on and on (and on).</p>
<p>But then PyOhio 2013 happened, and we kept bumping into people who gushed about
the podcast and rekindled feelings in the deep, dark depths of our hearts that
we thought had long since burned to ash and scattered to the winds.  So maybe,
just maybe, it might be worth another go, to see if we can start doing this
in a way that's sustainable, or at least somewhat compatible with all of our
other competing interests and schedules.</p>
<p>Maybe we're <a href="http://www.youtube.com/watch?v=Sh8mNjeuyV4">not quite dead yet</a> after all.</p>
<p>Hit us up <a href="http://twitter.com/__fpip__">on Twitter</a> or the comment form on <a href="http://frompythonimportpodcast.com">the site</a> and let
us know what topics you'd like us to tackle and cool things we shouldn't miss.</p>
<p>And who knows? Together, we might just start something here.</p>
]]></content:encoded>
    </item>
    <item>
      <title>Shiny New Website</title>
      <link>http://www.frompythonimportpodcast.com/2012/07/29/shiny-new-website</link>
      <dc:creator>Mike Pirnat</dc:creator>
      <pubDate>Sun, 29 Jul 2012 00:00:00 EDT</pubDate>
      <category><![CDATA[Announcements]]></category>
      <guid isPermaLink="true">http://www.frompythonimportpodcast.com/2012/07/29/shiny-new-website</guid>
      <description>Shiny New Website</description>
    <content:encoded><![CDATA[<p>One of the reasons that we've sucked about recording new content since
<a href="http://us.pycon.org">PyCon</a> is that <a href="http://mike.pirnat.com">Mike</a> has been
diligently tinkering away on a brand new design for the website.
We're pleased to announce that the new site is now live, just in time for
<a href="http://pyohio.org">PyOhio</a> lightning talks!</p>
<p>The new site features:</p>
<ul>
<li>Spiffy HTML 5 audio tags for in-browser listening</li>
<li>Responsive design that looks great on your phone, tablet, or desktop</li>
<li>Finally incorporates album art design into the site</li>
<li>Contact form</li>
<li>Social network sharing buttons to help promote your favorite episodes</li>
</ul>
<p>We'll probably still be messing with a few things and will add some features
that we didn't have time to get to in our mad dash to get live, so stay tuned.</p>
<p>If you had subscribed in iTunes, please check to make sure that's still going
on and resubscribe if need be; apparently we had a damaged feed a month or two
ago and fell out of the iTunes listings.  (Yes, we know, this totally sucks and
we're idiots. No one feels worse about it than we do.)</p>
<p>On the plus side, now we can actually focus on maybe making a few new episodes.
Madness!</p>
]]></content:encoded>
    </item>
    <item>
      <title>New Episode Coming 6/15</title>
      <link>http://www.frompythonimportpodcast.com/2010/06/10/new-episode-coming-6-15</link>
      <dc:creator>Mike Crute</dc:creator>
      <pubDate>Thu, 10 Jun 2010 00:00:00 EDT</pubDate>
      <category><![CDATA[Announcements]]></category>
      <guid isPermaLink="true">http://www.frompythonimportpodcast.com/2010/06/10/new-episode-coming-6-15</guid>
      <description>New Episode Coming 6/15</description>
    <content:encoded><![CDATA[<div class="document">
<p>We’ve just recorded our next episode covering, well, you’ll just have to wait
an see. We’re very excited to have a special guest on the show
<a class="reference external" href="http://pirnat.com/mike/">Mike Pirnat</a> joins us to
<a class="reference external" href="http://pirnat.com/mike/2010/06/08/one-honking-great-idea/">share his thoughts</a>
in a followup segment on the Zen of Python. Look for the new episode June 15th!</p>
<p><strong>Update</strong>: Chris has a
<a class="reference external" href="http://www.unquietdesperation.com/2010/06/10/from-python-import-podcast-ep-004-coming-soon/">related post</a>
on his blog about our late episode.</p>
</div>

]]></content:encoded>
    </item>
    <item>
      <title>Now Available on iTunes</title>
      <link>http://www.frompythonimportpodcast.com/2010/04/17/now-available-on-itunes</link>
      <dc:creator>Chris Miller</dc:creator>
      <pubDate>Sat, 17 Apr 2010 00:00:00 EDT</pubDate>
      <category><![CDATA[Announcements]]></category>
      <guid isPermaLink="true">http://www.frompythonimportpodcast.com/2010/04/17/now-available-on-itunes</guid>
      <description>Now Available on iTunes</description>
    <content:encoded><![CDATA[<div class="document">
<p>Good news!  We’re now available in iTunes!</p>
<p><a class="reference external" href="http://itunes.apple.com/us/podcast/from-python-import-podcast/id525611633">Click here</a> or in the sidebar to subscribe via iTunes.</p>
<p>(BTW…flattering reviews in the iTunes store are always welcome.)</p>
</div>

]]></content:encoded>
    </item>
    <item>
      <title>FPIP Album Art</title>
      <link>http://www.frompythonimportpodcast.com/2010/04/16/fpip-album-art</link>
      <dc:creator>Chris Miller</dc:creator>
      <pubDate>Fri, 16 Apr 2010 00:00:00 EDT</pubDate>
      <category><![CDATA[Announcements]]></category>
      <guid isPermaLink="true">http://www.frompythonimportpodcast.com/2010/04/16/fpip-album-art</guid>
      <description>FPIP Album Art</description>
    <content:encoded><![CDATA[<div class="document">
<p>Thanks to the talented Mike Pirnat, we now have official Album Art. What does
this mean?  This means that Chris will get off his lazy ass and get FPIP in
iTunes!</p>
<img alt="/static/content/fpip3d3-300x300.jpg" src="/static/content/fpip3d3-300x300.jpg" />
</div>

]]></content:encoded>
    </item>
    <item>
      <title>Coming Soon!</title>
      <link>http://www.frompythonimportpodcast.com/2010/03/26/coming-soon</link>
      <dc:creator>Chris Miller</dc:creator>
      <pubDate>Fri, 26 Mar 2010 00:00:00 EDT</pubDate>
      <category><![CDATA[Announcements]]></category>
      <guid isPermaLink="true">http://www.frompythonimportpodcast.com/2010/03/26/coming-soon</guid>
      <description>Coming Soon!</description>
    <content:encoded><![CDATA[<p>Pardon our dust, beer cans, and old fast food bags. We’re in the process of
setting up the site for the new podcast. We recorded the first episode two days
ago, and thus far, we’re not thoroughly displeased with it.</p>
<p>Major renovations are coming this weekend, but the podcast looks as if it will
debut on 4/1/2010 as planned.</p>
<p>No, it’s not a joke. Stop asking.</p>
]]></content:encoded>
    </item>
  </channel>
</rss>
