niedziela, 17 maja 2026

Migracja bloga na nowy adres

 Zrobiłem migrację bloga na https://zchpit.github.io/zchpitblog, a chwilę później na https://zchpitblog.pages.dev/


Docelowo planuję wykupić własną domenę, ale do tego czasu nowe wpisy można oglądać pod adresem: https://zchpit.github.io/zchpitblog/ 


Edycja: Aktualnie zdecydwałem się wykonać kolejną migrację bloga, tym razem na Claudflare Pages i aktualnie blog dostępny jest pod adresem: https://zchpitblog.pages.dev/ 



piątek, 6 lutego 2026

System.CommandLine

System.CommandLine to oficjalna biblioteka w .NET która rozszerza tradycyjne podejście do aplikacji konsolowych. 


Używając tego namespece z automatu dostajemy:

- parsowanie argumentów wejściowych, 

- walidację parametrów, 

- automatyczne generowanie pomocy 

- automatyczne generowanie podpowiedzi.


System.CommandLine to nowsze podejście dla tradycyjnych args[]. Jest to oficjalna paczka od Microsoft, więc można jej używać za darmo w każdy możliwy sposób.


Przykład kodu wygenerowany przez Claude 4.5

using System.CommandLine;

var nameOption = new Option<string>(
    name: "--name",
    description: "Nazwa użytkownika",
    getDefaultValue: () => "World");

var rootCommand = new RootCommand("Przykładowa aplikacja CLI");
rootCommand.AddOption(nameOption);

rootCommand.SetHandler((string name) =>
{
    Console.WriteLine($"Hello, {name}!");
}, nameOption);

return await rootCommand.InvokeAsync(args);

Użycie w konsoli:

myapp --name John 

# Output: Hello, John! 

myapp --help 

# Wyświetli automatycznie wygenerowaną pomoc


Alternatywy dla aplikacji konsolowych:

ConsoleAppFramework napisany przez Yoshifumi Kawai.


wtorek, 24 czerwca 2025

Axios - Promise based HTTP client for the browser and node.js

 Axios to jest biblioteka dla Reacta oraz innych frameworków w języku javascript/typescript do wykonywania połączeń HTTP do API w oparciu o asynchroniczny mechanizm Promise udostępniony na licencji MIT.


https://axios-http.com/docs/intro - strona projektu

https://github.com/axios/axios - link do Githuba


wtorek, 10 czerwca 2025

Ustawienia VS Code dla React

 Kilka małych tipów dla Visual Studio Code przy programowaniu FE:

- install ESLint

- install Prettier - Code formatter

- go to: File -> Preferences -> Settings -> Format On Save on (in Edditor)

- install ES7+ React/Redux/React-Native snippets


In Google Chrom install "React Developer Tools".

niedziela, 8 czerwca 2025

Włączenie obsługi wszystkich wyjątków w JetBrains Rider

 Po wielu, wielu latach pracy na Visual Studio nadszedł ten moment, w którym zdecydowałem się na komercyjną pracę z innym IDE. Wybór padł na JetBrains Rider. Z jednej strony chciałem spróbować coś nowego, a z drugiej jednak sam Rider jest tańszy niż Visual Studio + Resharper. 

Ogólnie pracuje się spoko, aczkolwiek pracując na domyślnych ustawieniach zauważyłem, że czasami nie widzę pewnego błędu z user code w runtime. Całe szczęście da się to łatwo włączyć w opcjach. tj. Breakpoints -> CLR Exceptions Breakpoints -> Exception Handler -> User Code.




Obrazek z oficjalnej dokumentacji:

https://www.jetbrains.com/help/rider/Debugging_Exceptions.html#exception-breakpoints


poniedziałek, 28 kwietnia 2025

Visual Studio Inmediate Window

 Visual Studio posiada fajny bajer do debuggowania, który nazywa się "Inmediate window" który włączamy przy pomocy opcji Debug -> Windows -> inmediate lub skrótowo Ctrl + Alt + I.

Inmediate windows to dodatkowe okienko, które pozwala nam zmieniać zmienne lub też je podglądać w trakcie zatrzymanego debuga w visual studio. Całkiem przypadny bajer. 

czwartek, 24 kwietnia 2025

Jaeger tracing czyli śledzenie flow aplikacji

 Oglądając kurs "Messaging Pragmatycznie" od DevMentors moją uwagę zwróciło narzędzie Jeager czyli myśliwy. Jeager jest narzędziem służącym do polowania na błędy w aplikacji ze szczególnym nastawieniem na aplikacje rozproszone. Jeager niemal z pudełka (wraz z Open Telemetry) działa w przypadku aplikacji synchronicznych jednak swoje prawdziwe możliwości pokazuje w przypadku aplikacji rozproszonych.

Fragment kodu od DevMentors jak to włączyć "z pudełka" dla aplikacji synchronicznych opartych o HttpContext czyli M18L4 -> https://github.com/devmentors/Messaging-Pragmatycznie/blob/M18L4/src/Shared/TicketFlow.Shared/Observability/Extensions.cs 

Wytyczne w3.org na których opiera się zastosowany tracing: https://www.w3.org/TR/trace-context/#traceparent-header 


Więcej info w dokumentacji lub rozdziale 18 kursu "Messaging Pragmatycznie". Tutaj umieściłem tylko taką krótką notkę dla samego siebie gdybym tego potrzebował na przyszłość.