Skip to content

Commit 38ed989

Browse files
authored
Add more social medias to speaker profiles, and update content (#630)
1 parent 2121512 commit 38ed989

File tree

298 files changed

+2509
-1580
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

298 files changed

+2509
-1580
lines changed

src/content/.gitattributes

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
*.mdx text eol=lf

src/content/config.ts

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -63,8 +63,10 @@ const speakers = defineCollection({
6363
submissions: z.array(reference("sessions")),
6464
affiliation: z.string().nullable(),
6565
homepage: z.string().nullable(),
66-
twitter: z.string().nullable(),
67-
mastodon: z.string().nullable(),
66+
gitx: z.string().nullable(),
67+
linkedin_url: z.string().url().nullable(),
68+
mastodon_url: z.string().url().nullable(),
69+
twitter_url: z.string().url().nullable(),
6870
}),
6971
});
7072

@@ -75,7 +77,7 @@ const sessions = defineCollection({
7577
title: z.string(),
7678
speakers: z.array(reference("speakers")),
7779
submission_type: z.string(),
78-
track: z.string(),
80+
track: z.string().nullable(),
7981
state: z.enum(["confirmed"]),
8082
tweet: z.string(),
8183
duration: z.string(),
@@ -84,11 +86,12 @@ const sessions = defineCollection({
8486
room: z.string().nullable(),
8587
start: z.string().nullable(),
8688
end: z.string().nullable(),
89+
website_url: z.string().url(),
8790
talks_in_parallel: z.string().nullable(),
8891
talks_after: z.string().nullable(),
89-
next_talk_code: z.string().nullable(),
90-
prev_talk_code: z.string().nullable(),
91-
website_url: z.string().url(),
92+
talks_before: z.string().nullable(),
93+
next_talk: z.string().nullable(),
94+
prev_talk: z.string().nullable(),
9295
}),
9396
});
9497

src/content/sessions/3XXR79.mdx

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,9 @@ delivery: in-person
44
duration: '45'
55
end: null
66
level: beginner
7-
next_talk_code: null
8-
prev_talk_code: null
7+
next_talk: null
8+
prev_talk: null
9+
resources: null
910
room: null
1011
slug: learning-to-code-in-the-age-of-ai
1112
speakers:
@@ -14,6 +15,7 @@ start: null
1415
state: confirmed
1516
submission_type: Talk (long session)
1617
talks_after: null
18+
talks_before: null
1719
talks_in_parallel: null
1820
title: Learning to code in the age of AI
1921
track: Software Engineering & Architecture

src/content/sessions/7CJVKM.mdx

Lines changed: 14 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,9 @@ delivery: in-person
44
duration: '30'
55
end: null
66
level: intermediate
7-
next_talk_code: null
8-
prev_talk_code: null
7+
next_talk: null
8+
prev_talk: null
9+
resources: null
910
room: null
1011
slug: streamlining-testing-in-a-large-python-codebase
1112
speakers:
@@ -14,21 +15,22 @@ start: null
1415
state: confirmed
1516
submission_type: Talk
1617
talks_after: null
18+
talks_before: null
1719
talks_in_parallel: null
1820
title: Streamlining Testing in a Large Python Codebase
1921
track: DevOps and Infrastructure (Cloud & Hardware)
2022
tweet: ''
2123
website_url: https://ep2024.europython.eu/session/streamlining-testing-in-a-large-python-codebase
2224
---
2325

