Internet of Things

Kalliope with Nicolas Marcq and Thibaud Buffet - Episode 130

Summary

Wouldn’t it be nice to have a personal assistant to answer your questions, help you remember important tasks, and control your environment? Meet Kalliope, a Python powered, modular, voice controlled automation platform. This week Nicolas Marcq and Thibaud Buffet explain how they started the project, what makes it stand out from other open source and commercial options, and how you can start using it today.

Preface

  • Hello and welcome to Podcast.__init__, the podcast about Python and the people who make it great.
  • I would like to thank everyone who supports us on Patreon. Your contributions help to make the show sustainable.
  • When you’re ready to launch your next project you’ll need somewhere to deploy it. Check out Linode at www.podastinit.com/linode and get a $20 credit to try out their fast and reliable Linux virtual servers for running your awesome app.
  • Need to learn more about how to scale your apps or learn new techniques for building them? Pluralsight has the training and mentoring you need to level up your skills. Go to www.podcastinit.com/pluralsight to start your free trial today.
  • Visit the site to subscribe to the show, sign up for the newsletter, read the show notes, and get in touch.
  • To help other people find the show please leave a review on iTunes, or Google Play Music, tell your friends and co-workers, and share it on social media.
  • If you work with data for your job or want to learn more about how open source is powering the latest innovations in data science then make your way to the Open Data Science Conference, happening in London in October and San Francisco in November. Follow the links in the show notes to register and help support the show in the process.
  • Your host as usual is Tobias Macey and today I’m interviewing Nicolas Marcq and Thibaud Buffet about Kalliope, a modular always-on voice controlled personal assistant designed for home automation.

Interview

  • Introductions
  • How did you get introduced to Python?
  • What is the Kalliope project and how did it get started?
  • How does Kalliope compare to commercial options such as Amazon Alexa and Google Home, as well as other open source projects such as Mycroft or Jasper?
  • The majority of voice assistant projects that I have seen default to interacting in English, whereas Kalliope is multi-lingual. What led you to that design choice and how is that implemented?
  • One of the perennial questions around voice assistants is privacy, so how does Kalliope work to mitigate the issues associated with having an always on device listening in people’s homes?
  • How is Kalliope architected internally and how has the design evolved over time?
  • What are some of the most difficult or challenging aspects of building Kalliope and its associated projects?
  • What are some of the most interesting uses of Kalliope that you are aware of?
  • What are some of the most notable features or improvements that you have planned for the future of Kalliope?
  • How has the choice of Python as the implementation worked for you, and if you were to start over today do you think you would make the same decision?

Keep In Touch

Picks

Links

The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA

Industrial Automation with Jonas Neubert - Episode 114

Summary

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.

Preface

  • Hello and welcome to Podcast.__init__, the podcast about Python and the people who make it great.
  • I would like to thank everyone who supports us on Patreon. Your contributions help to make the show sustainable.
  • When you’re ready to launch your next project you’ll need somewhere to deploy it. Check out Linode at www.podastinit.com/linode and get a $20 credit to try out their fast and reliable Linux virtual servers for running your awesome app.
  • Visit the site to subscribe to the show, sign up for the newsletter, read the show notes, and get in touch.
  • To help other people find the show please leave a review on iTunes, or Google Play Music, tell your friends and co-workers, and share it on social media.
  • Your host as usual is Tobias Macey and today I’m interviewing Jonas Neubert about using Python for industrial automation

Interview

  • Introductions
  • How did you get introduced to Python?
  • How did you get involved in factory automation?
  • What are some of the technical challenges that are unique to a factory environment and the physical computing needs associated with it?
  • When developing new capabilities for your factory, how do you manage proper testing of your software given the need to interoperate with the hardware?
  • Which languages are most frequently used for command and control of industrial systems and how does Python interface with them?
  • How do you manage the problem of interfacing with the various different protocols and data formats that are presented by the different hardware instruments?
  • 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?
    • Why is it that security is such an issue in industrial systems?
  • How are production releases of your software managed and how does it differ from other types of products such as web applications?
  • Aside from manufacturing facilities, what are some other types of environments or industries that require similar levels of hardware automation?
  • What are some of the most interesting or challenging projects that you have worked on?
  • What are some of the packages on PyPI that you find most useful in your day-to-day work?
  • 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?
  • What are some of the innovations in industrial automation that you are most excited about?

