Open Source

Trent Nelson on PyParallel - Episode 27

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

Summary

Trent Nelson is a software engineer working with Continuum Analytics and a core contributor to CPython. He started experimenting with a way to sidestep the restrictions of the Global Interpreter Lock without discarding its benefits and that has become the PyParallel project. We had the privilege of discussing the details around this innovative experiment with Trent and learning more about the challenges he has experienced, what motivated him to start the project, and what it can offer to the community.

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
  • I would also like to thank Hired, a job marketplace for developers, for sponsoring this episode of Podcast.__init__. Use the link hired.com/podcastinit to double your signing bonus.
  • We are recording today on September 7th, 2015 and your hosts as usual are Tobias Macey and Chris Patti
  • Today we are interviewing Trent Nelson about PyParallel
Hired LogoOn Hired software engineers & designers can get 5+ interview requests in a week and each offer has salary and equity upfront. With full time and contract opportunities available, users can view the offers and accept or reject them before talking to any company. Work with over 2,500 companies from startups to large public companies hailing from 12 major tech hubs in North America and Europe. Hired is totally free for users and If you get a job you’ll get a $2,000 “thank you” bonus. If you use our special link to signup, then that bonus will double to $4,000 when you accept a job. If you’re not looking for a job but know someone who is, you can refer them to Hired and get a $1,337 bonus when they accept a job.

Interview with Trent Nelson

  • Introductions
  • How did you get introduced to Python?
  • For our listeners who may not be aware, can you give us an overview of what Pyparallel is and what makes it different from other Python implementations?
  • How did PyParallel come about?
  • What are some of the biggest technical hurdles that you have been faced with during your work on PyParallel?
  • I understand that PyParallel currently only works on Windows. What was the motivation for that and what would be required for enabling PyParallel to run on a Linux or BSD style operating system?
  • How does Pyparallel get around the limitations of the global interpreter lock without removing it?
  • Is there any special syntax required to take advantage of the parallelism offered by PyParallel? How does it interact with the threading module in the standard library?
  • In the abstract for the Pyparallel paper, you cite a simple rule – “Don’t persist parallel objects” – how easy is this to do with currently available concurrency paradigms and APIs, and would it make sense to add such support?
    • For instance, how would one be sure to follow this rule when using Twisted or asyncio?
  • Are there any operations that are not supported in parallel threads?
  • What drove the decision to fork Python 3.3 as opposed to the 2.X series?
  • In the documentation you mention that the long term goal for PyParallel is to merge it back into Python mainline, possibly within 5 years. Has anything changed with that goal or timeline? What milestones do you need to hit before that becomes a realistic possibility?
  • Can you compare PyParallel to PyPy-STM and Go with Goroutines in terms of performance and user implementation?
  • What are some particular problem areas that you are looking for help with?
  • Assuming that it does get merged in as Python 4, how do you think that would affect the features and experiments that went into Python 5?
  • To be continued…

Picks

Keep In Touch

Dag Brattli on RxPy - Episode 26

Visit our site to listen to past episodes, support the show, and sign up for our newsletter!

Summary

Dag Brattli is an engineer with Microsoft and in his spare time he created the ported the Reactive Xtensions framework to Python in the form of the RxPy library. In this episode we had the opportunity to speak with Dag and learn more about what ReactiveX is, why it is useful and how you can use it in your Python programs. It is definitely a very powerful programming patern when manipulating data streams which is becoming increasingly common in modern software architectures.

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
  • I would also like to thank Hired, a job marketplace for developers, for sponsoring this episode of Podcast.__init__. Use the link hired.com/podcastinit to double your signing bonus.
  • We are recording today on October 2nd, 2015 and your hosts as usual are Tobias Macey and Chris Patti
  • Today we are interviewing Dag Brattli about the RxPy project