24-
Maintaining code quality through effective testing becomes increasingly challenging as codebases expand and developer teams grow. In our rapidly expanding codebase, we encountered common obstacles such as increasing test suite execution time, slow test coverage reporting and delayed test startup. By leveraging innovative strategies using open-source tools, we achieved remarkable enhancements in testing efficiency and code quality.
25-
Challenges Faced:
26-
- Test Suite Execution Time: The duration of test suite execution escalated significantly as we added more tests over time, hampering development speed.
27-
- Slow Test Startup: Complex test setup led to prolonged test startup times, impeding developer productivity.
28-
- Test Coverage Reporting Overhead: Coverage tools introduced substantial overhead and impacted test performance.
29-
30-
Solutions Implemented:
31-
- Parallel Test Execution: We applied pytest-xdist to distribute tests across multiple runners, significantly reducing test suite execution time and enabling faster development iterations.
32-
- Optimized Test Startup: Pre-installing dependencies in a Docker image and utilizing Kubernetes for auto-scaling continuous integration runners helped expedite test startup times, improving developer efficiency. For local development, we used pytest-hot-reloading to reload tests fast after code editing.
33-
- Efficient Test Coverage Reporting: Customizing the coverage tool to collect data only on updated files of pull requests minimized overhead on test coverage reporting.
26+
Maintaining code quality through effective testing becomes increasingly challenging as codebases expand and developer teams grow. In our rapidly expanding codebase, we encountered common obstacles such as increasing test suite execution time, slow test coverage reporting and delayed test startup. By leveraging innovative strategies using open-source tools, we achieved remarkable enhancements in testing efficiency and code quality.
27+
Challenges Faced:
28+
- Test Suite Execution Time: The duration of test suite execution escalated significantly as we added more tests over time, hampering development speed.
29+
- Slow Test Startup: Complex test setup led to prolonged test startup times, impeding developer productivity.
30+
- Test Coverage Reporting Overhead: Coverage tools introduced substantial overhead and impacted test performance.
31+
32+
Solutions Implemented:
33+
- Parallel Test Execution: We applied pytest-xdist to distribute tests across multiple runners, significantly reducing test suite execution time and enabling faster development iterations.
34+
- Optimized Test Startup: Pre-installing dependencies in a Docker image and utilizing Kubernetes for auto-scaling continuous integration runners helped expedite test startup times, improving developer efficiency. For local development, we used pytest-hot-reloading to reload tests fast after code editing.
35+
- Efficient Test Coverage Reporting: Customizing the coverage tool to collect data only on updated files of pull requests minimized overhead on test coverage reporting.
3436
As a result, in the past year, our test case volume increased by 8000, test coverage was elevated to 85%, and Continuous Integration (CI) test duration was maintained under 15 minute

src/content/sessions/7DF7VC.mdx

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,9 @@ delivery: in-person
44
duration: '45'
55
end: null
66
level: advanced
7-
next_talk_code: null
8-
prev_talk_code: null
7+
next_talk: null
8+
prev_talk: null
9+
resources: null
910
room: null
1011
slug: deconstructing-the-text-embedding-models
1112
speakers:
@@ -14,6 +15,7 @@ start: null
1415
state: confirmed
1516
submission_type: Talk (long session)
1617
talks_after: null
18+
talks_before: null
1719
talks_in_parallel: null
1820
title: Deconstructing the text embedding models
1921
track: 'PyData: Deep Learning, NLP, CV'
@@ -23,6 +25,6 @@ tweet: Tokenizers are the most underrated parts of not only LLMs but also text e
2325
website_url: https://ep2024.europython.eu/session/deconstructing-the-text-embedding-models
2426
---
2527

26-
Selecting the optimal text embedding model is often guided by benchmarks such as the Massive Text Embedding Benchmark (MTEB). While choosing the best model from the leaderboard is a common practice, it may not always align perfectly with the unique characteristics of your specific dataset. This approach overlooks a crucial yet frequently underestimated element - the tokenizer.
27-
28+
Selecting the optimal text embedding model is often guided by benchmarks such as the Massive Text Embedding Benchmark (MTEB). While choosing the best model from the leaderboard is a common practice, it may not always align perfectly with the unique characteristics of your specific dataset. This approach overlooks a crucial yet frequently underestimated element - the tokenizer.
29+
2830
We will delve deep into the tokenizer's fundamental role, shedding light on its operations and introducing straightforward techniques to assess whether a particular model is suited to your data based solely on its tokenizer. We will explore the significance of the tokenizer in the fine-tuning process of embedding models and discuss strategic approaches to optimize its effectiveness.

