Generated by All in One SEO v5.0.0.1, this is an llms.txt file, used by LLMs to index the site. # PyGrunn The Python and friends conference ## Sitemaps - [XML Sitemap](https://pygrunn.org/sitemap.xml): Contains all public & indexable URLs for this website. ## Pages - [Python and Friends conference](https://pygrunn.org/) - [et_pb_section fb_built=”1″ fullwidth=”on” custom_padding_last_edited=”on|phone” disabled_on=”off|off|off” admin_label=”Header Section” module_id=”home” _builder_version=”4.25.1″ background_color=”#1a1a1a” background_image=”https://pygrunn.org/wp-content/uploads/2026/03/pygrunn-26-header.png” background_size=”contain” vertical_offset=”1px” height_tablet=”” height_phone=”30vh” height_last_edited=”on|tablet” overflow-y=”visible” custom_margin_last_edited=”off|tablet” custom_padding=”462px||462px||true|false” custom_padding_tablet=”200px||||false|false” custom_padding_phone=”0px||||false|false” background_last_edited=”off|desktop” custom_css_free_form=”.et_pb_fullwidth_section {|| background-size: contain !important;|| background-position: center center !important;|| background-repeat: no-repeat !important;|| height: auto;|| min-height: 500px; /* Adjust as needed */|| max-height: 90vh; /* Prevents excessive stretching */||}||||@media (max-width: 768px) {|| .et_pb_fullwidth_section {|| - [Schedule](https://pygrunn.org/schedule-2/) - [Blast from the Past](https://pygrunn.org/blast-from-the-past/) - [et_pb_section fb_built=”1″ custom_padding_last_edited=”on|phone” admin_label=”Blast from the past” module_id=”previous-speakers” _builder_version=”4.25.1″ use_background_color_gradient=”on” background_color_gradient_direction=”0deg” background_color_gradient_stops=”#000014 0%|#1c0e00 100%” background_color_gradient_start=”#000014″ background_color_gradient_end=”#1c0e00″ background_image=”https://pygrunn.org/wp-content/uploads/2019/12/Naughty-Nero-rotated-1.png” background_size=”initial” background_position=”top_right” custom_margin_last_edited=”off|desktop” custom_padding=”14em||4em||false|false” custom_padding_tablet=”” custom_padding_phone=”450px||||false|false” locked=”off” global_colors_info=”{}”][et_pb_row _builder_version=”4.16″ width_last_edited=”off|desktop” max_width=”80%” max_width_tablet=”80%” max_width_last_edited=”off|desktop” global_colors_info=”{}”][et_pb_column type=”4_4″ _builder_version=”4.16″ global_colors_info=”{}”][et_pb_text admin_label=”Tittle” _builder_version=”4.16″ text_font=”Oswald||||” link_font=”||||||||” ul_font=”||||||||” ol_font=”||||||||” quote_font=”||||||||” header_font=”||||||||” header_2_font=”Oswald|||on|||||” header_2_text_align=”left” header_2_font_size=”40px” header_2_letter_spacing=”2px” header_2_line_height=”1.5em” background_layout=”dark” custom_margin=”||0px||false|false” locked=”off” global_colors_info=”{}”]Blast from the Past PyGrunners[/et_pb_text][/et_pb_column][/et_pb_row][et_pb_row - [PyGrunn - Python and Friends](https://pygrunn.org/old_main/) - PyGrunn is the “Python and friends” developer conference with a local footprint and global mindset. Firmly rooted in the open source culture, it aims to provide the leaders in advanced internet technologies a platform to inform, inspire and impress their peers. - [Floorplan](https://pygrunn.org/floorplan/) - [et_pb_section fb_built=”1″ _builder_version=”4.16″ _module_preset=”default” global_colors_info=”{}”][et_pb_row _builder_version=”4.16″ _module_preset=”default” module_alignment=”center” custom_margin=”0px||0px||true|true” custom_padding=”0px||0px||true|false” global_colors_info=”{}”][et_pb_column type=”4_4″ _builder_version=”4.16″ _module_preset=”default” global_colors_info=”{}”][et_pb_post_title meta=”off” featured_image=”off” _builder_version=”4.16″ _module_preset=”default” custom_margin=”||-2px|||” global_colors_info=”{}”][/et_pb_post_title][et_pb_image src=”https://pygrunn.org/wp-content/uploads/2023/05/Plattegrond-16-9.png” title_text=”Plattegrond 16-9″ _builder_version=”4.21.0″ _module_preset=”default” global_colors_info=”{}”][/et_pb_image][/et_pb_column][/et_pb_row][et_pb_row _builder_version=”4.21.0″ _module_preset=”default” locked=”off” global_colors_info=”{}”][et_pb_column type=”4_4″ _builder_version=”4.16″ _module_preset=”default” global_colors_info=”{}”][et_pb_button button_url=”@ET-DC@eyJkeW5hbWljIjp0cnVlLCJjb250ZW50IjoicG9zdF9saW5rX3VybF9wYWdlIiwic2V0dGluZ3MiOnsicG9zdF9pZCI6IjExOTcifX0=@” url_new_window=”on” button_text=”Schedule” button_alignment=”center” _builder_version=”4.21.0″ _dynamic_attributes=”button_url” _module_preset=”default” custom_button=”on” button_text_size=”15px” button_text_color=”#ffffff” button_bg_color=”#dca47d” button_border_width=”10px” button_border_color=”#dca47d” button_border_radius=”0px” button_letter_spacing=”3px” button_font=”Oswald|||on|” button_use_icon=”off” custom_margin=”20px|||” locked=”off” global_colors_info=”{}” - [Camera 4](https://pygrunn.org/schedule/camera-4/) - [et_pb_section fb_built=”1″ _builder_version=”4.16″ _module_preset=”default” global_colors_info=”{}”][et_pb_row column_structure=”1_6,1_6,1_6,1_6,1_6,1_6″ use_custom_gutter=”on” gutter_width=”1″ make_equal=”on” _builder_version=”4.21.0″ _module_preset=”default” module_alignment=”center” custom_padding=”0px||0px|||” locked=”off” global_colors_info=”{}”][et_pb_column type=”1_6″ _builder_version=”4.16″ _module_preset=”default” custom_padding=”0px|0px|0px|0px|true|true” global_colors_info=”{}”][et_pb_button button_url=”@ET-DC@eyJkeW5hbWljIjp0cnVlLCJjb250ZW50IjoicG9zdF9saW5rX3VybF9wYWdlIiwic2V0dGluZ3MiOnsicG9zdF9pZCI6IjExOTcifX0=@” button_text=”All” button_alignment=”center” _builder_version=”4.21.0″ _dynamic_attributes=”button_url” _module_preset=”default” custom_button=”on” button_bg_color=”rgba(0,0,0,0)” button_border_width=”0px” button_use_icon=”off” custom_margin=”0px|0px|0px|0px|true|true” custom_padding=”0px|0px|0px|0px|true|true” button_border_width_last_edited=”off|desktop” global_colors_info=”{}” button_border_width__hover_enabled=”off|hover” button_border_width__hover=”0px” button_bg_color__hover_enabled=”on|hover” button_bg_color__hover=”rgba(0,0,0,0)” button_bg_enable_color__hover=”on”][/et_pb_button][/et_pb_column][et_pb_column type=”1_6″ _builder_version=”4.16″ _module_preset=”default” custom_padding=”0px|0px|0px|0px|true|true” global_colors_info=”{}”][et_pb_button button_url=”@ET-DC@eyJkeW5hbWljIjp0cnVlLCJjb250ZW50IjoicG9zdF9saW5rX3VybF9wYWdlIiwic2V0dGluZ3MiOnsicG9zdF9pZCI6IjEzMTQifX0=@” button_text=”Camera 1″ button_alignment=”center” _builder_version=”4.21.0″ _dynamic_attributes=”button_url” _module_preset=”default” custom_button=”on” button_bg_color=”rgba(0,0,0,0)” button_border_width=”0px” button_use_icon=”off” - [Camera 2](https://pygrunn.org/schedule/camera-2/) - [et_pb_section fb_built=”1″ _builder_version=”4.16″ _module_preset=”default” global_colors_info=”{}”][et_pb_row column_structure=”1_6,1_6,1_6,1_6,1_6,1_6″ use_custom_gutter=”on” gutter_width=”1″ make_equal=”on” _builder_version=”4.21.0″ _module_preset=”default” module_alignment=”center” custom_padding=”0px||0px|||” locked=”off” global_colors_info=”{}”][et_pb_column type=”1_6″ _builder_version=”4.16″ _module_preset=”default” custom_padding=”0px|0px|0px|0px|true|true” global_colors_info=”{}”][et_pb_button button_url=”@ET-DC@eyJkeW5hbWljIjp0cnVlLCJjb250ZW50IjoicG9zdF9saW5rX3VybF9wYWdlIiwic2V0dGluZ3MiOnsicG9zdF9pZCI6IjExOTcifX0=@” button_text=”All” button_alignment=”center” _builder_version=”4.21.0″ _dynamic_attributes=”button_url” _module_preset=”default” custom_button=”on” button_bg_color=”rgba(0,0,0,0)” button_border_width=”0px” button_use_icon=”off” custom_margin=”0px|0px|0px|0px|true|true” custom_padding=”0px|0px|0px|0px|true|true” button_border_width_last_edited=”off|desktop” global_colors_info=”{}” button_border_width__hover_enabled=”off|hover” button_border_width__hover=”0px” button_bg_color__hover_enabled=”on|hover” button_bg_color__hover=”rgba(0,0,0,0)” button_bg_enable_color__hover=”on”][/et_pb_button][/et_pb_column][et_pb_column type=”1_6″ _builder_version=”4.16″ _module_preset=”default” custom_padding=”0px|0px|0px|0px|true|true” global_colors_info=”{}”][et_pb_button button_url=”@ET-DC@eyJkeW5hbWljIjp0cnVlLCJjb250ZW50IjoicG9zdF9saW5rX3VybF9wYWdlIiwic2V0dGluZ3MiOnsicG9zdF9pZCI6IjEzMTQifX0=@” button_text=”Camera 1″ button_alignment=”center” _builder_version=”4.21.0″ _dynamic_attributes=”button_url” _module_preset=”default” custom_button=”on” button_bg_color=”rgba(0,0,0,0)” button_border_width=”0px” button_use_icon=”off” - [Rabozaal](https://pygrunn.org/schedule/rabozaal/) - [et_pb_section fb_built=”1″ _builder_version=”4.16″ _module_preset=”default” global_colors_info=”{}”][et_pb_row column_structure=”1_6,1_6,1_6,1_6,1_6,1_6″ use_custom_gutter=”on” gutter_width=”1″ make_equal=”on” _builder_version=”4.21.0″ _module_preset=”default” module_alignment=”center” custom_padding=”0px||0px|||” hover_enabled=”0″ locked=”off” global_colors_info=”{}” sticky_enabled=”0″][et_pb_column type=”1_6″ _builder_version=”4.16″ _module_preset=”default” custom_padding=”0px|0px|0px|0px|true|true” global_colors_info=”{}”][et_pb_button button_url=”@ET-DC@eyJkeW5hbWljIjp0cnVlLCJjb250ZW50IjoicG9zdF9saW5rX3VybF9wYWdlIiwic2V0dGluZ3MiOnsicG9zdF9pZCI6IjExOTcifX0=@” button_text=”All” button_alignment=”center” _builder_version=”4.21.0″ _dynamic_attributes=”button_url” _module_preset=”default” custom_button=”on” button_bg_color=”rgba(0,0,0,0)” button_border_width=”0px” button_use_icon=”off” custom_margin=”0px|0px|0px|0px|true|true” custom_padding=”0px|0px|0px|0px|true|true” hover_enabled=”0″ button_border_width_last_edited=”off|desktop” global_colors_info=”{}” button_border_width__hover_enabled=”off|hover” button_border_width__hover=”0px” button_bg_color__hover_enabled=”on|hover” button_bg_color__hover=”rgba(0,0,0,0)” button_bg_enable_color__hover=”on” sticky_enabled=”0″][/et_pb_button][/et_pb_column][et_pb_column type=”1_6″ _builder_version=”4.16″ _module_preset=”default” custom_padding=”0px|0px|0px|0px|true|true” global_colors_info=”{}”][et_pb_button button_url=”@ET-DC@eyJkeW5hbWljIjp0cnVlLCJjb250ZW50IjoicG9zdF9saW5rX3VybF9wYWdlIiwic2V0dGluZ3MiOnsicG9zdF9pZCI6IjEzMTQifX0=@” button_text=”Camera 1″ button_alignment=”center” _builder_version=”4.21.0″ _dynamic_attributes=”button_url” _module_preset=”default” - [Camera 5](https://pygrunn.org/schedule/camera-5/) - [et_pb_section fb_built=”1″ _builder_version=”4.16″ _module_preset=”default” global_colors_info=”{}”][et_pb_row column_structure=”1_6,1_6,1_6,1_6,1_6,1_6″ use_custom_gutter=”on” gutter_width=”1″ make_equal=”on” _builder_version=”4.21.0″ _module_preset=”default” module_alignment=”center” custom_padding=”0px||0px|||” hover_enabled=”0″ locked=”off” global_colors_info=”{}” sticky_enabled=”0″][et_pb_column type=”1_6″ _builder_version=”4.16″ _module_preset=”default” custom_padding=”0px|0px|0px|0px|true|true” global_colors_info=”{}”][et_pb_button button_url=”@ET-DC@eyJkeW5hbWljIjp0cnVlLCJjb250ZW50IjoicG9zdF9saW5rX3VybF9wYWdlIiwic2V0dGluZ3MiOnsicG9zdF9pZCI6IjExOTcifX0=@” button_text=”All” button_alignment=”center” _builder_version=”4.21.0″ _dynamic_attributes=”button_url” _module_preset=”default” custom_button=”on” button_bg_color=”rgba(0,0,0,0)” button_border_width=”0px” button_use_icon=”off” custom_margin=”0px|0px|0px|0px|true|true” custom_padding=”0px|0px|0px|0px|true|true” hover_enabled=”0″ button_border_width_last_edited=”off|desktop” global_colors_info=”{}” button_border_width__hover_enabled=”off|hover” button_border_width__hover=”0px” button_bg_color__hover_enabled=”on|hover” button_bg_color__hover=”rgba(0,0,0,0)” button_bg_enable_color__hover=”on” sticky_enabled=”0″][/et_pb_button][/et_pb_column][et_pb_column type=”1_6″ _builder_version=”4.16″ _module_preset=”default” custom_padding=”0px|0px|0px|0px|true|true” global_colors_info=”{}”][et_pb_button button_url=”@ET-DC@eyJkeW5hbWljIjp0cnVlLCJjb250ZW50IjoicG9zdF9saW5rX3VybF9wYWdlIiwic2V0dGluZ3MiOnsicG9zdF9pZCI6IjEzMTQifX0=@” button_text=”Camera 1″ button_alignment=”center” _builder_version=”4.21.0″ _dynamic_attributes=”button_url” _module_preset=”default” - [Camera 1](https://pygrunn.org/schedule/camera-1/) - [et_pb_section fb_built=”1″ _builder_version=”4.16″ _module_preset=”default” global_colors_info=”{}”][et_pb_row column_structure=”1_6,1_6,1_6,1_6,1_6,1_6″ use_custom_gutter=”on” gutter_width=”1″ make_equal=”on” _builder_version=”4.21.0″ _module_preset=”default” module_alignment=”center” custom_padding=”0px||0px|||” hover_enabled=”0″ locked=”off” global_colors_info=”{}” sticky_enabled=”0″][et_pb_column type=”1_6″ _builder_version=”4.16″ _module_preset=”default” custom_padding=”0px|0px|0px|0px|true|true” global_colors_info=”{}”][et_pb_button button_url=”@ET-DC@eyJkeW5hbWljIjp0cnVlLCJjb250ZW50IjoicG9zdF9saW5rX3VybF9wYWdlIiwic2V0dGluZ3MiOnsicG9zdF9pZCI6IjExOTcifX0=@” button_text=”All” button_alignment=”center” _builder_version=”4.21.0″ _dynamic_attributes=”button_url” _module_preset=”default” custom_button=”on” button_bg_color=”rgba(0,0,0,0)” button_border_width=”0px” button_use_icon=”off” custom_margin=”0px|0px|0px|0px|true|true” custom_padding=”0px|0px|0px|0px|true|true” hover_enabled=”0″ button_border_width_last_edited=”off|desktop” global_colors_info=”{}” button_border_width__hover_enabled=”off|hover” button_border_width__hover=”0px” button_bg_color__hover_enabled=”on|hover” button_bg_color__hover=”rgba(0,0,0,0)” button_bg_enable_color__hover=”on” sticky_enabled=”0″][/et_pb_button][/et_pb_column][et_pb_column type=”1_6″ _builder_version=”4.16″ _module_preset=”default” custom_padding=”0px|0px|0px|0px|true|true” global_colors_info=”{}”][et_pb_button button_url=”@ET-DC@eyJkeW5hbWljIjp0cnVlLCJjb250ZW50IjoicG9zdF9saW5rX3VybF9wYWdlIiwic2V0dGluZ3MiOnsicG9zdF9pZCI6IjEzMTQifX0=@” button_text=”» Camera 1 «” button_alignment=”center” _builder_version=”4.21.0″ - [Postponement](https://pygrunn.org/postponement/) - [et_pb_section fb_built=”1″ inner_shadow=”on” admin_label=”Video Title Section” _builder_version=”4.4.1″ background_enable_color=”off” use_background_color_gradient=”on” background_color_gradient_start=”rgba(29,20,11,0.05)” background_color_gradient_end=”rgba(91,0,0,0.1)” background_color_gradient_direction=”-135deg” background_enable_image=”off” background_size=”contain” background_position=”center_left” custom_padding=”4em||4em||false|false” background_last_edited=”on|desktop” background_enable_image_tablet=”off” saved_tabs=”all”][et_pb_row admin_label=”Video Row” _builder_version=”4.0.9″ width_last_edited=”off|desktop” max_width=”900px”][et_pb_column type=”4_4″ _builder_version=”4.0.9″ custom_padding=”|||” custom_padding__hover=”|||”][et_pb_text content_phone=” PyGrunn is the %22Python and friends%22 developer conference with a local footprint and global mindset. Firmly rooted in the open source culture, it aims to provide ## Sessions - [DIY Jupyter Notebooks in Production](https://pygrunn.org/sessions/the-application-of-foss-python-within-the-financial-world/) - Bookrunner is a small application to configure and execute Jupyter Notebooks.We'll go through the components used to build the application and in the end show a live demo.Also talk about a few common pitfalls between different disciplines, software engineering/data engineering. About Jan Gazda Founding member of PyAmsterdam community, open source contributor, serverless and public cloud - [3D Geometries, Mesh Processing, and Interactive Visualizations in Python](https://pygrunn.org/sessions/adding-depth-to-your-data-3d-geometries-and-mesh-processing-in-python/) - Discover how libraries like PyVista, trimesh, meshio, Open3D, and others, seamlessly work together to create beautiful 3D plots and manipulate 3D meshes for your projects. We will create interactive visualizations of medical images, surfaces, and clouds of points, showcasing the capabilities of these libraries in mesh processing and how the 3D viz can be embedded - [Fast Evolution, Solid Core](https://pygrunn.org/sessions/fast-evolution-solid-core/) - At Tiqets we want to move fast in many areas: aquiring new users, increasing conversion, growing and strengthening our relationship with our partners, advertising smartly… So we want to move fast! Experiment! Try crazy things! Learn what works, drop what doesn’t! But, how can do all this and still maintain the stability and reliability of - [Strategic DDD for developers](https://pygrunn.org/sessions/clean-architecture/) - DDD == repositories, entities, value objects? Not quite, Though they are important parts of the concept of DDD a lot of value is to be gained by using DDD’s strategic parts. In this talk, we will design a system from the strategy of the business and its domain using the key design concepts of DDD - [Modern Python through FastAPI and friends](https://pygrunn.org/sessions/fastapi/) - Explore some of the great features of modern Python and how to use them with FastAPI and friends. We will see how to make code that is less error-prone, simpler, more efficient, and have a great developer experience, all at the same time. And all this while including best practices by default. We will see - [A Python developer’s guide to ChatGPT](https://pygrunn.org/sessions/efficient-physics-simulation-with-pychrono-building-accurate-digital-environments-for-engineering-and-research/) - About Jean Paul van Oosten Talks about machinelearning, softwaredevelopment, and artificialintelligence - [Q&A with FastAPI author Tiangolo](https://pygrunn.org/sessions/demystifying-pythons-internals-diving-into-cpython-by-implementing-a-pipe-operator/) - Tiangolo (Sebastián Ramírez) is the creator of FastAPI, Typer, SQLModel, Asyncer and other open source tools. He is a well-respected figure in the open source community in general, and the Python community specifically. During this Q&A we will dive more into his work, his ambition and his view on our profession. Besides that the audience - [Opening talk](https://pygrunn.org/sessions/opening-talk-by-organizer/) - [Check in on ground floor and reception in Rabozaal (via wooden spiral stairs on the ground floor)](https://pygrunn.org/sessions/check-in/) - [Software Design Tips for Lazy People](https://pygrunn.org/sessions/software-design-in-python/) - When you hear the words "software design," your mind probably conjures up images of intricate design patterns, convoluted class structures, and heated online debates over the single responsibility principle. I mean, who wouldn't want to spend their days crafting extremely generic code and creating beautiful UML diagrams, right? It's no wonder that proper software design - [What can big language models do?](https://pygrunn.org/sessions/what-can-big-language-models-do/) - Big language models have revolutionized the field of natural language processing, and their potential applications are vast and exciting. In my talk, I will explore the latest developments in big language models, their current capabilities and limitations, and a system design architecture applying them to solve problems using external data and the internet. About Yonatan - [When and how to refactor your code into generators](https://pygrunn.org/sessions/when-and-how-to-refactor-your-code-into-generators/) - May 26, 2023 from 10:15 am to 10:45 am Camera 1 (64 people) Have you ever found yourself coding variations of a loop construct where fragments of the loop code were exactly the same between the variations? Or, in an attempt to factor out these common parts, you ended up with a loop construct containing - [Your API on the fly!](https://pygrunn.org/sessions/your-api-on-the-fly/) - The city of Amsterdam has a lot to offer. Among this are huge amounts of open datasets produced by the municipality of Amsterdam. Approximately 5 years ago, an initiative started to make these datasets available for everyone through REST APIs. During a period of learning and exploration, more and more datasets became available. Until a - [Error handling is boring but this is the Exception](https://pygrunn.org/sessions/deep-dive-into-exception-handling-in-python-3-11/) - We are going to fly a rocket into space, what could possibly go wrong? We can slap a try except around it and call it a day. Or we could leverage the new Python Exception handling modules from 3.11 to create a robust application that will actually go the moon. About Vito Minheere Vito is - [Python under the hood: why Python is so slow and how to speed it up](https://pygrunn.org/sessions/python-under-the-hood-why-python-is-so-slow-and-how-to-speed-it-up/) - I believe that a deep understanding of the tool allows you to use it most optimally. In this talk we become Python experts by taking a deep dive into Python's inner workings. We see how Python stores data in memory, how it differs from other languages, why we don't have to define variable types and - [Walk to Rabozaal & Newsroom (via wooden spiral stairs on the ground floor)](https://pygrunn.org/sessions/walk-to-rabozaal-newsroom-via-wooden-spiral-stairs-on-the-ground-floor/) - [Lunch (Atrium, Rabozaal en Newsroom - spiral stairs from the ground floor)](https://pygrunn.org/sessions/lunch-atrium-rabozaal-en-newsroom-spiral-stairs-from-the-ground-floor/) - [Walk to Camera Cafe (4th floor, via escalator)](https://pygrunn.org/sessions/walk-to-camera-cafe-4th-floor-via-escalator-4/) - [Back to the future of software development](https://pygrunn.org/sessions/back-to-the-future-of-software-development/) - We are going to take you Back to the Future of software development! With the extremely rapid developments of AI and other tools, software development will be reshaped in the future. We're going back to the future, since these new developments enable us to build information systems according to old ideas. We will demonstrate how - [Walk to Camera Cafe (4th floor, via escalator)](https://pygrunn.org/sessions/walk-to-camera-cafe-4th-floor-via-escalator-3/) - [Drinks (Rabozaal en Newsroom - via spiral stairs from the ground floor)](https://pygrunn.org/sessions/drinks-rabozaal-en-newsroom-via-spiral-stairs-from-the-ground-floor/) - [Frontend for backenders](https://pygrunn.org/sessions/frontend-for-backenders/) - For the last 10 years SPAs and JavaScript have dominated. It's time to bring them down! Regular Python dev can learn a few HTML attributes and create a pretty good site this days. All thanks to a rise of new libraries like HTMx or TwinSpark - let's talk about them. About Alexander Solovyov Alexander has - [Blunder: Unraveling catastrophes](https://pygrunn.org/sessions/blunder-unraveling-catastrophes/) - "IndexError: list assignment index out of range". Perhaps a familiar log message to anyone working with data. If you’re lucky, you just deployed some new code and know exactly where to look. If it’s a friday afternoon and you just want to go home, this is the last thing you want to see. You may - [The journey of a Django application: from startup to scale up to enterprise](https://pygrunn.org/sessions/the-journey-of-a-django-application-from-startup-to-scale-up-to-enterprise/) - Django is the web framework for perfectionists with deadlines. And that is exactly what Django proved to be in the journey of SignRequest to Box.The way we utilized Django however differs within each state of the company. I will take you on the journey on how important Django was while the company was growing from - [Drinks & mingle (Atrium, Rabozaal en Newsroom - via spiral stairs from the ground floor)](https://pygrunn.org/sessions/drinks-mingle-atrium-rabozaal-en-newsroom-via-spiral-stairs-from-the-ground-floor/) - [Easy user interaction testing with webtest](https://pygrunn.org/sessions/easy-user-interaction-testing-with-webtest/) - If you're building a web application, you should, among other things, test what a user might do.For all its usefulness, webtest is not widely known. You may have heard of Selenium and Playwright, fine solutions but a bit complex. webtest fits between unit tests and more complex user interaction testing solutions. This talk is intended - [Testing files like a pro](https://pygrunn.org/sessions/testing-files-like-a-pro/) - Ever needed files for testing? Had struggles with it? You will learn how to create files with fake data. In many formats. With no efforts. About Artur Barseghyan https://github.com/barseghyanartur - [Get started with security in your code.](https://pygrunn.org/sessions/get-started-with-security-in-your-code-an-introduction-to-security-for-developers/) - As a developer, you play a crucial role in the security of your projects. And, yet, when I talk with developers, they often say that they don’t really know where to start. They know that security is important, but they also feel that they lack the knowledge and expertise to really make a difference. In - [JAX and its ecosystem](https://pygrunn.org/sessions/jax-and-its-ecosystem/) - For large, fast, and easy numeric computation, JAX is an alternative to Pytorch and Tensorflow. JAX has all the benefits such as acceleration and scalability on, and across, devices without the boiler plate code. This allows you to focus on the maths without sacrificing speed. This talk provides a gentle introduction to JAX. We will - [Optimizations for mere mortals](https://pygrunn.org/sessions/optimizations-for-mere-mortals/) - Python being a very high-level language, it’s easy to forget that we still have limited resources. Further, code performance has real-world implications. A few milliseconds of delay can mean a significant drop in the conversion rate.Code optimization is very important, but optimization also means how, when, and where you allocate your (developer) time optimally to - [Developer happiness](https://pygrunn.org/sessions/developer-happiness/) - Over time you accumulate a lot of tools, tricks, experiences and best practices. You learn new tricks or tools and add them to your 'pool of knowledge' or tool belt. Then you switch companies and you suddenly realize that what you took for granted, isn't as widely shared/known as you thought. "We should have had - [Bridging the Python and Rust gap, asynchronously](https://pygrunn.org/sessions/bridging-the-python-and-rust-gap-asynchronously/) - In this talk we will be exploring Rust extensions, with a special focus on asynchronous programming. Among the topics covered are the differences between Python and Rust asynchronous programming, when to use one over the other (or neither!), and how to get started with writing your own extension. After that, we will dive into the - [Why can't we deliver this today?](https://pygrunn.org/sessions/why-cant-we-deliver-this-today/) - We all want to deliver software of high quality, but the QA processes we invent often hold us back from iterating quickly. This hampers our ability to create software with the quality we set out to achieve. Having seen some software delivery processes from within, Dirk shares his experiences with designing and implementing a software - [FastAPI with Django](https://pygrunn.org/sessions/fastapi-with-django/) - Django is a productive web framework with “batteries included” but it lacks a default native way to create REST APIs. Over the last 10 years, different frameworks and methods have come up to facilitate the development of REST APIs in Django. TastyPie and Django Rest Framework are mature frameworks, but a more recent library is - [MPIRE: MultiProcessing Is Really Easy](https://pygrunn.org/sessions/mpire-multiprocessing-really-easy/) - Python programmers often need to rely on multiprocessing to speed up their code. In multiprocessing new processes are spawned and executed simultaneously, effectively side-stepping the infamous global interpreter lock. There are several Python libraries that offer multiprocessing capabilities and remove the need to write all the boilerplate code to work with processes and inter-process communication. - [Wrap up by organizer](https://pygrunn.org/sessions/wrap-up/) - [Opening talk by organizer](https://pygrunn.org/sessions/opening/) - [T̶h̶e̶ ̶g̶e̶o̶s̶p̶a̶t̶i̶a̶l̶ ̶p̶o̶w̶e̶r̶s̶ ̶o̶f̶ ̶a̶ ̶s̶n̶a̶k̶e̶ (cancelled)](https://pygrunn.org/sessions/the-geospatial-powers-of-a-snake/) - Python is an environment which is versatile. Due to the frameworks to build whole webapplications. Data analysis and many other applications in which Python is used. Nowadays data is not only tabular data with some numbers but becomes more and more also about location related data. In the short presentation I will give the attendee - [Live blog with Wagtail Live](https://pygrunn.org/sessions/live-blog-with-wagtail-live/) - Wagtail Live is a Wagtail package to create live blog pages. Wagtail is the most popular CMS build on-top of Django. With Wagtail Live: - Reporters can instantly publish to a live blog by submitting messages via mobile apps. - Audience can read the posts right away as the live blog page instantly updates. I'm - [Self-watering landscapes with a bit of docker](https://pygrunn.org/sessions/micropython-and-self-watering-plants/) - We use docker containers for most of our python projects. It is all very diverse, from big websites to small scripts. And those scripts are mostly not made by programmers. I'll show some examples of how we use docker containers for that.And I'll talk a bit about questions we have like "should everything run in - [State of the Nation: Being a developer in NL in '21](https://pygrunn.org/sessions/state-of-the-nation-nl-2021/) - What are Dutch developers being paid at different stages of their career? What do developers want in a new job? How do Dutch developers level up? We’ve got some insights! Based on a survey of over 500 developers, OfferZen has created an open-date report on the State of the Netherlands Software Developer Nation. In this - [Keynote: Learn pattern matching by writing a game](https://pygrunn.org/sessions/cpython/) - About Łukasz Langa CPython Developer in Residence, Python 3.8 & 3.9 release manager, creator of Black. "I'm equally interested in music and software engineering, as a classically-trained pianist and a long-time contributor to the Python programming language. I build software for musical instruments. I make music as RPLKTR. I'm also the Release Manager for Python 3.8 and 3.9. I - [TIL about the GIL](https://pygrunn.org/sessions/til-about-the-gil/) - Today I Learned about the Global Interpreter Lock. The GIL often gets blamed for hindering writing concurrent Python applications. In this talk we will discuss, what the GIL is, what problem it solves, why this solution was chosen and how to write better concurrent Python applications. About Mark Boer Mark Boer is cofounder of Spheer.ai, a data - [Python and Google Blockly for IoT projects](https://pygrunn.org/sessions/python-google-blockly-iot/) - Python is the language of choice in many an Internet of Things project. In the recent years I have been using Python as part of many courses, from software testing with Cucumber, web development with Flask, to IoT with UI Flow, which is Google Blockly and Python at heart. A couple of trainees have used - [Jumping through hoops to prevent loops](https://pygrunn.org/sessions/many-very-diverse-python-projects-in-dockers/) - For-loops in Python are notoriously slow compared to traditional compiled languages such as C++. This obstacle primarily manifests itself in medium data problems --- i.e., data problems that are small enough to fit on a single machine --- which then become too slow with traditional Python loops. The solution is simple: don’t use loops. Fortunately, - [Digital Elevation Model processing](https://pygrunn.org/sessions/digital-elevation-model-processing/) - Digital Elevation Models (DEM) are widely and freely available. This talk will focus on how to process this type of data to make it useful for agricultural purposes. Specifically we'll explore how to calculate where shadows are casts, and where rain water will accumulate and drain from the field. About Erik-Jan Blanksma Seasoned software developer. - [Building an API with OpenAPI YAML in 10 minutes](https://pygrunn.org/sessions/building-an-api-with-openapi-yaml-in-10-min/) - Connexion is a framework that automagically handles HTTP requests based on OpenAPI Specification (formerly known as Swagger Spec) of your API described in YAML format. Connexion allows you to write an OpenAPI specification, then maps the endpoints to your Python functions; this makes it unique, as many tools generate the specification based on your Python - [Event-driven autoscaling on Kubernetes with KEDA and Azure Functions](https://pygrunn.org/sessions/serverless-functions-anywhere-with-openfaas/) - Event-driven, serverless architectures are a hot topic in today’s cloud-native application development. To take full advantage of the serverless benefits of event-driven, your application needs to scale and react to those events instantly. It needs to be able to scale from zero to potentially thousands of instances. KEDA is an open-sourced component that provides event-driven - [Walk to Camera Cafe (4th floor, via escalator)](https://pygrunn.org/sessions/walk-to-camera-cafe-4th-floor-via-escalator/) - [Walk to Camera Cafe (4th floor, via escalator)](https://pygrunn.org/sessions/walk-to-camera-cafe-4th-floor-via-escalator-2/) - [Walk to Rabozaal & Newsroom (via wooden spiral stairs on the ground floor)](https://pygrunn.org/sessions/walk-to-rabozaal-newsroom-via-wenteltrap-vanaf-begane-grond/) - [Check in on ground floor and reception in Rabozaal (via wooden spiral stairs on the ground floor)](https://pygrunn.org/sessions/reception/) - [Keynote: Make it Work. Fast.](https://pygrunn.org/sessions/make-it-work-fast/) - Any project passes "we need more features" and "omg why everything fails" phases during its life. They intertwine, they are not always pronounced, but they are there. Kasta is one of the biggest marketplaces in Ukraine and is experiencing growing pains often enough to generate some interesting stories. Come listen to tales of fails and - [Don't trust your coverage report](https://pygrunn.org/sessions/dont-trust-your-coverage-report/) - In a modern programming world test coverage often is a must-have for any project bigger than 50 lines of code. But does code coverage actually say something about quality of our code? What does a test coverage report actually mean? Is coverage of 80% always better than coverage of 50%? Are tests that don't increase - [Large scale python satellite image processing](https://pygrunn.org/sessions/large-scale-python-satellite-image-processing/) - Over the last 10 years, the amount of satellite data being gathered has increased significantly and the accessibility has drastically improved. Python is great language to process this data, thanks to the great geospatial information systems (GIS) tools and artificial intelligence (AI) libraries. We have created several generations of python systems processing Sentinel satellite data. - [Lunch @ Rabozaal & Newsroom (escalators & via spiral staircase from ground floor)](https://pygrunn.org/sessions/lunch/) - [Your Call(able): Cool parts of python's callable interface](https://pygrunn.org/sessions/cool-parts-of-pythons-callable-interface/) - Functions are fundamental to python, and are amongst the first features of python that most users learn. We call a function with arguments, and it returns a value. However, there is more to this callable interface than meets the eye, and there are lots of useful and powerful (and cool!) things we can do with - [Practical pointers for better code review](https://pygrunn.org/sessions/practical-pointers-for-better-code-review/) - If "code review" means the 2 seconds you glance at a PR before you click "merge", there is likely some room for improvement. But experienced reviewers too might benefit from some new angles on the subject. Even if you don't usually work with a review system, these pointers can improve your code. In this talk, - [Designing for AsyncIO](https://pygrunn.org/sessions/designing-for-asyncio/) - Your service runs lots of IO-bound code and you wand to speed it up. Just use AsyncIO, right? Should you? What are the drawbacks? We'll look into how you to design a production-ready asynchronous service, including testing, exception handling, mixing synchronous and asynchronous code, what's good about asyncio, and what you need to be careful - [Explainable AI with Python](https://pygrunn.org/sessions/xai-with-python/) - Untransparent black box models feed scepsis towards AI in the general public and prevent the full use of powerful possibilities of AI. In the past, we often focussed on building the newest, most ingenious, and exciting models. Nowadays, our attention has to shift towards building ethical models, models that we can explain and for which - [The Magic of Self: How Python inserts self into methods](https://pygrunn.org/sessions/magic-of-self/) - A phrase that I hear a lot is "Python is easy to learn, but hard to master". In a way that's true: Python is easy to learn because its high level of abstraction allows you to focus on the business logic of what you're trying to do instead of the lower-level implementation details. At the - [MLOps with MLFlow + DVC on Groningen open data](https://pygrunn.org/sessions/mlops-with-mlflow-and-dvc-groningen/) - Managing your the ML Lifecycle is one of the big problems for institutions and companies nowadays. How to shift away from the experimental notebooks and data labs and at the same time maintain the reproducability of the transparancy of the ML systems With this talk Laurens will walk you through an example of how to - [Build and deploy PyTorch models with Azure ML](https://pygrunn.org/sessions/build-and-deploy-pytorch-models-with-azure-ml/) - With machine learning becoming more and more an engineering problem the need to track, work together and easily deploy ML experiments with integrated CI/CD tooling is becoming more relevant then ever. In this session we take a deep-dive into Azure Machine Learning, a cloud service that you can use to track as you build, train, - [Setting up new developers for success](https://pygrunn.org/sessions/setting-up-new-developers-for-success/) - With experience comes responsibility, and seasoned programmers will have the honor of guiding new developers. Developers who are new to the field need extra mentoring. Not everyone realizes that mentors are crucial to help developers settle in and expand their knowledge. This talk helps you and your company lay the groundwork for guiding new developers - [Threat Modelling for Pythonistas](https://pygrunn.org/sessions/threat-modelling-for-pythonistas/) - What threats do we need to take into account when building a system? A key method for answering this question is an approach called threat modelling, whereby security problems can be anticipated during the design phase. This talk discusses major threat-modelling approaches, and includes concrete examples of how to apply them to software-intensive systems. About - [Intro into WebAssembly: how to use it client and server side](https://pygrunn.org/sessions/webassembly-how-to-client-and-server-side/) - WebAssembly (WASM) is binary format that runs at near native speed. The technology is supported by all major browsers, but can also be used outside of the browser. Today you can cross-compile Rust, C and C++ code to WASM. This allows you to pick the best parts of each language environment and use them in - [Strenghts AND weaknesses of Julia compared to Python](https://pygrunn.org/sessions/strenghts-and-weaknesses-of-julia-compared-to-python/) - Many Python programmers will have heard the Julia programming language buzzing around. However, the Julia community is known for being overly enthusiastic about how great the language is. For the last three years, I have been using Julia almost full-time and so I had plenty of time to also discover some weaknesses of the language. - [Break: Drinks & socializing @ Camera Cafe (4th floor, via escalator)](https://pygrunn.org/sessions/break-camera-cafe/) - [Drinks @ Rabozaal & Newsroom](https://pygrunn.org/sessions/drinks-rabozaal-newsroom/) ## Tracks - [Camera 1 (64 people)](https://pygrunn.org/track/camera-1/) - [Camera 2 (121 people)](https://pygrunn.org/track/camera-2/) - [Camera 5 (157 people)](https://pygrunn.org/track/camera-5/) - [Camera 4 (85 people)](https://pygrunn.org/track/camera-4/) - [Rabozaal (320 people)](https://pygrunn.org/track/rabozaal/)