Co jest nie tak z C++

Czasami mam wrażenie, że podczas rozwoju C++ coś poszło nie tak i język z wersji na wersję stał się nieczytelnym potworkiem, któremu coraz bliżej do Perla z czytelnością. Pomijając wskaźniki i zarządzanie pamięcią, spójrzmy na taki przykład: lista (wskaźników) funkcji, które mają być wywołane po podaniu określonych parametrów programu, z dodatkową listą pomocniczych parametrów i tekstem pomocy. Docelowo ma pozwolić na takie wywołanie aplikacji w następujący sposób:

./aplikacja --moje-id 1234 --email ja@domena.pl zamow pizze

Continue reading “Co jest nie tak z C++”

No masters, no slaves, blockchain inside – pisanie zdecentralizowanych aplikacji

Blockchain idealnie wpisuje się w ostatni trend politycznej poprawności w świecie IT. Nie ma nodów master ani slave, wszyscy są równi niezależnie od płci miejsca w sieci. Framework Dinemic jest biblioteką, która pomaga tworzyć zdecentralizowane aplikacje w C++ oparte o technologię, która jest pochodną Blockchain, X509 oraz kilku innych technologi. Służy głównie do tworzenia programów, które mają działać na wielu maszynach równocześnie zapewniając przy tym wysoką wydajność i odporność na awarie.

Chociaż dinemic jest de facto ORM’em dla C++, to spróbujmy na początek inaczej. Wyobraź sobie repozytorium Git’a. Takie, w którym to nie developerzy robią commity, a poszczególne obiekty klas, a każdy commit jest informacją na temat zmiany stanu takiego obiektu (i bazy danych pod nim), podpisaną przez niego cyfrowo. Dodatkowo pomyśl, że nie mamy jednego centralnego serwera Git’a, ale każdy komputer w sieci jest za razem repozytorium lokalnym i remote’m dla innych repozytoriów. Jeszcze tylko dodać, że nieautoryzowane zmiany są odrzucane przez inne repa i mamy obraz framework’a dinemic. To tak w skrócie. Po nieco obszerniejszy opis zapraszam dalej.

Continue reading “No masters, no slaves, blockchain inside – pisanie zdecentralizowanych aplikacji”

Popen GPG vs. Libsodium

Ten wpis ma na celu pokazać różnice w wydajności programu zbudowanego w oparciu o wywoływanie zewnętrznego polecenia a wykonaniem podobnych zadań za pośrednictwem dedykowanej biblioteki. Przedstawione porównanie nie powinno być jednak brane pod uwagę jako wyznacznik wydajności GPG, a jedynie jako ciekawostka, gdyż wykorzystane algorytmy i sposób ich obsługi różnią się pomiędzy GPG a libsodium.

Continue reading “Popen GPG vs. Libsodium”