src/content/sessions/7F87N3.mdx

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,9 @@ delivery: in-person
44
duration: '30'
55
end: null
66
level: intermediate
7-
next_talk_code: null
8-
prev_talk_code: null
7+
next_talk: null
8+
prev_talk: null
9+
resources: null
910
room: null
1011
slug: mastering-design-patterns-crafting-elegant-solutions-with-a-confidence
1112
speakers:
@@ -14,15 +15,16 @@ start: null
1415
state: confirmed
1516
submission_type: Talk
1617
talks_after: null
18+
talks_before: null
1719
talks_in_parallel: null
1820
title: 'Mastering Design Patterns: Crafting Elegant Solutions with a Confidence'
1921
track: Software Engineering & Architecture
2022
tweet: ''
2123
website_url: https://ep2024.europython.eu/session/mastering-design-patterns-crafting-elegant-solutions-with-a-confidence
2224
---
2325

24-
Join us for an illuminating 30-minute journey into the world of design patterns at EuroPython 2024. Design patterns aren't just abstract concepts; they are the architectural blueprints that empower developers to create elegant and maintainable software solutions. In this session, we bridge the gap between theory and practice, offering practical insights for developers of all levels.
25-
26-
We'll delve into a curated selection of design patterns, from foundational creational patterns to advanced behavioral patterns, showcasing their real-world applications and transformative impact on Python development. Through a blend of theory and practice, attendees will gain a comprehensive understanding of how to identify common design problems and apply appropriate patterns to solve them efficiently.
27-
26+
Join us for an illuminating 30-minute journey into the world of design patterns at EuroPython 2024. Design patterns aren't just abstract concepts; they are the architectural blueprints that empower developers to create elegant and maintainable software solutions. In this session, we bridge the gap between theory and practice, offering practical insights for developers of all levels.
27+
28+
We'll delve into a curated selection of design patterns, from foundational creational patterns to advanced behavioral patterns, showcasing their real-world applications and transformative impact on Python development. Through a blend of theory and practice, attendees will gain a comprehensive understanding of how to identify common design problems and apply appropriate patterns to solve them efficiently.
29+
2830
Using engaging examples and hands-on exercises, we'll equip attendees with the knowledge and skills needed to architect cleaner, more maintainable codebases. Whether you're a seasoned veteran or a curious novice, this presentation offers a comprehensive roadmap for mastering Python design patterns and architecting software solutions with grace.

src/content/sessions/7GRP3T.mdx

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,9 @@ delivery: in-person
44
duration: '30'
55
end: null
66
level: intermediate
7-
next_talk_code: null
8-
prev_talk_code: null
7+
next_talk: null
8+
prev_talk: null
9+
resources: null
910
room: null
1011
slug: the-art-of-the-pull-request
1112
speakers:
@@ -14,13 +15,14 @@ start: null
1415
state: confirmed
1516
submission_type: Talk
1617
talks_after: null
18+
talks_before: null
1719
talks_in_parallel: null
1820
title: The Art of the Pull Request
1921
track: Software Engineering & Architecture
2022
tweet: ''
2123
website_url: https://ep2024.europython.eu/session/the-art-of-the-pull-request
2224
---
2325

24-
*Want to be a better teammate? Want to get your work merged faster?*
25-
26+
*Want to be a better teammate? Want to get your work merged faster?*
27+
2628
For a lot of devs (especially newer ones) the important part of a PR is the code, not the structure of the PR. However, the way commits in a PR are put together to guide a reviewer can be massively impactful. This talk looks at how to effectively craft that review experience.

src/content/sessions/7PEXTK.mdx

Lines changed: 34 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,9 @@ delivery: in-person
44
duration: '45'
55
end: null
66
level: intermediate
7-
next_talk_code: null
8-
prev_talk_code: null
7+
next_talk: null
8+
prev_talk: null
9+
resources: null
910
room: null
1011
slug: rapid-prototyping-proof-of-concepts-django-is-all-we-need
1112
speakers:
@@ -14,6 +15,7 @@ start: null
1415
state: confirmed
1516
submission_type: Talk (long session)
1617
talks_after: null
18+
talks_before: null
1719
talks_in_parallel: null
1820
title: 'Rapid Prototyping & Proof of Concepts: Django is all we need'
1921
track: Python Libraries & Tooling
@@ -23,34 +25,34 @@ tweet: We know Django is great for building mature & long-lasting applications.
2325
website_url: https://ep2024.europython.eu/session/rapid-prototyping-proof-of-concepts-django-is-all-we-need
2426
---
2527

