Pycon Sweden 2024
PyCon Sweden 2024 - Registration
PyCon Sweden 2024 - Opening Session
Depending on who you ask, the meaning of Python will vary significantly. For some people, it could refer to the standard language implementation, for others it might mean a new challenge, your local meetup, your current work, and even the social aspects from the many communities.
There has been always a categorization around talks that have the more technical content, and the social aspects, which might led some people to ignore certain aspects of the whole ecosystem, and it will be the main topic of this presentation.
During this talk you will start learning technical aspects of the standard Python implementation, explore how Python has been getting everywhere due to the extensions in other languages, but also exploring
how the different conferences, communities and other social entities of Python has been changing.
After the talk, you will have the necessary resources in order to join the many aspects of the Python community, and start contributing.
Languages evolve. But how? The infamous "goto" keyword, which for good reason is missing from Python, is a surprisingly "easy" feature to add! Learn how a programming language like Python evolves over time and how new features are added via Python Enhancement Proposals (PEPs). In the process, you'll learn different ways of implementing the goto keyword in Python, and why XKCD number 292 is true.
Join me for an Python workshop to unlock the full potential of Web Scraping in Python! You’ll learn advanced techniques for collecting datasets.
Highlights:
- Overcome fingerprint challenges and anti-bot measures.
- Discover Scrapoxy, the free and open-source proxies waterfall tailored for Web Scraping
Unlock the power of well-documented code! Join me for a quick dive into Python documentation essentials—learn about Docstrings, Sphinx, reStructuredText, and embracing a docs-as-code approach with different markup languages. Keep your code usable and maintainable. Let’s document smarter, not harder!
Turning old as a developer is hard. It is hard to stay relevant, hard to keep up with the competition of newcomers and hard to know all of those new frameworks, tools, languages and practices. However, the truth is that we oldies have a big advantage over the younglings.
We are slow! Slow is good! So whatever you do, don’t put your programming on the shelf just because someone half as old writes code with twice the speed.
In an increasingly digital world, the technology sector holds tremendous potential for innovation, growth, and societal progress. Yet, two underrepresented groups—women and immigrants—face significant barriers in accessing and thriving within the tech industry.
This keynote explores how the tech sector can empower women and immigrants, highlighting strategies for breaking barriers, fostering inclusion, and unlocking opportunities for innovation, growth, and diversity in the digital age.
“You’re not Google, and neither are we!” is a common sentence we hear when someone mentions SRE, or site reliability engineering. SRE as a term has gotten the label of unattainable and hyperscale software management - but we’re going to rectify that! In this talk, we walk through a more practical approach to keeping your software services running in sun and rain.
Want to make sure that your systems can handle unexpected bursts of load? Do you love Python and want to leverage your Python skills for load testing too? Then this is the workshop for you!
Following up on the talk I did last year about the open source Locust project, I’m now back for a hands-on workshop, this time with extra Cloud!
In this talk, we will dive into how Django Ninja has transformed the way we develop APIs for the energy industry, focusing on practical insights and real-world examples. Working with Swedish energy companies, we face the challenge of building fast, scalable, and reliable solutions for complex systems. Django Ninja has been a great framework for building robust APIs due to its simplicity, flexibility, and performance.
After creating a great web app using Python such as with flask, the next hurdle to production is how to make it available to users and operate it. And not just your app, but also ingress, the database, observability and the list goes on. We will go through your options for simplifying the operations of your web app using open source tooling. This will include using k8s directly with helm charts, PaaS using fly.io and new tooling developed by Canonical using juju. By the end of the talk you will have seen the benefits and drawbacks of each which will help you make an informed decision on which tool best suits your needs!
AI is a hot topic these days! However it's not always clear how to get the best use of it, how to test and trust it, and how to build it into your product. In this workshop, we will explore practical applications of Generative AI with Python, focusing on AI models like OpenAI’s GPT-3-5 and Anthropic’s Claude.
At Lyst, we have been using OpenAI and Anthropic for the past year in various ways. We will share insights from our own work, where AI has significantly enhanced our day-to-day operations. Using OpenAI to tag customer feedback sentiment has enabled employees to extract actionable insights from large volumes of data, improving decision-making and customer understanding. Using Anthropic's AI models to create product titles has resulted in unique, more descriptive content on Lyst's platform, which has increased customer engagement and sales.
In this interactive and engaging workshop, we want attendees to get hands on with these AI models. We'll have OpenAI and Antropic credits for attendees to use, and the workshop will cover essential best practices, prompt engineering strategies to get the model to do what you need it to do, strategies for testing and evaluating, and what to keep in mind when incorporating the model into your product. Ratuja and Sophie have learned a lot of this through trial and error and are excited to share their learnings with the group.
We have a dataset where attendees can use AI prompts to enhance the data and serve it in a Django App. This workshop will both give a high level overview of best practices when incorporating AI into your application and give technical users a chance to play around and learn for themselves.
Step into the future of Python with Parallel Python: Embracing the Future with Sub-Interpreters and Free Threading. This talk dives into the groundbreaking per-interpreter GIL in Python 3.12 and the enhancements in 3.13, which make parallel execution more accessible. We’ll explore the NoGIL compile option for true parallelism, compare traditional multiprocessing with sub-interpreters and free-threading, and tackle thread safety challenges. The session wraps up with a real-world ASGI web server example, showcasing the power of these new features in action.
It's About Time is set out to be an overview of time programming, to enlighten about the particular pitfalls and general problem space that we face when programming around the context of time.
We will look at some key points:
- Serialisation and the representation of time
- Accessibility when presenting date/time on the web
- Good practices for API design (OpenAPI specification)
- Timezones and Daylight savings
- Special Relativity, and how this can make things even weirder
- What I would consider to be best practices when writing code in python.
Hopefully, put purely speculative I hope that my talk may be inspiring in getting people to have a peek into the pandora's box which is time - in order to help people understand that maybe everything is not always as easy as we assume them to be.
This talk has been presented once at the university of KTH at its full length (not recorded), and a much cut down version during PyCon 2022 as a lightning talk. But I am excited for the opportunity and the great honour of present the full version.
Pyroute2 is a relatively large project with a history spanning about 10 years, primarily built around synchronous, threading-oriented code. One of the most popular and longstanding user requests has been to implement support for asynchronous parallelism. This task presents numerous challenges, ranging from continuous integration (CI) to maintaining compatibility, as the project must continue to support its existing synchronous code.
Closing - Day 1
Melina will share her journey as the leader of NordAxon, a pioneering AI studio at the forefront of delivering groundbreaking AI solutions and cultivating exceptional teams.
In the past few years, Will McGugan's Rich for formatting terminal outputs has had a meteoric rise in the Python community. As a user and fanboy of Rich, I felt that my otherwise beautiful CLI tools had drab and plain help text outputs from the Click CLI toolkit.
With a little help from Will and others, I put together the rich-click package that makes Click's outputs delight your eyeballs with only a simple import alias required: import rich_click as click
.
In this talk I'll describe a little bit about how it works and what you can use it for, and how I dealt with it becoming accidentally quite popular and receiving a deluge of issues and contributions. Spoiler: the Python open-source community is amazing and Daniel Reeves (@dwreeves) came to my aid to co-maintain the project 🎉
Learn how to use Python with 46elks to send and receive SMS, then build a chatbot with OpenAI that can chat over SMS in real-time. This hands-on workshop is perfect for adding AI-driven messaging to your projects.
The match
statement was introduced in Python 3.10, but has not yet seen wide adoption. This talk will highlight practical use cases for parsing JSON, XML and ASTs, and compare expressiveness and performance to the classic if-elif-else approach.
This proposal outlines a strategy to improve our Continuous Integration (CI) and Continuous Deployment (CD) processes by implementing key design patterns using Python. The goal is to create more robust, maintainable, and scalable CI/CD pipelines.
A Year in the Life of a Penetration Tester
While there are a multitude of platforms to collect logs and metrics from "any platform", sometimes all you want is to collect the logs you need, in the format you want, and pass it on or store it without adding third party libraries, servers, and accounts. Sometimes, you may even want to write the next great log aggregation tool, not use an existing. This talk is about utilising a few different methods to create, enrich, and store log and audit data using only what comes in the box with a new Django project, and end up with rich, explorable log and audit data.
In this talk, we will explore the capabilities of LangChain, a versatile framework tailored for the development of applications powered by Large Language Models (LLMs).
We will see how to use LangChain to build advanced AI applications with autonomous AI agents.
Developing LLM-based products in Python comes with a lot of questions: Should I use an existing LLM framework? How to evaluate models and prompts? Should I use RAG? How to prevent prompt hacking?This talk will share lessons learned and best practices from putting several shopping assistant chatbots into production.
LLMs are now capable of translating user queries into small Python programs. In this talk, we will look at how we create AI systems from text with Hopsworks.
In this talk I want to tell you the story of how my best friend pulled me into working with a customer because he, the architect, needed "an adult person in the room" before scaling the team. I want to talk about how we built the back-end team of a Django system, added order, structure, and collaboration, where there was loose coordination between individuals spread out globally before.
Our mission: to introduce stability, structure, and "boring releases" to a Django-based project while releasing frequently. Because quite frankly, we're too old for adrenaline-filled midnight deployments.
Small controlled releases, incremental improvements to development and test environments, and smooth automation that allows testing almost anything locally, in CI, or in test environments. Using Jenkins and Invoke (pyinvoke.org) we have setup multiple automated "full" test environments for acceptance testing and to reproduce hard-to-analyze bugs - and don't get me started on how valuable having nightly, fresh, and PII cleaned production data ready at our fingertips is.
Releases every week, over and over again, wouldn't be possible with loose coordination though, we have workflows that ensure we keep our house in order, from capturing requirements and making mock-ups, to how our project board, release logs, and release announcements work.
I'm going to talk about how I built in support for automatically created test data in our Django back-end with the coaching from my team of developers, and how I learned to become best friends with the Django shell to manipulate the system under test to create and inspect resources.
This is a story and about how our team - distributed over three continents - built our way of working to go fast and to ship boring, predicable releases, every single week since 2021 - excluding holidays.
The "MongoDB for Beginners" workshop is designed to introduce participants to the fundamental concepts and practical skills needed to work with MongoDB, a leading NoSQL database system. This hands-on session will cover the basics of MongoDB, including installation, database creation, and data manipulation.
In this talk you will learn how to control and monitor physical hardware to automate repetitive work in electronics, X-ray or any other research laboratory using Python.
This is also the story about how we decided to replace traditional expensive industrial and lab control solutions such as PLC:s and LabView with Raspberry Pi:s and Python programs. It all started in the R&D lab, then we continued to automate our production using the same tool chain.
I will talk about some common communications protocols and show sample code for using them with open-source Python packages. Many of those protocols can be used even with cheap instruments found in hobby workshops. Why not automate your beer brewing or your green house?
TBD
PyCon Sweden 2024 - Closing Session