Software

Eric Holscher on Documentation and Read The Docs - Episode 36

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

Summary

The first place we all go for learning about new libraries is the documentation. Lack of effective documentation can limit the adoption of an otherwise excellent project. In this episode we spoke with Eric Holscher, co-creator of Read The Docs, about why documentation is important and how we can all work to make it better.

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 pythonpodcast.com
  • 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.
  • Linode is sponsoring us this week. Check them out at linode.com/podcastinit and get a $10 credit to try out their fast and reliable Linux virtual servers for your next project
  • We are recording today on November 30th, 2015 and your hosts as usual are Tobias Macey and Chris Patti
  • Today we are interviewing Eric Holscher about Documentation
Linode Sponsor BannerUse the promo code podcastinit10 to get a $10 credit when you sign up!

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 Eric Holscher

  • Introductions
  • How did you get introduced to Python? – Chris
  • You are one of the people behind the Read The Docs project. What was your inspiration for creating that platform and why is documentation so important in software? – Tobias
  • What makes Read The Docs different from other static sources for documentation? – Chris
  • The Python community seems to have a stronger focus on well-documented projects than some other languages. Do you have any theories as to why that is the case? – Tobias
  • Can you outline the landscape of projects that leverage the documentation capabilities that are built in to the Python language? – Tobias
  • Can you estimate the overall user base for Read The Docs? – Chris
  • Do you have any advice around methods or approaches that can help developers create and maintain effective documentation? – Tobias
  • Can you list some projects that you have found to provide the best documentation and what was remarkable about them? – Tobias
  • Newcomers to open source are often encouraged to submit improvements to a projects documentation as a way to get started and become involved with the community. Do you have any general advice on how to find and understand undocumented features? – Tobias
  • Do you have any statistics on the languages represented among the projects that host their documentation with you? – Tobias
  • What are some of the challenges you’ve faced and overcome in maintaining such a large repository of documentation from so many projects? – Chris
  • How can our listeners contribute to the project? – Chris

Picks

Keep In Touch

Links

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

Sylvain Thénault on ASTroid - Episode 35

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

Summary

The Python AST (Abstract Syntax Tree) is a powerful abstraction that allows for a number of innovative projects. ASTroid is a library that provides additional convenience methods to simplify working with the AST. In this episode we spoke with Sylvain Thénault from Logilab about his work on ASTroid and how it is used to power the popular PyLint static analysis tool.

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 pythonpodcast.com
  • 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.
  • Linode is sponsoring us this week. Check them out at linode.com/podcastinit and get a $10 credit to try out their fast and reliable Linux virtual servers for your next project
  • We are recording today on November 23rd, 2015 and your hosts as usual are Tobias Macey and Chris Patti
  • Today we are interviewing Sylvain Thénault about ASTroid
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.

Linode Sponsor BannerUse the promo code podcastinit10 to get a $10 credit when you sign up!

Interview with Sylvain Thénault

  • Introductions
  • How did you get introduced to Python? – Chris
  • Can you explain what an Abstract Syntax Tree is and why it is a useful language feature? – Tobias
  • What was your inspiration for creating ASTroid? – Chris
  • What features does ASTroid offer over Python’s standard AST package, and what makes those features important? – Chris
  • I know that the ASTroid package is used in Pylint which is also maintained by Logilab. How does the AST facilitate static analysis of Python projects and are there cases where you have to fall back to text parsing? – Tobias
  • Beyond static analysis, what are some of the other possible uses for the Python AST? – Tobias
  • The documentation for the AST package in Python mentions that the specific syntax objects in the tree are subject to change between releases. Does the ASTroid package provide any abstractions to maintain a consistent API between versions or does it just provide a pass-through? – Tobias
  • Have you encountered any challenges in testing ASTroid given that it operates at such a low level in the language? – Chris
  • Do you have trouble attracting contributors given the great understanding of Python’s inner working required? – Chris
  • Does the implementation or representation of the AST differ between different distributions of Python such as CPython, PyPy and Jython? – Tobias
  • What are some of the most interesting applications ASTroid has been used in? – Chris

Picks

Keep In Touch

Links

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

Stuart Mumford on SunPy - Episode 34

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

Summary

What is Solar Physics? How does it differ from AstroPhysics? What does this all have to do with Python? In this episode we answer all of those questions when we interview Stuart Mumford about his work on SunPy. So put on your sunglasses and learn about how to use Python to decipher the secrets of our closest star.

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 pythonpodcast.com
  • 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.
  • Linode is sponsoring us this week. Check them out at linode.com/podcastinit and get a $10 credit to try out their fast and reliable Linux virtual servers for your next project
  • We are recording today on November 17th, 2015 and your hosts as usual are Tobias Macey and Chris Patti
  • Today we are interviewing Stuart Mumford about SunPy
