<div dir="ltr">I badly want some of whatever you had before you composed this.</div><div class="gmail_extra"><br><br><div class="gmail_quote">On Fri, Jul 12, 2013 at 8:30 PM, Feihong Hsu <span dir="ltr"><<a href="mailto:feihong.hsu@gmail.com" target="_blank">feihong.hsu@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">I've upload the slides from last night's talk: <a href="http://www.slideshare.net/megafeihong/tulip-24190096" target="_blank">http://www.slideshare.net/megafeihong/tulip-24190096</a><div>
<br></div><div>And also pushed the repository for all the examples and demos from the talk: <a href="https://github.com/feihong/tulip-talk" target="_blank">https://github.com/feihong/tulip-talk</a></div>
<div><br></div><div>There were a few loose threads from last night that I'd like to address.</div><div><br></div><div>Tornado.</div><div><br></div><div>Someone had asked me about Tornado, and I said that I didn't have an opinion on it. That's actually not true, I just somehow forgot my own opinion. I looked into Tornado a while back and decided against using it because it doesn't work on Windows (Twisted, gevent, Tulip, etc. all do). I'm not saying that Tornado sucks, but I prefer a cross-platform solution for a lot of my projects. </div>

<div><br></div><div>To continue my analogy, if programming with Twisted is like being a mystical ninja warrior, than programming with Tornado is like being a mystical ninja warrior who suffers from some kind of childhood trauma that prevents his shadow clones from fighting killer robots. I'd hire the Tornado ninja for a fight in Hell, but I'd leave him behind if there was a brouhaha at the Isaac Asimov museum.</div>

<div><br></div><div>Gevent and eventlet.</div><div><br></div><div>Someone brought up gevent, and claimed that it's easier to use than Twisted and Tulip. I have to agree -- greenlets hide all the messy details so you don't need to worry about callbacks or yield from syntax. I don't have any personal experience with greenlets, but here is a very recent article that addresses the pros and cons: <a href="http://mrjoes.github.io/2013/06/21/python-realtime.html" target="_blank">http://mrjoes.github.io/2013/06/21/python-realtime.html</a>. I'll also note that gevent and eventlet aren't yet compatible with Python 3 (although the greenlet module has been ported, so it's just a matter of time).<br>

</div><div><br></div><div>I don't love talking about things I don't understand, but I love making analogies, so I'll leave you with this: Programming with greenlets is like running around while juggling three standard beanbag balls (apparently this is called joggling). Some people you encounter will be AMAZED that you can joggle at all (usually the very old or the very young). Other bystanders will annoyingly ask if you can also joggle cats, shotguns, flamethrowers, your mom, etc. (these people are typically hipsters, Republicans, ninjas, or your dad). After a while you get distracted by all the dumbass questions and you drop all your balls -- one of them goes down a storm drain, another plops into a mud puddle, the last one bounces into your crotch for some reason and you're so mad you hurl it into the sun and swear off joggling forever. Then the next day you're back out there joggling, because hey it's a free country and some people like it so shut up you hater.</div>

<div><br></div><div>Wishing you a wunderbar weekend,</div><div>Feihong</div></div>
<br>_______________________________________________<br>
Chicago mailing list<br>
<a href="mailto:Chicago@python.org">Chicago@python.org</a><br>
<a href="http://mail.python.org/mailman/listinfo/chicago" target="_blank">http://mail.python.org/mailman/listinfo/chicago</a><br>
<br></blockquote></div><br></div>