The Python Podcast.__init__

The Python Podcast.__init__

By Tobias MaceyTechnologyEducation
Download on the App Store

The Python Podcast.__init__ episodes

  • Al Sweigart on Python for Non-Programmers

    Visit our site to listen to past episodes, learn more about us, and support the show.

    Summary

    We got the opportunity to speak with Al Sweigart about his work on books like ‘Automate The Boring Stuff With Python’ and ‘Invent With Python’. We discussed how Python can be useful to people who don’t work as software engineers, why coding literacy is important for the general populace and how that will affect the ways in which we interact with software.

    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
    • We are recording today on July 27th, 2015 and your hosts as usual are Tobias Macey and Chris Patti
    • Today we are interviewing Al Sweigart about Python for non-programmers
    • Interview with Al Sweigert
      • Introductions
      • How did you get introduced to Python?
        • Started in PHP/Perl, introduced to Python in 2006
        • Lack of curly braces took some getting used to
        • Clarity of standard library was refreshing

        • What inspired you to start writing books for non-programmers?

          • Friend who took care of 10 year old interested in programming
          • Lack of coherent introductory material
          • Started writing a tutorial which grew to book length
          • All books published under Creative Commons license

          • You have written a few books about teaching Python to people who have never programmed, can you share your thoughts on the best order in which to introduce the various aspects of programming?

            • Blog post driven development – http://blog.estimote.com/post/119525082855/user-stories-on-steroids-how-estimote-uses-blog?utm_source=rss&utm_medium=rss

            • Where does software testing come in when teaching new coders how to program?

              • Use the logger, debugger, and assertions effectively

              • In invent with Python you use games as the vehicle to discuss the principles involved with writing code. What is it about computer games that makes them so popular as a means to introduce programming to newcomers?

                • Something everyone is familiar with
                • Easy to make a simple game to get started
                • Good way to get creative with programming

                • For automate the boring stuff with Python you focused on explaining how programming can be useful even if it is not someone’s occupation. How did you determine which kinds of activities to focus on for the book?

                  • Got the idea at a meetup talking to someone who works in an office doing repetitive tasks
                  • A lot of office jobs that involve tedious computer work which could be automated

                  • What are your thoughts on the need for software literacy among the general population?

                    • How much programming knowledge do you think is sufficient for a member of our modern society?

                    • You also wrote about using Python to decrypt simple ciphers as a means to learn about code. What was the inspiration for this approach to software education?

                      • One of the projects in invent with Python was a simple cypher, inspired further interest in the subject

                      • In episode 7 with Jacob Kaplan-Moss we talked about how we define what a programmer is. Can you share your opinions on what separates someone who can understand code from someone who is a programmer?

                        • Barriers to entry have been significantly lowered, making the distinction very fuzzy
                        • Definition of programmer is becoming much wider

                        • Books available at:

                          • Automate the Boring Stuff
                          • Invent With Python

                          • Picks
                            • Tobias
                              • Logbook
                              • Emacs Psychotherapist
                              • Ex Machina
                              • Mining the social web

                              • Chris

                                • Emacs Rocks
                                • Working Copy
                                • Feedly
                                • Tom Collins

                                • Al

                                  • PyCon
                                  • Selenium Python Module
                                  • Seven Eaves by Neal Stephenson

                                  • Keep In Touch
                                    • Twitter
                                    • Email
                                    • 53 min
                                    • Liza Avramenko on CheckIO and Empire of Code
                                      In this episode we talked to Liza Avramenko, the CEO of CheckIO, about Empire of Code and CheckIO. We discussed what differentiates them from each other and from the other coding games that have been spreading on the internet. One of the main differentiators for CheckIO in particular is the strong focus on community. The bottom line is that if you use Python then you should check out CheckIO and Empire of Code as a great way to practice your skills.
                                      49 min
                                    • Liza Avramenko on CheckIO and Empire of Code

                                      Visit our site to listen to past episodes, find additional content, sign up for our newsletter or learn about the hosts.

                                      Summary

                                      In this episode we talked to Liza Avramenko, the CEO of CheckIO, about Empire of Code and CheckIO. We discussed what differentiates them from each other and from the other coding games that have been spreading on the internet. One of the main differentiators for CheckIO in particular is the strong focus on community. The bottom line is that if you use Python then you should check out CheckIO and Empire of Code as a great way to practice your skills.

                                      Brief Intro
                                      • Hello and welcome to Podcast.__init__, the podcast about Python and the people who make it great.
                                      • Follow us on iTunes, Stitcher or TuneIn
                                      • Give us feedback on iTunes, Twitter, email or Disqus
                                      • We donate our time to you because we love Python and its community. If you would like to return the favor you can send us a donation. Everything that we don’t spend on producing the show will be donated to the PSF to keep the community alive.
                                      • We are recording today on July 27th, 2015 and your hosts as usual are Tobias Macey and Chris Patti
                                      • Today we are interviewing Liza Avramenko about CheckIO
                                      • Interview
                                        • Please introduce yourself
                                        • How did you get introduced to Python?
                                          • Learned about it from Co-Founder Alex

                                          • For anyone not familiar with CheckIO, can you explain what it is?

                                          • What was the inspiration for creating the CheckIO platform?

                                            • Alex was bored working in a bank and wanted to create a place for sharing practice problems

                                            • What is your goal with this platform?

                                              • Become global community for most popular coding languages
                                              • Remain open and supportive

                                              • How do you deal with the question of ownership and licensing in CheckIO? Was this a tricky hurdle to get past in the site’s creation?

                                                • Being willing to share solutions publicly is a core part of the site.
                                                  • This had to be more explicitly stated due to some users confusion early on.



                                                  • Growing a community is difficult because of the chicken and egg problem. How did you kickstart the growth of the CheckIO community?

                                                    • Community always number one priority
                                                    • Started organically
                                                    • Initially had 24/7 live chat to help new users
                                                    • Openness was attractive, led to critical mass
                                                    • As community grew, need for live chat decreased
                                                    • Nature of Python community lends itself well to a collaborative, open community
                                                    • Guido provided advice on how to grow and foster community

                                                    • Guido himself has participated in a number of conversations on your platform to critique submissions. Have you received any feedback from him directly about his impressions of the system?

                                                    • How does diversity play into CheckIO? Are there aspects of the site’s design that are purposefully meant to attract a diverse audience?

                                                      • CheckIO has always targeted people with basic coding experience
                                                      • Early live chat feedback focused around very new coders wishing there was more material for them
                                                      • These early challenges resulted in the development of Empire of Code

                                                      • There are a number of other online programming-oriented games available. What makes CheckIO and Empire of Code stand out from them?

                                                        • Priority of community
                                                        • Others are more about gaming, showcasing talent

                                                        • How did you design the gamification aspects of CheckIO, and how important do you think they are to the site’s success?

                                                          • CheckIO was never a game, more of a library of challenges that have game elements
                                                          • Empire of Code is all about gamification, code and algo improvement are baked into the gameplay
                                                            • You choose Python or Javascript “legions” at character creation time, this is a one time choice.
                                                            • Buildings, troop movements, materials, etc. are all based in code
                                                            • Players can steal code and algorithms from other players
                                                              • Incredible innovation

                                                              • Great adoption story for new users – can start playing without writing any code

                                                                • But in order to really excel you will WANT to start writing code
                                                                • So many people have their original motivations for coding come from playing games

                                                                • Cooperative play in the form of training missions with other players

                                                                  • This is an opportunity to learn how people on the other side are solving the same problem

                                                                  • New languages are planned – Ruby, maybe Java?





                                                                  • Do you think that there is something about the Python language or community that inspires adoption of this kind of gamified practice?

                                                                  • You recently released the beta of a new experience called Empire of Code which is more akin to the type of video game that many people are familiar with. What inspired that evolution?

                                                                    • As part of the new experience, you also added JavaScript as an available language. Do you intend to add new languages in the future?
                                                                    • Is there a particular demographic or set of demographics that you are targeting with Empire of Code vs CheckIO?

                                                                    • What’s the monetization strategy for Empire of Code or CheckIO?

                                                                      • For Empire, you can play for free but you might keep losing your resources until you can learn to code more effectively, OR you can buy a shield which will protect your resources for a time.

                                                                      • In CheckIO, how do you label the difficulty level of the individual puzzles, is there a set of guidelines for that or is it up to the puzzle writer / submitter?

                                                                        • CheckIO trusts its community
                                                                          • The community rates each challenge



                                                                          • Part of the CheckIO platform is the ability for users to submit their own problems. How much vetting is involved before these submissions are available to users of the site?

                                                                          • Where do you see CheckIO and Empire of Code going in the future?

                                                                            • Want to have Empire of Code known as the best online game that blends in programming by the end of 2016
                                                                            • In ~5 years want to see people saying the CheckIO/Empire of Code inspired people to program as a career
                                                                            • In ~10 years want to see all major languages represented
                                                                            • Aiming to become a major game publisher

                                                                            • Picks
                                                                              • Tobias
                                                                                • JSON Web Tokens
                                                                                • Source Code Pro
                                                                                • DirEnv
                                                                                • Chappie

                                                                                • Chris

                                                                                  • Prune
                                                                                  • Nikola
                                                                                  • Warday’s Cocktail

                                                                                  • Liza

                                                                                    • Kiev, Ukraine
                                                                                    • Bulletproof Coffee

                                                                                    • Keep In Touch
                                                                                      • Twitter: @avrliza
                                                                                      • 49 min
                                                                                      • Glyph on Ethics in Software
                                                                                        In this episode we had a nice long conversation with Glyph Lefkowitz of Twisted fame about his views on the need for an established code of ethics in the software industry. Some of the main points that were covered include the need for maintaining a proper scope in the ongoing discussion, the responsibilities of individuals and corporations, and how any such code might compare with those employed by other professions. This is something that every engineer should be thinking about and the material that we cover will give you a good starting point when talking to your compatriots.
                                                                                        1 hr 20 min
                                                                                      • Glyph on Ethics in Software

                                                                                        Visit our site for past episodes and extra content.

                                                                                        Summary

                                                                                        In this episode we had a nice long conversation with Glyph Lefkowitz of Twisted fame about his views on the need for an established code of ethics in the software industry. Some of the main points that were covered include the need for maintaining a proper scope in the ongoing discussion, the responsibilities of individuals and corporations, and how any such code might compare with those employed by other professions. This is something that every engineer should be thinking about and the material that we cover will give you a good starting point when talking to your compatriots.

                                                                                        Brief Introduction
                                                                                        • Welcome to Podcast.__init__ the podcast about Python and the people who make it great
                                                                                        • Date of recording – July 21, 2015
                                                                                        • Hosts Tobias Macey and Chris Patti
                                                                                        • Follow us on iTunes, Stitcher, TuneIn, Google+ and Twitter
                                                                                        • Give us feedback! (iTunes, Twitter, email, Disqus comments)
                                                                                        • We donate our time to you because we love Python and its community. If you would like to return the favor you can send us a donation. Everything that we don’t spend on producing the show will be donated to the PSF to keep the community alive.
                                                                                        • Overview – Interview with Firstname Lastname about Topic
                                                                                        • Interview with Glyph
                                                                                          • Introductions
                                                                                          • How did you get introduced to Python? – Chris
                                                                                            • 2000 – large scale collaborative gaming system in Java
                                                                                              • Asynchronous IO
                                                                                              • Twisted



                                                                                              • Let’s start with the bad news What are some of the potential wide spread implications of less than ethical software that you were referring to in your Pycon talk? – Chris

                                                                                                • Robot Apocalypse (Not really)
                                                                                                  • Much of the discussion around this derails into unrealistic nightmare scenarios
                                                                                                  • THERAC 25 radiation machine
                                                                                                  • Toyota unintended acceleration scandal

                                                                                                  • Real worry – gradual erosion of trust in programmers and computers

                                                                                                  • First requirement for a code of ethics – a clear understanding of the reality you’re trying to litigate

                                                                                                  • The search for ethics will likely begin in academia where this aspect of software dev is more like psychology.



                                                                                                  • In your talk you commented on the training courses that Lawyers are required to take as part of their certification. Do you think the fact that there is no standardized certification body for software development contributes to a lack of widely held ethical principles in software engineering? – Tobias

                                                                                                    • Do you think that it is necessary to form such a certification mechanism for developers as part of the effort to establish a recognized ethical code? – Tobias
                                                                                                    • If we were to create a certification to indicate proper training in the software engineers code of ethics, how do you think that would affect the rate at which people enter the industry? – Tobias

                                                                                                    • Assuming we can all agree on a set of relatively strict professional ethics that would prevent the above from happening, how would we enforce those ethics? Or do you advocate an honor system? – Chris

                                                                                                      • Ethics are by definition an honors system
                                                                                                      • Enforcement would be straight forward – professional organizations to maintain a record and deviations from that record
                                                                                                      • Need better laws & better jurisprudence
                                                                                                      • We need an Underwriters Laboratory seal for software development ethics
                                                                                                      • Code of software ethics will not and should not tell you how to be a decent human being.
                                                                                                      • Devs / companies can create software that could be used for evil – “We are merchants of death and these are lethal weapons” – could conceivably earn the ethical software developer’s seal of approval.

                                                                                                      • Where does accessibility of the software we make fit into a code of ethics? Do you think there should be a minimum level of support for technologies such as screen readers or captioning for audio content in the software that we build? – Tobias

                                                                                                        • Minimum levels of knowledge required
                                                                                                        • Minimum levels of content in curriculum

                                                                                                        • In your talk you mentioned how Rackspace’s stance on user support matches the ideals you’d previously laid out, can you flesh that out a bit for us? What does that mean to individual Rackers in their day to day work lives? – Chris

                                                                                                        • In your talk you mentioned that availability of the software source should be mandatory for compliance with a properly defined ethical framework. What mechanisms for providing that access do you think would be acceptable? Should there be a central repository for housing and providing access to that source? – Tobias

                                                                                                          • Would the list of acceptable mechanisms change according to the intended audience of the software? – Tobias
                                                                                                          • What responsibility do you think producers of software should have to maintain an archive of the source for past versions? – Tobias
                                                                                                          • How should we define what level of access is provided? In the case of commercial software should the source only be available to paying customers, perhaps delivered along with the product? This also poses an interesting quandary for SaaS providers. Should they provide the source to their systems only to paying customers, or to potential customers as well? – Tobias
                                                                                                          • This question of transparency and availability of source is especially interesting in the light of a number of stories that have come out recently about patients who have been provided with prostheses and other medical devices. In a number of cases, shortly after receiving the device, the company who made it, which are increasingly startups, goes out of business, leaving the patient with no way of obtaining support for something that they are dependent on for their health and well-being. Having the source for those devices available would help mitigate the impact of such a situation. – Tobias

                                                                                                          • You brought up an interesting aspect of the trust equation and its relevance to the need for an ethical code. Because what we do as software engineers is effectively viewed as sorcery by a vast majority of the public, they must therefore wholly place their trust in us as part of using the products that we create. As you mentioned with the demise of the scribe with the rise of literacy, increasing the overall awareness of how software works at a basic level partially reduces that depency of trust. At what level of aptitude do you think our relationship with our users becomes more equitable? How does the concept of source availability play into this topic of general education? – Tobias

                                                                                                          • What can the Python community in particular do to start the ball rolling towards defining a set of professional ethics, and what has it already done in this area? – Chris

                                                                                                            • PSF Code of Conduct is a starting point
                                                                                                              • PSF is an organization of individuals
                                                                                                              • Corporations are cagey about getting involved for fear of it becoming a legally binding contract

                                                                                                              • Django Code of Conduct more specific



                                                                                                              • Picks
                                                                                                                • Tobias
                                                                                                                  • Phillips SHP9500
                                                                                                                  • keybase.io – Tweet us with your favorite thing about the show to get an invite
                                                                                                                  • Paul Blart: Mall Cop 2

                                                                                                                  • Chris

                                                                                                                    • Don’t Starve for IOS
                                                                                                                    • Want to understand Pythonâ€s comprehensions? Think in Excel or SQL.
                                                                                                                    • Barr Hill Gin

                                                                                                                    • Glyph

                                                                                                                      • Py2App
                                                                                                                      • Blog post
                                                                                                                      • PyObjC
                                                                                                                      • Sensair Sou Vide immersion circulator

                                                                                                                      • Keep In Touch
                                                                                                                        • Twitter
                                                                                                                        • Keybase.io
                                                                                                                        • email
                                                                                                                        • Glyph everywhere on the internet
                                                                                                                        • 1 hr 20 min
                                                                                                                        • Holger Krekel on Py.Test
                                                                                                                          In this episode we talked to Holger Krekel about the py.test library. We discussed the various styles of testing that it supports, the plugin system and how it compares to the unittest library. We also reviewed some of the challenges around packaging and releasing Python software and our thoughts on some ways that they can be improved.
                                                                                                                          1 hr 11 min
                                                                                                                        • Holger Krekel on Py.Test

                                                                                                                          Visit our site to listen to past episodes, learn more about the show and sign up for our mailing list.

                                                                                                                          Summary

                                                                                                                          In this episode we talked to Holger Krekel about the py.test library. We discussed the various styles of testing that it supports, the plugin system and how it compares to the unittest library. We also reviewed some of the challenges around packaging and releasing Python software and our thoughts on some ways that they can be improved.

                                                                                                                          Brief Introduction
                                                                                                                          • Welcome to Podcast.__init__ the podcast about Python and the people who make it great
                                                                                                                          • Date of recording – July 8th, 2015
                                                                                                                          • Hosts Tobias Macey and Chris Patti
                                                                                                                          • Follow us on iTunes, Stitcher or TuneIn
                                                                                                                          • Give us feedback on iTunes, Twitter, email or Disqus)
                                                                                                                          • We donate our time to you because we love Python and its community. If you would like to return the favor you can send us a donation}. Everything that we don’t spend on producing the show will be donated to the PSF to keep the community alive.
                                                                                                                          • Overview – Interview with Holger Krekel about his work on Pytest
                                                                                                                          • Interview with Holger Krekel
                                                                                                                            • Introductions
                                                                                                                              • Programming for 25 years
                                                                                                                              • Runs a consultancy
                                                                                                                              • Been to almost every EuroPyCon and PyCon US

                                                                                                                              • How did you get introduced to Python? – Chris

                                                                                                                                • Wanted to write an HTTP proxy and Java I/O was too confusing. Jython took less than a day to get it working after 2-3 days on it with Java.

                                                                                                                                • What inspired you to create Pytest, and how did the existing unittest framework play into the story? – Chris

                                                                                                                                  • Introduced to agile methods through the Zope community
                                                                                                                                  • Zope used unittest – didn’t like the boiler plate
                                                                                                                                  • Not in the spirit of Python
                                                                                                                                  • Only took ~200 lines of code to get a testing tool working
                                                                                                                                  • Original name was ‘utest’ – 2003
                                                                                                                                  • Pytest name came in 2004 on Pypy project
                                                                                                                                  • Huge number of tests on that project (20,000) – distributed test runner – xdist helped solve this.

                                                                                                                                  • There are many different styles of testing, such as BDD, unit testing, integration testing, functional testing, what attributes of py.test make it suitable or unsuitable for these different approaches? – Tobias

                                                                                                                                    • What are your views on black box testing and how would someone use py.test to implement this approach? – Tobias
                                                                                                                                    • Pytest’s plugin architecture enables you to hook into the various phases of test execution enabling you to extend Pytest in all kinds of ways beyond the original design.
                                                                                                                                    • I have been hearing a lot about property based testing which was popularized by the Quickcheck module in Haskell. Does py.test support anything like that? – Tobias
                                                                                                                                    • hypothesis-pytest

                                                                                                                                    • Do you think the characteristics and nature of the unit testing framework being used have any effect on the number and quality of the tests developers write? – Chris

                                                                                                                                      • Developers find writing tests in Pytest to be fun compared to unittest
                                                                                                                                      • Which will help people write better tests
                                                                                                                                      • Encourages refactoring

                                                                                                                                      • Is there ever a time when you would advice against writing tests? – Tobias

                                                                                                                                        • When exploring a problem, writing tests first doesn’t make sense
                                                                                                                                        • When getting feedback on a potential approach, writing tests first can be a waste of time

                                                                                                                                        • What are some signs that you watch out for when writing tests that tell you that a particular feature needs to be refactored? – Tobias

                                                                                                                                          • When the test code is fragile it should be refactored
                                                                                                                                          • Requires experience to really understand when to refactor
                                                                                                                                          • When it’s not fun anymore or the tests are repetitive

                                                                                                                                          • For someone who is converting their existing unit tests from UnitTest/Nose style to use py.test in an idiomatic manner, what are some of the biggest differences to be aware of? – Tobias

                                                                                                                                            • Generator/yield based testing should move to property based testing
                                                                                                                                            • If py.test can’t run a UnitTest/Nose style test it is considered a bug and gets fixed

                                                                                                                                            • Has the strict backwards compatibility policy presented any interesting technical challenges thus far? – Chris

                                                                                                                                              • Yes it definitely makes more work
                                                                                                                                              • However breaking the API in a large project like this will cause too many problems for users

                                                                                                                                              • py.test supports execution of tests written with other frameworks, how much ongoing maintenance does this feature require as changes are made to the other implementations? – Tobias

                                                                                                                                              • The web page says that Pytest is designed to work with domain specific and non Python tests, and in fact a coworker is using it to test a node.js project – how did Pytest’s design enable this? – Chris

                                                                                                                                                • Pytest uses a collection tree model to represent your project
                                                                                                                                                  • This is not Python specific
                                                                                                                                                  • All classes and functions are just mapped into this tree, not directly on the Python function

                                                                                                                                                  • There are few Python specific hooks for fixtures etc.

                                                                                                                                                  • People have written plugins so they can express their tests in YAML, Microsoft Excel

                                                                                                                                                  • Tests are represented as items

                                                                                                                                                  • All plugins are written in Python



                                                                                                                                                  • What are some of the most interesting applications of py.test that you have seen? – Tobias

                                                                                                                                                    • Plugins!
                                                                                                                                                    • Pytest-BDD
                                                                                                                                                    • Pytest-C++
                                                                                                                                                    • Pytest-sugar
                                                                                                                                                    • Py.test plugin list

                                                                                                                                                    • Speaking about adoption, do you have any sense of the relative adoption of Pytest versus unitest or other tools? – Tobias

                                                                                                                                                      • Very hard to actually know
                                                                                                                                                      • Download numbers are not a clear indicator due to robots, CI systems, etc.
                                                                                                                                                      • Quantifying market share is hard to do
                                                                                                                                                      • Popularity is not a useful heuristic in determining a good fot for technology adoption
                                                                                                                                                        • But popularity is an indicator for the level of support you might receive
                                                                                                                                                        • Tech can be popular but very poorly maintained



                                                                                                                                                        • Are there any features of py.test that would make it suitable for use with configuration management tools and infrastructure testing? – Tobias

                                                                                                                                                          • Example driven testing
                                                                                                                                                          • Run py.test from a blackbox approach
                                                                                                                                                          • Largest benefit would be from having one testing tool used across the organization

                                                                                                                                                          • Where do you see Pytest and more generally test frameworks headed in the future? – Chris

                                                                                                                                                            • No big changes for Pytest – lots of incremental things
                                                                                                                                                            • Plugins will add functionality
                                                                                                                                                            • Holger is also the author of Tox
                                                                                                                                                            • Integration testing and testing in more complex environments are a direction that test management tools will likely go
                                                                                                                                                            • Tools like Jenkins can be a real headache in trying to have a good testing story for your company
                                                                                                                                                            • https://devpi.net/hpk/dev/devpi-server/2.2.0/+toxresults/devpi-server-2.2.0.tar.gz?utm_source=rss&utm_medium=rss

                                                                                                                                                            • Any questions we didn’t ask?

                                                                                                                                                              • Pytest is a very healthy project! There are 10 regular contributors – this is exceptional among OSS projects

                                                                                                                                                              • Picks
                                                                                                                                                                • Tobias
                                                                                                                                                                  • python-future
                                                                                                                                                                  • six
                                                                                                                                                                  • The Way Back
                                                                                                                                                                  • Rosewill BK-500A} or BK-500i
                                                                                                                                                                  • pipdeptree
                                                                                                                                                                  • pundler

                                                                                                                                                                  • Chris

                                                                                                                                                                    • Crop Bavarian Weizen
                                                                                                                                                                    • Dutch Pancakes
                                                                                                                                                                    • Prophet

                                                                                                                                                                    • Holger

                                                                                                                                                                      • The Utopia of Rules
                                                                                                                                                                      • IPFS.io – The interplanetary file system
                                                                                                                                                                      • A New Way to Look at Networking

                                                                                                                                                                      • Keep In Touch
                                                                                                                                                                        • Twitter
                                                                                                                                                                        • Blog
                                                                                                                                                                        • The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA

                                                                                                                                                                          1 hr 11 min
                                                                                                                                                                        • Damien George Talks To Us About MicroPython
                                                                                                                                                                          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.
                                                                                                                                                                          50 min
                                                                                                                                                                        • Damien George Talks To Us About MicroPython

                                                                                                                                                                          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
                                                                                                                                                                                                                • Tobias
                                                                                                                                                                                                                  • Machine Gun Preacher – Real life story of Sam Childers’ work in Southern Sudan
                                                                                                                                                                                                                  • Pocket Book Android App – E-Book app with good UI/UX and solid feature set
                                                                                                                                                                                                                  • Online access to digital media through local library memberships
                                                                                                                                                                                                                    • Hoopla Digital
                                                                                                                                                                                                                    • Overdrive



                                                                                                                                                                                                                    • Chris

                                                                                                                                                                                                                      • Real Ramen
                                                                                                                                                                                                                      • RedHat Summit
                                                                                                                                                                                                                      • The SELinux Coloring Book

                                                                                                                                                                                                                      • Damien

                                                                                                                                                                                                                        • MOSH – Mobile shell, resilient SSH that allows for resuming sessions across networks, computer sleeps, etc.

                                                                                                                                                                                                                        • Keep in Touch
                                                                                                                                                                                                                          • Twitter
                                                                                                                                                                                                                            • @micropython
                                                                                                                                                                                                                            • @damienpgeorge

                                                                                                                                                                                                                            • GitHub – micropython

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

                                                                                                                                                                                                                              50 min

                                                                                                                                                                                                                            About The Python Podcast.__init__

                                                                                                                                                                                                                            From the publisher's feed

                                                                                                                                                                                                                            The podcast about Python and the people who make it great

                                                                                                                                                                                                                            More shows like The Python Podcast.__init__

                                                                                                                                                                                                                            Freakonomics Radio by Freakonomics Radio + Stitcher

                                                                                                                                                                                                                            Freakonomics Radio

                                                                                                                                                                                                                            32,046 Listeners

                                                                                                                                                                                                                            Odd Lots by Bloomberg

                                                                                                                                                                                                                            Odd Lots

                                                                                                                                                                                                                            1,975 Listeners

                                                                                                                                                                                                                            The Changelog: Software Development, Open Source by Changelog Media

                                                                                                                                                                                                                            The Changelog: Software Development, Open Source

                                                                                                                                                                                                                            286 Listeners

                                                                                                                                                                                                                            Data Skeptic by Kyle Polich

                                                                                                                                                                                                                            Data Skeptic

                                                                                                                                                                                                                            476 Listeners

                                                                                                                                                                                                                            Software Engineering Daily by Software Engineering Daily

                                                                                                                                                                                                                            Software Engineering Daily

                                                                                                                                                                                                                            623 Listeners

                                                                                                                                                                                                                            Talk Python To Me by Michael Kennedy

                                                                                                                                                                                                                            Talk Python To Me

                                                                                                                                                                                                                            582 Listeners

                                                                                                                                                                                                                            Super Data Science: ML & AI Podcast with Jon Krohn by Jon Krohn

                                                                                                                                                                                                                            Super Data Science: ML & AI Podcast with Jon Krohn

                                                                                                                                                                                                                            305 Listeners

                                                                                                                                                                                                                            Python Bytes by Michael Kennedy and Calvin Hendryx-Parker

                                                                                                                                                                                                                            Python Bytes

                                                                                                                                                                                                                            213 Listeners

                                                                                                                                                                                                                            Syntax - Tasty Web Development Treats by Wes Bos & Scott Tolinski - Full Stack JavaScript Web Developers

                                                                                                                                                                                                                            Syntax - Tasty Web Development Treats

                                                                                                                                                                                                                            985 Listeners

                                                                                                                                                                                                                            DataFramed by DataCamp

                                                                                                                                                                                                                            DataFramed

                                                                                                                                                                                                                            265 Listeners

                                                                                                                                                                                                                            Practical AI by Daniel Whitenack and Chris Benson

                                                                                                                                                                                                                            Practical AI

                                                                                                                                                                                                                            203 Listeners

                                                                                                                                                                                                                            The Intelligence from The Economist by The Economist

                                                                                                                                                                                                                            The Intelligence from The Economist

                                                                                                                                                                                                                            2,539 Listeners

                                                                                                                                                                                                                            The Real Python Podcast by Real Python

                                                                                                                                                                                                                            The Real Python Podcast

                                                                                                                                                                                                                            139 Listeners

                                                                                                                                                                                                                            声动早咖啡 by 声动活泼

                                                                                                                                                                                                                            声动早咖啡

                                                                                                                                                                                                                            304 Listeners

                                                                                                                                                                                                                            The Foreign Affairs Interview by Foreign Affairs Magazine

                                                                                                                                                                                                                            The Foreign Affairs Interview

                                                                                                                                                                                                                            472 Listeners