Session Proposals

Django Apps at Scale: Mistakes to Avoid

History:

I started using Python in school and started developing apps with Django in 2018. To enhance my experience and learnings I also worked at an Infrastructure as Code Platform StackGuardian. It’s an OpenSource robust and scalable platform built with Django. We wrote everything from scratch and in the process, we did a lot of research and experiments to build scalable Django Apps with Microservice Architecture. I’ve learned a lot about what works well and what doesn’t with Django, and hope I can share some useful tips on how to work with this popular web framework.

Agenda for the Talk:

--> Monoliths & Microservices Brief Intro & general misconception

I’ll start with a layman's introduction to Monoliths & Microservices so that even beginners get the idea about the terminologies which will be used later. I will also touch upon the common misconception junior engineers or students have around these architectures.

--> Moving away from Monolith

Under this, I’ll be discussing problems with Monolith Architecture or monolith Django Apps. What does it take to move away from a monolith architecture? Examples of companies that moved from Monolith to Microservice architecture.

→ Why Microservices?

Here I’ll be sharing the benefits that microservice architecture adds to the product. The need for microservices with the ever-growing users globally and how microservices are able to solve scalability issues.

--> Why Django for Microservices & Mistakes to avoid or Best Practices

Understanding Microservice Architecture in Django via a reference app. How to transition your Django App from a Monolith App to a Microservices-based app. I’ll discuss about the mistakes every django should avoid or best practices that we at stackguardian realized with time for a robust & scalable platform.

–> StackGuardian overview & Tirith

In this, I’ll give a bird's eye view of StackGuardian’s architecture and how its open-source tool “Tirith” built with python will help security engineers to write policies in a human-readable way but still machine enforceable.

--> Key Takeaway & Django Trivia/QnA

I’ll conclude the talk with fun Django Trivia.

Audience:

The target audience for the talk ranges from Beginner to Intermediate Programmers.

Story generation using Diffusion Models in Python

In this talk, we will explore the use of stable diffusion in Python for generating original stories. We will first introduce the concept of stable diffusion and how it can be used to model the spread of information or ideas. We will then discuss how this can be applied to the task of story generation, and demonstrate how to use Python libraries such as Markovify and Chatgpt API. Eventually, any python developer should be able to use scripts to generate continual contextual images that has meaningful representations.

Stefan Schleyer

How to Build Your First IoT Application?

Many companies want to start with a first IoT prototype implementation, but are not sure how this can be done in a cost and time efficient manner.

In this workshop it will be shown how a first IoT prototype can be built for a few bucks with Electric Imp and dweet.io from scratch.

Finally an outlook is given, how fetching data using e.g. Python can be realized.

The target audience for the workshop ranges from beginners to intermediate programmers, the workshop is based on a real life example from the manufacturing industry.

Armin Stross-Radschinski

Kaskadierte YAML Konfiguration für komplexe Aktionsfolgen in Pre- und Postprozessoren für Dateioperationen

Müssen statt atomarer Requests regelmäßig komplette Sätze von Dateien für den Datenaustausch verwendet werden, sind oft vorbereitende und nachbereitende Schritte (Actions) erforderlich, die an Bedingungen geknüpft sind (Matches). Um zahlreiche verschiedene aber ähnliche Get und Put Szenarien abzudecken wird mit für Menschen leicht les- und kommentierbaren YAML Dateien gearbeitet, die natürlich keine Zugangs Credentials enthalten dürfen. Die Session knüpft an Herausforderungen an, die bei einem der letzten Remote Barcamps angesprochen wurden. Es gibt dazu den dann aktuellen Stand der Ergebnisse und Austausch zu Strategien der Umsetzung.

Update: Cookiecutter ist ein cooles Tool zur interaktiven Erstellung von Konfigurations Variationen und -Konfigurationen. Inzwischen liegt vor der Erstellung der YAML Dateien ein Cookiecutter Template das bei der strukturierten Erstellung der Grundkonfigurationen hilft, saubere individualisierte Kommentare einstreut und im Nachgang (Post Creation Hook) Cron oder den Windows Task Scheduler vorkonfigurieren kann.
Armin Stross-Radschinski, 23.07.2023
Sebastian Ernst

Exploring C-APIs: CPython, Numpy and HPY

The C-APIs of different Python implementations (as well as the one of Numpy) are rather hot topics at the moment, though only to the initiated. This is where currently significantly more development happens than in the actual Python language. The HPY-project is attempting to standardize the C-API across multiple implementations of Python, e.g. CPython and PyPy, and explores paths to adopt it in Numpy. All of those solutions have in common that the documentation, while certainly detailed, is not particularly beginner-friendly. Numpy's documentation goes, for the lack of any examples and meaningful explanation of concepts, as far as to advise the reader to read the Numpy source code.

Let's explore some minimal examples of building C extensions with different means and, first and foremost, HPY.

- https://docs.python.org/3/c-api/index.html

- https://numpy.org/doc/stable/reference/c-api/index.html

- https://hpyproject.org/

Sebastian Ernst

Packaging 1-0-1: How to ship your first Python project?

You've just learned Python and probably developed your first own project, perhaps for scientific use and/or data analysis. Cool. Now how do you get it to a potential user or collaborator? Welcome to the zoo (hell) that is Python packaging.

Let's have a look at two simple, beginner-friendly solutions to get this done: Flit and Cookiecutter.

Sebastian Ernst

Integrating Rust into Python projects

What is the current state of affairs when it comes to integrating Rust code into Python projects? What are tools, common issues & pitfalls, deployment strategies, solutions for cross-platform builds, best practices, etc? What's the state of the usual suspects, e.g. setuptools, manylinux, etc? What are the professionals doing (e.g Polars)? How does the conda-forge ecosystem approach things at the moment (see e.g. version pinning)? How does the performance of the integration layer(s) look like (e.g. in comparison to integrating C into Python projects via established approaches)? What specific complexities need to be handled?

Open discussion & exploration.

In order to be able to create or vote for proposals, you need to be logged in. you can log in and register here