26-
In this modern day and age, 2 things are for certain:
27-
28-
1. Time-to-market for our products & features matters.
29-
2. We can easily drown in complexity and be carried away by over-engineering.
30-
31-
Having the ability to rapidly develop prototypes and proof of concepts is very powerful, because we can iterate towards the right thing, with code.
32-
33-
We know that we can use Django for building mature & long-lasting applications.
34-
35-
But what about building rapid prototypes and proof of concepts?
36-
37-
In this talk, we’ll show that Django can do that job, reliably, as well.
38-
39-
We’ll look at what Django & the rich 3rd party ecosystem has to offer us, when it comes to building rapid prototypes.
40-
41-
We’ll focus on topics like:
42-
43-
1. How to approach rapid prototyping with the correct mindset.
44-
2. Being quick with Django models.
45-
3. Realizing that types can be our friends.
46-
4. Realizing that Django admin may be all the UI we need (at least, in the beginning).
47-
5. Using HTMX where it makes sense.
48-
6. Components in Django templates are a good idea.
49-
50-
The talk will be practical & pragmatic, with the aim to provide good examples, derived from experience, that’ll highlight the main topics and ideas.
51-
52-
The talk is great for both beginners, as well as seasoned Django developers.
53-
54-
The final goal is to give clear evidence, supported by examples, that we can use Django, reliably, to rapidly build prototypes & proof of concepts.
55-
28+
In this modern day and age, 2 things are for certain:
29+
30+
1. Time-to-market for our products & features matters.
31+
2. We can easily drown in complexity and be carried away by over-engineering.
32+
33+
Having the ability to rapidly develop prototypes and proof of concepts is very powerful, because we can iterate towards the right thing, with code.
34+
35+
We know that we can use Django for building mature & long-lasting applications.
36+
37+
But what about building rapid prototypes and proof of concepts?
38+
39+
In this talk, we’ll show that Django can do that job, reliably, as well.
40+
41+
We’ll look at what Django & the rich 3rd party ecosystem has to offer us, when it comes to building rapid prototypes.
42+
43+
We’ll focus on topics like:
44+
45+
1. How to approach rapid prototyping with the correct mindset.
46+
2. Being quick with Django models.
47+
3. Realizing that types can be our friends.
48+
4. Realizing that Django admin may be all the UI we need (at least, in the beginning).
49+
5. Using HTMX where it makes sense.
50+
6. Components in Django templates are a good idea.
51+
52+
The talk will be practical & pragmatic, with the aim to provide good examples, derived from experience, that’ll highlight the main topics and ideas.
53+
54+
The talk is great for both beginners, as well as seasoned Django developers.
55+
56+
The final goal is to give clear evidence, supported by examples, that we can use Django, reliably, to rapidly build prototypes & proof of concepts.
57+
5658
It turns out that Django is all we need.

src/content/sessions/7XMZGV.mdx

Lines changed: 19 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,9 @@ delivery: in-person
44
duration: '30'
55
end: null
66
level: intermediate
7-
next_talk_code: null
8-
prev_talk_code: null
7+
next_talk: null
8+
prev_talk: null
9+
resources: null
910
room: null
1011
slug: demystifying-asyncio-building-your-own-event-loop-in-python
1112
speakers:
@@ -14,6 +15,7 @@ start: null
1415
state: confirmed
1516
submission_type: Talk
1617
talks_after: null
18+
talks_before: null
1719
talks_in_parallel: null
1820
title: 'Demystifying AsyncIO: Building Your Own Event Loop in Python'
1921
track: Python Internals & Ecosystem
@@ -23,19 +25,19 @@ tweet: Explore AsyncIO's core by building a custom event loop in Python to power
2325
website_url: https://ep2024.europython.eu/session/demystifying-asyncio-building-your-own-event-loop-in-python
2426
---
2527