hired-logo-dark-padding.pngOn Hired software engineers & designers can get 5+ interview requests in a week and each offer has salary and equity upfront. With full time and contract opportunities available, users can view the offers and accept or reject them before talking to any company. Work with over 2,500 companies from startups to large public companies hailing from 12 major tech hubs in North America and Europe. Hired is totally free for users and If you get a job you’ll get a $2,000 “thank you” bonus. If you use our special link to signup, then that bonus will double to $4,000 when you accept a job. If you’re not looking for a job but know someone who is, you can refer them to Hired and get a $1,337 bonus when they accept a job.

Interview with Dag Brattli

  • Introductions
  • How did you get introduced to Python?
  • For our listeners who haven’t heard of it before, can you describe what RxPy is and why someone might want to use it?
  • What problem domains are best suited for using the Reactive X approach?
  • What is involved in integrating RxPy into an existing code base?
  • When should we use RxPy over asyncio or asynchronous workers like Celery?
  • What resources or tutorials do you recommend people use when trying to understand how and when to use the Reactive X tools?
  • What in particular about Python lends itself to the ReactiveX pattern, and what features of the language does RxPy leverage in particular in its implementation?
  • In what ways does the Python implementation of the Reactive X framework differ from those of other languages?
  • The project description references the use of LINQ for querying the various data streams that RxPy enables consumption of. I had always heard of LINQ in the context of traditional database queries. What makes LINQ a good choice for stream processing?
  • I mostly hear about ReactiveX in terms of UI design, but the project description seemed to indicate it was much more generally useful. What are some of the less common and more interesting problems that RxPy lends itself to solving?

Picks

Keep In Touch

uWSGI Core Developers - Episode 25

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

Summary

uWSGI is one of the most versatile application servers available. It was originally written for running Python applications and has since gained functionality to support Perl, Ruby, PHP, and more in addition to the incredible feature set. In this episode Tobias got to interview three of the core developers of this project and find out more about how the different pieces of it fit together and what its future holds.

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
  • I would also like to thank Hired, a job marketplace for developers, for sponsoring this episode of Podcast.init. Sign up at hired.com/podcastinit to double your signing bonus.
  • We are recording today on September 22nd, 2015 and your hosts as usual are Tobias Macey and Chris Patti
  • Today we are interviewing the core developers of uWSGI (Adriano Di Luzio, Riccardo Magliocchetti, and Roberto De Ioris)

Interview with uWSGI core developers

  • Introductions
  • How did you get introduced to Python?
  • For anyone who hasn’t come across the project before, can you explain what uWSGI is and what makes it unique?
  • How did you architect uWSGI in order to allow for supporting so many different languages?
  • The feature set of uWSGI is truly incredible. Does this make the code complicated to understand and modify?
  • Can you describe some of your favorite features in uWSGI?
  • What have you found to be the most overlooked or underutilized features of uWSGI?
  • Can you briefly describe how Emperor mode works and how that can be used to handle routing between microservices?
  • Could you discuss some of the particular features UWSGI provides around load balancing?
    • Is connection draining supported?
    • Can nodes be dynamically added and removed from the pool or does the config need to be rewritten and UWSGI restarted?
  • The configuration syntax looks like it provides a very rich set of capabilities. Is it based on a general purpose programming language or is it a DSL?
  • What might be some common use cases for using UWSGI in tandem with another web server like NGINX?
  • I have read that WSGI does not get along with http/2. Are there any plans to look towards supporting that protocol in some way?
  • What new capabilities can we look forward to in the future of uWSGI?

Picks

Keep In Touch

Griatch on Evennia (Making MUDs with Python) - Episode 24

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

Summary

Griatch is an incredibly talented digital artist, professional astronomer and the maintainer of the Evennia project for creating MUDs in Python. We got the opportunity to speak with him about what MUDs are, why they’re interesting and how Evennia simplifies the process of creating and extending them. If you’re interested in building your own virtual worlds, this episode is a great place to start.

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 September 15th, 2015 and your hosts as usual are Tobias Macey and Chris Patti
  • Today we are interviewing Griatch about the Evennia project