Linode Sponsor BannerUse the promo code podcastinit10 to get a $10 credit when you sign up!

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 Stuart Mumford

  • Introductions
  • How did you get introduced to Python? – Chris
  • Can you explain what the research and applications of solar physics are and how SunPy facilitates those activities? – Tobias
  • What was your inspiration for the SunPy project and what are you using it for in your research? – Tobias
  • Can you tell us what SunPy’s map and light curve classes are and how they might be used? – Chris
  • Are there any considerations that you need to be aware of when writing software libraries for practitioners of the hard sciences that would be different if the target audience were software engineers? – Tobias
  • Can SunPy consume data directly from telescopes and other observational apparatus? – Chris
  • I noticed on the project site that SunPy leverages AstroPy internally. Can you describe the relationship between the two projects and why someone might want to use SunPy in place of or in addition to AstroPy? – Tobias
  • Looking at the documentation I got the impression that there is a fair amount of visual representation of data for analysis. Can you describe some of the challenges that has posed? Is there integrated support for project Jupyter and are there other graphical environments that SunPy supports? – Tobias
  • What are some of the most interesting applications that SunPy has been used for? – Chris

Picks

Keep In Touch

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

Erik Tollerud on AstroPy - Episode 32

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

Summary

Erik Tollerud is an astronomer with a background in software engineering. He leverages these backgrounds to help build and maintain the AstroPy framework and its associated modules. AstroPy is a set of Python libraries that provide useful mechanisms for astronomers and astrophysicists to perform analyses on the data that they receive from observational equipment such as the mountain observatory that Erik was preparing to visit when we talked to him about his work. If you like Python and space then you should definitely give this episode a listen!

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 pythonpodcast.com
  • 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.
  • Linode is sponsoring us this week. Check them out at linode.com/podcastinit and get a $10 credit to try out their fast and reliable Linux virtual servers for your next project
  • We are recording today on November 2nd, 2015 and your hosts as usual are Tobias Macey and Chris Patti
  • Today we are interviewing Erik Tollerud about AstroPy
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.

linode-banner-sponsor-large.pngUse the promo code podcastinit10 to get a $10 credit when you sign up!

Interview with Erik Tollerud

  • Introductions
  • How did you get introduced to Python?
  • What was the inspiration to create AstroPy and what kinds of astronomical research can it be used for?
  • Can you tell us what AstroPy’s modeling functions are and give us examples of where they might be used?
  • Are there any considerations that you need to be aware of when writing software libraries for practitioners of the hard sciences that would be different if the target audience were software engineers?
  • What are some of the most interesting applications that AstroPy has been used for?
  • Are there open data sets that are available for people outside of academia to do analysis of astronomical data using AstroPy?
    • Have there been any useful discoveries made in this way?
  • Could you please tell us about AstroPy’s Virtual Observatory capabilities?
  • What are some interesting use cases for AstroPy’s Cosmological calculations?
  • Are there other libraries available that provide similar capabilities, perhaps in other languages? What makes AstroPy unique among them?
  • Can AstroPy consume data directly from telescopes and other observational apparatus?
  • The amount of data generated from observing astronomical phenomena must be immense. What are some of the tools used to manage that data and how does AstroPy interface with them?
  • How might AstroPy be used to prove or disprove the cold dark matter hypothesis?
  • What are some of the architectural choices that have been made to allow for the AstroPy library to serve as the core for a number of other add-ons?
    • Does AstroPy provide a common data format to allow for easy interoperability between the various addons?
  • I noticed that AstroPy adheres to the PSF code of conduct, as well as having adopted an enhancement proposal process modelled after PEPs. Can you explain why that is important and what kind of an impact it has had on the community around AstroPy?

Picks

Keep In Touch

Links

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

Tom Rothamel on Ren’Py - Episode 30

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

Summary

