CLI
Parsowanie parametrów wiersza poleceń w Haskellu
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
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
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
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.
setxkbmap - Jak szybko zmienić układ klawiatury z konsoli na Ubuntu?
Po długiej przerwie prosty artykuł “Jak szybko zmienić układ klawiatury z konsoli na Ubuntu?”.
Biblioteki do logowania dla języka Scala
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
Gitflow jest wspaniałą koncepcją pracy z gałęziami w repozytorium Git. Strategia ta jest świetnie opisana na A successful Git branching model.
Git - submoduły i aliasy
Post oparty na prawdziwych wydarzeniach i traumach
Docker - usuwanie obrazów
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
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