Keep In Touch

Picks

Links

The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA

Crossbar.io with Tobias Oberstein and Alexander Gödde - Episode 101

Summary

As our system architectures and the Internet of Things continue to push us towards distributed logic we need a way to route the traffic between those various components. Crossbar.io is the original implementation of the Web Application Messaging Protocol (WAMP) which combines Remote Procedure Calls (RPC) with Publish/Subscribe (PubSub) communication patterns into a single communication layer. In this episode Tobias Oberstein describes the use cases and design patterns that become possible when you have event-based RPC in a high-throughput and low-latency system.

Preface

  • Hello and welcome to Podcast.__init__, the podcast about Python and the people who make it great.
  • I would like to thank everyone who has donated to the show. Your contributions help us make the show sustainable.
  • When you’re ready to launch your next project you’ll need somewhere to deploy it. Check out Linode at linode.com/podcastinit and get a $20 credit to try out their fast and reliable Linux virtual servers for running your awesome app.
  • Visit our site to subscribe to our show, sign up for our newsletter, read the show notes, and get in touch.
  • To help other people find the show you can leave a review on iTunes, or Google Play Music, and tell your friends and co-workers
  • Your host as usual is Tobias Macey and today I’m interviewing Tobias Oberstein and Alexander Gödde about Crossbar.io, a high throughput asynchronous router for the WAMP protocol

Interview

  • Introductions
  • How did you get introduced to Python?
  • What is Crossbar and what is the problem that you were trying to solve when you created it?
  • What is the status of the IETF WAMP protocol proposal?
  • Why have an open protocol – and how do you see the ecosystem?
  • Python isn’t typically considered to be a high-performance language so what led you to use it for building Crossbar?
  • How is Crossbar architected for proxying requests from a highly distributed set of clients with low latency and high throughput?
  • How do you handle authorization between the various clients of the router so that potentially sensitive messages don’t get published to the wrong component?
  • Does Crossbar encapsulate any business logic or is that all pushed to the edges of the system?
  • What are some of the typical kinds of applications that Crossbar is designed for?
  • What are some common design paradigms that would be better suited for a WAMP implementation?
  • What are some of the most interesting or surprising uses of Crossbar that you have seen?
  • What do you have planned for the future of Crossbar?

Keep In Touch

Picks

Links

The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA

Home Assistant with Paulus Schoutsen - Episode 94

Summary

Don’t you wish you could make all of your devices talk to each other? Check out Home Assistant, the Python 3 platform for unified automation. Paulus Schoutsen shares the story of how the project got started, what makes it tick, and how you can use it today!

Introduction

  • Hello and welcome to Podcast.__init__, the podcast about Python and the people who make it great.
  • I would like to thank everyone who has donated to the show. Your contributions help us make the show sustainable.
  • When you’re ready to launch your next project you’ll need somewhere to deploy it. Check out Linode at linode.com/podcastinit and get a $20 credit to try out their fast and reliable Linux virtual servers for running your awesome app.
  • Visit our site to subscribe to our show, sign up for our newsletter, read the show notes, and get in touch.
  • To help other people find the show you can leave a review on iTunes, or Google Play Music, and tell your friends and co-workers
  • Join our community! Visit discourse.pythonpodcast.com for your opportunity to find out about upcoming guests, suggest questions, and propose show ideas.
  • Your host as usual is Tobias Macey and today I’m interviewing Paulus Schoutsen about Home Assistant, the Python 3 platform for unifying your home automation.

