Higher Kinded Types in Python
Oct 30 2020* What Higher Kinded Types (HKTs) are and why they are useful\n* How they are implemented and what limitations there are\n* How can you use them in your own projects
* What Higher Kinded Types (HKTs) are and why they are useful\n* How they are implemented and what limitations there are\n* How can you use them in your own projects
A common debate in software development projects is between spending time on improving the quality of the software versus concentrating on releasing more valuable features. Usually the pressure to deliver functionality dominates the discussion, leading many developers to complain that they don't have time to work on architecture and code quality.
So you are entering a new contract, or maybe it's just a new project you are being transferred to. How do you get up, going, and committing on your first day? How to identify the areas of the system that are risky or problematic? This session looks at tools and strategies to reach this goal coming from a speaker who regularly works for less than a week with a team and needs to provide value within that period of time
The foundation ideas behind Domain-Driven Design, or DDD, are fundamentally the same as when Eric Evans brought them to our attention through his seminal work. The Bounded Context with its Ubiquitous Language is still of chief importance, along with mapping various Bounded Contexts to form a whole system solution. Even so, what has changed substantially is the computing landscape on which software developers construct and release these solutions. Systems are far more likely to be distributed, especially due to the [...]
This talk will start with basic concepts of functions, including how they are represented in memory, how state is tracked, and how function calls interact with the stack. We’ll then cover the common methods of running multiple functions concurrently, as well as the benefits and difficulties of concurrency in Python. \n\nWe’ll then introduce the concept of coroutines, a variant of functions, and discuss how coroutines manage state and execution differently from functions. We’ll show some high level examples of coroutines that communicate with each other, and look at how they can be of use for I/O bound workloads. \n\nThen we’ll finish by showing how coroutines are implemented in Python, what the async/await keywords are actually doing when you use them in your code, and how all of these concepts are leveraged by the AsyncIO framework to build high performance applications in modern, clean Python.\n\nAsyncIO uses coroutines to deliver high performance from a single thread. But coroutines can be mysterious. How do they work? Starting from first principles, we’ll take a look at the basic concepts of coroutines and the unique problems they solve, then finish by deconstructing the core pieces of the AsyncIO framework.\n\nThis talk is for developers of all backgrounds. No CS degree required!
The Python Standard Library is a very rich toolset, which is the reason why Python is stated to come with ""batteries included"". In such an amount of features and tools it's easy to get lost and miss some of the less unknown modules or gems hidden within the whole load of functions and classes.\n\nThis talk aims at showcasing some recipes, snippets and usages of standard library modules and functions that are less known or that are not covered in the most common books and tutorials available for Python.\n\nThe talk will try to showcase a bunch of short examples in the hope to foster the ""oh, wow! I didn't think about that"" reaction at least once in the audience.\nWe will see how frequently for tasks where you used third party libraries or frameworks a solution bultin into the standard library is already available, and such solution is guaranteed to be maintained and well working for the years to come thanks to the standard library reliability and stability.
Everyone’s talking about it. Everyone’s using it. But most likely, they’re doing it wrong, just like we did.\n\nBy building a simplified chaos monkey service, we will walk through how to create a good foundation for an asyncio-based service, including graceful shutdowns, proper exception handling, and testing asynchronous code. We’ll get into the hairier topics as well, covering topics like working with synchronous code, debugging and profiling, and working with threaded code. We’ll learn how to approach asynchronous and concurrent programming with Python’s `asyncio` library, take away some best practices, and learn what pitfalls to avoid.
At the root of catastrophes in both code and life lies a pervasive fallacy: the attempt to model processes as if they were transactions.\nJoin Avdi for an honest, sometimes raw retrospective on two decades of building a software development career. You’ll examine how personal philosophy impacts software design — and vice-versa. You’ll encounter the transactional fallacy and how it can hinder our attempts to build resilient systems. And you’ll explore how a narrative-oriented mindset can lead to both better code and a more joyful [...]
These days, programming style guides are all the rage. However, what if your style guide was so restrictive that it only gave you single-argument functions and nothing else? No modules, no classes, no control flow, no data structures, and not even any primitives like integers or regular expressions. Just functions. Could you actually program anything at all? Surprisingly, the answer is yes. In this tutorial, you'll learn how as you work through a ground-up derivation of the lambda calculus in Python.\n\nYou will learn nothing practically useful in this tutorial. No packaging. No tools. No libraries. No deployment. No magic Python programming techniques. And certainly learn nothing you would ever want to apply to a real project. You will, on the other hand, have a lot of fun, be completely amazed, and learn some foundational computer science that is a jumping off point for further explorations of functional programming, type theory, programming languages, and more.
One of my all time favorite talks of AKay's, given in 2015.