Date: Fri, 09 Oct 2015 08:00:00 -0400
<p>Visit our <a href="http://pythonpodcast.com/dag-brattli-rxpy.html?utm_source=rss&utm_medium=rss">site</a> to listen to past episodes, support the show, and sign up for our newsletter!</p> <h3>Summary</h3> <p>Dag Brattli is an engineer with Microsoft and in his spare time he created the ported the Reactive Xtensions framework to Python in the form of the RxPy library. In this episode we had the opportunity to speak with Dag and learn more about what ReactiveX is, why it is useful and how you can use it in your Python programs. It is definitely a very powerful programming patern when manipulating data streams which is becoming increasingly common in modern software architectures.</p> <h3>Brief Introduction</h3> <ul> <li>Hello and welcome to Podcast.__init__, the podcast about Python and the people who make it great.</li> <li>Subscribe 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>, <a href="http://www.stitcher.com/s?fid=64838&refid=stpr&utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">Stitcher</a>, <a href="http://tunein.com/embed/follow/p726240/#?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">TuneIn</a> or <a href="https://www.pythonpodcast.com/feed/mp3/?utm_source=rss&utm_medium=rss">RSS</a></li> <li>Follow us on <a href="https://twitter.com/Podcast__init__?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">Twitter</a> or <a href="https://plus.google.com/+Podcastinit-the-python-podcast?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">Google+</a></li> <li>Give us feedback! 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>, <a href="https://twitter.com/Podcast__init__?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">Tweet</a> to us, send us an <a href="mailto:hosts@podcastinit.com">email</a> or leave us a message on <a href="https://plus.google.com/+Podcastinit-the-python-podcast?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">Google+</a></li> <li>I would like to thank everyone who has donated to the show. Your contributions help us make the show sustainable. For details on how to support the show you can visit our site at</li> <li>I would also like to thank Hired, a job marketplace for developers, for sponsoring this episode of Podcast.__init__. Use the link <a href="https://hired.com/?utm_content=shownotes-4k&utm_medium=podcast&utm_source=podcastinit&utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">hired.com/podcastinit</a> to double your signing bonus.</li> <li>We are recording today on October 2nd, 2015 and your hosts as usual are Tobias Macey and Chris Patti</li> <li>Today we are interviewing Dag Brattli about the RxPy project</li> </ul> <div><img alt="hired-logo-dark-padding.png" src="https://i0.wp.com/podcastinit.podbean.com/mf/web/ehi957/hired-logo-dark-padding.png?w=1200&utm_source=rss&utm_medium=rss" style="float: left; margin-right: 20px;" />On Hired software engineers & designers can get 5+ interview requests in a week and each offer has salary and equity upfront. With full time and contract opportunities available, users can view the offers and accept or reject them before talking to any company. Work with over 2,500 companies from startups to large public companies hailing from 12 major tech hubs in North America and Europe. Hired is totally free for users and If you get a job you’ll get a $2,000 “thank you” bonus. If you use our <a href="https://hired.com/?utm_content=shownotes-4k&utm_medium=podcast&utm_source=podcastinit&utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">special link</a> to signup, then that bonus will double to $4,000 when you accept a job. If you’re not looking for a job but know someone who is, you can refer them to Hired and get a $1,337 bonus when they accept a job.</p> </div> <div style="clear: both; margin-top: 20px;"> <h3>Interview with Dag Brattli</h3> <ul> <li>Introductions</li> <li>How did you get introduced to Python?</li> <li>For our listeners who haven’t heard of it before, can you describe what RxPy is and why someone might want to use it?</li> <li>What problem domains are best suited for using the Reactive X approach?</li> <li>What is involved in integrating RxPy into an existing code base?</li> <li>When should we use RxPy over asyncio or asynchronous workers like Celery?</li> <li>What resources or tutorials do you recommend people use when trying to understand how and when to use the Reactive X tools?</li> <li>What in particular about Python lends itself to the ReactiveX pattern, and what features of the language does RxPy leverage in particular in its implementation?</li> <li>In what ways does the Python implementation of the Reactive X framework differ from those of other languages?</li> <li>The project description references the use of LINQ for querying the various data streams that RxPy enables consumption of. I had always heard of LINQ in the context of traditional database queries. What makes LINQ a good choice for stream processing?</li> <li>I mostly hear about ReactiveX in terms of UI design, but the project description seemed to indicate it was much more generally useful. What are some of the less common and more interesting problems that RxPy lends itself to solving?</li> </ul> <h3>Picks</h3> <ul> <li>Tobias <ul> <li><a href="https://github.com/jeffkaufman/icdiff?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">icdiff</a></li> <li><a href="http://amzn.to/1OpNF1B?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">Timeline card game</a></li> <li><a href="http://griatch-art.deviantart.com/?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">Griatch’s Digital Art</a></li> </ul> </li> <li>Chris <ul> <li><a href="https://github.com/jorgenschaefer/elpy?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">elpy</a></li> <li><a href="https://github.com/apenwarr/sshuttle?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">sshuttle</a></li> <li><a href="http://www.beeradvocate.com/beer/profile/215/2512/?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">Chimay Grand Reserve</a></li> </ul> </li> <li>Dag <ul> <li><a href="https://github.com/berkerpeksag/astor?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">ASTor</a></li> <li><a href="http://amzn.to/1OM3XDl?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">How To Bake Pi</a> – A book about the mathematics of mathematics</li> </ul> </li> </ul> <h3>Keep In Touch</h3> <ul> <li><a href="https://github.com/dbrattli?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">GitHub</a></li> <li>Links <ul> <li><a href="http://reactivex.io/?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">Main ReactiveX Site</a></li> <li><a href="https://github.com/ReactiveX/RxJava?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">rxjava</a> site for documentation</li> <li><a href="http://rxmarbles.com/?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">rxmarbles</a></li> <li><a href="https://channel9.msdn.com/tags/rx/?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">MSDN Channel 9</a></li> <li><a href="https://github.com/bintoro/overloading.py?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">Function Overloading in Python 3</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></li> </ul> </div> <p><img alt="" height="0" src="https://analytics.boundlessnotions.com/piwik.php?idsite=1&rec=1&url=https%3A%2F%2Fwww.pythonpodcast.com%2Fepisode-26-dag-brattli-on-rxpy%2F&action_name=Dag+Brattli+on+RxPy+-+Episode+26&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>