Ostatnie wpisy
Notatka

Self-hosting #8pgAdmin 4

pgAdmin 4 jako webowy klient do baz PostgreSQL w homelabie. Konfiguracja kontenera, router Traefik za Authelia.

SzkolenieZakończone

Agenci AI w praktyce

Praktyczne wprowadzeniw do agentów AI dla osób, które nie programują na co dzień.

Notatka

Self-hosting #7Plausible Analytics

Plausible Analytics jako self-hosted alternatywa Google Analytics. Konfiguracja z PostgreSQL, ClickHouse, Traefik i Authelia.

Post

MCP #6Google: Gmail, Kalendarz, Drive

Oficjalne serwery MCP od Google dla Claude Desktop: Gmail, Calendar, Drive. Wspólna konfiguracja OAuth, scenariusze użycia, przykład agenta przygotowującego maile, spotkania i podsumowanie dnia.

Post

Mandelbrot Explorer

Stworzyłem przeglądarkową wizualizację zbioru Mandelbrota Mandelbrot Explore.

Post

Skille w Claude Code

Skille w Claude Code. Przykłady jak delegować zadania w skills

Post

SDR #4Pluto+, co to jest?

Przegląd Pluto+: architektura, możliwości, programowanie z Pythona, połączenie po USB i Ethernet, pierwszy chirp.

Post

Agenci AI #7Multi-agent i orkiestracja

Agent tool, subagenci (Explore, Plan, code-reviewer), worktree isolation, wzorce delegacji. Jak budować systemy wieloagentowe w Claude Code.

Post

Agenci AI #6Hooks: automatyczna reakcja na zdarzenia

Hooks w Claude Code — PreToolCall, PostToolCall, Notification, Stop. Konfiguracja w settings.json, zmienne środowiskowe, praktyczne wzorce: auto-formatting, guardrails, audit log, integracja z CI/CD.

Post

Agenci AI #5Skills, instrukcje dla agenta

Jak pisać custom skills dla Claude Code. Anatomia skilla, trigger vs slash command, gdzie umieszczać skills. Praktyczny przykład: skill do generowania changelogu.

Post

Agenci AI #4Pamięć i kontekst

Okno kontekstowe, kompakcja, pamięć krótko i długoterminowa. CLAUDE.md vs Memory MCP vs wbudowana pamięć. RAG patterns i strategie zarządzania kontekstem.

Post

Agenci AI #3MCP, narzędzia dla agenta

MCP z perspektywy agenta: jak narzędzia trafiają do kontekstu, token overhead, Tool Search i deferred tools, ograniczanie toolsetów. Budżet tokenów w praktyce.

Post

Agenci AI #1. Czym jest agent AI

Definicja agenta AI, różnice między agentem, chatbotem i copilotem. Pętla rozumowanie→akcja→ewaluacja. Narzędzia, pamięć, planowanie. Przegląd ekosystemu agentów w 2026 roku.

Post

MCP #5Bazy danych i pamięć agenta

MCP do danych i pamięci: PostgreSQL (zapytania do bazy, schemat, wyniki), Memory (trwała pamięć agenta między sesjami). Konfiguracja, bezpieczeństwo, przykłady promptów.

Notatka

Self-hosting #6Authelia

Authelia jako SSO i 2FA proxy przed serwisami za Traefik. Konfiguracja file backend, sesje, access control, integracja z forwardAuth.

Post

Zdalny dostęp graficzny — Linux UI na Windows

Cztery sprawdzone metody wyświetlania aplikacji graficznych z serwera Linux na pulpicie Windows: X11 over SSH, X2Go, VNC i xRDP. Porównanie, konfiguracja krok po kroku i rozwiązywanie problemów.

Post

MCP #3Generowanie obrazków

Jak podłączyć generowanie obrazów do Claude przez MCP: OpenAI (DALL-E 3, gpt-image-1), Flux przez Replicate i Hugging Face Spaces. Konfiguracja, cennik, przykłady promptów.

