Chmura Wyroczni

Niewiele brakowało, a lipiec byłby pierwszym od wielu miesięcy, jeśli nie w historii, miesiącem bez wpisu. Jakoś tak się złożyło, że było parę rzeczy, ale żadna nie wydała mi się godna wpisu.

Najważniejszym zagadnieniem jest rozpoczęcie prac związanych z migracją na nowy hosting (Oracle Cloud), o którym wspominałem we wpisie z początku roku. Jest to jednocześnie ostatnie z zaplanowanych postanowień. PUM jest już przepisany na Pythona i działa. Skrypt generujący stan rowerów na stacjach Nextbike, w zeszłym miesiącu przeniosłem na repo na GitHub.

Pozostał hosting. Moim wyborem jest Oracle Cloud. Ich free tier jest bardzo zachęcający, szczególnie jeśli chodzi o moje potrzeby. Ilość przestrzeni na dysku wręcz rozpieszcza – obecnie mieszczę się „ze wszystkim” na 1 VPS i 20 GB. Przynajmniej, jeśli chodzi o rzeczy „produkcyjne”. Nie ukrywam, że po pierwsze dopiero się uczę, po drugie nie jest to wszystko ani intuicyjne, ani dopracowane. Dobrze, że kiedyś miałem nieco więcej do czynienia z Openstack, bo filozofia podobna.

Napaliłem się na maszynki ARMowe i… szybko dostałem kubłem zimnej wody. Po pierwsze, w oficjalnych obrazach nie ma Debiana. Po drugie, w przypadku ARM nie ma możliwości cywilizowanej metody instalacji, przez dostarczenie swojego obrazu. Znalazłem co prawda tego typu wygibasy, które rozumiem, ale… nie działają od kopa. Przynajmniej nie dla najnowszego Ubuntu. Pewnie popróbuję jeszcze, ale wariant, że polegam na dostępności starego Ubuntu dla „produkcyjnych” gratów, średnio mi się uśmiecha.

Tak czy inaczej mam soft, który wymaga amd64, więc po prostu postawiłem maszynkę amd64. Tu również nie dają Debiana, ale istnieje ręczna, jednak dość cywilizowana metoda instalacji Debiana w Oracle Cloud. Trochę mniejsze zasoby, ale w zupełności wystarczają. Pierwsze kontenery już przeniosłem. Oczywiście zacząłem od strony zadniej, czyli od zabawek i rzeczy nieprodukcyjnych. Pozwoliło mi to złożyć „tymczasowego” VPSa. W przyszłym tygodniu pewnie będzie większa przerwa. Akurat blog nie jest skonteneryzowany, więc przywrócenie nie będzie po prostu wgraniem backupu kontenera.

Hashcat na M1

Jakiś czas temu pisałem o przesiadce na M1. Musiałem użyć hashcata i… przypomniało mi się, że nowe M1 ma poważną zaletę, w postaci szybkości. Żeby zobaczyć faktyczną różnicę, pozwoliłem sobie na nanobenchmark.

Nawiązując do starego wpisu o przyspieszaniu hashcata, sprawdziłem md5crypt:

* Hash-Mode 500 (md5crypt, MD5 (Unix), Cisco-IOS $1$ (MD5)) [Iterations: 1000]
Speed.#1.........:  1902.0 kH/s (53.57ms) @ Accel:512 Loops:500 Thr:32 Vec:1

Drobne cztery razy szybciej w stosunku do starego laptopa. Nie powala, ale wzrost przyjemny. Sprawdźmy więc inne typy hashy:

METAL API (Metal 263.8)
=======================
* Device #1: Apple M1 Pro, 10880/21845 MB, 16MCU

OpenCL API (OpenCL 1.2 (Apr 19 2022 18:44:44)) - Platform #1 [Apple]
====================================================================
* Device #2: Apple M1 Pro, skipped

Benchmark relevant options:
===========================
* --optimized-kernel-enable