Interview

  • Introductions
  • How did you get introduced to Python?
  • What is Home Assistant and what was the initial frustration that inspired you to create it?
  • How useful would home assistant be for someone who doesn’t have a lot of the so-called ‘smart home’ technology?
  • Given the fact that the intended context for Home Assistant is in the user’s house or apartment, how do you ensure that their data and privacy are safe?
  • Reading through the documenation for installing and configuring Home Assitant, it seems prohibitively complex for someone who is not technically inclined. Has any work been done to try to package the project in a way that is more friendly to a casual user?
  • What are some of the most difficult challenges that you have faced while building Home Assistant?
  • Why did you choose Python 3 as the technology for building this platform?
  • The list of supported services and integrations is quite impressive. How does the current architecture allow for that kind of growth?
  • How has the architecture of Home Assistant evolved from when you first started it?
  • What are some of the products or platforms that you consider to be competitors of Home Assistant and how do you differentiate yourself?
  • What are some of the most interesting or unexpected uses of Home Assistant that you have seen?
  • What do you see as some of the most promising and the most troubling trends in the future of home automation?

Keep In Touch

Picks

Links

The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA

Mycroft with Steve Penrod - Episode 82

Summary

Speech is the most natural interface for communication, and yet we force ourselves to conform to the limitations of our tools in our daily tasks. As computation becomes cheaper and more ubiquitous and artificial intelligence becomes more capable, voice becomes a more practical means of controlling our environments. This week Steve Penrod shares the work that is being done on the Mycroft project and the company of the same name. He explains how he met the other members of the team, how the project got started, what it can do right now, and where they are headed in the future.

Brief Introduction

  • Hello and welcome to Podcast.__init__, the podcast about Python and the people who make it great.
  • I would like to thank everyone who has donated to the show. Your contributions help us make the show sustainable.
  • When you’re ready to launch your next project you’ll need somewhere to deploy it. Check out Linode at linode.com/podcastinit and get a $20 credit to try out their fast and reliable Linux virtual servers for running your awesome app.
  • You’ll want to make sure that your users don’t have to put up with bugs, so you should use Rollbar for tracking and aggregating your application errors to find and fix the bugs in your application before your users notice they exist. Use the link rollbar.com/podcastinit to get 90 days and 300,000 errors for free on their bootstrap plan.
  • Visit our site to subscribe to our show, sign up for our newsletter, read the show notes, and get in touch.
  • To help other people find the show you can leave a review on iTunes, or Google Play Music, and tell your friends and co-workers
  • Join our community! Visit discourse.pythonpodcast.com to talk to previous guests and other listeners of the show.
  • Your host as usual is Tobias Macey and today I’m interviewing Steve Penrod about the company and project Mycroft, a voice controlled, AI powered personal assistant written in Python.

Interview with Steve Penrod

  • Introductions
  • How did you get introduced to Python?
  • Can you start by describing what Mycroft is and how the project and business got started?
  • How is Mycroft architected and what are the biggest challenges that you have encountered while building this project?
  • What are some of the possible applications of Mycroft?
  • Why would someone choose to use Mycroft in place of other platforms such as Amazon’s Alexa or Google’s personal assistant?
  • What kinds of machine learning approaches are being used in Mycroft and do they require a remote system for execution or can they be run locally?
  • What kind of hardware is needed for someone who wants to build their own Mycroft and what does the install process look like?
  • It can be difficult to run a business based on open source. What benefits and challenges are introduced by making the software that powers Mycroft freely available?
  • What are the mechanisms for extending Mycroft to add new capabilities?
  • What are some of the most surprising and innovative uses of Mycroft that you have seen?
  • What are the long term goals for the Mycroft project and the business that you have formed around it?

Keep In Touch

Picks

Links

The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA

Onion IoT with Lazar and Zheng - Episode 56

Visit our site to listen to past episodes, support the show, join our community, and sign up for our mailing list.

Summary

One of the biggest new trends in technology is the Internet of Things and one of the driving forces is the wealth of new sensors and platforms that are being continually introduced. In this episode we spoke with the founder and head engineer of one such platform named Onion. The Omega board is a new hardware platform that runs OpenWRT and lets you configure it using a number of languages, not least of which is Python.

