<?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>Python &#8211; Gustavo on Software Development</title>
	<atom:link href="/blog/tags/python/feed/" rel="self" type="application/rss+xml" />
	<link>/</link>
	<description>Notes from a disciplined software developer</description>
	<lastBuildDate>Fri, 01 Sep 2017 10:27:13 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>https://wordpress.org/?v=4.4.16</generator>
	<item>
		<title>How docker-dev Makes Docker Rock in Development, Plus An Example With Python</title>
		<link>/blog/posts/docker-dev-python/</link>
		<pubDate>Thu, 31 Aug 2017 00:00:56 +0000</pubDate>
		<dc:creator><![CDATA[Gustavo]]></dc:creator>
				<category><![CDATA[Free Software contributions]]></category>
		<category><![CDATA[Docker]]></category>
		<category><![CDATA[Python]]></category>

		<guid isPermaLink="false">/?p=1001</guid>
		<description><![CDATA[Docker is a great tool to deploy your application to staging and production environments, but the current ecosystem make it much less pleasant to use in development. Docker Compose does help a lot, but things could be more efficient -- Even for the most common tasks, you still have to pass additional options to <em>docker</em> and <em>docker-compose</em>, and resort to utilities like <em>awk</em> and <em>xargs</em>.]]></description>
		</item>
		<item>
		<title>Records: A New Pythonic Data Type for Your Toolbox</title>
		<link>/blog/posts/pyrecord-announcement/</link>
		<comments>/blog/posts/pyrecord-announcement/#comments</comments>
		<pubDate>Sun, 09 Nov 2014 19:59:34 +0000</pubDate>
		<dc:creator><![CDATA[Gustavo]]></dc:creator>
				<category><![CDATA[Free Software contributions]]></category>
		<category><![CDATA[Python]]></category>

		<guid isPermaLink="false">/?p=825</guid>
		<description><![CDATA[namedtuple, classes and dictionaries are no longer the only options to represent a key/value mapping where all they keys are known upfront: Records may be a better alternative and they&#8217;re now available in Python via PyRecord. This implementation is meant to be a highly improved version of namedtuple, but not yet a replacement. Features include:... <a class="more-link" href="/blog/posts/pyrecord-announcement/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
		<wfw:commentRss>/blog/posts/pyrecord-announcement/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>The Software Practitioner&#8217;s Digest: January 2012</title>
		<link>/blog/posts/tspd-2012-01/</link>
		<pubDate>Mon, 27 Feb 2012 23:50:38 +0000</pubDate>
		<dc:creator><![CDATA[Gustavo]]></dc:creator>
				<category><![CDATA[The Software Practitioner's Digest]]></category>
		<category><![CDATA[Python]]></category>

		<guid isPermaLink="false">/?p=653</guid>
		<description><![CDATA[This late issue of The Software Practitioner&#8217;s Digest, the first in 2012, highlights resources published in January in Better Software, Dr. Dobb&#8217;s, IEEE Software and Software Engineering Radio. This digest has been the most difficult to compile so far, given how hesitant I was with regards to the inclusion of some research articles and essays... <a class="more-link" href="/blog/posts/tspd-2012-01/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
		</item>
		<item>
		<title>&#8220;WSGI from Start to Finish&#8221; materials available</title>
		<link>/blog/posts/wsgi-from-start-to-finish-materials-available/</link>
		<comments>/blog/posts/wsgi-from-start-to-finish-materials-available/#comments</comments>
		<pubDate>Tue, 20 Jul 2010 16:03:25 +0000</pubDate>
		<dc:creator><![CDATA[Gustavo]]></dc:creator>
				<category><![CDATA[Conferences]]></category>
		<category><![CDATA[europython]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[WSGI]]></category>

		<guid isPermaLink="false">/?p=387</guid>
		<description><![CDATA[I&#8217;ve just uploaded the materials for my tutorial at EuroPython 2010, &#8220;WSGI from Start to Finish&#8221;. You can also get the slides and the WSGI cheat-sheet individually. I&#8217;ve updated the slides so that they make sense even without me speaking; so now they have references to the code examples. The tutorial was recorded and should... <a class="more-link" href="/blog/posts/wsgi-from-start-to-finish-materials-available/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
		<wfw:commentRss>/blog/posts/wsgi-from-start-to-finish-materials-available/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Web Site Security With repoze.who and repoze.what</title>
		<link>/blog/posts/repoze-auth/</link>
		<comments>/blog/posts/repoze-auth/#comments</comments>
		<pubDate>Tue, 01 Jun 2010 14:41:13 +0000</pubDate>
		<dc:creator><![CDATA[Gustavo]]></dc:creator>
				<category><![CDATA[HOWTOs]]></category>
		<category><![CDATA[Publications]]></category>
		<category><![CDATA[Software development]]></category>
		<category><![CDATA[Turbo Gears]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[Python Magazine]]></category>
		<category><![CDATA[repoze.what]]></category>
		<category><![CDATA[repoze.who]]></category>
		<category><![CDATA[TurboGears]]></category>
		<category><![CDATA[WSGI]]></category>

		<guid isPermaLink="false">/?p=294</guid>
		<description><![CDATA[This article first appeared in the May 2009 issue of Python Magazine and has been slightly updated. The contents of the article are only applicable to repoze.who 1.0 and repoze.what 1.0, not repoze.who 2 and repoze.what 1.1 which are under development as of this writing. Have you ever created a Web application? If so, it&#8217;s... <a class="more-link" href="/blog/posts/repoze-auth/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
		<wfw:commentRss>/blog/posts/repoze-auth/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>&#8220;WSGI from Start to Finish&#8221; at EuroPython 2010</title>
		<link>/blog/posts/wsgi-from-start-to-finish-at-europython-2010/</link>
		<comments>/blog/posts/wsgi-from-start-to-finish-at-europython-2010/#comments</comments>
		<pubDate>Tue, 25 May 2010 23:03:49 +0000</pubDate>
		<dc:creator><![CDATA[Gustavo]]></dc:creator>
				<category><![CDATA[Conferences]]></category>
		<category><![CDATA[Turbo Gears]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[WSGI]]></category>

		<guid isPermaLink="false">/?p=336</guid>
		<description><![CDATA[If you&#8217;re a Web Application Developer using Python, you may be very interested in the tutorial I am presenting at EuroPython 2010: &#8220;WSGI from Start to Finish: How to use the power of WSGI to solve problems your framework cannot solve&#8221;. Your favorite Web framework is not able to meet all your needs, all the... <a class="more-link" href="/blog/posts/wsgi-from-start-to-finish-at-europython-2010/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
		<wfw:commentRss>/blog/posts/wsgi-from-start-to-finish-at-europython-2010/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Getting back on track</title>
		<link>/blog/posts/getting-back-on-track/</link>
		<pubDate>Tue, 17 Nov 2009 23:38:59 +0000</pubDate>
		<dc:creator><![CDATA[Gustavo]]></dc:creator>
				<category><![CDATA[Free Software contributions]]></category>
		<category><![CDATA[Turbo Gears]]></category>
		<category><![CDATA[Work]]></category>
		<category><![CDATA[2degrees]]></category>
		<category><![CDATA[Django]]></category>
		<category><![CDATA[Madrid]]></category>
		<category><![CDATA[Oxford]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[Spain]]></category>
		<category><![CDATA[TurboGears]]></category>
		<category><![CDATA[UK]]></category>
		<category><![CDATA[WSGI]]></category>

		<guid isPermaLink="false">/?p=285</guid>
		<description><![CDATA[Yes, I&#8217;m alive. Since the second half of last summer I&#8217;ve been inactive in the Free Software arena. No commits, no emails from me in the last few months which may indicate that the projects are dead. So I wanted to write to let you know that I have no plans to stop maintaining any... <a class="more-link" href="/blog/posts/getting-back-on-track/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
		</item>
		<item>
		<title>Koren&#8217;s SVD++ Python Implementation</title>
		<link>/blog/posts/korens-svd-python-implementation/</link>
		<comments>/blog/posts/korens-svd-python-implementation/#comments</comments>
		<pubDate>Wed, 29 Jul 2009 12:01:30 +0000</pubDate>
		<dc:creator><![CDATA[Gustavo]]></dc:creator>
				<category><![CDATA[Software development]]></category>
		<category><![CDATA[booleano]]></category>
		<category><![CDATA[Netflix Prize]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[Recommender System]]></category>

		<guid isPermaLink="false">/?p=274</guid>
		<description><![CDATA[I recently had to implement a recommender system for the Netflix Prize. Out of the best known models, I chose Yehuda Koren&#8217;s SVD++ model as published on the paper entitled &#8220;Factorization Meets the Neighborhood: a Multifaceted Collaborative Filtering Model&#8221; (the version that doesn&#8217;t take into account temporal effects; I&#8217;d have implemented the complete model, but... <a class="more-link" href="/blog/posts/korens-svd-python-implementation/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
		<wfw:commentRss>/blog/posts/korens-svd-python-implementation/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Announcing Booleano</title>
		<link>/blog/posts/announcing-booleano/</link>
		<pubDate>Fri, 17 Jul 2009 21:26:27 +0000</pubDate>
		<dc:creator><![CDATA[Gustavo]]></dc:creator>
				<category><![CDATA[Software development]]></category>
		<category><![CDATA[boolean]]></category>
		<category><![CDATA[booleano]]></category>
		<category><![CDATA[natural language processing]]></category>
		<category><![CDATA[Python]]></category>

		<guid isPermaLink="false">/?p=264</guid>
		<description><![CDATA[I am proud to announce the first alpha release of Booleano, a Python-based interpreter of boolean expressions: Booleano is an interpreter of boolean expressions, a library to define and run filters available as text (e.g., in a natural language) or in Python code. In order to handle text-based filters, Booleano ships with a fully-featured parser... <a class="more-link" href="/blog/posts/announcing-booleano/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
		</item>
		<item>
		<title>Enable LDAP authentication in your WSGI applications!</title>
		<link>/blog/posts/enable-ldap-authentication-in-your-wsgi-applications/</link>
		<pubDate>Mon, 08 Sep 2008 23:50:15 +0000</pubDate>
		<dc:creator><![CDATA[Gustavo]]></dc:creator>
				<category><![CDATA[Free Software contributions]]></category>
		<category><![CDATA[Software development]]></category>
		<category><![CDATA[LDAP]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[repoze.who]]></category>
		<category><![CDATA[WSGI]]></category>

		<guid isPermaLink="false">/?p=119</guid>
		<description><![CDATA[repoze.who.plugins.ldap is an straightforward yet powerful solution to enable LDAP authentication in your WSGI application. It enables you to have LDAP authentication working in your new or existing applications, in few minutes and with few lines of code! It&#8217;s a plugin for the repoze.who framework, featuring not only an LDAP authenticator, but also related utilities.... <a class="more-link" href="/blog/posts/enable-ldap-authentication-in-your-wsgi-applications/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
		</item>
	</channel>
</rss>