Interview with Griatch

  • Introductions
  • How did you get introduced to Python?
  • Can you explain what MUDs are and what that has to do with Evennia?
  • What is it about MUDs that keeps them interesting long after the technical restrictions that led to their creation are no longer present, especially in light of 3D multiplayer games like WoW and EVE Online?
  • Can you give us a rundown of the various parts of Evennia (MUD engine, web interface, etc.) and how they fit together?
  • How does Evennia handle the fact that a MUD world is comprised of many hundreds of objects containing various properties, maintaining consistent, persistent state as players interact with them?
  • What concurrency tools or paradigms does Evennia use?
  • During the height of MUDs popularity, one highly sought after feature was the idea of being able to have players travel from one MUD instance to another, would it be possible to implement this in Evennia?
  • Has the Evennia core team given any thought to adding features to support a richer client interface? Graphical maps or the like?
  • How difficult would it be to use Evennia to interface with something like Slack or Hipchat for a company-wide MUD? Have you ever heard of someone doing something like that?
  • Are there any fully fledged running MUDs built with Evennia out in the wild?

Picks

Keep In Touch

Links

Hylang Core Developers - Episode 23

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

Summary

We got the chance to talk to some of the core developers of Hylang, which is a Lisp dialect that runs on the Python VM! We talked about how it got started, how it works and why you should try it. Of particular interest is our discussion about using Hylang to backport language features, or create entirely new ones due to the power of Lisp and the Python AST (Abstract Syntax Tree). If you need to level up your Lisp knowledge, they gave us a great list of references to help out.

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 August 27, 2015 and your hosts as usual are Tobias Macey and Chris Patti
  • Today we are interviewing Paul Tagliamonte, Tuukka Turto, and Morten Linderud

Interview with Hylang Developers

  • Introductions
  • How did you get introduced to Python?
  • Before we get too far along can you explain what Hy is?
  • What inspired you to create Hy?
  • What do you recommend as reference material for Python developers to gain familiarity with idiomatic Lisp?
  • What are some of the problem domains where implementation becomes easier or more elegant as a result of Hy’s LISP syntax?
  • Given the ability to create powerful macros in Lisp, could Hy be used as a way of prototyping or backporting new language features in Python?
  • What are some of the most challenging and interesting problems you encountered bringing an alternate syntax to the Python runtime?
  • While playing around with the Hy REPL I noticed that it does visual matching of parentheses when closing an expression. What other niceties have been included in the REPL?
  • What are your thoughts on adding autocompletion to the REPL as a way of encouraging discovery and exploration of the Hy language?
  • Which LISP variant is Hy most similar to, and why?
  • How does garbage collection work in Hy, and why?
  • How hard would it be to port existing LISP packages to Hy like MACSYMA or CLOS?
  • What kind of overhead in terms of runtime performance and memory usage does Hy impose? Has this been a challenge in Hy’s development?
  • What are some of the most innovative uses for Hy that you have seen or created?
  • What does the future hold for Hy?
  • I noticed that there are a large number of core contributors to Hylang and I’m curious how you determine what features to work on?

Picks

Keep In Touch

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

Jessica McKellar - Episode 21

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

Summary

We got the chance to talk to Jessica McKellar about her work in the Python community. She told us about her experience as a director for the PSF, working as the diversity outreach manager for PyCon, and being a champion for improving the on-boarding experience for new users of Python. We also discussed perceptions around the performance of Python and some of the work being done to improve concurrency, as well as her work with OpenHatch.

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 Aug, 12 2015 and your hosts as usual are Tobias Macey and Chris Patti
  • Today we are interviewing Jessica McKellar

