Jak zablokować równoległe wywołania funkcji między procesami w Pythonie

Czasami ta sama funkcja może zostać wywołana równolegle przez kilka procesów, choć jej logika zupełnie się do tego nie nadaje. Jeden worker zmienia hasło do zewnętrznego systemu, drugi robi dokładnie to samo, a trzeci próbuje się właśnie zalogować. Każdy chciał dobrze, tylko teraz nikt nie zna aktualnego hasła XD. Podobny problem pojawia się przy odświeżaniu wspólnych danych, generowaniu tego samego raportu czy modyfikowaniu pliku. Jeśli operacje wejdą sobie w drogę, otrzymujemy klasyczny race condition, czyli wyścig, w którym zwycięzcą bywa zgłoszenie błędu. ...

8 października 2026 · 6 min · SpaceShaman

Jak i dlaczego zbudowałem własną dystrybucję Linuxa opartą o bootc

Cóż to była za przygoda 🤠 Wszystko zaczęło się od mojej kolejnej próby skonfigurowania NixOS-a, który miał zastąpić Debiana, z którego korzystam na co dzień. Bardzo podoba mi się idea stojąca za NixOS-em: deklaratywna konfiguracja całego systemu i możliwość odtworzenia środowiska brzmią świetnie. Niestety w praktyce okazało się to dużo trudniejsze, niż myślałem. Sam język Nix jest w mojej ocenie zupełnie nieintuicyjny, do tego dochodzi dokumentacja, która momentami woła o pomstę do nieba, i sprzeczne informacje o dobrych praktykach rozrzucone po całym internecie. A może to ja jestem za głupi, żeby sobie z tym poradzić? Ciężko stwierdzić XD. W każdym razie podczas bodajże trzeciego podejścia do konfiguracji NixOS-a i kolejnej porażki zacząłem szukać alternatywy. Wtedy trafiłem na bootc. ...

20 września 2026 · 12 min · SpaceShaman

Jak tworzyć logi i nie zaśmiecać nimi kodu

W jednym z moich projektów w Pythonie musiałem tworzyć dość szczegółowe logi opisujące przebieg działania programu. Kod projektu to w dużej mierze glue code, który korzysta z wielu zewnętrznych usług i automatyzuje procesy wykonywane wcześniej ręcznie. Nie mam nad nimi pełnej kontroli, a moja wiedza o ich działaniu jest bardzo ograniczona. Ponieważ różne procesy często korzystają z tych samych usług, opakowałem je w klasy. Przykładowy kod implementujący jedną z automatyzacji wygląda mniej więcej tak: ...

27 sierpnia 2026 · 7 min · SpaceShaman

Dlaczego zastąpiłem krzesło poduszką do medytacji

Dlaczego? Od bardzo dawna fascynuje mnie kultura Japonii. Jedną z rzeczy, które zawsze zwracały moją uwagę, jest długowieczność i ogólnie dobry stan zdrowia Japończyków. Ciekawym elementem japońskiej kultury jest to, że ludzie spędzają dużo czasu, siedząc na podłodze. Większość z was zapewne widziała w japońskich filmach sceny, w których ludzie siedzą na podłodze wokół niskiego stołu. Zacząłem się zastanawiać, czy siedzenie na podłodze może być jednym z czynników wpływających na ich zdrowie i długowieczność oraz czy mógłbym wprowadzić ten zwyczaj do własnego życia. ...

21 sierpnia 2026 · 2 min · SpaceShaman

Rozwój UserHarbor: od niezależnego rdzenia do wykonywalnych kontraktów warstwy danych

Zarządzanie użytkownikami jest jednym z tych problemów, które rzadko wydają się na tyle trudne, by poświęcać im wiele uwagi. Dopóki nie zaimplementujesz go po raz piąty. Rejestracja, logowanie, sesje, weryfikacja adresu e-mail, resetowanie i zmiana hasła, usuwanie konta, role, uprawnienia — żadna z tych funkcji nie jest szczególnie nietypowa. Niemal każda aplikacja potrzebuje jednak jakiejś ich kombinacji, a implementacja często staje się ściśle powiązana z frameworkiem, ORM-em lub infrastrukturą, których akurat użyto w projekcie. ...

17 sierpnia 2026 · 8 min · SpaceShaman

Stworzyłem UserHarbor — niezależną od frameworka bibliotekę do zarządzania użytkownikami w Pythonie

Pracując ostatnio nad aplikacją SaaS, po raz kolejny musiałem zaimplementować ten sam zestaw funkcji związanych z kontami użytkowników: rejestrację logowanie sesje weryfikację adresu e-mail reset hasła zmianę hasła usuwanie konta podstawowe role i uprawnienia Żadna z tych rzeczy nie była szczególnie trudna. Była za to powtarzalna. Pisałem już wcześniej podobny kod i nie chciałem w każdym nowym projekcie w Pythonie odtwarzać od podstaw tej samej warstwy zarządzania użytkownikami. Zacząłem więc pracować nad UserHarbor. ...

1 lipca 2026 · 5 min · SpaceShaman