Advanced Python with JAMES POWELL
Fast and Furious Python 7 -
PyData Festival Amsterdam 2020
PyData Festival Amsterdam 2020
You’ve already seen the about six of these. They were kind of boring. You probably fell asleep halfway through number 5. Why is anyone still making this content? What new ground is there to cover?
This talk will cover fundamental conceptualizations and approaches to writing fast systems in Python, while critiquing how this topic has been covered in past. It will show limitations of measurement mechanisms, conceptual limitations of the “static view” of software development, and it will show problems with non-structural micro-optimizations. It will suggest intuitions and structural approaches that lead to high performance systems in practice, as well as intuitions that can guide this development from within a more cohesive and coherent framework of understanding of the software development process.
Objectionable content - PyData Austin 2019
Building systems in Python, and the Python object model. This talk covers no machine learning!
What you got is what you got - PyData LA 2019
Composition, inheritance, restricted computation domains, boxed versus unboxed, and the search for a perfect proxy. But, folks, what you got is what you got.
Why should I write code when I can write code that writes code? - PyGotham 2019
The temptation to employ code-generating techniques in Python is strong. Much of what is called “metaprogramming” in Python refers to the various techniques through which we can write higher-order code: code that then generates the code that solves our problem. This talk discusses various common approaches for code-generation, their applicability to solving real problems, and the reality of using these techniques in your work.
Because you can run, you can't hide - PyData London 2019
When designing an API, how do you restrict your users to your public interface and keep their filthy hands off your internal implementation details? Sadly, the richness of Python's runtime makes this remarkably difficult. This talk investigates a number of ways to keep the riff-raff out and discusses the limitations of these techniques and how they can improve API designs.
Write a Git client from scratch - PyGotham 2018
What better way to learn the fundamentals of git than to re-implement them yourself? In this talk, we will (hurriedly) cover the theory behind git and build a minimal git client in Python from scratch without anything but the standard library and our wits! 100% live coded. Accept no substitutes.
More about generators - PyData London 2018
Generators were a compelling feature when added to Python 2.2 in seventeen years ago with PEP-255. When they were enhanced to become coroutines with PEP-342, they gained additional capabilities for modelling common problems.
But, surprisingly, we don't often see generators discussed as a core tool in the data scientist, computational scientist, and data engineer's toolkit. Why not?
So you want to be a Python expert? - PyData Seattle 2017
Most viewed video on the PyData Youtube channel. Instant classic.
Hacking the CPython interpreter - Scipy 2016
It's surprisingly easy to modify the CPython interpreter in some very useful ways. This talk will cover a simple assembly-technique which can allow live, hot-patched, `pip`-installable modifications to the CPython interpreter. The talk will cover five case studies of such modifications and how they can be used to extend the capabilities of Python, parsimoniously model abstract problems, and, in some cases, "unravel" complex APIs. This talk will cover: - adding ast-literals to CPython, and how they can be used to model first-class-computation frameworks like `numexpr` - decoupling evaluation scope from binding scope, and how this can add static correctness guarantees and user-defined literals - embedding CPython interpreters within themselves, and how this can be used for same-process multiprocessing - adding read watches, and how these can be used for lazy mechanisms, indirection mechanisms, and improved debugging - adding the print_Statement back to CPython 3, and how this can be used to stop people from complaining about silly things
Generators will free your mind - PyData Silicon Valley 2014
What are generators and coroutines in Python? What additional conceptualisations do they offer, and how can we use them to better model problems? This is a talk I've given at PyCon Canada, PyData Boston, and PyTexas. It's an intermediate-level talk around the core concept of generators with a lot of examples of not only neat things you can do with generators but also new ways to model and conceptualise problems.