Brief Introduction

  • Hello and welcome to Podcast.__init__, the podcast about Python and the people who make it great.
  • 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 pythonpodcast.com
  • Linode is sponsoring us this week. Check them out at linode.com/podcastinit and get a $20 credit to try out their fast and reliable Linux virtual servers for your next project
  • We are also sponsored by Rollbar this week. Rollbar is a service for tracking and aggregating your application errors so that you can find and fix the bugs in your application before your users notice they exist. Use the link rollbar.com/podcastinit to get 90 days and 300,000 errors for free on their bootstrap plan.
  • Visit our site to subscribe to our show, sign up for our newsletter, read the show notes, and get in touch.
  • To help other people find the show you can leave a review on iTunes, or Google Play Music, and tell your friends and co-workers
  • Join our community! Visit discourse.pythonpodcast.com for your opportunity to find out about upcoming guests, suggest questions, and propose show ideas.
  • The Open Data Science Conference in Boston is happening on May 21st and 22nd. If you use the code EP during registration you will save 20% off of the ticket price. If you decide to attend then let us know, we’ll see you there!
  • Your hosts as usual are Tobias Macey and Chris Patti
  • Today we are interviewing Lazar and Zheng about the Onion IoT platform

Interview with Lazar and Zheng

  • Introductions
  • How did you get introduced to Python? – Chris
  • What is the Onion platform and how does it leverage Python? – Tobias
  • Can you compare and contrast the Python support you provide for Onion as compared with Raspberry Pi? – Chris
  • I noticed that you are using the OpenWRT distribution of Linux in order to provide support for multiple languages. What was the driving intent behind choosing it and why is multiple language support so important for an IoT product? – Tobias
  • Do you provide any libraries for using with the Omega to abstract away some of the hardware level tasks? What are some of the design considerations that were involved when developing that? – Tobias
  • What are some of the most interesting projects you have seen people build with Python on your platform? – Tobias

Keep In Touch

Picks

The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA

Bryan Van de Ven on Bokeh - Episode 22

Visit our site to listen to past episodes, subscribe to our mailing list, and donate to the show.

Summary

Bryan Van de Ven is the project maintainer for Bokeh, a plotting and visualization toolkit that allows Python developers to easily create attractive interactive visualizations for the web. We talked about the project’s history, some interesting use cases for it, and what its near future looks like. Bryan also told us about how Bokeh compares to some of the other visualization libraries in both Python and Javascript, as well as how to use Bokeh from other languages such as Scala and Lua.

Brief Introduction

  • Hello and welcome to Podcast.__init__, the podcast about Python and the people who make it great.
  • Subscribe on iTunes, Stitcher, TuneIn or RSS
  • Follow us on Twitter or Google+
  • Give us feedback! Leave a review on iTunes, Tweet to us, send us an email or leave us a message on Google+
  • 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
  • There is a new Python podcast that just started up recently! It’s called the Python Test Podcast and covers the world of testing in Python, so go ahead and give it a listen. You can find it at
  • We are recording today on Aug 18th, 2015 and your hosts as usual are Tobias Macey and Chris Patti
  • Today we are interviewing Bryan Van de Ven about the Bokeh project

Interview with Bryan Van de Ven

  • Introductions
  • How did you get introduced to Python?
  • For our listeners who aren’t familiar with what Bokeh is, can you describe it?
  • What inspired you to create Bokeh?
  • Bokeh has integrations with some of the other Python graphing libraries such as matplotlib and seaborn. I can see how this would be useful to easily update existing code to publish visualizations on the web. Are there other use cases for these integrations?
  • I noticed that Bokeh has bindings for some languages other than Python. R and Julia are obvious candidates due to their strong focus on analytics work, I’m curious what made you choose Scala and Lua as languages worth targeting?
  • Do you lose any capabilities using the javascript library by itself?
  • Other than the sample data sets that come with Bokeh, can you suggest a good publicly available data set with accompanying tutorial for people who want to get started with data visualization using Bokeh?
  • Can you provide some comparisons between D3.js and the Bokeh javascript library in terms of capabilities and performance?
  • The Bokeh project has a server component that allows for streaming data to clients. Can you describe the architecture of that and some example uses for it?
  • Why was the server written as a Flask blueprint as opposed to making it a component of another framework such as Django or Pyramid and how difficult would it be to port the functionality to another system?
  • What’s the most interesting use of Bokeh you’ve seen?
  • Are you aware of any projects in other languages that are comparable to Bokeh?

Picks

Keep In Touch

Links

Damien George Talks To Us About MicroPython - Episode 15