26-
**AsyncIO** has emerged as a vital tool in Python's ecosystem, particularly in web development, IO-bound tasks, and network programming. However, its internal mechanics often remain obscure, even to seasoned Python developers. This talk aims to demystify AsyncIO by guiding you through creating your own event loop in Python, culminating in running a FastAPI application with it.
27-
28-
In this talk, we’ll build an event loop from scratch in Python, capable of running an HTTP server through a FastAPI application.
29-
30-
**Plan:**
31-
32-
- **Introduction to AsyncIO**
33-
- **Core Concepts:** Deep dive into Event loop, Futures, Tasks, and coroutines
34-
- **Hands-On Building:** Constructing an event loop from scratch
35-
- Scheduling callbacks
36-
- Executing tasks and coroutines
37-
- Handling network calls
38-
- **Practical Application:** Running a FastAPI HTTP server with our loop
39-
- **Performance Insights:** Comparing our event loop with the fastest ones
40-
28+
**AsyncIO** has emerged as a vital tool in Python's ecosystem, particularly in web development, IO-bound tasks, and network programming. However, its internal mechanics often remain obscure, even to seasoned Python developers. This talk aims to demystify AsyncIO by guiding you through creating your own event loop in Python, culminating in running a FastAPI application with it.
29+
30+
In this talk, we’ll build an event loop from scratch in Python, capable of running an HTTP server through a FastAPI application.
31+
32+
**Plan:**
33+
34+
- **Introduction to AsyncIO**
35+
- **Core Concepts:** Deep dive into Event loop, Futures, Tasks, and coroutines
36+
- **Hands-On Building:** Constructing an event loop from scratch
37+
- Scheduling callbacks
38+
- Executing tasks and coroutines
39+
- Handling network calls
40+
- **Practical Application:** Running a FastAPI HTTP server with our loop
41+
- **Performance Insights:** Comparing our event loop with the fastest ones
42+
4143
By the end of this talk, you'll be able to understand the internal workings of AsyncIO and create a basic event loop capable of running a FastAPI application.

src/content/sessions/7Z8LFA.mdx

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,9 @@ delivery: in-person
44
duration: '30'
55
end: null
66
level: intermediate
7-
next_talk_code: null
8-
prev_talk_code: null
7+
next_talk: null
8+
prev_talk: null
9+
resources: null
910
room: null
1011
slug: writing-python-like-it-s-rust-more-robust-code-with-type-hints
1112
speakers:
@@ -14,6 +15,7 @@ start: null
1415
state: confirmed
1516
submission_type: Talk
1617
talks_after: null
18+
talks_before: null
1719
talks_in_parallel: null
1820
title: Writing Python like it's Rust - more robust code with type hints
1921
track: Software Engineering & Architecture
@@ -22,8 +24,8 @@ tweet: 'The many benefits of type hints in Python: leveraging types to gain more
2224
website_url: https://ep2024.europython.eu/session/writing-python-like-it-s-rust-more-robust-code-with-type-hints
2325
---
2426

25-
Using type hints in Python has many advantages, some of which might not be obvious at first. We will see that it allows us to explicitly encode invariants in our code, which reduces the amount of tests that we need to write, it improves development speed and maintainability, and perhaps most importantly, it can give us more confidence that our code does what we expect it to do.
26-
27-
We will also go through code examples that will show us how to leverage typing in Python to design APIs that cannot be easily misused, to create robust programs that we can trust.
28-
27+
Using type hints in Python has many advantages, some of which might not be obvious at first. We will see that it allows us to explicitly encode invariants in our code, which reduces the amount of tests that we need to write, it improves development speed and maintainability, and perhaps most importantly, it can give us more confidence that our code does what we expect it to do.
28+
29+
We will also go through code examples that will show us how to leverage typing in Python to design APIs that cannot be easily misused, to create robust programs that we can trust.
30+
2931
Audience members are expected to be able to read and understand Python code.

0 commit comments

Comments
 (0)