Tom Rothamel is an embedded systems engineer who spends his free time working on Ren’Py, a visual novel engine written in Python. Ren’Py allows you to write interactive fiction experiences and deploy them across desktop and mobile platforms. By creating a purpose-built DSL for describing the interactions, users of Ren’Py can focus on crafting polished experiences without fighting through the vagaries of programming languages, while still providing access to the internals when necessary. Listen to our interview with Tom to learn more about this long-running project and what makes it so interesting.

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.
  • Linode is also sponsoring us this week. Check them out at linode.com/podcastinit and get a $10 credit to try out their fast and reliable Linux virtual servers for your next project.
  • We are recording today on October 19th, 2015 and your hosts as usual are Tobias Macey and Chris Patti
  • Today we are interviewing Tom Rothamel about RenPy
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 Tom Rothamel

  • Introductions
  • How did you get introduced to Python?
  • What is Ren’Py and what was your inspiration for starting it?
  • I noticed that Ren’Py supports a number of different styles of gameplay. Can you explain the differences between interactive fiction, kinetic fiction and RPGs?
  • I notice that RenPy has clearly been around a while (Some of the games for OSX are PowerPC binaries!) – what problems have you encountered maintaining such a long lived project and keeping it current?
  • What libraries does Ren’Py leverage and how did you go about selecting them to allow for cross-platform development and deployment?
  • What underlying Python graphics toolkit does RenPy use for display, and how did that choice affect RenPy’s design?
  • While reading through the quickstart in the documentation I noticed that there is a special syntax that you have created for defining the dialog and narratives. Can you explain how you created the DSL for building the storylines?
  • It feels to me like RenPy was heavily inspired by the JRPG genre and as such there are games where sex plays a prominent role(I noticed a mention of Hentai in the docs), which is less readily accepted in the west. Have you ever encountered any pushback on this issue?
  • I noticed that some of the games that were created with Ren’Py are available on the Steam platform. What elements of the Ren’Py project lend themselves to producing games with enough polish to be published on such a mainstream platform?
  • If you were just starting out today implementing RenPy, would you still use Python? Why?

Picks

Keep In Touch

Links

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

Anthony Scopatz on Xonsh - Episode 29

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

Summary

Anthony Scopatz is the creator of the Python shell Xonsh in addition to his work as a professor of nuclear physics. In this episode we talked to him about why he created Xonsh, how it works, and what his goals are for the project. It is definitely worth trying out Xonsh as it greatly simplifies the day-to-day use of your terminal environment by adding easily accessible python interoperability.

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 pythonpodcast.com
  • 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.
  • Linode is also sponsoring us this week. Check them out at linode.com/podcastinit and get a $10 credit to try out their fast and reliable Linux virtual servers for your next project
  • We are recording today on October 12th, 2015 and your hosts as usual are Tobias Macey and Chris Patti
  • Today we are interviewing Anthony Scopatz about Xonsh
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.

Linode Sponsor BannerUse the promo code podcastinit10 to get a $10 credit when you sign up!

Interview with Anthony Scopatz

  • Introductions
  • How did you get introduced to Python?
  • Can you explain what Xonsh is and your motivation for creating it?
  • For people transitioning to Xonsh from a shell like Bash or Zsh, what are some of the biggest differences that they will see?
  • What are some really powerful one-liners that showcase Xonsh’s capabilities?
  • What is it about Python that lends itself to this kind of a project and what are your thoughts on building something like Xonsh in another language such as Ruby or Node.js?
  • If you had to single out one killer feature that Xonsh brings to the table, what would that be?
  • Is it possible to specify which shell, such as bash or zsh, gets used in subprocess mode?
  • I started using the Xonsh shell as my daily terminal recently and have been enjoying it so far. One of the things that I have been wondering is how to hook into the completion system to provide eldoc style completion from parsing the output of help flags. Do you have any advice on where to start? Perhaps using the docopt library to handle parsing of help output and generate completions from that?
  • What are your thoughts on adding a section to the project documentation for people to list various extension modules that people can take advantage of? Or perhaps creating something along the lines of Oh my Xonsh?
  • How do bash function definitions interoperate with the Xonsh environment and functions defined in Python?
  • It seems as though there could be some potential path or compatibility issues when moving between virtual environments and having access to extension modules loaded into Xonsh. Can you shed some light on that?
  • Do you have any suggestions for people who may not have the privileges to set their own login shell but who want to try Xonsh?
  • What are some of the most interesting uses of Xonsh that you have seen?
  • What does the future hold for the Xonsh project and how can our audience help?

Picks

Keep In Touch

Links

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

Kay Hayen on Nuitka - Episode 28

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

Summary

Kay Hayen is a systems engineer from Germany who has dedicated his spare time to the creation of Nuitka, a library that will compile your Python project to C++. In this episode we talked to Kay about what inspired him to create the project, how it operates, and some of the challenges he has faced. It is a very interesting project and it has the potential to let you run your Python code in a whole new way!

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, leave us a message on Google+, or leave a comment on our show notes
  • I would like to thank everyone who has donated to the show. Your contributions help us make the show sustainable. For details on how to support the show you can visit our site at pythonpodcast.com
  • 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. Linode has also sponsored this episode and you can get a $10 credit using the link linode.com/podcastinit to try out their fast and reliable linux virtual servers.
  • We are recording today on October 6th, 2015 and your hosts as usual are Tobias Macey and Chris Patti
  • Today we are interviewing Kay Hayen about the Nuitka project

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.

Linode Sponsor BannerUse the promo code podcastinit10 to get a $10 credit when you sign up!


Interview with Kay Hayen

  • Introductions
    • German, family with 2 kids, one cat
    • Working in ATM (Air Traffic Management), tracker product
    • Systems Engineer
    • Nuitka as a hobbyist
  • How did you get introduced to Python?
    • Once was Perl “Guru”.
    • Python was getting a lot of positive press
    • Team decision to want to use readable stuff
    • CPAN was still more complete, but Python was making inroads
  • Can you describe how to pronounce the name of your project?
    • Wife Anna, Russian, Annuitka -> Nuitka
  • Can you briefly describe what Nuitka is and what your motivation was for creating it?
    • I was thinking a fully integrated and compatible compiler should be possible.
    • Why is nobody doing it?
    • I can do it.
    • I am doing it.
    • Take Python beyond current use cases.
      • Everbody currently using Python needs no compiler, or wouldn’t use it
      • Less need for time consuming C++/Python hybrid coding
      • Simple code should compile to fast code by default
      • Complex code should still work
  • On the project web site it says that Nuitka does a lot of clever things after being fed a Python project. Can you provide some details as to what some of that cleverness is?
    • Re-formulations of Python into simpler Python
      • No “class”
      • No “assert”
      • No complex assignments
    • SSA tracing
      • Attaching uses to assignments properly
        • Despite try/finally
        • Loops
      • Avoids checks for known defined/undefined values
    • Function inlining (coming)
    • Constant propagation
    • Closure variable removal
  • What is libpython and how is it used in both Nuitka and CPython?
    • Core of the Python interpreter
    • With Python VM and C interface
    • Nuitka can fall back to it
    • Avoiding it as often as we can, key to performance
  • Is there any way to provide hints to Nuitka to generate more optimized output?
    • Nuitka is yet to make a difference based on type information
    • Not yet there, but coming soonish. SSA was pre-requisite
    • PEP 484 will be unreliable type information, mostly useless
    • I want type hints that are checked at Python run time
  • What are some of the biggest challenges in generating statically compiled code from a language as dynamic as Python?
    • Python is compiled to .pyc files
    • Compatible Frame stack, cached
    • Exception handling of Python is terrible
    • CPython type system designed to be extensible
      • Extension types for functions, bound/unbound methods, generators, etc.
    • Many details to get right
  • Are there any particular Python constructs that Nuitka is unable to translate and as a corollary to that is the compilation step lossy at all or do you have some way of ensuring that the functionality of the program remains unaltered?
    • Big point, no price attached
    • Except for not having bytecode, there is nothing missing
    • No pdb support
    • Edit / run cycle is not accelerated
    • That said: PyQt (integrated), PySide (available, unmerged), wxPython (available, maybe merged) needed patches to take compiled function/method objects for function objects too
  • Are there any particular types of programs that benefit the most from Nuitka’s compilation?
    • Bindings with ctypes of cffi compile into zero overhead C calls (planned)
    • Scientific programs are the most obvious goal (float type inference)
    • CPU bound or low latency programs
  • Is it possible to feed an entire project with multiple modules into Nuitka all at once or is the standard use to perform compilation one source file or submodule at a time?
    • You give it the main program and it recurses imports according to “PYTHONPATH”
    • nuitka –recurse-all “/usr/bin/hg” supposed to work
    • Might have to give directories with program plug-ins
  • I’m curious about what led you to choose compilation to C++ for Nuitka rather than making Nuitka an LLVM back end like Numba?
    • When I started Nuitka, I was using C++0x and variadic templates
    • Wanted to make a proof of concept that compatibility and integration is feasible
    • From there, code generation got less high level to goto ridden C
  • How does Nuitka compare to projects like Numba or Cython?
    • Graceful degradation goal
    • Complete compatibility with Python whole stack
  • How does Nuitka compare to PyPy? – Kay
    • PyPy is the coolest project ever
    • Pure Python goals shared
  • How can users evaluate the performance of Nuitka – Kay
    • They currently cannot
    • Developing a tool to compare CPython and Nuitka runs
      • Based on vmprof from PyPy people
      • Identify parts of program where Nuitka is slower
      • Links to source code
    • To be done, help needed.
    • Nuitka is only starting to get to serious performance
      • Compatibility is such a high bar to take
      • C++ to C took a year (avoiding C++ exceptions)
      • SSA literally took forever

Picks

Keep In Touch

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

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