Skip to content

Commit e4ee4fa

Browse files
author
Grzegorz Kocjan
committed
Meetup 58 details
1 parent 1cb654d commit e4ee4fa

File tree

10 files changed

+87
-28
lines changed

10 files changed

+87
-28
lines changed

.gitignore

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,4 +10,8 @@ hugo.darwin
1010
hugo.linux
1111

1212
# Temporary lock file while building
13-
/.hugo_build.lock
13+
/.hugo_build.lock
14+
15+
# Secret for google api
16+
.client_secret.json
17+
.client_secret.token.json
424 KB
Loading
-1.8 MB
Loading

content/spotkania/_content.gotmpl

Lines changed: 16 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,23 @@
11
{{ range $meetup_number, $meetup := site.Data.meetups }}
22

33
{{ $time := .Site.Params.dateParse "2006-01-02" $meetup.date }}
4-
4+
5+
{{ $info_graphic := ""}}
6+
{{ if or (not $meetup.talks) (eq (len $meetup.talks) 1) }}
7+
{{- $info_graphic = partial "infographic-image-solo.html" (dict "meetup" $meetup) -}}
8+
{{ else if eq (len $meetup.talks) 2 }}
9+
{{- $info_graphic = partial "infographic-image-duo.html" (dict "meetup" $meetup) -}}
10+
{{ end }}
11+
512
{{ $contentValue := printf `
13+
<img src="%s" alt="Infographic" />
14+
615
## Informacje
716
817
**📅 data:** %s</br>
918
**🕕 godzina:** %s</br>
1019
**📍 miejsce:** %s</br>`
11-
$meetup.date $meetup.time $meetup.place
20+
$info_graphic.Permalink $meetup.date $meetup.time $meetup.place
1221
}}
1322

1423
{{ if $meetup.meetup_link }}
@@ -43,7 +52,11 @@ Zarezerwuj swoje miejsce już teraz – nie daj się zaskoczyć, gdy ruszymy z p
4352
{{ $contentValue = printf "%s \n ### %s" $contentValue $cleanedTitle }}
4453
{{ $contentValue = printf "%s \n %s" $contentValue (printf "{{< speaker speaker_id=\"%s\" >}}" .speaker_id) }}
4554
{{ if .talk_description }}
46-
{{ $contentValue = printf "%s \n %s" $contentValue .talk_description }}
55+
{{ with .talk_description }}
56+
{{/* turn every LF into “two-spaces LF” which Markdown ⇒ <br> */}}
57+
{{ $desc := replace . "\n" " \n" }}
58+
{{ $contentValue = printf "%s\n%s" $contentValue $desc }}
59+
{{ end }}
4760
{{ end }}
4861
{{ if .youtube }}
4962
{{ $liveLink := printf "{{< youtubeLite id=\"%s\" label=\"%s\" >}}" .youtube "Label" }}
@@ -82,12 +95,6 @@ Zarezerwuj swoje miejsce już teraz – nie daj się zaskoczyć, gdy ruszymy z p
8295
{{ $.AddPage $page }}
8396

8497
{{/* Add featured image. */}}
85-
{{ $info_graphic := ""}}
86-
{{ if or (not $meetup.talks) (eq (len $meetup.talks) 1) }}
87-
{{- $info_graphic = partial "infographic-image-solo.html" (dict "meetup" $meetup) -}}
88-
{{ else if eq (len $meetup.talks) 2 }}
89-
{{- $info_graphic = partial "infographic-image-duo.html" (dict "meetup" $meetup) -}}
90-
{{ end }}
9198