Visit our site for more news, information and past episodes of Podcast.__init__!

Summary

We talked to Damien George about his work on the Micro Python interpreter and the PyBoard SOC (Systom On a Chip). The combination of the interpreter and SOC allows Python developers to get involved in hardware hacking, as well as letting electronics afficionados try their hand at development. Damien explained to us where this fits in with the expanding landscape of low cost embedded devices and why you should get one to start playing with it.

Brief Introduction

  • Date of recording – June 29th, 2015
  • Hosts – Tobias Macey and Chris Patti
  • Follow us on iTunes, Stitcher or TuneIn
  • Give us feedback! (iTunes, Twitter, email, Disqus comments)
  • You can donate (if you want)!
  • Overview – Interview with Damien George from the Micro Python project

Interview with Damien George

  • Introductions
    • Postdoc in Theoretical Physics
  • How did you get introduced to Python?
  • What problem were you trying to solve when you first had the idea to create the Micro Python board and interpreter?
    • Not really :)
    • Python lets you get things done quickly
    • Abstracts the hardware really well
  • In the Kickstarter video you mention that Micro Python is a complete re-implementation of Python optimized to run on a micro-controller. How hard was it to create an alternative Python implementation? Did you have hard decisions to make as to what to include given the limitations of the hardware?
    • To start with, was it even possible?
      • Proof of Concept: Get a REPL running on the board
    • Lots of tricks to get things to fit into RAM
      • Stuffing integers into pointers
      • Optimizing RAM at various points
      • Runs the parser 4 times, looking for different things each time
      • Lots of things are stored in ROM in the built-in Flash
    • Very fine efficiency trade off between code size, memory usage, speed.
    • REPL runs in 1K of RAM!
      • Most of this is the parse tree
    • 20 line script might take ~5K RAM
    • 128K RAM on the Micro Python board
    • Not 100% Python – but 90% – the most useful parts
  • I know that people who have developed alternative Ruby implementations have run into issues due to the lack of a formal specification. Has the fact that there is a specification for Python made your job easier?
    • Definitely, Python is very well defined
    • Well documented
    • Already multiple implementations
  • The WiPy chip seems like an interesting device. What are some ways in which it could be put to use? A Micro Python cluster for instance?
    • Small, cheap, low power little wireless chip that also runs Python
    • You can telnet in and have a Python REPL
    • Part of the Internet of Things
  • What changes did you have to make to get the Python interpreter to run without an underlying operating system?
  • When you were designing the hardware, what were some of the requirements that you were targeting in terms of performance or peripherals?
    • Wanted the best chip for the least money
    • Didn’t know ahead of time how many resources were required
  • What level of hardware knowledge is required to start working with the Micro Python board?
    • Virtually none
    • Just need to plug into USB and login with a terminal program to get a Python prompt
    • Can change frequency of CPU, turn on/off LEDs, etc.
    • Connecting peripherals requires some hardware knowledge
    • Module namespace to make hardware management easier
  • For anyone who is interested in writing libraries, what kinds of restrictions do they need to be aware of?
    • Be aware of RAM size limitations
    • Prety much anything that will fit will work
    • Libraries with C extensions won’t work because they rely on the CPython API
  • What license is used for the Micro Python interpreter and the PyBoard? Are the compatible with commercial uses?
    • MIT License
    • Hardware schematics are open source as well, open and accessible design
  • What are some of the most interesting/innovative projects that you have seen people make with the Micro Python board or runtime?
    • Damien attempted to make a quadcopter – not completely finished
    • Micro Python controlled guitar – PyBoard connected to actuators to play guitar
  • How does the experience of using Micro Python compare to some of the other hardware projects that are popular right now such as Arduino, Raspberry Pi or Tessel?
    • PyBoard in between Arduino and Raspberry Pi
      • More approachable than Arduino
      • Not a full OS like Raspberry Pi
    • Tessel similar to Micro Python but runs Javascript
  • EU Space Agency (Europe’s version of NASA) interested in Micro Python
    • Prepared to fund Micro Python development to explore possibilities of space based applications
      • Code needs to be well written and with few bugs
      • See if it can be used for real-time systems

Picks

Keep in Touch

The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA