CLI

Wiersz poleceń (ang. Command-line interface, CLI)

Parsowanie parametrów wiersza poleceń w Haskellu

8 minut(y)

Prawie każdy program, który można wywoływać z wiersza poleceń (ang. Command Line Interface, CLI), a interpreter jak HelMA w szczególności, musi posiadać obsługę parametrów (ang. Options) przekazywanych z wiersza poleceń. Obsługę taką można napisać samodzielnie albo z pomocą dedykowanej bibliotek. Ja zdecydowałem się na bibliotekę optparse-applicative. Biblioteka ta posiada szereg zalet. Między innymi można jej używać w eta-lang.

Git - zmiana informacji o autorze

3 minut(y)

System kontroli wersji git przechowuje informacje o autorach zatwierdzeń (ang. commit) w każdym zatwierdzeniu osobno. Tzn. nie istnieje żadne globalne miejsce w którym moglibyśmy zmienić te informacje, jak np. nazwisko autora zatwierdzenia. Zamiast tego musimy modyfikować historię wszystkich zatwierdzeń. Na szczęście nie trzeba robić tego ręcznie dla każdego zatwierdzenia tylko można napisać jednolinijkowy skrypt używający podpolecenia (ang. subcommend) filter-branch.

Który język programowania wybrać na początek - język fullstackowy

14 minut(y)

Wiele osób pyta się, który język programowania wybrać na początek jako pierwszy język do nauki. Wiele jednak zależy od tego do czego chcemy użyć tego języka programowania. Dlatego wybrałem zwycięzców w czterech kategoriach: dynamicznie typowany język skryptowy ogólnego przeznaczenia statycznie typowany język korporacyjny używany do pisania długowiecznych aplikacji klasy enterprise język fullstackowy, który można używać do pisania frontendu i backendu szybki język natywny działający bez maszyny wirtualnej i interpretera

Krótki opis konstrukcji kompilatorów GCC, LLVM i Clang

11 minut(y)

W dawnych czasach każdy dobry programista chciał napisać swój własny kompilator języka C. Co prawda te czasy już minęły i dziś większość z nas programuje w językach o wiele bardziej złożonych niż C. Dzięki czemu jesteśmy w stanie pisać szybciej kod. Ale nadal warto znać podstawy budowy kompilatorów. Na szczęście konstrukcja kompilatora jest prosta jak konstrukcja dzidy bojowej. Dzida bojowa składa się z: przeddzidzia dzidy bojowej śróddzidzia dzidy bojowej zadzidzia dzidy bojowej.

Biblioteki do logowania dla języka Scala

9 minut(y)

Chcąc dowiedzieć się co dzieje się wewnątrz naszej aplikacji mamy dwie drogi. Pierwszym sposobem jest debugowanie. Jednak im więcej wątków w aplikacji i im bardziej komunikują się one w sposób asynchroniczny tym trudniej jest debugować. Drugim sposobem jest logowanie informacji. Najprostszym sposobem logowania informacji w Javie jest System.out.println, a w Scali upraszcza się to do println. Ale jest to złe z dwóch powodów: Po pierwsze, jeśli piszemy aplikację “konsolową” (ang. command line interface, CLI) to użytkownik będzie niepotrzebnie widział nieinteresujące go informacje z wewnętrznego procesu przetwarzania. Tak wypisanych informacji nie można zapisać w bazie danych ani wysłać do innego systemu.

Git-flow i aliasy

3 minut(y)

Gitflow jest wspaniałą koncepcją pracy z gałęziami w repozytorium Git. Strategia ta jest świetnie opisana na A successful Git branching model.

Docker - usuwanie obrazów

2 minut(y)

Dziesięć lat pracy na Linuksie nauczyło mnie, że jeśli Linuks zaczyna magicznie i bez ostrzeżenia sam z siebie nie działać to najprawdopodobniej skończyło się miejsce na dysku. Identycznie jest z Dockerem. Jeśli lokalnie stawiamy chmurę mikroserwisów, które często pojawiają się w nowych wersjach, to prędzej czy później zabraknie nam miejsca na dysku. W skrajnym wypadku, na laptopie zastępczym, musiałem dwa razy w tygodniu usuwać obrazy Dockerowe.

Alias - polecenie powłoki Bash

4 minut(y)

Jeśli: masz problemy z zapamiętywaniem skomplikowanych poleceń Basha lub innych programów wywoływanych przez wiersz poleceń nie lubisz wpisywać w terminalu długich poleceń z podkomendami i przełącznikami

Wróć do góry ↑