Category Archives: Python

[Video 261] Larry Hastings: Python’s Infamous GIL

I often speak with people who have come to Python from Java or .NET, and really want to use threads. Their excitement decreases dramatically when they discover that Python’s threads are limited by the GIL — the “global interpreter lock,” which ensures that only one thread runs at a given time.  Why does the GIL exist, what does it do, how does it affect Python performance, and what can we do about it? In this talk, Larry Hastings describes the GIL’s past, present, and future.  If you’re a Python developer who is curious about what threads can and cannot be expected to do, and why the GIL still exists, this talk should be very interesting.

[Video 257] Alex Gaynor: Fast Python, Slow Python

People often complain that dynamic languages such as Python execute slowly. Of course, Python (and similar languages) are generally unable to reach the execution speeds that we see and know in other languages. Why is this?  What makes Python slow, and what can make it fast — or at least, faster? In this talk, Alex Gaynor provides descriptions and comparisons of Python code with other languages, and talks about strategies that we can and should consider in order to speed up our Python programs.

[Video 254] Raymond Hettinger: Keynote — What makes Python awesome?

Python is popular, and is rapidly growing in popularity — not what you might expect from a 25-year-old language.  What is it that makes Python so special? Why are so many people, in so many places adopting Python? In this  talk, Raymond Hettinger describes the features of the Python language, ecosystem, and community that combine to make it such a compelling choice for universities, companies, and individuals.

[Video 249] Sarina Canelake: I18N — World Domination the Easy Way

If you want your software to be used by people around the world, then you will probably want to incorporate internationalization (i18n) and localization (l10n). In this talk, Sarina Canelake demonstrates how we can and should approach i18n/l10n in our Web applications, using Python and Django in her examples. Regardless of what language you use, if you’re using i18n/l10n, or thinking about doing it, then the ideas in this talk will be useful for you in the near future.

[Video 239] Matthias Bussonnier, Jonathan Frederic, and Thomas Kluyver: Jupyter Advanced Topics Tutorial

If you have been using Jupyter (aka IPython) notebook for your work in Python, then you’re in good company; many developers (including me) now use it instead of the text-based interactive Python shell. Just using Jupyter has dramatically improved my productivity. However, it turns out that Jupyter, like many open-source projects, is highly customizable. In this talk, Matthias Bussonnier, Jonathan Frederic, and Thomas Kluyver show us how we can customize and change Jupyter Notebook, to make it a custom environment, special for our needs.

[Video 238] Jess Hamrick: Teaching with IPython

Teaching and programming often have different goals, and thus need different tools. However, IPython (now known as “Jupyter“) provides a Web-based “notebook” that makes it easier to demonstrate and collaborate on code — something that’s good for instruction, and also for daily software development. In this talk, Jess Hamrick describes how and why she now uses Jupyter notebooks to teach programming (and Python programming in particular), and what she (and her students) have learned in the process.

[Video 234] Lacey Williams Henschel: A More Accessible Django Girls

DjangoGirls aims to introduce women (and girls) to the world of software and Web development (using Django, of course). They sponsor workshops, and offer documentation, tutorials, and other materials that encourage women to learn programming. How do Django GIrls workshops, with very small budgets, handle the issue of accessibility? What considerations do you need to keep in mind?  How does the workshop itself change? In this talk, Lacey Williams Henschel describes her experiences putting together Django Girls workshops, and tells us how others can similarly make workshops as open and inviting as possible.

[Video 227] Brett Slatkin: How to Be More Effective with Functions

We all write functions. But do we create functions that are effective — efficient in the ways that they work, and in the ways that we invoke them? How (and why) should we take advantage of Python‘s many supports for functional arguments? Why should you consider using generators, rather than returning lists?  In this talk, Brett Slatkin provides numerous examples of how we can improve our functions. If you’re a Python developer who wants to take their functions to the next level, this talk will provide you with some good, new ideas.

[Video 223] Julian Berman: Building an interpreter in RPython

PyPy, an alternative implementation of Python, has been gaining attention and interest over the last few years, in no small part because of its high speed. PyPy has, at its core, a small language called RPython (“restricted Python”) in which PyPy is implemented. In theory, you can use RPython to implement other languages. In this talk, Julian Berman demonstrates how to build a small language using RPython. If you’re interested in PyPy or in how programming languages work, this talk should be of interest to you.

[Video 215] Micah Yoder: PostgreSQL’s JSONB

In recent years, PostgreSQL has gained a number of facilities that were normally associated with NoSQL databases, such as a key-value store and JSON support. In the latest (9.4) release, the JSONB data type brought high performance and many new features. In this talk, Micah Yoder describes the JSONB data type, how it can be used from within SQL, how its performance compares with MongoDB, and how such features can be used from within Python.