9299
{{ $content := dict
93100
"mediaType" $info_graphic.MediaType.Type

data/meetups/57.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,10 @@ featured: true
99

1010
talks:
1111
- speaker_id: "michal-moroz"
12-
talk_title: |
12+
talk_title: |-
1313
Czego o product developmencie uczy 5 lat
1414
rozwoju własnej aplikacji do journalingu
15-
talk_description: |
15+
talk_description: |-
1616
Rozwijam produkt, którego sam jestem klientem i product ownerem. I na pierwszy rzut oka, to powinno dawać mi natychmiastowy feedback. W końcu nie ma narzutów komunikacyjnych, czekania aż ktoś zaakceptuje jakiś pomysł. A jednak, często idee walidują się miesiącami. Dlaczego tak jest?
1717
1818
Modeluję dziedzinę, w której stabilny model przekłada się bezpośrednio na mój dobrostan. Precyzyjnie zdefiniowana domena – przełożona na komendy i zapytania – powinna przełożyć się na rzadko zmieniający się kod, w którym wszystko jest jasno opisane. To dlaczego niektóre funkcje okazały się zbędne po dwóch użyciach, a inne przechodziły już kilka przemian?

data/meetups/58.yaml

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,3 +6,45 @@ meetup_link: "https://www.meetup.com/python-lodz/events/306971418/"
66
sponsors: [indiebi, sunscrapers]
77
tags: ["Następne spotkanie!"]
88
featured: true
9+
talks:
10+
- speaker_id: grzegorz-kocjan
11+
talk_title: |-
12+
Pythonowa konfiguracja, która przyprawi Cię o dreszcze
13+
(w dobry sposób, obiecuję!)
14+
language: pl
15+
talk_description: |-
16+
Konfiguracja — wszyscy jej potrzebujemy, wszyscy jej nienawidzimy. A mimo to, w każdym projekcie przynajmniej raz udaje nam się ją zepsuć.
17+
18+
Przez lata widziałem już wszystko: ręczne pliki konfiguracyjne tworzone dla każdego możliwego środowiska, upychanie setek parametrów w jednym pliku JSON, ręczne odczytywanie zmiennych środowiskowych bez żadnej kontroli typów, czy pipeline’y wywracające się przez brakujący przecinek. Ale po dekadzie męki w końcu trafiłem na rozwiązanie: pydantic-settings.
19+
20+
Dzięki Pydantic mamy konfigurację, która jest:
21+
✅ Dokładnie typowana (koniec z zastanawianiem się, czy "timeout" to rzeczywiście integer!)
22+
✅ Elastyczna (działa płynnie na lokalnych maszynach, w Dockerze, Kubernetesie i chmurze)
23+
✅ Łatwa do walidacji (unikniesz awarii w runtime z powodu wpisania „True” zamiast True)
24+
✅ Świetna do testów (tak, zahaczymy też o sztuczki z pytest)
25+
26+
ALE nie zamierzam tu omawiać podstaw pydantic-settings. Zamiast tego zanurzymy się w zaawansowane typowanie, żeby stworzyć superrestrykcyjną konfigurację, w której nie da się popełnić błędu — taką, która przetrwa dłużej niż jakikolwiek framework JavaScript. Dodatkowo pokażę, jak używać jej w projekcie bez polegania na stanie globalnym, opierając się na sprawdzonych w boju zasadach, które zebrałem przez lata.
27+
28+
Z tego wystąpienia dowiesz się:
29+
🎯 Dlaczego większość tradycyjnych metod konfiguracji to strzał w kolano
30+
🎯 Jak zbudować konfigurację tak solidną, że nic jej nie wytrąci z rytmu
31+
🎯 Jak porządnie przetestować konfigurację i jej użycie (żeby nie rozpadła się na produkcji)
32+
🎯 Jakie sekrety Pydantic może jeszcze przed Tobą skrywać
33+
34+
Jeśli uważasz, że konfiguracja jest nudna, spróbuj przesiedzieć tę prezentację i nie poczuć przy tym chociaż odrobiny ekscytacji. Najgorszy scenariusz? Wychodzisz z mniejszą liczbą koszmarów związanych z configiem. Najlepszy? Masz wreszcie konfigurację, która po prostu działa.
35+
36+
P.S. Te techniki wykraczają poza samą konfigurację — prawdopodobnie wykorzystasz je także w innych częściach swojego projektu! 🚀
37+
talk_title_en: |-
38+
Python Config That Will Give You Chills (In a Good Way, I Promise!)
39+
- speaker_id: sebastian-buczynski
40+
talk_title: |-
41+
Programista zoptymalizował aplikację,
42+
ale nikt mu nie pogratulował bo była w Pythonie 😔
43+
language: pl
44+
talk_description: |-
45+
Wokół tematu wydajności w Pythonie narosło wiele mitów. Rozwiejmy te fałszywe przekonania opierając się na twardych danych.
46+
47+
Porozmawiajmy jak być lepszym inżynierem oprogramowania w ciągle zmieniającym się świecie, wymagającym podejmowania decyzji i balansowania między różnymi wymaganiami.
48+
talk_title_en: |-
49+
A software developer optimized the application,
50+
but no one congratulated them because it was written in Python 😔

data/speakers/grzegorz-kocjan.yaml

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
name: Grzegorz Kocjan
2+
bio: Ponad dekada pracy z Pythonem to wspaniała przygoda, nieważne czy musiałem naprawić błąd na wczoraj, czy zaprojektować zaawansowany i wydajny system, Python nigdy mnie nie zawiódł! ?? Uwielbiam optymalizację kodu i złożone problemy. Ostatnio interesują mnie także aspekty organizacyjne i psychologiczne w wytwarzaniu oprogramowania. Uwielbiam dzielić się swoim doświadczeniem. Tata, fan fantasy oraz sci-fi, gracz, budowniczy LEGO i wiele innych.
3+
avatar: images/avatars/grzegorz-kocjan.png
4+
social:
5+
- facebook: https://www.facebook.com/grzegorz.kocjan.me
6+
- linkedin: https://www.linkedin.com/in/grzegorzkocjan/
7+
- youtube: https://www.youtube.com/@grzegorz.kocjan
8+
- link: https://belazy.dev/
9+
- link: https://pythonlodz.org/

data/speakers/kamil-kucharski.yaml

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
name: "Kamil Kucharski"
22
avatar: "images/avatars/kamil-kucharski.png"
33
bio: "Programista Pythona nastawiony na rozwiązywanie problemów, z talentem do przekładania złożonych wymagań biznesowych na eleganckie i wydajne architektury chmurowe AWS. Specializuję się w budowaniu bezpiecznych, odpornych i skalowanych systemów w chmurach. Uwielbiam debugować problemy związane z wydajnością programów oraz zarządzania pamięcią."
4-
social: [
5-
{ facebook: "https://github.com/kaniak274" },
6-
{ linkedin: "https://www.linkedin.com/in/kucharski-kamil" }
7-
]
4+
social:
5+
- linkedin: https://www.linkedin.com/in/kucharski-kamil/
6+
- github: https://github.com/kaniak274

data/speakers/michal-moroz.yaml

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,8 @@
11
name: "Michał Moroz"
22
avatar: "images/avatars/michal-moroz.png"
33
bio: "Michał Moroz - Chief Innovation Officer i współzałożyciel Makimo – IT Consultancy & Software Services. Programista od ponad 15 lat, na co dzień zajmuje się pracą z systemami legacy i rozwojem firmy Makimo. Umiejętności przywódcze rozwijał również w organizacjach non-profit – na studiach w Niezależnym Zrzeszeniu Studentów Regionu Łódzkiego, obecnie w klubie Toastmasters Speakers of Łódź. Poza programowaniem ćwiczy się w przemawianiu publicznym, a także zbiera idee i nowe pojęcia, które może włączyć do swojego postrzegania świata."
4-
social: [
5-
{ facebook: "https://www.facebook.com/michalpiotrmoroz" },
6-
{ linkedin: "https://www.linkedin.com/in/michalpiotrmoroz/" },
7-
{ link: "https://michalmoroz.com/" },
8-
{ link: "https://makimo.com/" }
9-
]
4+
social:
5+
- facebook: https://www.facebook.com/michalpiotrmoroz
6+
- linkedin: https://www.linkedin.com/in/michalpiotrmoroz/
7+
- link: https://michalmoroz.com/
8+
- link: https://makimo.com/
Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
11
name: "Sebastian Buczyński"
22
avatar: "images/avatars/sebastian-buczynski.png"
3-
bio: "W branży od 12 lat z doświadczeniami lidera technicznego i architekta. Trener/konsultant w Bottega IT Minds, specjalizacja - Python. Architekt w firmie Sauce Labs. Zafascynowany zwinnym wytwarzaniem oprogramowania bez kompromisów w kwestii jakości."
4-
social: [
5-
{ facebook: "https://www.facebook.com/sebastian.buczynski.tsn" },
6-
{ linkedin: "https://www.linkedin.com/in/sebastianbuczynski" },
7-
]
8-
3+
bio: "W branży od ponad dekady lat z doświadczeniami lidera technicznego i architekta. Trener/konsultant w Bottega IT Minds, specjalizacja - Python. Architekt w firmie Sauce Labs. Zafascynowany zwinnym wytwarzaniem oprogramowania bez kompromisów w kwestii jakości."
4+
social:
5+
- linkedin: https://www.linkedin.com/in/sebastianbuczynski/
6+
- youtube: https://www.youtube.com/@pythoneerguru
7+
- link: https://breadcrumbscollector.tech/

0 commit comments

Comments
 (0)