Menu

Ostatnie wpisy
Post

MCP #1 — Czym jest?

AI Claude MCP Tools

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.

Post

YubiKey #1 - wprowadzenie

YubiKey Bezpieczeństwo

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ń.

Post

Algorytm Boyer–Moore

Algorytmy Python

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.

Post

Parametryczny generator modeli 3D

Druk3D Projekt

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.

Post

Standardy w Ethereum #1

Blockchain

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)

Tools

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

SelfHost Blockchain

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

SelfHost Blockchain

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

SelfHost Blockchain

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

SelfHost Blockchain

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 #9 - LinuxCNC

cnc Huanyang

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

CNC Linux Receptury

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 #8 - sterowanie Mach3

cnc Huanyang

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 #7 - sterowanie RS-485

cnc Huanyang Python

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 #6 - sterowanie cyfrowe

cnc Huanyang

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 #5 - sterowanie analogowe

cnc Huanyang

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 #4 - wyświetlacz

cnc Huanyang

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 #3 - krzywa U/F

cnc Huanyang

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 #2 - konfiguracja

cnc Huanyang

Szczegółowo omawiam konfigurację falownika Huanyang: znaczenie kluczowych parametrów, ich zakresy i wartości domyślne. Na końcu prezentuję przykładową, sprawdzoną w praktyce konfigurację dla typowego wrzeciona, wraz z komentarzem, które ustawienia warto dostosować do własnej maszyny.

Post

Falownik Huanyang #1 - podłączenie

cnc Huanyang

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

Statystyka

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

Statystyka Wizualizacja Przemyślenia Trick

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

Cpp Testy Receptury

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

Jupyter Receptury

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

.htaccess - Co powinien zawierać?

HTTP

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

Android

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

Hack Tools

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

Cpp WinApi

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

Cpp WinApi

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

Algorytmy Python

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

Algorytmy Python

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

MIFARE Python

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

Programowanie dynamiczne #2

Algorytmy Cpp Python Zadanie

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

Algorytmy Cpp Python Zadanie

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

Cpp Rekrutacja

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

Python Rekrutacja Trick

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

Cpp Rekrutacja Zadanie

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

Cpp Rekrutacja Zadanie

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

Async command #2

.NET Async

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#

.NET

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

Post

Podręczne narzędzia #3

Tools

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

Podręczne narzędzia #2

Tools

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.

Trick

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]

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

Tools

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.