Przejdź do głównej zawartości

4 posty z tagiem "Python"

Artykuły i poradniki dotyczące języka Python.

Wyświetl wszystkie tagi

Pula połączeń: dlaczego 100 połączeń jest wolniejsze niż 20 — HikariCP, PgBouncer i czas oczekiwania

· 14 min aby przeczytać
Przemysław Majdak
Full-Stack Developer, Automation Engineer & Web Security Specialist

Gdy aplikacja zwalnia pod obciążeniem, pierwszym odruchem jest podniesienie maximumPoolSize z 20 do 100. Zwykle robi się gorzej, nie lepiej. Pula połączeń to nie jest zapas mocy, tylko kolejka przed bazą, która ma tyle samo rdzeni co przed zmianą. Kolejka istnieje tak czy inaczej. Rozmiar puli decyduje tylko o tym, gdzie ją widać: w puli, gdzie da się ją zmierzyć, czy w schedulerze systemu i w lock managerze Postgresa, gdzie jej nie widać. Poniżej arytmetyka rozmiaru puli, PgBouncer w trybie transaction z tym, co się w nim psuje, pułapka dwóch pul i metryka, która to wszystko pokazuje.

Generative AI Design Patterns #1a: Logits Masking i Grammar, czyli gwarancja formy, nie treści

· 23 min aby przeczytać
Przemysław Majdak
Full-Stack Developer, Automation Engineer & Web Security Specialist

Pierwsze dwa wzorce z „Generative AI Design Patterns" — Logits Masking i Grammar — odpowiadają na najczęstszy problem z modelem w produkcji: nie trzyma formatu. Oba działają tak samo: zerują prawdopodobieństwo tokenów, które łamią regułę, więc gwarantują kształt odpowiedzi. Autorzy uczciwie dodają, że kształt to nie treść, i radzą zostawić modelowi furtkę Unknown. Sprawdziłem to na dwóch lokalnych modelach na CPU. Furtka jest potrzebna, ale nie działa tak, jak się zakłada: w moim teście faktura w złotówkach ze schematem bez PLN wychodziła u Qwena 30B jako USD w 10 na 10 prób, także wtedy, gdy model miał do dyspozycji UNKNOWN i instrukcję, kiedy go użyć.

Django w enterprise po DEP 20: koniec LTS, roczny cykl wydań i co to zmienia w planowaniu migracji

· 8 min aby przeczytać
Przemysław Majdak
Full-Stack Developer, Automation Engineer & Web Security Specialist

Django Software Foundation przyjęła DEP 20: od stycznia 2028 framework przechodzi na jedno wydanie funkcjonalne rocznie, z numeracją kalendarzową (Django 2028, Django 2029), a etykieta „LTS" zostaje wycofana — bo każde wydanie dostaje ten sam, trzyletni okres wsparcia. Dla zespołów utrzymujących systemy produkcyjne to najważniejsza zmiana w planowaniu budżetu utrzymania od lat: znika przepaść między wersjami LTS, przez którą migracje robiło się skokowo, po dwa lata zmian naraz. Poniżej co dokładnie się zmienia, jak wygląda tabela przejściowa i dlaczego akurat teraz warto przejrzeć swój plan aktualizacji.

Dlaczego warto pisać własne narzędzia? Przegląd Black Hat Python (Wydanie II)

· 4 min aby przeczytać
Przemysław Majdak
Full-Stack Developer, Automation Engineer & Web Security Specialist

Od Script Kiddie do Profesjonalisty. W przedmowie do drugiego wydania "Black Hat Python", Charlie Miller (znany z głośnego ataku na Jeepa Cherokee) stawia sprawę jasno: różnica między "script kiddies" a profesjonalnymi hakerami polega na tym, że ci pierwsi używają cudzych narzędzi, a ci drudzy potrafią napisać własne.