-------------------
* Hash-Mode 0 (MD5)
-------------------

Speed.#1.........:  5713.7 MH/s (92.80ms) @ Accel:1024 Loops:1024 Thr:32 Vec:1

----------------------
* Hash-Mode 100 (SHA1)
----------------------

Speed.#1.........:  2031.9 MH/s (64.99ms) @ Accel:256 Loops:1024 Thr:32 Vec:1

---------------------------
* Hash-Mode 1400 (SHA2-256)
---------------------------

Speed.#1.........:   598.6 MH/s (54.90ms) @ Accel:64 Loops:512 Thr:64 Vec:1

Jakieś dwanaście razy szybciej w przypadku MD5 w stosunku do poprzedniego laptopa. Albo połowa wydajności Tesla 4. Miło. Jako podręczna maszynka w zupełności wystarczające.

Wszystkie powyższe wyniki benchmarków robione dla M1 z 10 core CPU i hashcata w wersji v6.2.5-516-g372d3a127.

Tym, którzy nie mają dostępu do M1, zostają inne sposoby, np. poproszenie Google o użyczenie mocy obliczeniowej.

Goodbye Atom

W roku 2014 pojawił się a hackable editor for the 21st century czyli Atom. Od początku mnie zaintrygował. Był to edytor międzyplatformowy, open source, działający w GUI, reklamowany jako rozszerzalny… Samo dobro. Pobrałem i… skasowałem, ze względu na rozmiar. Ważył bowiem grube kilkadziesiąt MB, co wydało mi się sporą przesadą.

Screenshot ze strony projektu
Screenshot ze strony projektu. Źródło: https://atom.io/

Później jednak przekonałem się do Atoma, a nawet go polubiłem. Uzbrojony w pluginy był bardzo przyjemnym narzędziem wspomagającym edycję różnych formatów plików. Więcej, niż edytorem, bardziej traktowałem go jako IDE. Choć z rasowymi IDE nie mam doświadczenia. Czy to Python, Puppet czy zwykłe YAMLe – wszystko edytowało się przyjemnie, ze stosownym kolorowaniem, linterami itp. Pamiętam, że na jednym ze szkoleń z Pythona śmiało współzawodniczył z PyCharm. IIRC wówczas jednej rzeczy nie dało się zrobić w Atomie, i jednej w PyCharmie. W każdym razie, niczego mi w Atomie nie brakowało.

Dlatego w ogłoszeniu o wygaszeniu projektu zdanie Atom has not had significant feature development for the past several years wydaje mi się dwuznaczne. Skoro program ma wszystko, co potrzebne, to co tu rozwijać? No i jeśli oparty jest o wtyczki – a tak było w przypadku Atoma – to ficzery w samym programie też stają się drugorzędne.

Tak czy inaczej, decyzja mnie nie dziwi. Skoro Microsoft ma swoje Visual Studio Code, to będzie je promował, więc po co mu wewnętrzna konkurencja? Artykuł wspomina właśnie VSC jako alternatywę. Zapewne nieprzypadkowo. Z drugiej zaś strony jak robiłem przegląd ewentualnych alternatyw w głowie, to VSC jak najbardziej się pojawiło.

Nie ukrywam, że mam pewien sentyment do Atoma i parę wspomnień z nim związanych. Towarzyszył mi przy nauce Pythona, która zbiegła się ze zmianą pracy. Był nieodłączną częścią DSP2017.

Potem spojrzałem na listę alternatyw i… nie jest wiele lepiej. Nie widzę żadnego następcy czy też zastępcy. Chwilowo najbardziej skłaniam się ku wolnej wersji VSC czyli VSCodium. Ale to bez pośpiechu. W końcu Atom jest open source, więc może jednak okaże się, że będzie utrzymywany.

UPDATE Polecę jeszcze wpis, który właśnie przeczytałem. Nie o edytorze, a o desktopie, ale jest i o edytorach (vim).