Date: Sat, 17 Jun 2017 23:00:00 -0400
<h3>Summary</h3> <p>We all use items that are produced in factories, but do you ever stop to think about the code that powers that production? This week Jonas Neubert takes us behind the scenes and talks about the systems and software that power modern facilities, the development workflows, and how Python gets used to tie everything together.</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>I would like to thank everyone who supports us on <a href="https://www.pythonpodcast.com/podcastinit?utm_source=rss&utm_medium=rss">Patreon</a>. Your contributions help to make the show sustainable.</li> <li>When you’re ready to launch your next project you’ll need somewhere to deploy it. Check out Linode at <a href="https://www.pythonpodcast.com/linode?utm_source=rss&utm_medium=rss">www.podastinit.com/linode?utm_source=rss&utm_medium=rss</a> and get a $20 credit to try out their fast and reliable Linux virtual servers for running your awesome app.</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, read the show notes, and get in touch.</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>Your host as usual is Tobias Macey and today I’m interviewing Jonas Neubert about using Python for industrial automation</li> </ul> <h3>Interview</h3> <ul> <li>Introductions</li> <li>How did you get introduced to Python?</li> <li>How did you get involved in factory automation?</li> <li>What are some of the technical challenges that are unique to a factory environment and the physical computing needs associated with it?</li> <li>When developing new capabilities for your factory, how do you manage proper testing of your software given the need to interoperate with the hardware?</li> <li>Which languages are most frequently used for command and control of industrial systems and how does Python interface with them?</li> <li>How do you manage the problem of interfacing with the various different protocols and data formats that are presented by the different hardware instruments?</li> <li>In your PyCon presentation you commented on the fact that security in industrial automation systems is lacking. What are some of the most common issues that you have seen? <ul> <li>Why is it that security is such an issue in industrial systems?</li> </ul> </li> <li>How are production releases of your software managed and how does it differ from other types of products such as web applications?</li> <li>Aside from manufacturing facilities, what are some other types of environments or industries that require similar levels of hardware automation?</li> <li>What are some of the most interesting or challenging projects that you have worked on?</li> <li>What are some of the packages on PyPI that you find most useful in your day-to-day work?</li> <li>For someone who wants to get involved in industrial automation what kind of experience should they have and what are some of the resources that you recommend?</li> <li>What are some of the innovations in industrial automation that you are most excited about?</li> </ul> <h3>Keep In Touch</h3> <ul> <li><a href="https://twitter.com/jonemo?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">@jonemo</a> on Twitter</li> <li><a href="http://jonasneubert.com?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">Website</a></li> <li><a href="http://www.tempoautomation.com/careers?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">Jobs at Tempo Automation</a></li> </ul> <h3>Picks</h3> <ul> <li>Tobias <ul> <li><a href="http://www.opeth.com/?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">Opeth</a></li> </ul> </li> <li>Jonas <ul> <li><a href="https://youtube.com/pycon2017?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">Pycon 2017 Talks</a></li> <li><a href="https://www.youtube.com/watch?v=3bZNhMcv4Y8&utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">Eric Evenchick – Hacking Cars with Python</a></li> <li><a href="https://www.youtube.com/watch?v=D-5V7s0GflU&utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">Building a wireless speedometer with MicroPython</a></li> <li><a href="https://www.youtube.com/watch?v=rUUgLsspTZA&t=4s&utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">Python from space</a> by Katherine Scott</li> <li><a href="https://www.youtube.com/watch?v=7m5JA3XaZ4k&utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">Ćukasz Langa – Unicode what is the big deal</a></li> <li><a href="https://www.youtube.com/watch?v=bx3NOoroV-M&utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">Morgan Wahl – Text is More Complicated Than You Think Comparing and Sorting Unicode</a></li> <li><a href="https://theprepared.org/?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">The Prepared Newsletter by Spencer Wright</a></li> <li><a href="http://jonemo.github.io/neubertify/2017/04/16/california-zephyr/?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">Long Distance Amtrak rides!</a></li> </ul> </li> </ul> <h3>Links</h3> <ul> <li><a href="http://www.tempoautomation.com/?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">Tempo Automation</a></li> <li><a href="https://en.wikipedia.org/wiki/WebOS?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">Palm webOS</a></li> <li><a href="https://en.wikipedia.org/wiki/Infineon_Technologies?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">Infinion Technologies</a></li> <li><a href="https://en.wikipedia.org/wiki/Dynamic_random-access_memory?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">DRAM</a></li> <li><a href="https://en.wikipedia.org/wiki/Service-oriented_architecture?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">Service Oriented Architecture</a></li> <li><a href="https://en.wikipedia.org/wiki/Singleton_pattern?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">Singleton</a></li> <li><a href="https://en.wikipedia.org/wiki/Light_curtain?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">Light Curtain</a></li> <li><a href="http://www.kneat.com/2012/03/29/the-difference-between-a-fat-and-a-sat/?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">Factory Acceptance Testing</a></li> <li><a href="http://www.kneat.com/2012/03/29/the-difference-between-a-fat-and-a-sat/?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">Site Acceptance Testing</a></li> <li><a href="https://martinfowler.com/bliki/TestPyramid.html?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">Testing Pyramid</a></li> <li><a href="https://en.wikipedia.org/wiki/Protocol_analyzer?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">Protocol Analyzer</a></li> <li><a href="https://en.wikipedia.org/wiki/Multimeter?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">Multimeter</a></li> <li><a href="https://en.wikipedia.org/wiki/G-code?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">GCode</a></li> <li><a href="https://en.wikipedia.org/wiki/IEC_61131?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">IEC-61131</a></li> <li><a href="https://en.wikipedia.org/wiki/Pascal_(programming_language)?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">Pascal</a></li> <li><a href="https://en.wikipedia.org/wiki/Ladder_logic?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">Ladder Logic</a></li> <li><a href="https://en.wikipedia.org/wiki/OPC_Foundation?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">OPC Standards</a></li> <li><a href="https://en.wikipedia.org/wiki/OPC_Data_Access?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">OPC DA</a></li> <li><a href="https://en.wikipedia.org/wiki/C_Sharp_(programming_language)?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">C#</a></li> <li><a href="https://en.wikipedia.org/wiki/Industrial_control_system?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">Factory Control Systems</a></li> <li><a href="https://en.wikipedia.org/wiki/Stuxnet?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">Stuxnet</a></li> <li><a href="https://www.welivesecurity.com/2017/06/12/industroyer-biggest-threat-industrial-control-systems-since-stuxnet/?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">Industroyer</a></li> <li><a href="https://en.wikipedia.org/wiki/IEC_61850?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">IEC 61850</a></li> <li><a href="http://internetofthingsagenda.techtarget.com/definition/Industrial-Internet-of-Things-IIoT?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">Industrial Internet of Things</a></li> <li><a href="https://www.counsyl.com/?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">Counsyl</a></li> <li><a href="https://pypi.python.org/pypi/pyserial?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">PySerial</a></li> <li><a href="https://pypi.python.org/pypi/factory_boy/2.8.1?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">FactoryBoy</a></li> <li><a href="https://pypi.python.org/pypi/parameterized?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">Parameterized</a></li> <li><a href="https://github.com/spulec/freezegun?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">Freezegun</a></li> <li><a href="https://docs.python.org/3/library/struct.html?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">Struct</a></li> <li><a href="https://docs.python.org/3/library/xmlrpc.html?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">XMLRPC</a></li> <li><a href="http://factorytoursusa.com/?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">Factory Tours</a></li> <li><a href="https://www.sciencechannel.com/tv-shows/how-its-made/?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">How It’s Made</a></li> <li><a href="https://www.mcmaster.com/?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">McMaster.com</a></li> <li><a href="https://en.wikipedia.org/wiki/Mass_customization?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">Mass Customization</a></li> <li><a href="https://en.wikipedia.org/wiki/List_of_life_sciences?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">Life Sciences</a></li> <li><a href="https://en.wikipedia.org/wiki/CRISPR?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">CRISPR</a></li> <li><a href="https://www.youtube.com/watch?v=9nN3ylYiHSw&utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">PyCon – Reprogramming the human genome</a></li> <li><a href="https://www.transcriptic.com/?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">Transcriptic</a></li> <li><a href="https://bionano.autodesk.com/?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">Autodesk Life Sciences</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%2Fepisode-114-industrial-automation-with-jonas-neubert%2F&action_name=Industrial+Automation+with+Jonas+Neubert+-+Episode+114&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>