Post

MCP #2Wyszukiwanie i pobieranie

Przegląd MCP serverów do przeszukiwania sieci i scrapowania stron: Brave Search, Tavily, Firecrawl i Fetcher. Konfiguracja, porównanie kosztów i wskazówki kiedy użyć czego.

Post

MCP #1Czym jest?

Model Context Protocol to otwarty standard łączący LLM z zewnętrznymi narzędziami. Wyjaśniam jak działa, gdzie leżą prawdziwe limity tokenów i jak poprawnie skonfigurować pierwsze serwery.

Notatka

Self-hosting #5Traefik

Traefik jako reverse proxy z automatycznym TLS (Let's Encrypt), dynamic file provider, middleware Authelia, blokowanie .php/.wp-*.

Post

Efekt ignorowania mianownika

Dlaczego mózg woli „9 z 100" niż „1 z 10", chociaż druga opcja daje większą szansę wygranej. Kilka przykładów efektu ignorowania mianownika.

Post

YubiKey #4SSH

Pełna konfiguracja SSH z kluczem FIDO2 na YubiKey

Post

YubiKey #3podstawowa konfiguracja

Konfiguracja YubiKey: info, lista appletów, włączanie/wyłączanie funkcji USB i NFC, reset per-applet i ustawianie PIN-ów.

Post

SDR #3Odbiór FM

Opis modulacji FM, demodulacja i odbiór stacji FM broadcast przy pomocy SDR

Post

YubiKey #2modele i narzędzia

Przegląd modeli YubiKey 4 i 5, różnice w firmware, macierz funkcji. Instalacja ykman, pcscd, libfido2 na Ubuntu, naprawa uprawnień do socketa pcscd.

Post

SDR #2GNU Radio i Gqrx na Ubuntu WSL

Instalacja GNU Radio i Gqrx na Ubuntu w WSL2 z obsługą RTL-SDR i Airspy Mini. Krok po kroku od instalacji do pierwszego odbioru.

Notatka

Self-hosting #4Watchtower

Watchtower do automatycznych aktualizacji kontenerów Docker. Tryb label-enable, prywatne rejestry (GHCR), konfiguracja poll interval.

Post

YubiKey #1wprowadzenie

Czym jest YubiKey, jakie problemy rozwiązuje hardware'owy klucz kryptograficzny, słownik pojęć (FIDO2, WebAuthn, OpenPGP, PIV, OATH, OTP) oraz pięć praktycznych scenariuszy zastosowań.

Notatka

Self-hosting #3Beszel

Beszel do monitorowania CPU, RAM, dysku i temperatury serwerów. Architektura hub-agent przez SSH, metryki Docker per kontener.

Post

Algorytm Boyer–Moore

Omawiam algorytm Boyer–Moore: porównywanie wzorca od końca, regułę złego znaku (bad character) oraz regułę dobrego sufiksu (good suffix). Pokazuję, dlaczego BM w typowym przypadku jest sublinearny i kiedy wygrywa, a kiedy przegrywa z KMP.

Notatka

Self-hosting #2Dozzle

Dozzle do podglądu logów Docker w czasie rzeczywistym. Architektura hub-agent, multi-host

Post

Parametryczny generator modeli 3D

Stworzyłem web aplikację, która generuje modele 3D do druku 3D na podstawie wybranych parametrów, takich jak wymiary i grubość ścian. Model można od razu obejrzeć w przeglądarce dzięki WebGL, a następnie pobrać jako plik STL gotowy do druku.

Notatka

Self-hosting #1Homepage

Homepage Dashboard jako punkt wejścia do self-hosted infrastruktury. Tablica do wyświetlania linków

Post

Standardy w Ethereum #1

Wprowadzenie do tokenów w Ethereum, ich typów i standardów. Poznaj różnice między ERC-20, ERC-721 i ERC-1155, a także inne popularne standardy tokenów. Dowiedz się, jak tworzyć własne tokeny i jak ich integrować w aplikacje smart contractów.

Post

Narzędzia #7 (tmux, cppInsights)

Dwa niewielkie narzędzia, które potrafią mocno usprawnić codzienną pracę programisty. W tekście pokazuję, jak wykorzystać tmux do wygodnego zarządzania wieloma sesjami terminala oraz jak dzięki CPP Insights zajrzeć „pod maskę” kompilatora C++ i zobaczyć, jaki kod pośredni faktycznie wykonuje się dla szablonów, auto i lambd.

Post

Ethereum full node - docker

przechodzimy przez proces uruchomienia pełnego węzła Ethereum w kontenerze Docker: dobór klienta geth, konfiguracja sieci i synchronizacji, zarządzanie danymi oraz praktyczne wskazówki.

Post

Bitcoin full node - docker

Krok po kroku pokazuję, jak postawić pełny węzeł Bitcoina w Dockerze na lokalnej maszynie – od wyboru obrazu, przez konfigurację wolumenów i portów, aż po podstawowe komendy do monitorowania stanu node’a.

Post

Ethereum full node - VM

Instrukcja krok po kroku na temat uruchomienia pełnego węzła sieci Ethereum jako maszyny wirtualnej. Poznaj wymagania sprzętowe, przygotowanie hosta, kompilację ethereum oraz konfigurację sieci. Dowiedz się, jak zabezpieczyć węzeł i zarządzać nim w środowisku Linux.

Post

Bitcoin full node - VM

Instrukcja krok po kroku na temat uruchomienia pełnego węzła sieci Bitcoin jako maszyny wirtualnej. Poznaj wymagania sprzętowe, przygotowanie hosta, kompilację bitcoin-core oraz konfigurację sieci. Dowiedz się, jak zabezpieczyć węzeł i zarządzać nim w środowisku Linux.

Post

Falownik Huanyang #9LinuxCNC

Opisuję kompletną konfigurację sterowania falownikiem Huanyang z LinuxCNC: od ustawień parametrów falownika, przez definicję sygnałów w konfiguracji maszyny, aż po testy start/stop i regulację obrotów wrzeciona z poziomu interfejsu CNC.

Post

Zdalne X windows LinuxCNC

Jak uruchomić aplikację z GUI na serwerze Linux i widzieć ją na swoim komputerze? Poznaj mechanizm X11 Forwarding, który pozwala na zdalne wyświetlanie okien programów przez SSH. Dowiedz się, jak skonfigurować system, by praca na zdalnej maszynie była tak wygodna, jakby aplikacja była zainstalowana lokalnie.

Post

Falownik Huanyang #8sterowanie Mach3

Artykuł pokazuje, jak zintegrować falownik Huanyang z Mach3: instalacja i konfiguracja niezbędnych pluginów, mapowanie sygnałów, ustawienia parametrów wrzeciona oraz weryfikacja działania sterowania prędkością i kierunkiem z programu.

Post

Falownik Huanyang #7sterowanie RS-485

Krok po kroku przechodzimy przez podłączenie falownika Huanyang do magistrali RS‑485, konfigurację protokołu w falowniku oraz przykładowe skrypty w Pythonie, które pozwalają z poziomu komputera ustawiać obroty, kierunek i odczytywać bieżące parametry pracy.

Post

Falownik Huanyang #6sterowanie cyfrowe

Pokazuję, jak sterować falownikiem Huanyang sygnałami cyfrowymi: schemat podłączenia wejść, omówienie logiki start/stop i kierunku obrotów oraz szczegółową konfigurację parametrów, tak aby wrzeciono reagowało na sygnały z zewnętrzne.

Post

Falownik Huanyang #5sterowanie analogowe

Opisuję, jak ustawić zależność napięcia wejściowego do generowanej częstotliwości w falowniku Huanyang. Pokazuję, jak to zrobić zarówno z zewnątrz, jak i wbudowanym regulatorze. Przedstawiam schemat podłączenia zewnętrznego regulatora i omawiam dodatkowe informacje, takie jak dostępne repozytorium GitHub.

Post

Falownik Huanyang #4wyświetlacz

Opisuję elementy panelu falownika: znaczenie segmentów wyświetlacza, działanie diod sygnalizacyjnych (zasilanie, praca, błąd) oraz najczęściej spotykane kody alarmów. Do każdego komunikatu podaję typowe przyczyny i podstawowe kroki diagnostyczne.

Post

Falownik Huanyang #3krzywa U/F

Wyjaśniam, czym jest krzywa U/F, jak wpływa na charakterystykę pracy silnika oraz kiedy warto stosować ustawienia liniowe, a kiedy niestandardowe. Na przykładach pokazuję konfigurację krzywej w falowniku Huanyang i omawiam efekty w praktyce.

Post

Falownik Huanyang #2konfiguracja

Szczegółowy opis konfiguracji falownika Huanyang: znaczenie kluczowych parametrów, ich zakresy i wartości domyślne. Zawiera przykładową konfigurację dla typowego wrzeciona, wraz ze wskazaniami dotyczącymi dostosowania ustawień do konkretnej instalacji.

Post

Zadanie rekrutacyjne #5dynamicznie

Rozwiązuję zadanie „znajdź głębokość największego wąwozu w ciągu wysokości terenu”, pokazując prosty, liniowy algorytm. Krótko omawiam złożoność czasową i pamięciową.

Post

Falownik Huanyang #1podłączenie

Krok po kroku pokazuję, jak fizycznie podłączyć falownik do sieci zasilającej i silnika: schematy połączeń oraz kilka praktycznych uwag, jak uniknąć typowych błędów przy pierwszym uruchomieniu wrzeciona.

Post

Macierz błędów

Zrozumieć macierz błędów i metryki klasyfikacji. Przewodnik po interpretacji wyników modeli predykcyjnych. Dowiedz się, czym są True Positives, False Alarms oraz jak czytać tabelę błędów, aby poprawnie ocenić model. Poznasz różnice między prostymi parametrami a bardziej złożonymi wskaźnikami, takimi jak MCC.

Post

Paradoks Simpsona

Czy dane mogą kłamać, mimo że są prawdziwe? Dowiedz się, na czym polega paradoks Simpsona – zjawisko, w którym trend widoczny w grupach danych całkowicie znika lub odwraca się po ich połączeniu. Poznaj konkretne przykłady i naucz się, jak nie wyciągać błędnych wniosków z analizy statystycznej.

Post

Googletest w środowisku Windows

Przeprowadzam przez proces dodania GoogleTest do projektu C++ na Windows: pobranie i budowę biblioteki, konfigurację środowiska CMake, tworzenie pierwszych testów oraz ich uruchamianie z poziomu IDE i linii komend.

Post

Styl tabeli w Jupyter Notebook

Pokażę, jak zamienić surowe tabelki w Jupyter Notebook w czytelne i estetyczne wizualizacje: wykorzystanie wbudowanego DataFrame.style, formatowanie liczb, kolorowanie komórek, paski danych oraz eksport do prezentowalnego HTML.

Post

Python - wywołaj tylko raz

Jak wywoływać tylko raz kosztowną funkcje lub metodę i zwracać wynik pierwszego wykonania

Post

.htaccess - Co powinien zawierać?

Gotowy i sprawdzony szablon pliku .htaccess dla stron opartych na Apache. Dowiedz się, jak poprawnie skonfigurować przekierowania SEO, wymusić certyfikat SSL oraz zoptymalizować szybkość i bezpieczeństwo swojej witryny za pomocą kilku prostych reguł.

Post

Android - usuwanie aplikacji bez root

Opisuję metody pozbycia się bloatware’u z telefonu z Androidem bez odblokowywania roota: wykorzystanie ADB, dezaktywację pakietów i bezpieczne „odinstalowanie” dla użytkownika, wraz z uwagami, czego lepiej nie ruszać, żeby nie uceglić systemu.

Post

Podręczne narzędzia #5

Przegląd trzech lekkich narzędzi, które warto mieć pod ręką: NetworkMiner do analizy ruchu sieciowego, VirusTotal Uploader do szybkiego sprawdzania plików i URL‑i oraz RegShot do śledzenia zmian w rejestrze Windows – z przykładami typowych zastosowań w pracy admina i programisty.

Post

Dwie struktury PEB w procesie

Analiza nieudokumentowanych anomalii w zachowaniu funkcji NtQueryInformationProcess w systemie Windows. Dowiedz się, jak dwie różne struktury PEB mogą być dostępne w procesie i jak to wpływa na wyniki odczytu informacji o procesie.

Post

CreateToolhelp32Snapshot

Analiza nieudokumentowanych anomalii w funkcji CreateToolhelp32Snapshot. Dowiedz się, dlaczego architektura (x86 vs x64) aplikacji diagnostycznej wpływa na wyniki odczytu sterty (heap) w systemie Windows i jak różnice między dokumentacją a rzeczywistym działaniem WinApi mogą zmylić programistę narzędzi systemowych.

Post

Algorytm Knuth–Morris–Pratt

Wprowadzam algorytm Knuth–Morris–Pratt do wyszukiwania wzorca w tekście: intuicja stojąca za funkcją prefix/suffix, konstrukcja tablicy „lps” oraz analiza złożoności. Omawiam też, kiedy KMP ma przewagę nad naiwnym porównywaniem znak po znaku.

Post

Wyszukiwanie tekstu w tekście

Na prostym przykładzie pokazuję klasyczny, naiwny algorytm wyszukiwania podciągu w tekście oraz szczegółowo omawiam jego ograniczenia: złożoność czasową, powtarzane porównania i sytuacje, w których to podejście zaczyna być problematyczne.

Post

Dwa słowa o kartach Mifare

Praktyczne wprowadzenie do ekosystemu kart zbliżeniowych MIFARE, szczegółowo omawiając różnice techniczne między popularnymi modelami Classic oraz Ultralight. Wyjaśnienie standardu ISO/IEC 14443, mapy pamięci układów oraz kluczowe aspekty bezpieczeństwa i ograniczenia obu technologii. Całość uzupełnia instruktaż programistycznej obsługi kart w języku Python, obejmujący konfigurację czytnika ACR122 oraz komunikację za pomocą ramek APDU.

Post

Sprintf a wydajność

Jak bardzo formatowanie logów przy pomocy sprinf spowalnia wykonanie aplikacji?

Post

Kontenery STL a pamięć

Kontenery STL a pamięć - porównanie zapotrzebowania pamięciowego dla kontenerów std::set i std::unordered_set.

Post

Programowanie dynamiczne #2

Wprowadzam pojęcie programowania dynamicznego i pokazuję, jak zastosować go do rozwiązania problemu Longest Common Subsequence. Przedstawiam koncepcję rozdzielania problemu na mniejsze części i wykorzystywania wyników tych części do uzyskania rozwiązania głównego. Na przykładzie ilustruję, jak wykorzystać wiedzę o najdłuższych wspólnych podciągach do obliczenia najdłuższego wspólnego podciągu dla dwoch ciągów znaków.

Post

Programowanie dynamiczne #1

Wprowadzam pojęcie programowania dynamicznego i pokazuję, jak zastosować go do rozwiązania problemu Longest Increasing Sequence. Przedstawiam koncepcję rozdzielania problemu na mniejsze części i wykorzystywania wyników tych części do uzyskania rozwiązania głównego. Na przykładzie ilustruję, jak wykorzystać wiedzę o najdłuższych podciągach do obliczenia najdłuższego podciągu po dodaniu nowego elementu do ciągu.

Post

Zadanie rekrutacyjne #4

Analizuję różne sposoby znalezienia najmniejszej liczby uint32_t, która nie występuje w zadanym zbiorze: od sortowania, przez zliczanie i struktury std::set/std::unordered_set, aż po podejścia oparte na podziale zakresu. Porównuję użycie pamięci, złożoność czasową i praktyczne ograniczenia przy bardzo dużych zbiorach.

Post

Zadanie rekrutacyjne #3

W zadaniu rekrutacyjnym #3 zaimplementowano funkcję, która liczy elementy w liście jednokierunkowej, korzystając z referencji do obiektu. Przedstawiono dwa rozwiązania: jedno z wykorzystaniem odległości do początku i końca listy, a drugie z wykorzystaniem garbage collector'a do znalezienia referencji do obiektu. Opisano również ograniczenia i zastosowania takiego podejścia w praktyce.

Post

Zadanie rekrutacyjne #2

Na klasycznym zadaniu z cyklem w liście jednokierunkowej porównuję kilka podejść: z dodatkowymi strukturami danych, z modyfikacją listy oraz algorytm „żółwia i zająca” Floyd’a. Omawiam złożoność, zużycie pamięci i praktyczne zalety każdego rozwiązania.

Post

Zadanie rekrutacyjne #1

Analizuję różne sposoby liczenia ustawionych bitów w liczbie całkowitej: od prostego przesuwania i maskowania, aż po wykorzystanie tablic pomocniczych. Porównuję czytelność, wydajność i zastosowania w praktyce.

Post

Wzbogacanie kontrolek WPF #1

Wzbogacanie kontrolek WPF - sposób na rozszerzenie możliwości kontrolki ListBox w WPF + MVVM.

Post

Async command #2

Pokazuję, jak zbudować AsyncCommand w C#, który wspiera opóźnione wykonanie (np. debouncing akcji użytkownika). Omawiam anulowanie poprzednich wywołań oraz typowe zastosowania w interfejsach reagujących na szybkie zmiany danych.

Post

Bind to enum C#

Bind to enum C# - sposób na wyświetlenie opisów dla wartości Enum w listach wyboru.

Post

Podręczne narzędzia #3

Przegląd przydatnych pluginów do Notepad++: porównywanie plików z Compare, podgląd w trybie hex, wielokrotne schowki, wbudowany eksplorator plików oraz narzędzia do pracy z JSON i XML. Pokazuję, jak te dodatki potrafią zamienić Notepad++ w lekkie, ale całkiem potężne IDE.

Post

Java pułapka

Java pułapka - komentarz z specjalnym znakiem Unicode.

Post

Podręczne narzędzia #2

Przegląd dwóch narzędzi do pracy z tekstem i plikami w Windows: WinGnu32 jako zestaw unixowych klasyków (grep, sed, awk itd.) oraz Windows Grep do szybkiego wyszukiwania wzorców w wielu plikach naraz. Z przykładami typowych zastosowań w debugowaniu i analizie kodu.

Post

Pionowe zaznaczanie tekstu.

Pokazuję, że w wielu popularnych edytorach można zaznaczać tekst pionowo (kolumnami), a nie tylko wierszami. Omawiam skróty klawiszowe, typowe zastosowania w pracy programisty i kilka praktycznych trików przy edycji kodu oraz logów.

Post

Przekierowanie wyjścia [Python]

Wyjaśniam, czym jest stdout w Pythonie i jak działa przekierowanie standardowego wyjścia – zarówno na poziomie systemu, jak i wewnątrz samego Pythona. Na przykładach pokazuję zapis do pliku, przechwytywanie wyjścia oraz integrację z logowaniem.

Post

Podręczne narzędzia #1

Krótkie omówienie trzech narzędzi, które ułatwiają życie w Windows: Rapid Environment Editor do wygodnej edycji zmiennych środowiskowych, ConEmu jako elastyczny emulator konsoli z kartami oraz Notepad++ jako lekki, ale bardzo rozbudowany edytor tekstu dla programistów.