Interview with Jessica McKellar

  • Introductions
  • How did you get introduced to Python?
    • Attended MIT, originally for Chemistry
    • Had friends pursuing CS degrees
    • Toolset and skills seemed worth investingating
    • Led to BA and MS
    • MIT was in transition from LISP to Python
  • Can you describe what your responsibilities are as a director of the PSF?
    • A lot of outreach and investment in the community
  • Do you think the PSF does a good job of making people aware of what it is, what it does for the community, and how they can help?
    • Struggled with this historically but has gotten better in recent years
    • Website re-design has helped
  • A large focus of your work in the community has been around improving the experience of users who are new to Python and programming in general and I noticed that you just received the Frank Willison Memorial Award for your contributions to outreach and education in the Python community. What is your motivation behind this particular focus?
    • Great deal of empathy for newcomers due to personal history
    • Knowing how to program changes how you think about the world
  • Has the situation for newcomers running Windows who wish to try Python gotten any better since your keynote at Kiwi PyCon?
    • Some vaguaries of setup have gotten better with recent versions (e.g. setting path variables)
    • Ruby has in-browser tutorial to get people hooked
  • Do “Batteries Included’ distributions like Anaconda help or is it the same problem of visibility you discussed in your talk?
    • Informatino flow / what are you default options question
    • We could be much more opinionated about this
  • You have presented a number of times about the future of Python and how we can all help to make sure that story is a happy one. How has the material for that talk changed over the past few years?
    • As a largely volunteer community, how to maximize the impact of the bandwidth that we have
    • Focus on the ‘top of the funnel’ to win over new users
    • Python has the steepest positive curve of any language
    • Community should invest in AP high school Python curriculum
  • What do you anticipate will be the talking points for this topic over the next few years?
    • We need to be smart about which areas we invest in to ensure success e.g. mobile, web, desktop.
  • If you could grade the Python community on how well they have listened to and acted on the calls to action in your talks over the past few years, what would you give them?
    • Rallying large groups of volunteers is a hard problem
    • We need to think about commercial partnerships in key areas
  • In your Kiwi PyCon talk you mentioned Kivy as an example of a great way to do mobile software development in Python. It feels to me like the Kivy team are still not getting the community involvement and buy in they should. How can we help make Kivy the mobile app development platform of choice for beginners?
    • This will be a tough battle because Python is not the default platform for mobile compared to Java for Android, Objective C, Swift
    • Users vote with their feet depending on what provides the most value to them
    • Opportunity for a virtuous cycle here
  • Game development as an entree to programming has been a recurring theme on our podcast. Has the Python game dev scene improved at all since 2013? And do you still see the same pitfalls holding people back (like app packaging), or have we moved on to different problems?
    • The problems are largely the same
    • Status quo still feels pretty broken
    • Creative experiments around this definitely make sense for the community
    • KivEnt could be a win here because Kivy apps are free standing binaries and require no dependencies.
  • What do you view as the biggest threats to the popularity of Python currently and what can we do to address them?
    • Other languages gaining popularity where Python has historically been strong (e.g. server-side development)
    • A lot of this may be a perception issue
    • May be largely a marketing problem
  • I understand that you were involved in the formation of the Open Hatch organization. Can you describe what Open Hatch does and how our listeners can get involved?
    • Non-profit dedicated to lowering barriers to entry for open source contribution
    • Host workshops in colleges, underserved communities, etc.

Picks

Keep In Touch

  • Google for “Jesstess”

Conference Presentations

Static Site Generators with Justin Mayer and Roberto Alsina - Episode 20

Visit our site to listen to past episodes, comment on the show or find out more about us.

Summary

In this episode we had the opportunity to discuss the world of static site generators with Roberto Alsina of the Nikola project and Justin Mayer of the Pelican project. They explained what static site generators are and why you might want to use one. We asked about why you should choose a Python based static site generator, theming and markup support as well as metadata formats and documentation. We also debated what makes Pelican and Nikola so popular compared to other projects.

