From 0bd7d0cfe191b150471f23bdb5d1075e87e2bac5 Mon Sep 17 00:00:00 2001 From: Alexander Hendorf Date: Tue, 26 May 2026 05:23:38 +0000 Subject: [PATCH 1/6] style: consistent heading rhythm + fix nested

around markdown bodies MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Add global margin-bottom and contextual margin-top to h2-h6 so headings breathe and content lands on the same vertical rhythm (no type-size changes). - Collapse the gap when a heading directly follows another heading (e.g. blog post title + date) so paired headings still read as a pair. - Drop redundant per-section h2/h3 margin overrides — the global heading rules cover them; .conf-block h3 keeps only its size. - Wrap markdown bodies in .post-body / .event-body and give them a top margin so they sit on the same beat as the meta block above. - Stop wrapping {{ post.body }} / {{ event.body }} in

: the markdown filter already returns block HTML (h3, p, ul, ...), so the wrapping

was producing invalid nested markup that browsers auto-closed into stray empty paragraphs above every heading. --- assets/stylesheets/main.css | 61 +++++++++++++++++++++++++++++++------ templates/macros/blog.html | 2 +- templates/macros/event.html | 2 +- 3 files changed, 53 insertions(+), 12 deletions(-) diff --git a/assets/stylesheets/main.css b/assets/stylesheets/main.css index e50f4ce..2ca6583 100644 --- a/assets/stylesheets/main.css +++ b/assets/stylesheets/main.css @@ -104,6 +104,51 @@ h4 { line-height: 1.2; } +/* Consistent vertical rhythm for headings. + Sizes are not changed here — only spacing. Margins are expressed in + the global --rythm-unit so headings always land on the same beat as + paragraphs (which have margin-bottom: var(--rythm-unit)). */ +h2, +h3, +h4, +h5, +h6 { + margin-bottom: calc(var(--rythm-unit) / 2); +} + +h2 { + margin-bottom: calc(var(--rythm-unit) * 0.66); +} + +/* Give headings air above when they follow flowing content, so each + sub-section is visually distinct without changing type sizes. The + :not(:first-child) guard prevents an unwanted gap above the very + first heading inside a section/card. */ +h2:not(:first-child) { + margin-top: calc(var(--rythm-unit) * 1.25); +} + +h3:not(:first-child) { + margin-top: calc(var(--rythm-unit) * 0.75); +} + +h4:not(:first-child), +h5:not(:first-child), +h6:not(:first-child) { + margin-top: calc(var(--rythm-unit) * 0.5); +} + +/* When a heading directly follows another heading (e.g. blog post title + immediately followed by a date sub-heading), don't double-stack the + margins — collapse the gap so they read as a pair. */ +h1 + h2, h1 + h3, h1 + h4, h1 + h5, h1 + h6, +h2 + h3, h2 + h4, h2 + h5, h2 + h6, +h3 + h4, h3 + h5, h3 + h6, +h4 + h5, h4 + h6, +h5 + h6 { + margin-top: 0; +} + .main-navigation a, .dropdown--button { font-size: 1.2em; @@ -748,15 +793,9 @@ ol.content-list { line-height: 1.7em; } -/* Conferences & barcamps */ -.conferences-block > h2, -.grants-section > h2, -.ecosystem-section > h2, -.culture-section > h2, -.cta-section > h2, -.volunteers-accent > h2 { - margin-bottom: calc(var(--rythm-unit) / 2); -} +/* Conferences & barcamps + (h2 spacing is handled by the global heading rules above so all + sections share the same rhythm.) */ .conf-block { border-top: 1px solid var(--primary-color); @@ -767,9 +806,11 @@ ol.content-list { border-bottom: 1px solid var(--primary-color); } +/* Within a conf-block card the h3 plays the role of a card title; + only the size is customised, the spacing comes from the global + heading rules. */ .conf-block h3 { font-size: 1.25em; - margin-bottom: calc(var(--rythm-unit) / 2); } .conf-block p { diff --git a/templates/macros/blog.html b/templates/macros/blog.html index c73d0f2..df9c3c0 100644 --- a/templates/macros/blog.html +++ b/templates/macros/blog.html @@ -8,7 +8,7 @@

{{ post.pub_date|dateformat('d.MM.YYYY')}}

{% endif %} -

{{ post.body }}

+
{{ post.body }}
{% endmacro %} {% macro render_blog_post_in_list(post) %} diff --git a/templates/macros/event.html b/templates/macros/event.html index 23bc784..b49d91f 100644 --- a/templates/macros/event.html +++ b/templates/macros/event.html @@ -12,7 +12,7 @@

{{ event.start_date|dateformat('d.MM.YYYY')}} - {{ event.end_date|dateformat {% endif %} -

{{ event.body }}

+
{{ event.body }}
{% if event.url %}

→ {{ event.url }}

From 5028c86ce8901033484d7249c89e94b65473bb03 Mon Sep 17 00:00:00 2001 From: Alexander Hendorf Date: Tue, 26 May 2026 07:40:13 +0200 Subject: [PATCH 2/6] style: scope heading spacing to specific sections;

for blog/event bodies --- assets/stylesheets/main.css | 61 ++++++------------------------------- templates/macros/blog.html | 2 +- templates/macros/event.html | 2 +- 3 files changed, 12 insertions(+), 53 deletions(-) diff --git a/assets/stylesheets/main.css b/assets/stylesheets/main.css index 2ca6583..e50f4ce 100644 --- a/assets/stylesheets/main.css +++ b/assets/stylesheets/main.css @@ -104,51 +104,6 @@ h4 { line-height: 1.2; } -/* Consistent vertical rhythm for headings. - Sizes are not changed here — only spacing. Margins are expressed in - the global --rythm-unit so headings always land on the same beat as - paragraphs (which have margin-bottom: var(--rythm-unit)). */ -h2, -h3, -h4, -h5, -h6 { - margin-bottom: calc(var(--rythm-unit) / 2); -} - -h2 { - margin-bottom: calc(var(--rythm-unit) * 0.66); -} - -/* Give headings air above when they follow flowing content, so each - sub-section is visually distinct without changing type sizes. The - :not(:first-child) guard prevents an unwanted gap above the very - first heading inside a section/card. */ -h2:not(:first-child) { - margin-top: calc(var(--rythm-unit) * 1.25); -} - -h3:not(:first-child) { - margin-top: calc(var(--rythm-unit) * 0.75); -} - -h4:not(:first-child), -h5:not(:first-child), -h6:not(:first-child) { - margin-top: calc(var(--rythm-unit) * 0.5); -} - -/* When a heading directly follows another heading (e.g. blog post title - immediately followed by a date sub-heading), don't double-stack the - margins — collapse the gap so they read as a pair. */ -h1 + h2, h1 + h3, h1 + h4, h1 + h5, h1 + h6, -h2 + h3, h2 + h4, h2 + h5, h2 + h6, -h3 + h4, h3 + h5, h3 + h6, -h4 + h5, h4 + h6, -h5 + h6 { - margin-top: 0; -} - .main-navigation a, .dropdown--button { font-size: 1.2em; @@ -793,9 +748,15 @@ ol.content-list { line-height: 1.7em; } -/* Conferences & barcamps - (h2 spacing is handled by the global heading rules above so all - sections share the same rhythm.) */ +/* Conferences & barcamps */ +.conferences-block > h2, +.grants-section > h2, +.ecosystem-section > h2, +.culture-section > h2, +.cta-section > h2, +.volunteers-accent > h2 { + margin-bottom: calc(var(--rythm-unit) / 2); +} .conf-block { border-top: 1px solid var(--primary-color); @@ -806,11 +767,9 @@ ol.content-list { border-bottom: 1px solid var(--primary-color); } -/* Within a conf-block card the h3 plays the role of a card title; - only the size is customised, the spacing comes from the global - heading rules. */ .conf-block h3 { font-size: 1.25em; + margin-bottom: calc(var(--rythm-unit) / 2); } .conf-block p { diff --git a/templates/macros/blog.html b/templates/macros/blog.html index df9c3c0..c73d0f2 100644 --- a/templates/macros/blog.html +++ b/templates/macros/blog.html @@ -8,7 +8,7 @@

{{ post.pub_date|dateformat('d.MM.YYYY')}}

{% endif %} -
{{ post.body }}
+

{{ post.body }}

{% endmacro %} {% macro render_blog_post_in_list(post) %} diff --git a/templates/macros/event.html b/templates/macros/event.html index b49d91f..23bc784 100644 --- a/templates/macros/event.html +++ b/templates/macros/event.html @@ -12,7 +12,7 @@

{{ event.start_date|dateformat('d.MM.YYYY')}} - {{ event.end_date|dateformat {% endif %} -
{{ event.body }}
+

{{ event.body }}

{% if event.url %}

→ {{ event.url }}

From d734c3160b70662a1aca8a08d72216af2f2f1fc8 Mon Sep 17 00:00:00 2001 From: Alexander Hendorf Date: Tue, 26 May 2026 07:49:37 +0200 Subject: [PATCH 3/6] adds english version of blog posts, normalize /python slugs to en --- .../blog/2026-camper-barcamps/contents+en.lr | 46 ++++++++++++++++ content/blog/2026-euroscipy/contents+en.lr | 14 +++-- .../2026-pycon-de-pydata-recap/contents+en.lr | 2 +- content/blog/2027-pycon-de/contents+en.lr | 17 +++--- content/blog/contents+en.lr | 3 ++ content/python/contents+en.lr | 11 ++++ .../python/history-of-the-pysv/contents+en.lr | 49 +++++++++++++++++ .../contents.lr | 0 .../python/pysv-open-source/contents+en.lr | 52 ++++++++++++++++++ .../contents.lr | 0 content/python/python-culture/contents+en.lr | 53 +++++++++++++++++++ .../{kultur => python-culture}/contents.lr | 0 .../contents+en.lr | 53 +++++++++++++++++++ .../contents.lr | 0 .../python-teaching-language/contents+en.lr | 44 +++++++++++++++ .../contents.lr | 0 16 files changed, 327 insertions(+), 17 deletions(-) create mode 100644 content/blog/2026-camper-barcamps/contents+en.lr create mode 100644 content/blog/contents+en.lr create mode 100644 content/python/contents+en.lr create mode 100644 content/python/history-of-the-pysv/contents+en.lr rename content/python/{geschichte => history-of-the-pysv}/contents.lr (100%) create mode 100644 content/python/pysv-open-source/contents+en.lr rename content/python/{open-source => pysv-open-source}/contents.lr (100%) create mode 100644 content/python/python-culture/contents+en.lr rename content/python/{kultur => python-culture}/contents.lr (100%) create mode 100644 content/python/python-language-of-artificial-intelligence/contents+en.lr rename content/python/{ki => python-language-of-artificial-intelligence}/contents.lr (100%) create mode 100644 content/python/python-teaching-language/contents+en.lr rename content/python/{lehrsprache => python-teaching-language}/contents.lr (100%) diff --git a/content/blog/2026-camper-barcamps/contents+en.lr b/content/blog/2026-camper-barcamps/contents+en.lr new file mode 100644 index 0000000..769050a --- /dev/null +++ b/content/blog/2026-camper-barcamps/contents+en.lr @@ -0,0 +1,46 @@ +title: barcamps.eu stays — PySV takes over the barcamp tool Camper +--- +pub_date: 2026-01-15 +--- +teaser_image: camper.png +--- +show_on_homepage: yes +--- +teaser_text: + +The barcamp tool barcamps.eu has been run by the Python Software Verband since January 2026. The previous host, the Deutscher Bundesjugendring (German Federal Youth Council), could not continue its financial support. PySV is taking over hosting and maintenance — and keeps the platform free to use, so that small initiatives can continue to organise their barcamps through it. + +--- +body: + +## barcamps.eu stays — PySV takes over the barcamp tool Camper + +In January 2026, the **Python Software Verband e. V.** took over the barcamp tool [barcamps.eu](https://barcamps.eu). The previous host, the Deutscher Bundesjugendring (German Federal Youth Council), was no longer able to fund its operation. To keep the platform from being shut down, PySV is taking on hosting, technical maintenance and ongoing operations. + +### What is a barcamp? + +A barcamp is a conference without a pre-set programme. Talks, workshops and discussions are planned together by the participants at the start of the event and held over the course of the days. There are no speakers invited months in advance and no curated agenda — anyone who has something to contribute can offer a session. + +The format works particularly well for smaller groups and for topics where exchange matters more than presentation. It lowers the barrier for anyone speaking in front of a group for the first time, and it works even when it isn't clear up front what topics participants will bring. In the German-speaking Python community, barcamps have been run regularly for years in Leipzig, Karlsruhe, Cologne, on Rügen and at other locations. + +### What is Camper — and why do we need it? + +[Camper](https://github.com/CampZulu/camper) is the open-source software behind barcamps.eu. It covers what a barcamp needs from an organisational point of view: registration, session planning, the programme board, communication with participants. Anyone who has ever tried to handle all of that with spreadsheets, email lists and an ad-hoc website knows how much volunteer work is involved. + +Camper takes that work off your plate — and that is what makes barcamps feasible for small, volunteer-run initiatives in the first place. That is exactly why the platform should be preserved: it is infrastructure for a format that would be considerably harder to organise without it. + +### What changes — and what doesn't + +Operations under PySV continue as before. The tool remains available to the German-speaking Python community and is **also open to other communities** that want to run barcamps — educational initiatives, associations, local tech groups, volunteer projects. + +Use is **free of charge**. Anyone who wants to use Camper for their own barcamp and has no funds to contribute to hosting costs will not be turned away — supporting the community is the Verband's purpose, not its business model. + +Organisers who can contribute to maintenance and hosting costs are warmly welcome to do so. Contact: **barcamp@pysv.org** + +### Medium term + +Parts of Camper still run on older Python versions. A migration to a current Python version is on the roadmap; PySV will involve the open-source community in the process. If you would like to contribute to the development, you can find the project on [GitHub](https://github.com/CampZulu/camper). + +--- + +*Enquiries about barcamps and use of the platform: barcamp@pysv.org* diff --git a/content/blog/2026-euroscipy/contents+en.lr b/content/blog/2026-euroscipy/contents+en.lr index fac501e..ad4ebc3 100644 --- a/content/blog/2026-euroscipy/contents+en.lr +++ b/content/blog/2026-euroscipy/contents+en.lr @@ -1,10 +1,12 @@ title: EuroSciPy 2026 — Kraków, 18 to 23 July --- -pub_date: 2026-03-07 +pub_date: 2025-11-11 --- show_on_homepage: yes --- -teaser_image: krakow-2026.jpg +teaser_image: ep26-teaser.png +--- +highlighted: yes --- teaser_text: @@ -15,9 +17,10 @@ body: ## EuroSciPy 2026 — Kraków, 18 to 23 July -![General view of Kraków's city centre from Krakus Mound](./krakow-2026.jpg) +![View across the centre of Kraków from Krakus Mound](./krakow-2026.jpg) +Image by Maciej Talar / KSAF AGH, CC BY-SA 4.0, [wikimedia link](https://commons.wikimedia.org/w/index.php?curid=114466379) -Kraków, general view of the city centre from Krakus Mound. Photo: Zygmunt Put, CC BY-SA 4.0, via Wikimedia Commons. +Kraków, view across the city centre from Krakus Mound. Photo: Zygmunt Put, CC BY-SA 4.0, via Wikimedia Commons. From **18 to 23 July 2026**, the European community for scientific Python gathers at **AGH University of Kraków**. EuroSciPy is the cross-disciplinary conference for everyone who uses Python in research and teaching — from astrophysics to bioinformatics, from machine learning to reproducible science. @@ -31,6 +34,7 @@ This is the **18th edition** of EuroSciPy. The conference returns to Kraków. It - **Venue:** AGH University of Kraków, Poland ![Main building of AGH University of Kraków](./agh-main-building.jpg) +Image by Zygmunt Put, CC BY-SA 4.0, [wikimedia link](https://commons.wikimedia.org/w/index.php?curid=145679603) Main building (A-0) of AGH University of Kraków, al. Mickiewicza 30. Photo: Maciej Talar / KSAF AGH, CC BY-SA 4.0, via Wikimedia Commons. @@ -42,7 +46,7 @@ For the first time, the sprint days are held **jointly with EuroPython**, which ### Topics -EuroSciPy covers the core tools of the scientific Python stack — NumPy, SciPy, pandas, scikit-learn, JAX, PyTorch, Dask, Xarray, Numba — and the domain libraries built on top of them in astronomy, climate science, biology, materials science, geosciences and many other fields. Cross-cutting themes include reproducible research, performance, visualisation, and maintainer topics. +EuroSciPy covers the core tools of the scientific Python stack — NumPy, SciPy, pandas, scikit-learn, JAX, PyTorch, Dask, Xarray, Numba — and the domain libraries built on top of them, in astronomy, climate science, biology, materials science, geosciences and many other fields. Cross-cutting themes include reproducible research, performance, visualisation, and maintainer topics. ### Call for Proposals diff --git a/content/blog/2026-pycon-de-pydata-recap/contents+en.lr b/content/blog/2026-pycon-de-pydata-recap/contents+en.lr index 830d0dc..6aa752b 100644 --- a/content/blog/2026-pycon-de-pydata-recap/contents+en.lr +++ b/content/blog/2026-pycon-de-pydata-recap/contents+en.lr @@ -21,7 +21,7 @@ The motto for 2026 — **"We get things done"** — was not marketing. It descri ### One: the programme was honest about AI -LLMs, agents, MCP, RAG, evals — the topics were everywhere, but the tone had shifted from two years ago. Less showreel, more field report: what breaks in production, what cannot be measured, which architectural decisions hurt later, where small models are enough. **Sebastian Raschka** drew the arc in his keynote *From Scratch to Scale*, showing how far Python carries you in practice. **Hilde Kühne** (Tübingen AI Center) placed the multimodal wave in historical context — and closed with a request to keep supporting open-source research, because the biggest jumps still come from small groups with good ideas, not from the largest labs. Talks on evals, on securing LLM applications, on actual hallucination rates in pipelines, and on the practical limits of agent architectures were as present as classical engineering tracks. +LLMs, agents, MCP, RAG, evals — the topics were everywhere, but the tone had shifted from two years ago. Less showreel, more field report: what breaks in production, what cannot be measured, which architectural decisions hurt later, where small models are enough. **Sebastian Raschka** drew the arc in his keynote *From Scratch to Scale*, showing how far Python carries you in practice. **Hilde Kühne** (Tübingen AI Center) placed the multimodal wave in historical context — and closed with a request to keep supporting open-source research, because the biggest jumps still come from small groups with good ideas, not from the largest labs. Talks on evals, on securing LLM applications, on actual hallucination rates in pipelines, and on the practical limits of agent architectures were as present as classical engineering topics. ### Two: sovereignty is a hardware question diff --git a/content/blog/2027-pycon-de/contents+en.lr b/content/blog/2027-pycon-de/contents+en.lr index 5768db5..f21aa8b 100644 --- a/content/blog/2027-pycon-de/contents+en.lr +++ b/content/blog/2027-pycon-de/contents+en.lr @@ -1,9 +1,8 @@ -title: PyCon DE 2027 — save the date: Heidelberg, 19 to 24 April +title: PyCon DE 2027 — Save the Date: Heidelberg, 19 to 24 April --- -pub_date: 2026-04-22 +pub_date: 2026-05-23 --- ---- -teaser_image: Königstuhl_Heidelberg_U-17.jpg +teaser_image: Königstuhl_Heidelberg_U-17.jpg --- show_on_homepage: yes --- @@ -16,7 +15,7 @@ From 19 to 24 April 2027, PyCon DE comes to Heidelberg. Three conference days at --- body: -## PyCon DE 2027 — save the date: Heidelberg, 19 to 24 April +## PyCon DE 2027 — Save the Date: Heidelberg, 19 to 24 April **PyCon DE 2027** runs from **19 to 24 April 2027** at the **Heidelberg Congress Center (HCC)**. New venue, new city — directly opposite Heidelberg main station, fifteen minutes from Mannheim, one hour from Frankfurt. The conference is organised by the **Python Software Verband e.V.** @@ -31,7 +30,7 @@ Six days, cleanly structured: one day of deep-dive workshops, three days of main ### Why Heidelberg -After Berlin and Darmstadt, Heidelberg is the next conference location. Heidelberg is a science city — university, Max Planck institutes, EMBL, DKFZ, a dense research landscape — and sits in the Rhine-Neckar metropolitan region with short connections to Frankfurt, Mannheim and Karlsruhe. The Heidelberg Congress Center, opened in 2024, is directly opposite the main station: 6,600 square metres of event space on three levels, ten halls and forums, a 14-metre main hall. +After Munich, Karlsruhe, Berlin and Darmstadt, Heidelberg is the next conference location. Heidelberg is a science city — university, Max Planck institutes, EMBL, DKFZ, a dense research landscape — and sits in the Rhine-Neckar metropolitan region with short connections to Frankfurt, Mannheim, Stuttgart, Heilbronn and Karlsruhe. The Heidelberg Congress Center, opened in 2024, is directly opposite the main station: 6,600 square metres of event space across three levels, ten halls and forums, a 14-metre-high main hall. ### What "PyCon DE" means @@ -45,7 +44,7 @@ PyCon DE 2027 is the German-speaking Python conference under the umbrella of the - **Format:** talks, tutorials, masterclasses, lightning talks, sprints - **Standards:** the same quality, the same community grounding, the same diversity policy as in previous years -### What's next +### What comes next - **Summer/autumn 2026** — Call for Proposals opens - **Winter 2026/2027** — Programme, keynotes, tickets, financial aid @@ -59,10 +58,6 @@ PyCon DE is organised by a volunteer team from the community. If you would like More information will follow at [2027.pycon.de](https://2027.pycon.de/). ---- - *PyCon DE is organised by the Python Software Verband e.V. Any surplus flows back into the community — into diversity funding, open-source sprints and the work of PySV.* ---- - *Header image: "Königstuhl, Heidelberg, U-17" by [Jörg Braukmann](https://commons.wikimedia.org/wiki/User:Milseburg), via [Wikimedia Commons](https://commons.wikimedia.org/wiki/File:K%C3%B6nigstuhl,_Heidelberg,_U-17.jpg), licensed under [CC BY-SA 4.0](https://creativecommons.org/licenses/by-sa/4.0/).* diff --git a/content/blog/contents+en.lr b/content/blog/contents+en.lr new file mode 100644 index 0000000..56be89d --- /dev/null +++ b/content/blog/contents+en.lr @@ -0,0 +1,3 @@ +_model: blog +--- +title: Blog diff --git a/content/python/contents+en.lr b/content/python/contents+en.lr new file mode 100644 index 0000000..9cd4ddd --- /dev/null +++ b/content/python/contents+en.lr @@ -0,0 +1,11 @@ +_model: python +--- +title: Python +--- +intro: + +Python is the most widely used programming language in the world, the language of artificial intelligence, and the most important entry point into programming in schools and universities. This position did not emerge overnight — it is the result of thirty years of open development, a globally supported community, and a consistent commitment to free software. + +This section explains why Python plays this role and what follows from it — for business, science, education and public administration. It is written for everyone who wants to understand why Python matters, without having to write code themselves. + +The Python Software Verband (PySV) is the non-profit association of the German-speaking Python community. We represent Python, free software, and the people who carry this infrastructure. diff --git a/content/python/history-of-the-pysv/contents+en.lr b/content/python/history-of-the-pysv/contents+en.lr new file mode 100644 index 0000000..b620aae --- /dev/null +++ b/content/python/history-of-the-pysv/contents+en.lr @@ -0,0 +1,49 @@ +_model: python-post +--- +title: A short history of the Python Software Verband +--- +order: 50 +--- +teaser: + +PySV has represented the German-speaking Python community for more than two decades. Its roots reach back into the early open-source scene of the 2000s — and its present runs through the largest Python conferences in Europe. +--- +body: + +## The roots: DZUG + +The history of PySV does not begin in 2011 with the rename, but years earlier with the *Deutsche Zope User Group* (DZUG). This user group had formed since the early 2000s around what was then the leading Python-based web framework, *Zope*, and the content management system *Plone*. It was constituted as a registered association in 2004 and ran regular conferences — the *DZUG-Tagungen* — in German university cities. + +What started as a user group for a specific technology grew, over the years, into a broader umbrella for free software in the Python world. The Zope-centred focus became increasingly narrow for a community that had long since worked across the entire breadth of the Python ecosystem — from web development to science to data analysis tooling. + +## The rename: PyCon DE 2011 + +From 4 to 9 October 2011, the first *PyCon DE* was held in Leipzig — the first German Python conference, with around 200 attendees, three keynotes and 55 talks, hosted at the Leipziger Kubus of the Helmholtz Centre for Environmental Research. At that conference's General Assembly, DZUG unanimously decided to open up and to rename itself *Python Software Verband*. The organisational transition then stretched over the following years. + +What had emerged was an association modelled on the international Python Software Foundation — non-profit, member-driven, committed to the spread of free software. The difference: PySV addresses the German-speaking region and grounds its work in Germany, Austria and German-speaking Switzerland. + +## What has been built since + +In the more than twenty years since the association was founded, a structure has settled around four pillars. + +*Conferences.* PyCon DE & PyData, with more than 1,500 attendees, is the largest Python conference in the German-speaking region and stands in the tradition of an event series that began with the DZUG-Tagung and started over with PyCon DE 2011. Alongside this, PySV acts as the host organisation for EuroSciPy, complemented by smaller formats such as PythonCamp, the Beethoven Sprint and Python Pizza. + +*Grants.* Through its grants programme, PySV supports events and development projects from the community each year. Recipients in recent years have included DjangoGirls workshops, the GeoPython conference, initiatives for young people such as *Jugend hackt*, and development sprints in the Plone ecosystem. + +*Advocacy.* PySV represents the community towards politics, the media and other associations. The statutes commit the association to non-profit status, to the promotion of science, research, education and culture through free software, and to supporting members and non-members alike. + +*Infrastructure.* The association provides user groups and initiatives with organisational and technical infrastructure — from event insurance to bookkeeping support for volunteers. + +## Why history matters + +The association's work is not spectacular. It consists of board meetings, grant decisions, tax returns, accounting, venue contracts, correspondence with authorities. It is the kind of community work that becomes invisible when it functions. + +That it exists — and has existed without a break for more than two decades — is the precondition for voluntary contributions to be sustainable over time. A volunteer-organised community conference with 1,500 attendees cannot be pulled together from a standing start. It needs an association in the background that signs contracts, takes on liability, and maintains structures over years. + +This is exactly what PySV does. Anyone who deals with the association — as a member, as an applicant, as a partner organisation, as a public authority — can rely on an established structure with roots in the early days of the German open-source scene. + +## Sources + +- Linux-Magazin, *Aus DZUG wird Python Software Verband*, [linux-magazin.de](https://www.linux-magazin.de/news/aus-dzug-wird-python-software-verband/) +- Communardo, *Rückblick auf die PyCon DE 2011*, [communardo.de](https://www.communardo.de/techblog/rueckblick-auf-die-pycon-de-2011-1-deutsche-python-konferenz/) +- Python Software Verband, *Python verbindet — Der PySV in 20 Minuten*, PyCon DE 2013, [pyvideo.org](https://pyvideo.org/pycon-de-2013/python-verbindet-der-python-software-verband-e.html) diff --git a/content/python/geschichte/contents.lr b/content/python/history-of-the-pysv/contents.lr similarity index 100% rename from content/python/geschichte/contents.lr rename to content/python/history-of-the-pysv/contents.lr diff --git a/content/python/pysv-open-source/contents+en.lr b/content/python/pysv-open-source/contents+en.lr new file mode 100644 index 0000000..2f0e50a --- /dev/null +++ b/content/python/pysv-open-source/contents+en.lr @@ -0,0 +1,52 @@ +_model: python-post +--- +title: Our position on open source +--- +order: 40 +--- +teaser: + +Free software is not a technical detail, but the foundation of modern digital value creation. The Python Software Verband sees itself as part of the free-software family — and takes its positions accordingly towards politics, public administration and business. +--- +body: + +## Our starting point + +It is no accident that PySV is an association for a free programming language. §2 of our statutes names the promotion of free software, free education and free research as the association's purpose. §10 stipulates that, in the event of dissolution, the remaining assets are to be transferred to the *Free Software Foundation Europe* (FSFE). That is a deliberate commitment: PySV belongs in the European free-software family, not in the unspecific category of just another tech association. + +From that positioning follows our stance on open source — and on the political, economic and societal debate increasingly waged around it. + +## Open source is infrastructure + +In nearly every sector of the economy today, software is running whose load-bearing components are open source. Web servers, operating systems, databases, programming languages, tools for data analysis and machine learning: the open, freely available variant is, as a rule, the one in productive use. That holds for large corporations, for the mid-market, for universities, for public authorities. + +This observation is rarely voiced, because open source works without being visible. It becomes visible when something does not work — when a central library carries a security vulnerability, when a maintainer steps away in exhaustion, when a piece of volunteer-maintained infrastructure fails. Anyone who takes open source seriously as infrastructure has to treat it like infrastructure: plan it, fund it, maintain it. + +## Digital sovereignty needs free software + +In recent years, the German government and the European Commission have repeatedly made *digital sovereignty* the guiding theme of their digital policy. Anyone taking that term seriously cannot get past free software: sovereignty means knowing how a piece of software works, being able to make your own modifications to it, and not falling into dependence on a single vendor. In the strict sense, only free software meets all three of these requirements. + +The German government has drawn institutional consequences from this in the *Sovereign Tech Agency* — launched earlier as the *Sovereign Tech Fund*. The agency funds open-source base technologies on the reasoning that these are public goods, deserving of a public contribution. To date, around 60 projects have been funded in this framework with a combined total of more than 23 million euros; a further expansion has been decided. + +At the European level, FSFE pursues a related approach with its *Public Money? Public Code!* initiative: if software is developed with public funds, it should also be made publicly available. PySV shares that position. + +## The Cyber Resilience Act and the maintainers + +With the *Cyber Resilience Act* (CRA), the European Union put into force on 11 December 2024 a law that regulates the cybersecurity of digital products across their lifecycle. From 11 September 2026, obligations to report vulnerabilities apply; from 11 December 2027, the full scope takes effect. + +For open-source software, the CRA brings new duties of care. Purely non-commercial contributions to free software remain exempt. As soon, however, as donations beyond cost recovery are accepted, commercial services are offered around a project, or personal data is processed, requirements apply. A new legal figure, the *Open Source Steward*, describes organisations that maintain and secure free software on a sustained basis — they are subject to their own obligations, less strict than those of commercial vendors, but obligations nonetheless. + +In PySV's view, the thrust of the CRA is, in principle, correct — anyone placing software on the market bears responsibility for its security. What matters is the implementation. If the law ends up driving volunteer maintainers away out of concern about liability, Europe has not gained, but lost. What is needed is clear guidance, a pragmatic interpretation of the steward provisions, and a funding landscape that carries critical projects with planning certainty. + +## What we do concretely + +PySV takes positions in these debates through statements, contributions to hearings, and direct cooperation with partner organisations — from FSFE to the Open Source Business Alliance to European sister associations. We fund Python open-source projects from our own resources through the annual grants programme. We connect community, business and politics through our conferences. + +Our stance here is not ideological, but practically grounded: where free software is the load-bearing element of an infrastructure, it has to be treated as such — with resources, with planning certainty, with recognition for the people who carry it. + +## Sources + +- European Commission, *Cyber Resilience Act*, [digital-strategy.ec.europa.eu](https://digital-strategy.ec.europa.eu/en/policies/cyber-resilience-act) +- Sovereign Tech Agency, [sovereign.tech](https://www.sovereign.tech/) +- Free Software Foundation Europe, *Public Money? Public Code!*, [fsfe.org](https://fsfe.org/) +- Federal Ministry for Economic Affairs and Energy, *Wichtiger Schritt für nachhaltige Weiterentwicklung von Open-Source-Basistechnologien*, [bundeswirtschaftsministerium.de](https://www.bundeswirtschaftsministerium.de/Redaktion/DE/Pressemitteilungen/2024/11/20241104-sovereign-tech-fund.html) diff --git a/content/python/open-source/contents.lr b/content/python/pysv-open-source/contents.lr similarity index 100% rename from content/python/open-source/contents.lr rename to content/python/pysv-open-source/contents.lr diff --git a/content/python/python-culture/contents+en.lr b/content/python/python-culture/contents+en.lr new file mode 100644 index 0000000..6e1e653 --- /dev/null +++ b/content/python/python-culture/contents+en.lr @@ -0,0 +1,53 @@ +_model: python-post +--- +title: The culture of the Python community — and why it holds +--- +order: 30 +--- +teaser: + +Python is not just a programming language, it is a community with its own, deliberately cultivated culture. That culture is not an accessory; it is one of the conditions under which the ecosystem has held together over decades — economically, technically, socially. +--- +body: + +## A community that names itself + +Since the 1990s, the Python world has used the word *Pythonista* for its members. It is a self-description, not a label imposed from outside — and it is used without irony, in the General Assembly as well as on the conference stage. Anyone first approached at a PyCon will, as a rule, be greeted on a first-name basis and met with an open question: what do you work with, what have you built, what's on your mind right now? + +This tone did not arise by chance and does not maintain itself. It is the result of decades of deliberate work on a community culture that sets out to invite new people in rather than fence them off. + +## Values that are written down + +The *Code of Conduct* of the Python Software Foundation has been the central reference point for years. It states that the Python community is open, considerate and respectful — and names concretely what is not acceptable: harassing, demeaning or exclusionary behaviour in any form. PySV has adopted its own Code of Conduct, which applies to all events and activities of the association and is handled in any incident by a dedicated working group. + +A code on paper offers no protection. It works only when it is lived and enforced. That is exactly why the *CoC team* exists: a contact point for observations and complaints, reachable in confidence, with defined procedures. This structure is one of the most important investments a community can make, because it delivers on the quiet promise a code of conduct makes. + +## Initiatives that carry diversity + +Without active structures, a community typically becomes more homogeneous, not more diverse. The Python world recognised this early and built structures that remain formative today. + +*PyLadies* was founded in 2011 in Los Angeles by seven women — as a network, a contact point and an event structure for women and non-binary people in the Python world. By 2018, 249 chapters were active in 64 countries worldwide. There are PyLadies groups in the German-speaking region too, including in Hamburg, Berlin and Munich. + +*DjangoGirls* started during EuroPython 2014 in Berlin as a one-day workshop for 45 women from fifteen countries. What was conceived as a one-off has grown into one of the most effective initiatives for getting started in web development with Python, with workshops in dozens of countries. PySV regularly funds DjangoGirls workshops in the German-speaking region through its own grants programme. + +*PyCon DE & PyData* runs its own support structure for attendees through the *Financial Aid programme* — for those who could not otherwise afford the trip or the ticket. Students, people on low incomes, parents, contributors to open-source projects and people from underrepresented groups are all considered. The funds come from sponsoring and donations, and from the conference budget itself. + +## Why this culture holds + +There is an economic reason this culture matters beyond the topic itself. Open-source software is typically developed by people who do it voluntarily — alongside their job, alongside their studies, alongside their personal life. For people to keep contributing voluntarily over years, the spaces they do it in have to be welcoming. A rough, exclusionary or demeaning culture produces not only human harm; it produces technical weakness: projects lose contributors, knowledge is lost, critical components lose their maintainers. + +For that reason, community care is not a side activity, but infrastructure maintenance. Anyone investing in Python — as a company, as a research institution, as a public body — is always also investing in the people who keep this language and its ecosystem alive over decades. + +## What PySV does about it + +PySV carries this culture into its own structures: through its own Code of Conduct and CoC team, through support for initiatives like PyLadies and DjangoGirls, through the Financial Aid programme of PyCon DE & PyData, through a volunteer organisational structure that stays approachable for its members. + +This work rarely becomes the subject of public attention. It is nonetheless one of the decisive pillars on which Python's position in science, business and public administration rests. + +## Sources + +- Python Software Foundation, *Community Code of Conduct*, [python.org/psf/conduct](https://www.python.org/psf/conduct/) +- PyLadies, [pyladies.com](https://pyladies.com/) +- Django Girls, [djangogirls.org](https://djangogirls.org/) +- PyCon DE & PyData, *Financial Aid Programme*, [2025.pycon.de/financial-aid](https://2025.pycon.de/financial-aid/) +- PyData, *Diversity & Inclusion*, [pydata.org/diversity-inclusion](https://pydata.org/diversity-inclusion/) diff --git a/content/python/kultur/contents.lr b/content/python/python-culture/contents.lr similarity index 100% rename from content/python/kultur/contents.lr rename to content/python/python-culture/contents.lr diff --git a/content/python/python-language-of-artificial-intelligence/contents+en.lr b/content/python/python-language-of-artificial-intelligence/contents+en.lr new file mode 100644 index 0000000..8df030e --- /dev/null +++ b/content/python/python-language-of-artificial-intelligence/contents+en.lr @@ -0,0 +1,53 @@ +_model: python-post +--- +title: Python is the language of artificial intelligence +--- +order: 10 +--- +teaser: + +Without Python, AI development over the past ten years would not have been possible in this form. An open programming language and an ecosystem of free libraries built up over decades form the foundation on which practically every major AI model is now created. +--- +body: + +## An open language as a precondition + +Anyone who has talked publicly about artificial intelligence in the past three years has, as a rule, talked about the applications — about ChatGPT, about image generators, about voice assistants. Less often does anyone ask what these systems are actually built with. In nearly every case the answer is the same: with Python. + +This is not a technical footnote, but a structural statement. Today's AI wave would not be conceivable in this form without an open, freely available programming language and a mature ecosystem of free libraries. + +## How Python became the AI language + +Three building blocks explain the position Python holds today. + +First: *NumPy*. The library for numerical computing was released in 2006 by Travis Oliphant and provides the mathematical foundation without which scientific computing in Python would not work. The tools for statistical analysis, data analysis and, ultimately, machine learning are built on NumPy. + +Second: the frameworks for machine learning. *TensorFlow* was released as open source by Google in 2015. *PyTorch* followed in 2016 as a release from Meta — today the dominant framework in research, transferred in 2022 to the Linux Foundation, moving it out of the control of a single company and into a broadly supported foundation structure. More than 80 percent of scientific contributions at the major AI conferences — NeurIPS, ICML — are now produced with PyTorch. + +Third: *Hugging Face* with the library *Transformers*, the de-facto standard for working with language models. Thousands of open models are freely available through Hugging Face — from small specialist models to models with hundreds of billions of parameters. This infrastructure too is written in Python. + +## Why Python in particular + +Python is not the fastest language. The compute-heavy work is usually done by highly optimised libraries in C, C++ or CUDA. What Python delivers is the layer researchers, developers and users work on — readable, fast to prototype, flexibly composable. + +Three properties pushed Python to the front for AI. The language is open and free: nobody pays licence fees, nobody needs approvals. It is interactive: in a notebook environment, hypotheses, data and models can be examined step by step. And it is universal: the same language carries pre-processing, training, evaluation and deployment — breaks between toolchains fall away. + +The result is a network effect: anyone publishing in AI publishes in Python. Anyone learning AI learns Python. Anyone wanting to apply AI finds Python tools. This self-reinforcement is not manufactured; it follows from an open architecture that admits collective contributions. + +## What this means for Germany + +The AI debate is often framed as a race between corporations or between states. What gets overlooked is that the foundation of this development sits in an open, collaboratively maintained ecosystem. Anyone seeking AI sovereignty in this country cannot build it apart from that ecosystem — only by helping to carry it: through their own contributions, through support for maintainers, through reliable infrastructure. + +PySV accompanies this development in two directions. We fund Python projects and events that strengthen research and teaching, and through PyCon DE & PyData we run the largest conference in the German-speaking region, where the Python, data and AI community meets year after year. + +## The documentary + +In August 2025, *[Python: The Documentary](https://youtu.be/GfH4QL4VqJ0)* (CultRepo) was released — a feature-length film that traces the history of the language from its beginnings in the 1990s to its current role as the foundation of AI. Speakers include the language's creator Guido van Rossum, NumPy's creator Travis Oliphant, and long-time maintainers of the project. The film offers an accessible way into the question of how a programming language could become the infrastructure of a technological upheaval. + +## Sources + +- *Python: The Documentary*, CultRepo, August 2025, [youtu.be/GfH4QL4VqJ0](https://youtu.be/GfH4QL4VqJ0) +- PyTorch Foundation, [pytorch.org/foundation](https://pytorch.org/foundation/) +- Linux Foundation, *Meta Transitions PyTorch to the Linux Foundation*, [linuxfoundation.org](https://www.linuxfoundation.org/press/press-release/meta-transitions-pytorch-to-the-linux-foundation) +- Hugging Face, [huggingface.co](https://huggingface.co/) +- IEEE Spectrum, Top Programming Languages 2025, [spectrum.ieee.org](https://spectrum.ieee.org/top-programming-languages-2025) diff --git a/content/python/ki/contents.lr b/content/python/python-language-of-artificial-intelligence/contents.lr similarity index 100% rename from content/python/ki/contents.lr rename to content/python/python-language-of-artificial-intelligence/contents.lr diff --git a/content/python/python-teaching-language/contents+en.lr b/content/python/python-teaching-language/contents+en.lr new file mode 100644 index 0000000..e5e437f --- /dev/null +++ b/content/python/python-teaching-language/contents+en.lr @@ -0,0 +1,44 @@ +_model: python-post +--- +title: Why Python is the most important teaching language today +--- +order: 20 +--- +teaser: + +Anyone learning to program for the first time today is very likely to learn Python — at universities, at schools, in professional training. What that means, and why it concerns everyone who works with digital tools or decides about them. +--- +body: + +## The starting point + +Python is the most widely used programming language in the world. The TIOBE index, which tracks the relative search volume for programming languages, has placed Python at the top for several years by a wide margin — at around 27 percent in July 2025, with a lead of more than ten percentage points over the next contender. IEEE Spectrum, the association of electrical and information-technology engineers, also lists Python at number one in its 2025 ranking, both in the overall rating and in the jobs ranking. + +These numbers describe the present. To see what the next ten years look like, look at teaching. + +## Python in universities and schools + +A study by the Association for Computing Machinery — the world's largest scientific society in computing — found that at eight of the top ten US computer science faculties, and at 27 of 39 strongly ranked departments, Python is the first programming language in the introductory course. That holds for institutions such as the Massachusetts Institute of Technology, the University of California, Berkeley, and Princeton University. Harvard's CS50, one of the most-watched introductory courses in the world, also teaches Python as a central language. + +In German-speaking higher education, the picture is similar. Python is the standard language in data analysis, statistics, business informatics and computational science. It is increasingly also the first language teachers choose for foundational instruction. In schools, Python enters the classroom through computer science courses, through initiatives like *Jugend hackt*, and through low-barrier platforms like the Calliope Mini or the Raspberry Pi. + +## What sets this language apart + +Python was designed in the early 1990s by the Dutch computer scientist Guido van Rossum with the maxim that code must be readable. The language dispenses with curly braces and semicolons; it structures programs through indentation. Reading Python is almost like reading English in a formalised form. + +This readability has practical consequences for teaching. In the first lesson, students see logic rather than syntax. Tools like *Jupyter notebooks* allow code, text and results to be combined in a single document — which directly supports scientific thinking as a method. The open standard library covers everything an introductory course needs, without teachers having to switch between commercial tools. + +## Why this concerns everyone + +The choice of a first programming language shapes a professional cohort for decades. Anyone leaving university with Python today will, over the coming career years, build data pipelines, research software, administrative applications, learning systems with it. When a language dominates teaching, it dominates practice a generation later. + +For Germany as a location, two things follow. First: an education landscape that takes Python seriously secures digital connectivity across industries — not only in computer science. Second: support for free software in education is not a hobby, but an investment in sovereignty. Schools and universities working with Python are not tied to individual vendors. + +This is why PySV supports projects that bring Python into educational contexts — from the German translation of the official documentation, to language scholarships for PyCon DE & PyData, to grants for initiatives like *Jugend hackt* and *DjangoGirls*. + +## Sources + +- TIOBE Index, [tiobe.com/tiobe-index](https://www.tiobe.com/tiobe-index/) +- IEEE Spectrum, Top Programming Languages 2025, [spectrum.ieee.org/top-programming-languages-2025](https://spectrum.ieee.org/top-programming-languages-2025) +- Communications of the ACM, *Python Is Now the Most Popular Introductory Teaching Language at Top U.S. Universities*, [cacm.acm.org](https://cacm.acm.org/blogcacm/python-is-now-the-most-popular-introductory-teaching-language-at-top-u-s-universities/) +- MIT OpenCourseWare, *Introduction to Computer Science and Programming in Python*, [ocw.mit.edu](https://ocw.mit.edu/courses/6-0001-introduction-to-computer-science-and-programming-in-python-fall-2016/) diff --git a/content/python/lehrsprache/contents.lr b/content/python/python-teaching-language/contents.lr similarity index 100% rename from content/python/lehrsprache/contents.lr rename to content/python/python-teaching-language/contents.lr From 0384d51afa0ead6269ba67fd0fbb2e414140a265 Mon Sep 17 00:00:00 2001 From: Alexander Hendorf Date: Tue, 26 May 2026 07:57:44 +0200 Subject: [PATCH 4/6] refines homepage, new en translation --- content/contents+en.lr | 62 +++++++++++++++++++++++------------------- content/contents.lr | 2 +- 2 files changed, 35 insertions(+), 29 deletions(-) diff --git a/content/contents+en.lr b/content/contents+en.lr index 990bbb2..d414a08 100644 --- a/content/contents+en.lr +++ b/content/contents+en.lr @@ -2,80 +2,86 @@ title: Python Software Verband --- hero: -The Python Software Verband e.V. supports Python and open source in the German-speaking region. As a non-profit association based in Heidelberg, we host **PyCon DE & PyData** — the leading conference on applied AI with open source — and co-organise the European scientific Python conference **EuroSciPy**. Through our grant program we support barcamps, meetups, educational initiatives and open-source development. +The Python Software Verband e.V. strengthens the Python programming language and its community in the German-speaking region. As a non-profit association we run PyCon DE, the leading conference on applied AI with open source, and we co-host the European scientific conference EuroSciPy as well as Camper, the barcamp planning software. + +Through our grants programme we support diversity initiatives, barcamps, local user groups and educational projects. + +--- +ecosystem_section: + +## Python — an ecosystem that connects research, industry and public administration + +Python is one of the most widely used programming languages in the world and the shared language of research institutes, large corporations, the mid-market, public authorities and educational institutions. Over the years, an ecosystem of hundreds of thousands of open-source libraries has grown up around Python: NumPy, pandas, polars, duckdb and scikit-learn, PyTorch, FastAPI, Django and Jupyter — the tools behind modern data analysis, scientific computing, web services and AI applications. In data-intensive research, analytics and AI, Python has long been the de-facto standard. + +That is where the strength of our community lies: a climate researcher, a quant analyst and a backend developer all reach for the same tools. Knowledge transfer between domains is not a side effect — it is the reason methods, solutions and best practices spread so quickly across disciplinary lines. --- conferences_section: ## Conferences and barcamps -We bring the Python community together in three formats — from a large-scale event with several thousand attendees down to a weekend barcamp with 25 people. All three formats are run by volunteers, funded or co-funded by the association, and open to the entire community. +We bring the Python community together in three formats — from a large-scale event with several thousand attendees to a weekend barcamp with 50 people. All three formats are run by volunteers, funded or co-funded by the association, and open to the entire community.
-

PyCon DE & PyData

+

PyCon DE

+ +

For more than 15 years, PyCon DE has been a central international meeting point for the Python, software-engineering, data and AI community.

+ +

More than 150 talks, panels, hands-on sessions and keynotes show real use cases instead of buzzwords — from software engineering through data science and MLOps to applied AI. The focus is on the latest trends, properly placed in context.

+ +

Artificial intelligence is nothing fundamentally new for us, but part of a development we have been accompanying and shaping with technical depth for years. That depth lives off direct exchange between people from across Europe and beyond: from industry, research, public administration, startups and open source. It is exactly this mix that turns the conference into a catalyst between research, practical application and new ideas.

-

PyCon DE & PyData is the leading conference on applied AI with open source in the German-speaking region. Three conference days, a sprint and community day, a masterclass day. This is where the people gather who don't just talk about AI — they build it: across industries, from enterprise IT through mid-market and public administration to academic research. The next edition takes place in Heidelberg from 19 to 24 April 2027.

+

EuroSciPy

-

EuroSciPy is the annual European conference for Python in research and science. Wherever scientific data is processed with Python in Europe — climate models, astrophysics, biomedicine, geosciences, numerical simulation — EuroSciPy is the meeting point. The Python Software Verband is co-organiser of the conference series and part of the program committee. The next edition takes place in Kraków from 18 to 23 July 2026.

+

EuroSciPy is the annual European conference for Python in research and science. Wherever scientific data is processed with Python in Europe — climate models, astrophysics, biomedicine, geosciences, numerical simulation — EuroSciPy is the meeting point. The Python Software Verband is currently the host organisation for the conference series, which has been running since 2008.

Barcamps and PythonCamps

-

Alongside the large conferences we live the barcamp format: smaller, regional weekend events whose program is shaped by the attendees themselves — PythonCamp Cologne, PythonCamp on Rügen, Python BarCamp Karlsruhe, PyCamp Leipzig. These events are organised entirely by volunteers. The association co-funds them and provides insurance coverage and visible sponsorship; editorial control stays with the local organisers.

+

Alongside the large conferences, we live the barcamp format: smaller, regional weekend events whose programme is shaped by the attendees themselves — from Rügen to the Alps. These events are organised entirely by volunteers.

--- volunteers_section: -## All run by volunteers +## Carried by volunteers and the community
-

PyCon DE & PyData, EuroSciPy, the barcamps, the grant program, the board — all of it is volunteer work.

+

PyCon DE, EuroSciPy, the barcamps, the local user groups and our grants programme all come out of a community that gets involved.

-

Several hundred people organise, curate, review talks, carry hardware, staff helpdesks and answer emails — unpaid. Sponsorship and member fees go into events, grants and infrastructure, not into salaries.

+

Dozens of volunteers are the face of our events: on programme committees, in the selection of talks, in tracks and formats, in awareness, diversity & inclusion, in liaison with the speakers — and everywhere that individual programme items come together into a conference that brings people together and moves them forward.

-

This isn't a footnote. It's the reason PyCon DE is meaningfully cheaper than comparable commercial AI conferences, why funding decisions arrive in weeks rather than months, and why on a PyCon DE junior developers and CTOs end up at the same table.

+

That commitment makes the difference. It keeps our events professionally relevant, open and close to the community — and creates spaces in which junior developers, maintainers, researchers and CTOs end up in conversation with each other.

--- grants_section: -## Grant program +## Grants programme -With member contributions and conference proceeds we support the Python community in the German-speaking region — financially, organisationally and visibly. We fund conferences, barcamps and community events as well as concrete open-source development, education and new-talent initiatives. Recently funded, among others: Django Girls Berlin, PyData BBQ Heidelberg, GeoPython Basel, Jugend Hackt, the Zope sprint and PythonCamp on Rügen. +With our members' contributions and the proceeds from our conferences, we support the Python community in the German-speaking region — financially and organisationally. We fund user groups, barcamps and community events, as well as concrete open-source development and education and new-talent initiatives. Recently funded, among others: PyLadies, PyCon Austria, Django Girls Berlin, PyData Südwest, GeoPython Basel, Jugend Hackt and the Munich NLP Meetup. -Applications are accepted informally by email at [grants@python-verband.org](mailto:grants@python-verband.org). Details on funding levels and conditions are in our [grant program](/grants). - ---- -ecosystem_section: - -## An ecosystem that connects research, industry and public administration - -Python is the world's most used programming language — and in the German-speaking region it's the shared language of research institutes, large corporations, mid-market companies, public administrations and educational institutions. Around Python lives an ecosystem of hundreds of thousands of open source libraries: NumPy, pandas, scikit-learn, PyTorch, FastAPI, Django, Jupyter — the tools behind modern data work, scientific computing, web services and AI applications. - -That's why our community works so well: a climate researcher, a quant analyst and a backend developer all reach for the same tools. Cross-pollination between domains isn't a side effect — it's the reason Python expertise spreads so quickly across fields. +Details on funding amounts and conditions are in our [grants programme](/grants). --- culture_section: -## The culture behind the association - -First-time attendees at PyCon DE get invited to a lunch table by strangers. Library maintainers answer mailing-list questions. This isn't folklore — it's a culture of helpfulness that has shaped our community for decades. +## More than a programming language — the *Pythonista* culture -We live a [Code of Conduct](/coc) that isn't decorative, and actively fund initiatives like Django Girls and diversity tickets. A broader community is a stronger one — including technically. Behind that openness lies the professional work of a registered non-profit: an elected board, an annual members' assembly, transparent finances. And several hundred volunteers running program committees, conference operations and barcamps. +"I came for the language, but I stayed for the community" — Brett Cannon's line (PyCon US 2014) still describes the programme today. Python's culture of helpfulness has grown over decades: newcomers get pulled up to the lunch table; people who maintain a library get answers from the maintainers themselves. This is not folklore, but work — a lived Code of Conduct, initiatives like Django Girls and diversity tickets, carried by a registered non-profit and several hundred volunteers. A broader community is a better one — professionally, too. --- cta_section: ## Get involved -As a member you support the Python community directly — from €60/year for individuals, from €600/year for companies. Members hold voting rights at the members' assembly, gain visibility on our website and actively shape our work. +As a member, you support the Python community directly — from €60/year for individuals, from €600/year for companies. Members hold voting rights at the General Assembly, gain visibility on our website and actively shape our work. -Companies looking to sponsor PyCon DE & PyData can reach us at [info@pysv.org](mailto:info@pysv.org?subject=PyCon%20DE%20Sponsoring). Grant applications go informally to [grants@python-verband.org](mailto:grants@python-verband.org). Associations, institutions and policy or public-administration contacts can reach the board at [info@pysv.org](mailto:info@pysv.org). +Companies looking to sponsor PyCon DE can reach us at [info@pysv.org](mailto:info@pysv.org?subject=PyCon%20DE%20Sponsoring). Grant applications go informally to [grants@python-verband.org](mailto:grants@python-verband.org). Associations, institutions and policy or public-administration contacts can reach the board at [info@pysv.org](mailto:info@pysv.org).

Become a member

diff --git a/content/contents.lr b/content/contents.lr index d4c46ad..26b9f1c 100644 --- a/content/contents.lr +++ b/content/contents.lr @@ -96,7 +96,7 @@ Details zu Förderhöhen und Bedingungen sind unter [Förderprogramm](/grants) z --- culture_section: -## Mehr als eine Programmiersprache, eine Kultur +## Mehr als eine Programmiersprache, die *Pythonista* Kultur „I came for the language, but I stayed for the community" — der Satz von Brett Cannon (PyCon US 2014) ist bis heute Programm. Pythons Kultur der Hilfsbereitschaft ist über Jahrzehnte gewachsen: Wer neu ist, wird in der Mittagspause an den Tisch geholt; wer eine Bibliothek pflegt, From d0031dbbf665875e5c4f71f886c991bdd3e679e5 Mon Sep 17 00:00:00 2001 From: Alexander Hendorf Date: Tue, 26 May 2026 06:02:33 +0000 Subject: [PATCH 5/6] style: add scoped heading margin-bottom inside .content MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Blog post / event / page bodies still rendered headings flush against their following content. Adds a small consistent margin-bottom under h2-h6 *inside .content only*, so nav/hero/cards are untouched and existing per-section overrides (.conf-block h3, .ecosystem-section > h2, …) keep winning by specificity. Also collapses the gap when two headings sit directly together (e.g. blog post

title

date

) so paired metadata still reads as a pair. --- assets/stylesheets/main.css | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/assets/stylesheets/main.css b/assets/stylesheets/main.css index e50f4ce..9688130 100644 --- a/assets/stylesheets/main.css +++ b/assets/stylesheets/main.css @@ -104,6 +104,35 @@ h4 { line-height: 1.2; } +/* Heading rhythm inside body content (.content) — does not touch + headings in the nav, hero, USP cards or other chrome. Sizes are + unchanged; this only adds breathing room beneath each heading so + blog/event/page bodies don't read as a wall of text. Existing + section-scoped overrides (.conf-block h3, .ecosystem-section > h2, + …) still win because they're more specific. */ +.content h2, +.content h3, +.content h4, +.content h5, +.content h6 { + margin-bottom: calc(var(--rythm-unit) / 2); +} + +.content h2 { + margin-bottom: calc(var(--rythm-unit) * 0.66); +} + +/* When a heading sits directly under another heading (e.g. blog post +

title

date

), don't double-stack the margin — they + should read as a paired metadata block. */ +.content h1 + h2, .content h1 + h3, .content h1 + h4, .content h1 + h5, .content h1 + h6, +.content h2 + h3, .content h2 + h4, .content h2 + h5, .content h2 + h6, +.content h3 + h4, .content h3 + h5, .content h3 + h6, +.content h4 + h5, .content h4 + h6, +.content h5 + h6 { + margin-top: 0; +} + .main-navigation a, .dropdown--button { font-size: 1.2em; From f6ea2ba274a5327ec907e8994b94974e13d7921f Mon Sep 17 00:00:00 2001 From: Alexander Hendorf Date: Tue, 26 May 2026 10:05:17 +0200 Subject: [PATCH 6/6] fixes: filename umlaut braks depending on platform --- .../2027-pycon-de/Koenigstuhl_Heidelberg_U-17.jpg | Bin content/blog/2027-pycon-de/contents+en.lr | 2 +- content/blog/2027-pycon-de/contents.lr | 2 +- 3 files changed, 2 insertions(+), 2 deletions(-) rename "content/blog/2027-pycon-de/K\303\266nigstuhl_Heidelberg_U-17.jpg" => content/blog/2027-pycon-de/Koenigstuhl_Heidelberg_U-17.jpg (100%) diff --git "a/content/blog/2027-pycon-de/K\303\266nigstuhl_Heidelberg_U-17.jpg" b/content/blog/2027-pycon-de/Koenigstuhl_Heidelberg_U-17.jpg similarity index 100% rename from "content/blog/2027-pycon-de/K\303\266nigstuhl_Heidelberg_U-17.jpg" rename to content/blog/2027-pycon-de/Koenigstuhl_Heidelberg_U-17.jpg diff --git a/content/blog/2027-pycon-de/contents+en.lr b/content/blog/2027-pycon-de/contents+en.lr index f21aa8b..22d7a60 100644 --- a/content/blog/2027-pycon-de/contents+en.lr +++ b/content/blog/2027-pycon-de/contents+en.lr @@ -2,7 +2,7 @@ title: PyCon DE 2027 — Save the Date: Heidelberg, 19 to 24 April --- pub_date: 2026-05-23 --- -teaser_image: Königstuhl_Heidelberg_U-17.jpg +teaser_image: Koenigstuhl_Heidelberg_U-17.jpg --- show_on_homepage: yes --- diff --git a/content/blog/2027-pycon-de/contents.lr b/content/blog/2027-pycon-de/contents.lr index 5f79491..651bb8f 100644 --- a/content/blog/2027-pycon-de/contents.lr +++ b/content/blog/2027-pycon-de/contents.lr @@ -2,7 +2,7 @@ title: PyCon DE 2027 — Save the Date: Heidelberg, 19. bis 24. April --- pub_date: 2026-05-23 --- -teaser_image: Königstuhl_Heidelberg_U-17.jpg +teaser_image: Koenigstuhl_Heidelberg_U-17.jpg --- show_on_homepage: yes ---