Date: Sun, 15 Jul 2018 21:00:00 -0400
<h3>Summary</h3> <p>Twisted is one of the earliest frameworks for developing asynchronous applications in Python and it has yet to fulfill its original purpose. It can be used to build network servers that integrate a multitude of protocols, increase the performance of your I/O bound applications, serve as the full web stack for your WSGI projects, and anything else that needs a battle tested and performant foundation. In this episode long time maintainer Moshe Zadka discusses the history of Twisted, how it has evolved over the years, the transition to Python 3, some of its myriad use cases, and where it is headed in the future. Try it out today and then send some thanks to all of the people who have dedicated their time to building it.</p> <h3>Preface</h3> <ul> <li>Hello and welcome to Podcast.__init__, the podcast about Python and the people who make it great.</li> <li>When you’re ready to launch your next app you’ll need somewhere to deploy it, so check out Linode. With private networking, shared block storage, node balancers, and a 200Gbit network, all controlled by a brand new API you’ve got everything you need to scale up. Go to <a href="https://www.pythonpodcast.com/linode?utm_source=rss&utm_medium=rss">podcastinit.com/linode</a> to get a $20 credit and launch a new server in under a minute.</li> <li>To get worry-free releases download GoCD, the open source continous delivery server built by Thoughworks. You can use their pipeline modeling and value stream map to build, control and monitor every step from commit to deployment in one place. And with their new Kubernetes integration it’s even easier to deploy and scale your build agents. Go to <a href="https://www.pythonpodcast.com/gocd?utm_source=rss&utm_medium=rss">podcastinit.com/gocd</a> to learn more about their professional support services and enterprise add-ons.</li> <li>Visit the <a href="https://www.pythonpodcast.com?utm_source=rss&utm_medium=rss">site</a> to subscribe to the show, sign up for the newsletter, and read the show notes. And if you have any questions, comments, or suggestions I would love to hear them. You can reach me on Twitter at <a href="https://twtiter.com/podcastinit?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">@Podcast__init__</a> or email <a href="mailto:hosts@podcastinit.com">hosts@podcastinit.com</a>)</li> <li>To help other people find the show please leave a review on <a href="https://itunes.apple.com/us/podcast/podcast.-init/id981834425?mt=2&uo=6&at=&ct=&utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">iTunes</a>, or <a href="https://play.google.com/music/m/I7ogju4xv6adasgqz6545jndgsy?t=Podcastinit_-_Python_and_the_people_who_make_it_great&utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">Google Play Music</a>, tell your friends and co-workers, and share it on social media.</li> <li>Join the community in the new Zulip chat workspace at <a href="https://www.pythonpodcast.com/chat?utm_source=rss&utm_medium=rss">podcastinit.com/chat</a></li> <li>Your host as usual is Tobias Macey and today I’m interviewing Moshe Zadka about Twisted, the original multi-function tool for asynchronous operations and network protocols in Python</li> </ul> <h3>Interview</h3> <ul> <li>Introductions</li> <li>How did you get introduced to Python?</li> <li>For anyone who isn’t familiar with Twisted can you share a brief overview of what it is? <ul> <li>What was the original motivation for creating it?</li> <li>How did you get involved with the project and what is your current role in the team?</li> </ul> </li> <li>How can people learn to use Twisted? <ul> <li>What are some of the common difficulties that new users encounter?</li> </ul> </li> <li>What did you learn working on Twisted?</li> <li>Who uses Twisted? <ul> <li>When is Twisted the wrong choice?</li> <li>What are some examples of systems that aren’t using Twisted but should be?</li> </ul> </li> <li>What are some of the ways that Twisted has evolved and changed over the years?</li> <li>What are some of the ways people can support Twisted?</li> <li>What are some of the plans for the future of Twisted?</li> </ul> <h3>Keep In Touch</h3> <ul> <li><a href="https://cobordism.com?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">Moshe Zadka</a></li> <li>Twisted <ul> <li><a href="https://twistedmatrix.com/trac/wiki/TwistedCommunity#MailLists?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">Mailing List</a></li> <li><a href="https://twistedmatrix.com/trac/wiki/TwistedCommunity#IRC?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">IRC</a></li> </ul> </li> </ul> <h3>Picks</h3> <ul> <li>Tobias <ul> <li><a href="https://amzn.to/2Jqy7vJ?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">Leatherman Wave+</a></li> </ul> </li> <li>Moshe <ul> <li><a href="https://unsongbook.com?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">Unsong Book</a></li> </ul> </li> </ul> <h3>Links</h3> <ul> <li><a href="https://twistedmatrix.com?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">Twisted</a></li> <li><a href="https://glyph.twistedmatrix.com?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">Glyph Lefkowitz</a></li> <li><a href="https://en.wikipedia.org/wiki/Internet_Relay_Chat?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">IRC</a></li> <li><a href="https://www.python.org/dev/peps/pep-0492/?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">async/await</a></li> <li><a href="https://pyvideo.org/?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">Pyvideo</a></li> <li><a href="https://www.youtube.com/watch?v=ztkBG4qLR_4&utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">PyCon 2017 Tutorial</a></li> <li><a href="https://docs.python.org/3/library/asyncio.html?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">asyncio</a></li> <li><a href="https://www.gtk.org/?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">GTK</a></li> <li><a href="https://en.wikipedia.org/wiki/Simple_Network_Management_Protocol?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">SNMP</a></li> <li><a href="http://gunicorn.org/?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">Gunicorn</a></li> <li><a href="https://uwsgi-docs.readthedocs.io/en/latest/?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">uWSGI</a></li> <li><a href="https://www.python.org/dev/peps/pep-0333/?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">WSGI</a></li> <li><a href="https://www.nginx.com/?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">Nginx</a></li> <li><a href="http://supervisord.org/?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">Supervisor</a></li> <li><a href="https://docs.python.org/2/library/asynchat.html?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">asynchat</a></li> <li><a href="https://docs.python.org/2/library/asyncore.html?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">asyncore</a></li> <li><a href="https://ncolony.org?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">Ncolony</a></li> <li><a href="https://twistedmatrix.com/trac/wiki/UltimateQualityDevelopmentSystem?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">The Ultimate Quality Development System</a> <ul> <li><a href="https://opensource.com/article/18/2/uqds?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">Moshe’s article on UQDS</a></li> </ul> </li> <li><a href="https://www.python.org/dev/peps/pep-0414/?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">Unicode prefix</a></li> <li><a href="http://python3porting.com/2to3.html?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">2to3</a></li> <li><a href="https://pythonhosted.org/six/?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">Six</a></li> <li><a href="https://feeds.fireside.fm/pythonpodcast/rss">Unit Tests</a></li> <li><a href="https://automat.readthedocs.io/en/latest/?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">Automat</a></li> <li><a href="https://lamport.azurewebsites.net/tla/tla.html?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">TLA+</a> <ul> <li><a href="https://youtu.be/LAEXHua4MQQ?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">PyCon CA Presentation</a></li> </ul> </li> <li><a href="http://sans-io.readthedocs.io/?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">Sans IO</a> <ul> <li><a href="https://www.youtube.com/watch?v=7cC3_jGwl_U&utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">Cory Benfield’s talk</a></li> </ul> </li> <li><a href="https://twisted.github.io/tubes/?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">Tubes</a></li> <li><a href="https://github.com/python-hyper?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">Hyper</a></li> <li><a href="https://python-hyper.org/h2/en/stable/?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">H2</a></li> <li><a href="https://h11.readthedocs.io/en/latest/?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">H11</a></li> <li><a href="https://www.calendarserver.org/?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">Apple Calendar Server</a> <a href="https://github.com/apple/ccs-calendarserver?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">Github</a></li> <li><a href="https://duo.com/?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">Duo Security</a> using <a href="http://cyclone.io/?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">Cyclone</a></li> <li><a href="https://matrix.org/blog/home/?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">Matrix</a> — <a href="https://matrix.org/blog/2018/04/26/matrix-and-riot-confirmed-as-the-basis-for-frances-secure-instant-messenger-app/?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">Used by French government</a></li> <li><a href="https://aiohttp.readthedocs.io/en/stable/?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">AIOHTTP</a></li> </ul> <p>The intro and outro music is from Requiem for a Fish <a href="http://freemusicarchive.org/music/The_Freak_Fandango_Orchestra/?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">The Freak Fandango Orchestra</a> / <a href="http://creativecommons.org/licenses/by-sa/3.0/?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">CC BY-SA</a><img alt="" height="0" src="https://analytics.boundlessnotions.com/piwik.php?idsite=1&rec=1&url=https%3A%2F%2Fwww.pythonpodcast.com%2Ftwisted-with-moshe-zadka-episode-170%2F&action_name=The+Past%2C+Present%2C+and+Future+of+Twisted+with+Moshe+Zadka+-+Episode+170&urlref=https%3A%2F%2Fwww.pythonpodcast.com%2Ffeed%2F&utm_source=rss&utm_medium=rss" style="border: 0; width: 0; height: 0;" width="0" /></p>