Pierwszy mac

Drugi raz wpis o podobnym tytule. Poprzedni był primaaprilisowym żartem, ten jest jak najbardziej na serio. Przesiadka z Linuksa nie do końca z własnej woli. Ot, korporacyjne standardy, czyli jedzie walec i równa, ale mniejsza o powody. Ludzie z Linuksami na pokładzie otrzymali propozycję nie do odrzucenia zmiany systemu i/lub sprzętu na coś należycie korporacyjnego. Znaczy Windows lub macOS, co kto lubi. Oddając sprawiedliwość – firma poszła na rękę i zapewniła okres przejściowy i możliwość szybkiego pomacania nowego sprzętu. Przynajmniej w teorii, bo to grubsza zmiana, dostosowanie komputera trochę trwa, a na nadmiar czasu nikt nie narzeka.

Tak czy inaczej – stało się. Wybrałem macOS na laptopie 13″ (co to dokładnie – uzupełnię wkrótce, nie mam go chwilowo pod ręką) z amerykańską klawiaturą (szeroki Enter). Powodów kilka – większość ludzi z którymi mam styczność w firmie korzysta, od Linuksa do Uniksa niby niedaleko (choć już wcześniej wiedziałem, że niektóre specyficzne dla macOS problemy są z commandline’owymi narzędziami są bohatersko rozwiązywane), no i last but not least będzie okazja poznać coś nowego. Wcześniej upewniłem się tylko, że ludzie, którzy się przesiadają jakoś żyją (mapowanie klawiszy, konfiguracja przewijania, soft) i że mysz (zwykły bezprzewodowy Logitech) działa normalnie, bo fanem gładzików nie jestem, delikatnie rzecz ujmując, a brak przycisków myszy zwyczajnie mnie drażni. Tak, wiem, gładzik w macach jest lepszy. Przelotnie korzystałem i nadal nie jestem fanem, lubię pewność sterowania i kliknięć, jaką daje mysz.

Wybrałem słabszą wersję 13″ – niestety 15″, choć ma mocniejsze komponenty, jest dla mnie odrobinę za duży. Już jakiś czas temu stwierdziłem, że optymalny dla mnie rozmiar ekranu w lapku to 14″, jeśli mam korzystać mobilnie. Nie do końca rozumiem, czemu robią właśnie 13″ – porównywałem z Dellem 14″ i mac jest jedynie minimalnie mniejszy.

Trochę żałowałem wyboru jeszcze nim odebrałem sprzęt, bo wkrótce po nim okazało się, że Windows jeszcze mocniej integruje się z Linuksem (WSL2). Nie chciałem ryzykować WSL, z którego wcześniej nie korzystałem, tym bardziej, że znajomi generalnie są z maców zadowoleni. Znaczy z macOS, bo na wbudowane klawiatury klną wszyscy, posiłkując się dołączanymi bezprzewodowymi.

Na wstępie dostałem… przejściówkę z USB-C na USB-A, żebym mógł podłączyć czy to dysk, czy pendrive czy – w moim przypadku – mysz. Pierwsze wrażenie – mieszane. Sprzęt wygląda na bardzo delikatny, ale w dotyku jest solidny i… zaskakująco ciężki. Zdjęć z unboxingu nie mam, zresztą chyba nie podszedłem do niego z należytym szacunkiem. W stosunku do Della, którego miałem wcześniej – po obrysie jak pisałem podobny, różnicę widać gdy się je położy obok siebie, zamknie i spojrzy od frontu. Mac jest znacznie cieńszy, niemal o połowę, choć Dell również z tych cieńszych, z ruchomym elementem dla gniazda ethernet. Trochę sztuka dla sztuki jak dla mnie – pewnie utrudnia to upchanie gratów w środku, chłodzenie, odbija się na solidności itp., a korzyść dla mnie żadna.

Jak widać założyłem kategorię, więc planuję trochę wpisów w temacie, pewnie z czasem pojawi się trochę howto dla przesiadających się. Są pierwsze pozytywy z godzinnego obcowania i podstawowej konfiguracji – o dziwo mimo braku przemapowania klawiszy nie zauważyłem trudności z klawiaturą. Poza brakiem klawiszy funkcyjnych, PgUp/PgDn, backspace i fizycznego Esc, oczywiście. I dopóki nie zacząłem próbować pisać z pl-znakami. Aplikacje umiem instalować, choć o instalacji będzie następnym razem.

Taki nieco zaległy wpis, w zasadzie powinienem już pisać o instalacji, ale ponieważ to mój pierwszy mac…

Security score compare

Nazwa projektu jest nieciekawa, ale przyznaję, nie miałem weny. Za to mówi wszystko. Zaczęło się od porównywania punktacji na platformach do zabaw z security wśród znajomych z pracy. Szybko zeszło na to, że suche porównywanie wyników nie jest zbyt fajne, lepiej byłoby rysować wyniki w czasie.

I tak powstał skrypt w Pythonie, który pobiera wyniki z Root Me oraz RingZer0 Team Online CTF[1], parsuje HTML przy pomocy regexpa[2] i zapisuje do bazy SQLite. W innym trybie pobiera dane dla podanej platformy i generuje obrazek z wykresem punktacji. Taki jak poniżej:

Przykładowy ocenzurowany wykres generowany przez security score compare

Po drodze jest parę uproszczeń, typu dopełnianie braków zerami „od lewej”. Jest to bardzo wstępna wersja, ale działa i coś tam już widać. Strzelać z tego nikt nie będzie. 😉

Security score compare znaleźć można na GitHubie. Może komuś się przyda, albo nawet ktoś pomoże w rozwoju?

Jakby ktoś się zastanawiał, czemu ostatnio jest mniej wpisów na blogu, to tak, mam nowe zajęcie w czasie wolnym. 😉

[1] Nie są to wszystkie platformy na których się bawimy, ale te dwie są najpopularniejsze i… nie wymagają logowania, by sprawdzić punktację.
[2] Tak, wiem, ble i fuj. Ale działa.

Advent of Code

Dowiedziałem się, że jest coś takiego jak Advent of Code. Czyli kalendarz adwentowy, tylko zamiast łakoci są zadania programistyczne do rozwiązania. Dwa dziennie, liczy się i fakt rozwiązania, i czas. Rozwiązywać można w dowolnym języku, weryfikacja rozwiązania jest przez podanie wyniku.

Podobno maja być z różnych dziedzin i o różnym poziomie trudności – dziś były bardzo proste. Zrobiłem w Pythonie, potem lepszą wersję, potem jedno w Perlu, jako krótki oneliner.

Jest rywalizacja globalna, ale można też tworzyć prywatne rywalizacje i porównywać się ze znajomymi. Ja bawię się z ludźmi z pracy, choć sporo z nich utrudniło sobie wyzwanie i poznaje przy okazji nowy język. Ale ja nie jestem programistą… 😉

Trochę skojarzenie z konkursami programistycznymi, którymi bawiłem się na studiach. Żeby nie było samych zalet – mimo, że każdy uczestnik ma inne dane wejściowe, to czas rozwiązania liczy się od publikacji zadania, które ma miejsce o północy w dziwnej strefie czasowej, co pewnie faworyzuje niektóre lokalizacje geograficzne. Ale nie ma to większego znaczenia w przypadku zabawy ze znajomymi.

Polecam zerknięcie na Advent of Code – można sobie odświeżyć umiejętności programistyczne, poćwiczyć i przede wszystkim pobawić się.