Brief Introduction

  • 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.
  • Date of recording – August 08, 2015
  • Hosts Tobias Macey and Chris Patti
  • Today we are interviewing the core developers of Nikola and Pelican about static site generators

Interview

  • Introductions
    • Monitorial.net <- Justin
    • Upriise <- Justin
    • Works for Canonical <- Roberto
  • How did you get introduced to Python?
    • Justin:
      • Needed a way to get order data to payment processor for commerce company
    • Roberto:
      • 1996 got involved with Linux
      • Found XForms
      • Wrote Python bindings
  • For our listeners who might not know, what are static site generators and what are some of the advantages they bring to the table over other similar systems that perform the same function?
    • Roberto
      • Remove all the effort from the computer that serves the website
      • Server runs no code
      • Smaller ssurface area for security purposes
    • Justin
      • Better performance – important for responsiveness and uptime
      • Easier deployment and maintenance
      • Easier versioning and migration
      • Can version both input and output
  • There are a number of static site generators available in virtually every language. Why would a user want to leverage a Python solution vs Ruby, javascript, Go, etc.?
    • ReStructured TeXT is best supported in Python
    • Good language for supporting various markup syntaxes
  • Most static site generators seem to have a primary focus on blogging. What is it about these tools that lend themselves so well to that use case?
    • The author of the tools shape the purpose of the tool
    • Most popular among programmers which is a demographic that is likely to have a blog
      • Workflow is similar to what programmers are used to
    • Still useful for non-chronological pages due to templating system
  • Something that struck me comparing the two systems is that they have largely the same kinds of data going into the metadata block for each post, but it’s expressed in a different / incompatible way in each. Have you ever considered agreeing on a standard and even advertising it as such so all static site generators could make use of it?
  • Challenging because of the idiosyncratic way problems are solved in each system
  • Wouldn’t end up with the same site even if metadata were identical
  • Roberto & Justin are talking, this may happen!
  • The themes in Pelican and Nikola have very different feels and one of the things that initially drew me to Pelican is the larger catalog of themes available. What are some of the challenges involved in creating a theme for a static site generator?
  • Many programmers who write SSGs aren’t amazing at HTML
  • Pelican and Nikola seem to be the most widely used projects for creating static sites using Python. What do you think is the key to that popularity?
    • Frequent updates, good documentation and large community
    • Easy to get up and running
      • Need to be productive inside of 2 minutes
    • Good first impressions are key
    • Importance of extensibility
    • Core modularity and availability of plugins
  • A lot of people have written about the importance (and difficulty) of writing and maintaining good documentation in open source projects. Nikola’s documentation is excellent. How did Nikola manage this in its development process and what can other open source projects learn from this?
    • No secrets – just do it and keep it updated.
    • Need to look at the tool as if using it for the first time
  • What are some specific examples of unique and interesting uses your site generators have been put to?
    • Justin:
      • kernel.org, Debian, Chicago Linux Users, TransFX (translation house) all use Pelican
      • Embedding Jupyter notebooks and MathML rendering in posts
      • Site search plugin
    • Nikola:
      • Big adoption in the sciences (Jupyter notebook embedding supported in core)
      • Output is forever
      • Plugin to trigger internet archive to reindex site
  • Nikola’s flexible deployment architecture (e.g. the use of doit tasks) seems to lend itself to some interesting use cases. What was the inspiration for this?
    • Build was taking 1 1/2 hours, doit allowed for incremental generation
    • Doit is a generic task system. Nikola has no “main” it’s a collection of doit tasks.
  • Is there any specific help that you would like to ask of the audience?
    • Contribute themes
    • Help with reviewing issues and pull requests

Picks

Keep In Touch

Al Sweigart on Python for Non-Programmers - Episode 19

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?
  • 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:

Picks

Keep In Touch

Liza Avramenko on CheckIO and Empire of Code - Episode 18

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

Keep In Touch