<?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/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Concurrency in Python</title>
	<atom:link href="http://blog.gevent.org/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.gevent.org</link>
	<description>gevent network library</description>
	<lastBuildDate>Tue, 10 Jan 2012 16:12:25 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='blog.gevent.org' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>Concurrency in Python</title>
		<link>http://blog.gevent.org</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://blog.gevent.org/osd.xml" title="Concurrency in Python" />
	<atom:link rel='hub' href='http://blog.gevent.org/?pushpress=hub'/>
		<item>
		<title>gevent 0.13.6 released</title>
		<link>http://blog.gevent.org/2011/05/02/gevent-0-13-6-released/</link>
		<comments>http://blog.gevent.org/2011/05/02/gevent-0-13-6-released/#comments</comments>
		<pubDate>Mon, 02 May 2011 13:15:19 +0000</pubDate>
		<dc:creator>denis</dc:creator>
				<category><![CDATA[Announcement]]></category>
		<category><![CDATA[gevent]]></category>
		<category><![CDATA[python]]></category>

		<guid isPermaLink="false">http://blog.gevent.org/?p=422</guid>
		<description><![CDATA[This is a maintenance release, with a few issues fixed by the users. Thanks to Galfy Pundee, Alexander Boudkar and Alexey Borzenkov. Read the (relatively short) changelog entry, download it from PyPI.<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.gevent.org&amp;blog=11299917&amp;post=422&amp;subd=gevent&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>This is a maintenance release, with a few issues fixed by the users.</p>
<p>Thanks to Galfy Pundee, Alexander Boudkar and Alexey Borzenkov.</p>
<p>Read the (relatively short) <a href="http://gevent.org/changelog.html#release-0-13-6-may-2-2011">changelog entry</a>, download it from <a href="http://pypi.python.org/pypi/gevent">PyPI</a>.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/gevent.wordpress.com/422/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/gevent.wordpress.com/422/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/gevent.wordpress.com/422/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/gevent.wordpress.com/422/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/gevent.wordpress.com/422/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/gevent.wordpress.com/422/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/gevent.wordpress.com/422/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/gevent.wordpress.com/422/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/gevent.wordpress.com/422/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/gevent.wordpress.com/422/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/gevent.wordpress.com/422/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/gevent.wordpress.com/422/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/gevent.wordpress.com/422/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/gevent.wordpress.com/422/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.gevent.org&amp;blog=11299917&amp;post=422&amp;subd=gevent&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.gevent.org/2011/05/02/gevent-0-13-6-released/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/d151b19f7ae71cc818b86df858a93799?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">denis</media:title>
		</media:content>
	</item>
		<item>
		<title>libev and libevent</title>
		<link>http://blog.gevent.org/2011/04/28/libev-and-libevent/</link>
		<comments>http://blog.gevent.org/2011/04/28/libev-and-libevent/#comments</comments>
		<pubDate>Thu, 28 Apr 2011 10:30:18 +0000</pubDate>
		<dc:creator>denis</dc:creator>
				<category><![CDATA[Advocacy]]></category>
		<category><![CDATA[async]]></category>
		<category><![CDATA[epoll]]></category>
		<category><![CDATA[gevent]]></category>
		<category><![CDATA[iocp]]></category>
		<category><![CDATA[libev]]></category>
		<category><![CDATA[libevent]]></category>
		<category><![CDATA[libevent2]]></category>
		<category><![CDATA[python]]></category>

		<guid isPermaLink="false">http://blog.gevent.org/?p=413</guid>
		<description><![CDATA[The next version of gevent (1.0) will use libev for the event loop rather than libevent or libevent2. In this post I&#8217;ll explain the reasons behind the switch. But first let&#8217;s revisit the original reasons for choosing libevent1.4 over libev:  I considered it more popular and more proven  It&#8217;s packaged in Debian (apt-get install libevent [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.gevent.org&amp;blog=11299917&amp;post=413&amp;subd=gevent&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><em>The next version of gevent (<a href="https://bitbucket.org/denis/gevent/">1.0</a>) will use <a href="http://libev.schmorp.de/">libev</a> for the event loop rather than <a href="http://monkey.org/~provos/libevent/">libevent</a> or <a href="http://www.wangafu.net/~nickm/libevent-book/">libevent2</a>. In this post I&#8217;ll explain the reasons behind the switch.</em></p>
<p>But first let&#8217;s revisit the original reasons for choosing libevent1.4 over libev:</p>
<ul>
<li> I considered it more popular and more proven</li>
<li> It&#8217;s packaged in Debian (apt-get install libevent libevent-dev)</li>
<li> It has dns, http and bufferevents</li>
</ul>
<p>However, I no longer consider any of this reasons important.</p>
<p>First of all, libev has been used in lots of projects since then and underwent lots of scrutiny.</p>
<p>Second, most distributions do not package the latest versions of both libraries so the argument that gevent with libevent is easier to install becomes moot. Actually,  libev is really easy to embed and that’s what we’re going to do for the next version: put all the dependencies in the release tarball. Hopefully this will reduce the number of build problems people get. This will also remove the number of possible variations of gevent because of different library versions used. There still will be an option to dynamically link against the dependencies, it just won’t be the default.</p>
<p>The third argument that libevent has built in support for dns and http still holds. And it is part of what makes gevent cool, but now it’s time to move on.</p>
<p>For example, I encountered the following bugs in Libevent’s dns/http implementation:</p>
<ul>
<li>[dns] random failures and timeouts</li>
<li>[dns] forking breaks it completely (issue <a href="http://code.google.com/p/gevent/issues/detail?id=2">#2</a>)</li>
<li>[dns] /etc/resolv.conf is not handled correctly</li>
<li>[http] data corruption when pipelining (thus pipeline is disabled by default)</li>
<li>[http] no streaming support</li>
<li>[http] random failures in client</li>
</ul>
<p>I have most experience with libevent1.4 but brief tests and gevent&#8217;s test suite show that neither libevent-dns nor libevent-http became solid with the release of libevent2.0.10-stable.</p>
<p>Every time I try to fix one of these issues I find the implementation of libevent-dns/libevent-http unreasonably complex for what they do.</p>
<p>Some of the complexity seem to spur from the fact that libevent2 tries to be thread-safe and this affects the control flow: instead of executing a callback directly, libevent2 authors have to use deferred queues of callbacks to avoid deadlock. So thread-safety of libevent2 has cost in complexity but no benefits for Python programs.</p>
<p>Because libev is just an event loop, we need to replace libevent-dns and libevent-http with something. There&#8217;s a port of <a href="http://code.google.com/p/libevhdns/">libevent-dns</a> that works with libev, but there&#8217;s no particular reason to use it (other than ease of integration since we already have wrappers for it). I&#8217;ve done some experiments with <a href="http://c-ares.haxx.se/">c-ares</a> library (used by curl, among others) and really like the results.</p>
<p>The <a href="http://c-ares.haxx.se/">c-ares</a> library is about twice as large as libevent-dns but I find the code to be much easier to follow. Using c-ares + libev fixed all [dns] issues mentioned above. In addition, gevent.socket now also provides &#8220;green&#8221; versions of getnameinfo and gethostbyaddr.</p>
<p>Neither c-ares nor libev are thread-safe which is good there.</p>
<p>Now, let&#8217;s keep aside libevent&#8217;s addons and look at the event loops provided by libev and libevent.</p>
<h2>1. Design</h2>
<p>In libevent there&#8217;s a big multi-functional <a href="http://www.wangafu.net/~nickm/libevent-book/Ref4_event.html#_working_with_events">event</a> class, which is used for</p>
<ul>
<li>I/O readiness notifications</li>
<li>timeouts</li>
<li>signals (by passing signalnum instead of fd and setting the EV_SIGNAL flag)</li>
</ul>
<p>The signal handling is an obvious afterthought here, but even I/O notifications and timeouts should be separated, as quite often you only need one of them. Note, that libevent does provides macros (&#8220;evtimer_&#8221; and &#8220;evsignal_&#8221;) that imitate &#8220;orthogonal&#8221; interface but I&#8217;m talking about the implementation here.</p>
<p>In libev all of the above provided by different, clearly separated &#8220;classes&#8221; called &#8220;watchers&#8221;.</p>
<ul>
<li><a href="http://pod.tst.eu/http://cvs.schmorp.de/libev/ev.pod#code_ev_io_code_is_this_file_descrip">io</a> watcher</li>
<li><a href="http://pod.tst.eu/http://cvs.schmorp.de/libev/ev.pod#code_ev_timer_code_relative_and_opti">timer</a> watcher</li>
<li><a href="http://pod.tst.eu/http://cvs.schmorp.de/libev/ev.pod#code_ev_signal_code_signal_me_when_a">signal</a> watcher</li>
</ul>
<p>There&#8217;s a minor difference is that libevent&#8217;s events are one-shot by default (unless used with EV_PERSIST flag) and libev&#8217;s watchers are &#8220;persistent&#8221; in libevent parlance &#8211; they must be explicitly cleared.</p>
<p>There are also watchers without analogs in libevent:</p>
<ul>
<li><a href="http://pod.tst.eu/http://cvs.schmorp.de/libev/ev.pod#code_ev_prepare_code_and_code_ev_che">ev_prepare and ev_check</a> watchers</li>
<li><a href="http://pod.tst.eu/http://cvs.schmorp.de/libev/ev.pod#code_ev_child_code_watch_out_for_pro">ev_child</a> watcher</li>
<li><a href="http://pod.tst.eu/http://cvs.schmorp.de/libev/ev.pod#code_ev_idle_code_when_you_ve_got_no">ev_idle</a> watcher</li>
</ul>
<p><strong>a) ev_prepare and ev_check watchers</strong></p>
<p>Those unconditionally run the associated callback before and after &#8220;poll&#8221; call. This is useful for signal handling.</p>
<p>The way gevent works is by running the event loop forever in a separate greenlet. One downside of that is that Python cannot execute the signal handlers installed with the standard &#8220;signal&#8221; module. Of course, there&#8217;s signal handling integrated with the event loop, that both libev and libevent provide (exposed as gevent.signal) but that is different from the signal module:</p>
<ul>
<li>it won&#8217;t work if some Python code is busy looping and the event loop is starving, as it gets dispatched by the event loop</li>
<li>it has different interface and thus not easily monkey patched</li>
<li>(on Windows) signal module emulates Ctrl-C signal with WINAPI and neither libev nor libevent do that.</li>
</ul>
<p>In gevent 1.0, I use ev_prepare to check for Python signals and execute the signal handlers. The end result is that the standard &#8220;signal&#8221; module now &#8220;just works&#8221; with gevent. And gevent.signal is also there if you need it.</p>
<p><strong>b) ev_child watcher</strong></p>
<p>This will come handy when implementing gevent.os and gevent.subprocess modules.</p>
<p><strong>c) ev_idle watcher</strong></p>
<p>This executes a callback if the event loop is idle. I think it can be used to integrate other event loops into gevent&#8217;s loop (for example, a gui app). I don&#8217;t think libevent2 has a way to achieve that &#8211; embed another event loop.</p>
<p>I also like the names better, that is &#8220;loop&#8221; rather than &#8220;event_base&#8221;, &#8220;watcher&#8221; rather than &#8220;event&#8221;.</p>
<p><a href="http://home.schmorp.de/">Marc Lehmann</a>, the author of libev also wrote Perl wrappers for libev and a Coroutine library for Perl, which might explain why the libev API is a good fit for wrapping in a high-level language.</p>
<h2>2. Implementation</h2>
<p>Both libevent and libev support epoll, kqueue, poll, select, solaris event ports.</p>
<p>Where libevent is nicer than libev is Windows support.</p>
<p>On Windows, libevent accepts Windows handles instead of C runtime file descriptors. Python uses Windows handles too, so gevent happily passes socket&#8217;s fileno() to libevent. Libev uses C runtime handles, so we need to <a href="https://bitbucket.org/denis/gevent/changeset/c9bda72ed8bb">convert Windows handles into C runtime</a> handles.</p>
<p>Libevent2 also supports IOCP, via  <a href="http://www.wangafu.net/%7Enickm/libevent-book/Ref6_bufferevent.html#_bufferevents_concepts_and_basics">asynchronous bufferevents</a>. However this feature is marked as experimental and neither libevent-http nor libevent-dns use it. Gevent does not wrap bufferevents, so gevent 0.13 is not benefiting from IOCP even if compiled with libevent2.</p>
<p>Thus, I do not expect performance downgrade on Windows when upgrading from gevent 0.13 to gevent 1.0.</p>
<p>Read the <a href="http://groups.google.com/group/gevent/browse_thread/thread/d3021f448fd3419a">discussion</a> on the mailing list that prompted to write this post.</p>
<p>Note, that mere switch from libevent to libev is not the only change in gevent 1.0. Rather, the whole core have been redesigned. I plan to make a blog post some time soon about this.</p>
<p>Thanks to <a href="http://nichol.as/">Nicholas Piël</a> for corrections.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/gevent.wordpress.com/413/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/gevent.wordpress.com/413/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/gevent.wordpress.com/413/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/gevent.wordpress.com/413/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/gevent.wordpress.com/413/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/gevent.wordpress.com/413/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/gevent.wordpress.com/413/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/gevent.wordpress.com/413/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/gevent.wordpress.com/413/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/gevent.wordpress.com/413/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/gevent.wordpress.com/413/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/gevent.wordpress.com/413/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/gevent.wordpress.com/413/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/gevent.wordpress.com/413/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.gevent.org&amp;blog=11299917&amp;post=413&amp;subd=gevent&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.gevent.org/2011/04/28/libev-and-libevent/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/d151b19f7ae71cc818b86df858a93799?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">denis</media:title>
		</media:content>
	</item>
		<item>
		<title>gevent 0.13.4 released</title>
		<link>http://blog.gevent.org/2011/04/11/gevent-0-13-4-released/</link>
		<comments>http://blog.gevent.org/2011/04/11/gevent-0-13-4-released/#comments</comments>
		<pubDate>Mon, 11 Apr 2011 08:48:47 +0000</pubDate>
		<dc:creator>denis</dc:creator>
				<category><![CDATA[Announcement]]></category>
		<category><![CDATA[gevent]]></category>
		<category><![CDATA[python]]></category>

		<guid isPermaLink="false">http://blog.gevent.org/?p=407</guid>
		<description><![CDATA[This is a maintenance release, fixing a number of issues. Read the changelog, download it from PyPI. Thanks to Shaun Lindsay, Nick Barkas, Andreas Blixt.<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.gevent.org&amp;blog=11299917&amp;post=407&amp;subd=gevent&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>This is a maintenance release, fixing a number of <a href="http://code.google.com/p/gevent/issues/list?can=1&amp;q=Milestone%3DRelease0.13.4">issues.</a></p>
<p>Read the <a href="http://gevent.org/changelog.html#release-0-13-4-apr-11-2011">changelog</a>, download it from <a href="http://pypi.python.org/pypi/gevent">PyPI</a>.</p>
<p>Thanks to Shaun Lindsay, Nick Barkas, Andreas Blixt.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/gevent.wordpress.com/407/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/gevent.wordpress.com/407/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/gevent.wordpress.com/407/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/gevent.wordpress.com/407/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/gevent.wordpress.com/407/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/gevent.wordpress.com/407/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/gevent.wordpress.com/407/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/gevent.wordpress.com/407/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/gevent.wordpress.com/407/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/gevent.wordpress.com/407/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/gevent.wordpress.com/407/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/gevent.wordpress.com/407/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/gevent.wordpress.com/407/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/gevent.wordpress.com/407/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.gevent.org&amp;blog=11299917&amp;post=407&amp;subd=gevent&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.gevent.org/2011/04/11/gevent-0-13-4-released/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/d151b19f7ae71cc818b86df858a93799?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">denis</media:title>
		</media:content>
	</item>
		<item>
		<title>gevent on PyCon</title>
		<link>http://blog.gevent.org/2011/03/17/pycon/</link>
		<comments>http://blog.gevent.org/2011/03/17/pycon/#comments</comments>
		<pubDate>Thu, 17 Mar 2011 07:33:27 +0000</pubDate>
		<dc:creator>denis</dc:creator>
				<category><![CDATA[Advocacy]]></category>
		<category><![CDATA[pycon]]></category>
		<category><![CDATA[python]]></category>

		<guid isPermaLink="false">http://blog.gevent.org/?p=384</guid>
		<description><![CDATA[Using Coroutines to Create Efficient, High-Concurrency Web Applications In this talk Matt Spitz evaluates several ways to deploy WSGI applications. At Meebo, they settled on gunicorn + gevent, preferring it to mod_wsdi and Twisted. PyCon 2011: An outsider&#8217;s look at co-routines. This is an overview by Peter Portante that compares greenlet-based approaches like gevent with [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.gevent.org&amp;blog=11299917&amp;post=384&amp;subd=gevent&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><a href="http://blip.tv/file/4883016"><strong>Using Coroutines to Create Efficient, High-Concurrency Web Applications</strong></a><br />
In this talk <a href="http://mattspitz.blogspot.com">Matt Spitz</a> evaluates several ways to deploy WSGI applications. At Meebo, they settled on <a href="http://gunicorn.org/">gunicorn</a> + gevent, preferring it to mod_wsdi and Twisted.</p>
<p><a href="http://blip.tv/file/4883016"><img class="alignnone size-full wp-image-392" title="PyCon 2011: Using Coroutines to Create Efficient, High-Concurrency Web Applications" src="http://gevent.files.wordpress.com/2011/03/matt2.png?w=600" alt=""   /></a></p>
<p>
<a href="http://blip.tv/file/4881229"><strong>PyCon 2011: An outsider&#8217;s look at co-routines.</strong></a><br />
This is an overview by Peter Portante that compares greenlet-based approaches like gevent with yield-based coroutines and threads.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/gevent.wordpress.com/384/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/gevent.wordpress.com/384/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/gevent.wordpress.com/384/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/gevent.wordpress.com/384/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/gevent.wordpress.com/384/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/gevent.wordpress.com/384/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/gevent.wordpress.com/384/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/gevent.wordpress.com/384/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/gevent.wordpress.com/384/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/gevent.wordpress.com/384/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/gevent.wordpress.com/384/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/gevent.wordpress.com/384/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/gevent.wordpress.com/384/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/gevent.wordpress.com/384/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.gevent.org&amp;blog=11299917&amp;post=384&amp;subd=gevent&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.gevent.org/2011/03/17/pycon/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/d151b19f7ae71cc818b86df858a93799?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">denis</media:title>
		</media:content>

		<media:content url="http://gevent.files.wordpress.com/2011/03/matt2.png" medium="image">
			<media:title type="html">PyCon 2011: Using Coroutines to Create Efficient, High-Concurrency Web Applications</media:title>
		</media:content>
	</item>
		<item>
		<title>gevent 0.13.2 released</title>
		<link>http://blog.gevent.org/2011/01/28/gevent-0-13-2-released/</link>
		<comments>http://blog.gevent.org/2011/01/28/gevent-0-13-2-released/#comments</comments>
		<pubDate>Fri, 28 Jan 2011 14:53:29 +0000</pubDate>
		<dc:creator>denis</dc:creator>
				<category><![CDATA[Announcement]]></category>

		<guid isPermaLink="false">http://blog.gevent.org/?p=376</guid>
		<description><![CDATA[Update Feb, 7: 0.13.3 released This release adds a new experimental gevent.httplib module that implements httplib-like interface on top of libevent http client. It also fixes a number of issues. Read the full changelog for details, get it from PyPI. Thanks to Tommie Gannert, Örjan Persson, Alexey Borzenkov. Ralf Schmitt, Nicholas Piël, Elizabeth Jennifer Myers, [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.gevent.org&amp;blog=11299917&amp;post=376&amp;subd=gevent&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><strong>Update Feb, 7:</strong> 0.13.3 released</p>
<p>This release adds a new experimental <a href="http://gevent.org/gevent.httplib.html">gevent.httplib</a> module that implements httplib-like interface on top of libevent http client. It also fixes a number of <a href="http://code.google.com/p/gevent/issues/list?can=1&amp;q=Milestone%3DRelease0.13.2&amp;colspec=ID+Type+Status+Priority+Milestone+Owner+Summary+Stars&amp;cells=tiles">issues</a>. Read the full <a href="http://www.gevent.org/changelog.html">changelog</a> for details, get it from <a href="http://pypi.python.org/pypi/gevent#downloads">PyPI</a>.</p>
<p>Thanks to Tommie Gannert, Örjan Persson, Alexey Borzenkov. Ralf Schmitt, Nicholas Piël, Elizabeth Jennifer Myers, Ned Rockson, Jon Aslund.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/gevent.wordpress.com/376/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/gevent.wordpress.com/376/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/gevent.wordpress.com/376/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/gevent.wordpress.com/376/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/gevent.wordpress.com/376/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/gevent.wordpress.com/376/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/gevent.wordpress.com/376/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/gevent.wordpress.com/376/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/gevent.wordpress.com/376/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/gevent.wordpress.com/376/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/gevent.wordpress.com/376/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/gevent.wordpress.com/376/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/gevent.wordpress.com/376/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/gevent.wordpress.com/376/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.gevent.org&amp;blog=11299917&amp;post=376&amp;subd=gevent&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.gevent.org/2011/01/28/gevent-0-13-2-released/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/d151b19f7ae71cc818b86df858a93799?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">denis</media:title>
		</media:content>
	</item>
		<item>
		<title>Gevent joins The Software Freedom Conservancy</title>
		<link>http://blog.gevent.org/2011/01/18/software-freedom-conservancy/</link>
		<comments>http://blog.gevent.org/2011/01/18/software-freedom-conservancy/#comments</comments>
		<pubDate>Tue, 18 Jan 2011 14:45:13 +0000</pubDate>
		<dc:creator>denis</dc:creator>
				<category><![CDATA[Announcement]]></category>
		<category><![CDATA[python]]></category>

		<guid isPermaLink="false">http://blog.gevent.org/?p=372</guid>
		<description><![CDATA[I&#8217;m pleased to announce that Gevent is now a member of The Software Freedom Conservancy. The SFC is a not-for-profit organization that provides financial and administrative assistance to open source projects. Among other things, the SFC will accept the tax-deductible donations on behalf of Gevent that will go the project&#8217;s fund.<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.gevent.org&amp;blog=11299917&amp;post=372&amp;subd=gevent&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m pleased to announce that Gevent is now a member of <a href="http://sfconservancy.org">The Software Freedom Conservancy</a>. The SFC is a not-for-profit organization that provides financial and administrative assistance to open source projects.</p>
<p>Among other things, the SFC will accept the <a href="http://gevent.org/sfc.html">tax-deductible donations</a> on behalf of Gevent that will go the project&#8217;s fund.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/gevent.wordpress.com/372/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/gevent.wordpress.com/372/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/gevent.wordpress.com/372/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/gevent.wordpress.com/372/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/gevent.wordpress.com/372/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/gevent.wordpress.com/372/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/gevent.wordpress.com/372/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/gevent.wordpress.com/372/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/gevent.wordpress.com/372/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/gevent.wordpress.com/372/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/gevent.wordpress.com/372/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/gevent.wordpress.com/372/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/gevent.wordpress.com/372/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/gevent.wordpress.com/372/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.gevent.org&amp;blog=11299917&amp;post=372&amp;subd=gevent&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.gevent.org/2011/01/18/software-freedom-conservancy/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/d151b19f7ae71cc818b86df858a93799?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">denis</media:title>
		</media:content>
	</item>
		<item>
		<title>gevent 0.13.1 released</title>
		<link>http://blog.gevent.org/2010/09/23/gevent-0-13-1-released/</link>
		<comments>http://blog.gevent.org/2010/09/23/gevent-0-13-1-released/#comments</comments>
		<pubDate>Thu, 23 Sep 2010 12:04:53 +0000</pubDate>
		<dc:creator>denis</dc:creator>
				<category><![CDATA[Announcement]]></category>

		<guid isPermaLink="false">http://blog.gevent.org/?p=366</guid>
		<description><![CDATA[This is a maintenance release for Python 0.13.0, fixing a number of issues. Read the changelog for details. Get it from PyPI. Thanks to Ralf Schmitt who worked with me on this release. Thanks to the following people who provided patches: David Hain, Teh Ekik, Dmitry Chechik, Alexey Borzenkov, Antoine Pitrou, Örjan Persson. Thanks to [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.gevent.org&amp;blog=11299917&amp;post=366&amp;subd=gevent&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>This is a maintenance release for Python 0.13.0, fixing a number of<br />
<a href="http://code.google.com/p/gevent/issues/list?can=1&amp;q=Milestone%3DRelease0.13.1+&amp;colspec=ID+Type+Status+Priority+Milestone+Owner+Summary+Stars&amp;cells=tiles">issues</a>. Read the<a href="http://www.gevent.org/changelog.html"> changelog for details</a>. Get it from <a href="http://pypi.python.org/pypi/gevent">PyPI</a>.</p>
<p>Thanks to Ralf Schmitt who worked with me on this release.</p>
<p>Thanks to the following people who provided patches: David Hain, Teh<br />
Ekik, Dmitry Chechik, Alexey Borzenkov, Antoine Pitrou, Örjan Persson.</p>
<p>Thanks to everyone who reported bugs and participated in the discussion.</p>
<p>Thanks to <a href="http://twitter.com/LeifKB">Leif K-Brooks</a> (<a href="http://omegle.com">Omegle.com</a>) and <a href="http://spotify.com">Spotify</a> who<br />
responded to the sponsorship call and provided funds for gevent<br />
development!</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/gevent.wordpress.com/366/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/gevent.wordpress.com/366/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/gevent.wordpress.com/366/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/gevent.wordpress.com/366/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/gevent.wordpress.com/366/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/gevent.wordpress.com/366/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/gevent.wordpress.com/366/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/gevent.wordpress.com/366/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/gevent.wordpress.com/366/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/gevent.wordpress.com/366/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/gevent.wordpress.com/366/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/gevent.wordpress.com/366/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/gevent.wordpress.com/366/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/gevent.wordpress.com/366/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.gevent.org&amp;blog=11299917&amp;post=366&amp;subd=gevent&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.gevent.org/2010/09/23/gevent-0-13-1-released/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/d151b19f7ae71cc818b86df858a93799?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">denis</media:title>
		</media:content>
	</item>
		<item>
		<title>Call for sponsorship</title>
		<link>http://blog.gevent.org/2010/08/10/call-for-sponsorship/</link>
		<comments>http://blog.gevent.org/2010/08/10/call-for-sponsorship/#comments</comments>
		<pubDate>Tue, 10 Aug 2010 09:56:34 +0000</pubDate>
		<dc:creator>denis</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blog.gevent.org/?p=355</guid>
		<description><![CDATA[Is there any interest among the companies to fund gevent development? I&#8217;d love to employ myself as gevent maintainer. For the past year, gevent was funded from my savings. Currently, I have to do consulting, which takes away time that could be spent on gevent development. I&#8217;d rather work on gevent and if you depend [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.gevent.org&amp;blog=11299917&amp;post=355&amp;subd=gevent&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Is there any interest among the companies to fund gevent development?<br />
I&#8217;d love to employ myself as gevent maintainer.</p>
<p>For the past  year, gevent was funded from my savings. Currently, I have to do  consulting, which takes away time that could be spent on gevent  development. I&#8217;d rather work on gevent and if you depend on or plan  to depend on gevent you probably prefer that I work on it as well.</p>
<p>If you&#8217;d like to sponsor gevent, send me an email mentioning how  much you&#8217;d like to give and we&#8217;ll make arrangements. For me as well as for each individual sponsor the whole thing makes more sense if  there&#8217;s enough money raised to cover a year of full time or at least  a year of part time. Thus, before we finalize the agreement, I&#8217;ll  notify you about the total amount offered and what it covers. If  there&#8217;s enough for a year, you&#8217;ll get a commitment from me not to  accept projects/job offers that will interfere with my gevent work  for the next year. If there&#8217;s not enough, I will tell how many  weeks/months I can commit to and it&#8217;s up to you whether to proceed.</p>
<p>You can treat me as a contractor: I have a legal entity set up here and will provide invoices and other paperwork necessary so that you can write this off as a business expense. It also does not have to be a one-time payment for the whole year, per quarter or per month payments are perfectly acceptable too.</p>
<p>Funding is more than donating and is closer to commercial support.  It cannot change my vision of the project, but you&#8217;ll effectively  get a developer working on an important part of your software stack  while paying only fraction of the cost.</p>
<p>Additionally, here&#8217;s  what I can do for sponsors:</p>
<ul>
<li> priority help with the issues  important to your projects</li>
<li>put your logo/link on <a href="http://gevent.org/" target="_blank">gevent.org</a> homepage  (for top sponsors)</li>
<li>review your gevent-using code  (actually I can do it for anyone who  asks as I love to see what people  are doing with gevent).</li>
</ul>
<p>If you don&#8217;t care about the above  but would like to donate to the project, I appreciate that too.  Currently, there is no &#8220;Donate&#8221; button on gevent website, as many  PayPal-like services don&#8217;t work with my country yet. Nonetheless,  there are still ways to do it, send me an email and I&#8217;ll reply with  the details.</p>
<p>I love working on gevent, it&#8217;s the most enjoyable  work I&#8217;ve ever done and I will remain the maintainer. By funding you  can help boosting gevent development and increase its chances to  become de-facto standard way for writing network apps in Python.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/gevent.wordpress.com/355/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/gevent.wordpress.com/355/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/gevent.wordpress.com/355/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/gevent.wordpress.com/355/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/gevent.wordpress.com/355/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/gevent.wordpress.com/355/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/gevent.wordpress.com/355/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/gevent.wordpress.com/355/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/gevent.wordpress.com/355/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/gevent.wordpress.com/355/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/gevent.wordpress.com/355/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/gevent.wordpress.com/355/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/gevent.wordpress.com/355/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/gevent.wordpress.com/355/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.gevent.org&amp;blog=11299917&amp;post=355&amp;subd=gevent&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.gevent.org/2010/08/10/call-for-sponsorship/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/d151b19f7ae71cc818b86df858a93799?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">denis</media:title>
		</media:content>
	</item>
		<item>
		<title>gevent 0.13.0 released</title>
		<link>http://blog.gevent.org/2010/07/14/gevent-0-13-0-released/</link>
		<comments>http://blog.gevent.org/2010/07/14/gevent-0-13-0-released/#comments</comments>
		<pubDate>Wed, 14 Jul 2010 20:23:45 +0000</pubDate>
		<dc:creator>denis</dc:creator>
				<category><![CDATA[Announcement]]></category>

		<guid isPermaLink="false">http://blog.gevent.org/?p=329</guid>
		<description><![CDATA[After two beta versions, the final version of gevent 0.13.0 has been released &#8211; you can get it from PyPI.  If you don&#8217;t know what gevent is, read the introduction. The full list of changes is available in the changelog. The major new additions are: gevent.server module to help you implement TCP and SSL servers. [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.gevent.org&amp;blog=11299917&amp;post=329&amp;subd=gevent&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>After two beta versions, the final version of <a href="http://www.gevent.org">gevent 0.13.0</a> has been released &#8211; you can get it <a href="http://pypi.python.org/pypi/gevent">from PyPI</a>.  If you don&#8217;t know what gevent is, read the <a href="http://www.gevent.org/intro.html">introduction</a>.</p>
<p>The full list of changes is available in the <a href="http://www.gevent.org/changelog.html">changelog</a>. The major new additions are:</p>
<ul>
<li><a href="http://www.gevent.org/servers.html">gevent.server</a> module to help you implement TCP and SSL servers. Check out <a href="http://bitbucket.org/denis/gevent/src/tip/examples/echoserver.py">the example</a>.</li>
<li><a href="http://www.gevent.org/servers.html">gevent.pywsgi </a>&#8211; an alternative implementation of WSGI server, based on gevent.server. Unlike libevent-based gevent.wsgi it supports streaming, SSL, keep-alive connections.</li>
<li>greenlet&#8217;s sharing of exc_info is worked around in this version.</li>
<li><a href="http://www.gevent.org/gevent.local.html">gevent.local</a> is now working properly.</li>
<li>socket.sendall() function no longer wastes memory by creating substrings of data.</li>
<li>fixed reference leaks in core module.</li>
</ul>
<p>Thanks to Ralf Schmitt, Ted Suzman, Luigi Pugnetti, Randall Leeds, Daniele Varrazzo, Nicholas Piël, Örjan Persson, Uriel Katz.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/gevent.wordpress.com/329/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/gevent.wordpress.com/329/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/gevent.wordpress.com/329/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/gevent.wordpress.com/329/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/gevent.wordpress.com/329/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/gevent.wordpress.com/329/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/gevent.wordpress.com/329/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/gevent.wordpress.com/329/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/gevent.wordpress.com/329/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/gevent.wordpress.com/329/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/gevent.wordpress.com/329/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/gevent.wordpress.com/329/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/gevent.wordpress.com/329/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/gevent.wordpress.com/329/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.gevent.org&amp;blog=11299917&amp;post=329&amp;subd=gevent&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.gevent.org/2010/07/14/gevent-0-13-0-released/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/d151b19f7ae71cc818b86df858a93799?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">denis</media:title>
		</media:content>
	</item>
		<item>
		<title>EuroPython 2010</title>
		<link>http://blog.gevent.org/2010/05/27/europython-2010/</link>
		<comments>http://blog.gevent.org/2010/05/27/europython-2010/#comments</comments>
		<pubDate>Thu, 27 May 2010 06:09:04 +0000</pubDate>
		<dc:creator>denis</dc:creator>
				<category><![CDATA[Advocacy]]></category>
		<category><![CDATA[europython]]></category>

		<guid isPermaLink="false">http://blog.gevent.org/?p=305</guid>
		<description><![CDATA[UPDATE: Slides and the text of the talk are available for download. Feel free to use for your own presentations under CC3.0. I&#8217;m going to give a talk on gevent at EuroPython on Thursday 22nd July at 11.00am in Birmingham, United Kingdom. The contents of the talk is not well defined yet but I&#8217;d like [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.gevent.org&amp;blog=11299917&amp;post=305&amp;subd=gevent&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><strong>UPDATE:</strong> Slides and the text of the talk are <a href="http://code.google.com/p/gevent/downloads/list">available for download</a>. Feel free to use for your own presentations under <a href="http://creativecommons.org/licenses/by/3.0/">CC3.0</a>.</p>
<p><a href="http://europython.eu"><img class="alignright size-full wp-image-308" title="EuroPython" src="http://gevent.files.wordpress.com/2010/05/europython_speaking_126x70.png?w=600" alt=""   /></a>I&#8217;m going to give a talk on gevent at <a href="http://europython.eu">EuroPython</a> on <a href="http://www.europython.eu/talks/timetable/#day6">Thursday 22nd July at 11.00am</a> in Birmingham, United Kingdom.</p>
<p>The contents of the talk is not well defined yet but I&#8217;d like to cover the following:</p>
<ul>
<li>Coroutine-based approach to network programming and how it solves Python&#8217;s concurrency problems.</li>
<li>Greenlets: what they do and how they do it. Why they are better than the alternatives &#8211; generators, threads.</li>
<li>How gevent and eventlet use greenlet to do what they do, the basic principles they operate on.</li>
<li>How sockets/events/queues implemented.</li>
<li>Real-world applications using gevent; future development plans.</li>
</ul>
<p>If you have any suggestions regarding the contents of the talk, please post a comment or <a href="mailto:denis.bilenko@gmail.com">email me</a>.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/gevent.wordpress.com/305/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/gevent.wordpress.com/305/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/gevent.wordpress.com/305/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/gevent.wordpress.com/305/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/gevent.wordpress.com/305/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/gevent.wordpress.com/305/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/gevent.wordpress.com/305/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/gevent.wordpress.com/305/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/gevent.wordpress.com/305/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/gevent.wordpress.com/305/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/gevent.wordpress.com/305/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/gevent.wordpress.com/305/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/gevent.wordpress.com/305/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/gevent.wordpress.com/305/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.gevent.org&amp;blog=11299917&amp;post=305&amp;subd=gevent&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.gevent.org/2010/05/27/europython-2010/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/d151b19f7ae71cc818b86df858a93799?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">denis</media:title>
		</media:content>

		<media:content url="http://gevent.files.wordpress.com/2010/05/europython_speaking_126x70.png" medium="image">
			<media:title type="html">EuroPython</media:title>
		</media:content>
	</item>
	</channel>
</rss>
