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 – można sobie odświeżyć umiejętności programistyczne, poćwiczyć i przede wszystkim pobawić się.

Lynis – narzędzie do audytu bezpieczeństwa systemów Linux

Czasem zdarza się, że znajdę jakieś stare, fajne narzędzie, którego nie znałem wcześniej. Tak jest w przypadku Lynis – programu open source napisanego przez CISOfy służącego do audytu bezpieczeństwa systemu na podstawie bieżących ustawień. Przypadkiem, na komórce w tramwaju mignął mi wpis o nim gdzieś w sieci, opis był ciekawy, więc postanowiłem dać szansę, choć od dłuższego czasu nie interesowałem się podobnymi programami. Kiedyś, na początku przygody z Linuksem bawiłem się Bastille Linux i to w zasadzie wszystko, jeśli chodzi o automaty.

Działanie Lynis sprawdzałem tylko na Debianie i Ubuntu – działa bardzo sprawnie, generuje sensowne raporty z uwzględnieniem specyfiki dystrybucji. Przy każdym raporcie jest link do krótkiego opisu z wytłumaczeniem danej opcji. Dla początkujących jest to dobra okazja do poczytania nt. ustawień i ich wpływu na bezpieczeństwo systemu, dla zaawansowanych automat, który sprawdzi, czy czegoś nie przeoczyliśmy lub nie zapomnieliśmy włączyć np. po testach.

Program jest dostępny jako pakiet, więc instalacja sprowadza się do:

apt-get install lynis

Uruchomienie audytu również jest proste:

lynis audit system

Polecam dodanie przełącznika -Q. Program jedynie generuje raport, niczego nie zmienia w systemie, więc uruchomienie jest bezpieczne. Wynik wyświetla na ekran oraz do logu, znajdziemy tam zarówno znalezione błędy, ostrzeżenia, jak i wskazówki do hardeningu systemu.

Narzędzie ma zastosowanie raczej dla systemów, prywatnych,  utrzymywanych ręcznie – te konfigurowane automatycznie raczej nie mają miejsca na powstanie błędu, a forma raportu jest raczej przyjazna dla ludzi, niż maszyn.

Oczywiście przy domyślnej konfiguracji zgłosi także odstępstwa od normy, które są zamierzone albo nieistotne, więc wynik będzie nieco przegadany. Mimo to polecam wypróbowanie samodzielnie.

Mail RBL checker (Python)

Tak się zdarzyło w ostatnim czasie, że w paru miejscach pojawiły się problemy z dostarczaniem maili. Prawdopodobna przyczyna niedocierania poczty była ta sama – obecność IP serwera pocztowego na RBL. Przypomniały mi się stare czasy i walka z wypisywaniem IP z RBL oraz różne metody zapobiegania dostawania się na RBLe.

Zanim jednak zaczniemy cokolwiek robić, trzeba wiedzieć, że jesteśmy na RBLu, czyli monitorować obecność IP serwera pocztowego na RBL. Do szybkich, ręcznych, doraźnych sprawdzeń pojedynczych IP polecam stronę Multi-RBL Check, nie rozwiązuje to jednak tematu ciągłego, automatycznego monitoringu obecności IP na RBLach, np. przy pomocy Zabbiksa.

Sam monitoring jest trywialny – wystarczy odpytywać przy pomocy DNS, warto to jednak jakoś „opakować”. Napisałem to ze dwa razy w życiu (IIRC oba w Perlu), napiszę więc i trzeci, tym razem w Pythonie. Oczywiście podobnych rozwiązań na GitHubie jest wiele, ale w każdym coś mi nie pasowało – albo język, albo rozbudowane zależności, albo sposób przekazywnia informacji. To ostatnie to w sumie detal, łatwo można przefiltrować informacje przy pomocy grep lub awk.

W każdym razie, wczoraj opublikowałem mail-rbl-monitor. Zdecydowanie nie jest skończony, a struktura wynika z przygotowania pod przyszłe funkcje. Znaczy sprawdzanie listy IP pobieranej z pliku.

Wkrótce temat pokrewny, ale nieco trudniejszy – monitoring reputacji IP serwerów pocztowych.

Waze jako nawigacja

Jakiś czas temu wyrzuciłem Yanosika z telefonu, z powodu fatalnej nawigacji. Zgodnie z zapowiedziami szansę dostało Waze.

Podobnie jak Google Maps, nawigacja Waze należy do Google, jednak jest rozwijana odrębnie i ma zupełnie inną filozofię. O ile Google Maps to sucha, dość sprawna nawigacja, o tyle Waze bardziej przypomina ficzerami Yanosika – personalizacja i gamifikacja jak najbardziej obecne. Jest możliwość zgłaszania przez użytkowników utrudnień na drodze, czy to patroli policyjnych, czy radarów, czy zamkniętych ulic, czy zwykłych prac drogowych. Jest też zbieranie punktów za aktywność.

Logo WazeŹródło: https://www.waze.com/about/press_resources

Pierwszą recenzję Yanosika pisałem po przejechaniu raptem 300 km, czyli – jak patrzę z perspektywy – o wiele za wcześnie. W przypadku Waze testowałem nieco dłużej – przejechałem ok. 1000 km na zalogowanym koncie, głównie w mieście. Nadal mało jak na pełny test, ale od czegoś trzeba zacząć. Tak naprawdę z Waze przejechałem ze dwa albo trzy razy tyle – dość długo korzystałem bez założonego konta i logowania. Można i tak, bez specjalnego uszczerbku dla funkcjonalności. Oczywiście gamifikacja leży wtedy, nie działa też zapamiętywanie ustawień, przynajmniej między upgrade/reinstalacją. W każdym razie z kontem jest lepiej i na tej wersji się skupię.

Pierwsza rzecz, która rzuca się w oczy po uruchomieniu Waze, to ekspozycja funkcji związanych z nawigacją i ukrycie całej reszty. Zaleta jest taka, że nawigacja jest na wierzchu, wada zaś taka, że dobrnięcie do jakichś bardziej zaawansowanych ustawień chwilę mi zajęło. Części rzeczy w ogóle w aplikacji nie ma (albo nie umiem ich znaleźć), przykładem może być ilość przejechanych kilometrów, którą sprawdzam przez WWW. Trudno mi jednoznacznie orzec, czy to zaleta, czy wada. Ustawienia domyślne są bardzo dobre.

Aplikacja potrzebuje dłuższego czasu od włączenia do gotowości do działania. Nie wiem, czy jest to kwestia słabszego telefonu, czy tak jest ogólnie ale… tak jest i jest to wada. Dodam, że podobnie ma Strava. Za to po włączeniu jest już bardzo przyjemnie. Nawigacja jest pewna (sorry, Yanosik), komunikaty przekazywane z sensownym wyprzedzeniem (sorry, Yanosik), adaptacja do zmian trasy szybka (sorry, Yanosik, „zawróć. zawróć. zawróć.”). Bardzo ładnie mówi po polsku (jest wybór lektora) i posiada rewelacyjną IMO funkcjonalność podawania nazw ulic, w które należy skręcić – podaje nie tylko kierunek skrętu, ale też nazwę.

Trasy wybiera sensownie (sorry Yanosik), orientacyjne czasy dojazdu bardzo zbliżone do rzeczywistych. Potrafi też pokazywać informacje o natężeniu ruchu na sąsiednich ulicach czy zaproponować alternatywne trasy do właśnie wybranej. Taki powiew Google Maps. Akurat średnio korzystam, ale ktoś ze znajomych szukał nawigacji pokazującej natężenie ruchu.

Największą wadą nawigacji, którą zauważyłem, jest dość częste gubienie się na skrzyżowaniach po zatrzymaniu. Potrafi stwierdzić, że jesteśmy na ulicy prostopadłej i kazać skręcać. Chwilę po ruszeniu i chwilę przed dojazdem do skrzyżowania jest OK. Nie wiem, czy kwestia aplikacji, czy telefonu i… nie jest to tak upierdliwe na jakie wygląda z opisu – informacja o skręcie jest podawana za późno, by wykonać manewr.

Zgłaszanie zdarzeń na drogach jest znacznie bardziej szczegółowe niż w Yanosiku, ale przez to bardziej skomplikowane. Nie jest to jedno kliknięcie, tylko kolejne wybory (polecam lekturę opisu w FAQ). Być może kwestia przyzwyczajenia, na pewno większa bariera wejścia i trudniejsze, wymagające więcej uwagi zgłaszanie zdarzeń. Liczę jako wadę, pewnie dobrą sprawą byłby wybór wersji pełnej i uproszczonej.

Kolejny ficzer Waze to wyszukiwanie stacji benzynowych i porównywanie cen. W przeciwieństwie do Yanosika, Waze nie współpracuje z jednym koncernem, więc jest wybór. I jakiś pożytek dla tych, którzy raczej omijają rządowe stacje. Samo porównywanie jest oparte o aktualizacje cen przez użytkowników, więc traktować należy raczej orientacyjnie, bo stacje dość często zmieniają ceny. Na szczęście przy wyszukiwaniu jest podawany czas ostatniej aktualizacji.

Inny miły ficzer to proponowanie miejsc docelowych. Czyli uruchamiamy nawigację i dostajemy – na podstawie czasu (i miejsca?) – propozycję, żeby ustawić jako miejsce docelowe pracę, bez konieczności wyboru ręcznie. Dość przyjemne, działa nieźle. Oczywiście gdyby ktoś czuł się śledzony, to można tę opcję wyłączyć. Raczej ku poprawie samopoczucia, bo śledzi nas każda nawigacja. 😉 Wyłączyć można też widoczność naszego pojazdu na mapach.

Jeszcze inne usprawnienia to zapamiętywanie miejsca pozostawienia pojazdu (można też zrobić zdjęcie, przydatne, jeśli z auta korzysta kilka osób) czy przesłanie orientacyjnego czasu dojazdu.

Pominąłem inne ficzery Waze, niezwiązane z samą aplikacją, typu live map czy carpooling. Raz, ze wykraczają poza badane zagadnienie, dwa, że nie używam. Podsumowując, uważam, że aplikacja jest zdecydowanie godna uwagi i warto dać jej szansę. W mieście jako nawigacja sprawdza się bardzo dobrze, kiedyś pewnie uzupełnię wpis o wrażenia z trasy.

UPDATE Przejechałem 2300 km, parę razy poza miastem (choć na znanej drodze) – nadal OK, stacjonarne radary zgłasza, na nic innego nie było okazji. Nadal nie mam powodu do narzekania.

Goodbye Yanosik!

Nie napisałem nic o tegorocznym urlopie. W zasadzie urlopach. W ramach nadrobienia zaległości spojrzenie na urlopy przez pryzmat appek androidowych. Zmiany są dwie: zacząłem korzystać ze Strava – ot, kolejna appka do mierzenia biegania czy pedałowania. W sumie poznałem ją, gdy oficjalna appka Kręć Kilometry przestała mi poprawnie i stabilnie działać, zwł. zapisywać trasę. Zalety: dość dokładna, fajne automagiczne porównywanie czasów na odcinkach, liczenie rekordów. Wady: dość długo „się zbiera” do wykonania operacji, czyli czasami trzeba poczekać. Ale potem działa już pewnie, więc lubię.

Zmiana druga wymaga wstępu. Na jednym z wakacyjnych wyjazdów, przed podróżą powrotną do Poznania, zaczęło się kończyć paliwo. Poszukałem stacji, zjechałem parę kilometrów w nieznany teren, zatankowałem. I wracam, wg nawigacji, tak samo zresztą jak przyjechałem. O dziwo inna trasa, niż przyjechałem, ale nie wnikam – na oko kierunek się zgadza.

Więc jadę sobie drogami między wioskami. Pasażerowie przysypiają. I nagle widzę rozjazd. Asfalt lekkim łukiem w lewo, na wprost nawierzchnia szutrowa. Nawigacja zdecydowanie pokazuje jazdę na wprost, po szutrowej. Azymut się zgadza, wiec trochę zwalniam i wjeżdżam w tę szutrową. Chwilę później ostre hamowanie, bo okrutna dziura, idealna, by urwać koło. Dobrze, że zwolniłem wjeżdżając na tę szutrową. Jadę dłuższy kawałek, dziur wcale nie ubywa. Potem było jeszcze lepiej – gruntówka w lesie, ogromne kałuże na całą szerokość. Jakoś uniknąłem zakopania czy utopienia auta i przejechałem, ale było to ładne parę kilometrów. Dodam, że w poprzednią stronę przyjechałem całą drogę zupełnie znośnym asfaltem.

Nawigacja, która mnie tak poprowadziła to oczywiście Yanosik. Stwierdziłem, że enough is enough, tym bardziej, że to nie pierwszy tego typu wyczyn, choć w tym przypadku skala porażki zadziwiła. Dodatkowo Yanosik grabił sobie u mnie już wcześniej zbieraniem dużej ilości danych („styl jazdy”) i próbą monetyzacji tej wiedzy w formie sprzedaży ubezpieczenia. Nie mam złudzeń, w tej grze kierowca traci – algorytmy i big data dają przewagę ubezpieczycielowi. O ile w przypadku cech ogólnych liczy się statystyka, to dane o stylu jazdy pozwalają na wnioskowanie poza granicą ludzkiej percepcji. Czyli software ubezpieczyciela zna lepiej zachowania kierowcy niż on sam. I jeśli stwierdzi, że jeździsz o niebezpiecznych porach, to nie tylko nie dostaniesz zniżki, ale jeszcze dopłacisz, nawet jeśli jeździsz bezpiecznie. Na dodatek nie informują, co dokładnie jest mierzone. Oczywiście nie wyraziłem zgody, ale sam fakt możliwości zbierania takich danych jest niepokojący. Pytanie o zgodę było ponawiane – liczą na to, że użytkownik się pomyli i kliknie, że się zgadza?

W każdym razie po tej akcji z nawigacją Yanosik wyleciał w trybie ekspresowym, po przejechanych z nim jakichś 20 tys. Oczywiście potrzebuję dość często nawigacji, więc użyłem tego, co miałem pod ręką – Google Maps. Korzystałem kiedyś dawno temu przez chwilę i albo nie doceniałem, albo spory postęp zrobili.

Pierwsze wrażenie: Yanosik dawał instrukcje trochę za późno czasami (do tego stopnia, że zdarzało mi się nie skręcić we właściwą ulicę), Google Maps radzi sobie o wiele lepiej, informując z sensownym wyprzedzeniem. Do tego ma przyjemny ficzer w postaci zmiany skali w zależności od aktualnej prędkości. Nie ukrywam, że przestawienie się i przyzwyczajenie do dobrego zajęło mi chwilę. Różnica jest kolosalna – Google Maps potrafi pokazywać pasy, dawać drobne wskazówki gdzie odbić, co jest bardzo przydatne na węzłach na autostradach. Za to przyznaję, że na rondach Yanosik radził sobie lepiej, choć też nie idealnie.

Brakuje oczywiście głównej funkcji Yanosika, czyli „antyradaru”, nie ma całej grywalizacji i statystyk ale… w sumie w Yanosiku grywalizacja była niedorobiona, a statystyki niespecjalnie coś wnosiły. Chociaż lubię popatrzeć. Google Maps dobrze nawiguje i… tyle. W każdym jeśli chodzi o nawigację to niebo a ziemia – totalna przepaść w jakości oprogramowania.

Rozważam jeszcze wypróbowanie głównego polskiego konkurenta Yanosika, czyli Ryśka, ale boję się, że nawigacja będzie słabsza od Google Maps, a dane dot. sytuacji na drodze gorsze, niż w Yanosiku.

UPDATE: Rysiek może kiedyś będzie testowany, ale najpierw szansę dostanie Waze – wiele osób poleca i w komentarzach na blogu (nie tylko pod tym wpisem), i poza blogiem. Podobno wykupione przez Google, jest nawigacja i antyradar, może być fajne. Recenzja za jakiś czas.

UPDATE: Pewnie nie wszyscy zauważyli, ale Yanosik zaliczył poważną wtopę – wykorzystywał urządzenia użytkowników bez ich wiedzy i zgody do realizowania innej usługi swojej firmy. Szczegóły opisała ZaufanaTrzecia strona, a pokrótce wykorzystywane były: włączenie bluetooth, co za tym idzie zwiększone zużycie baterii, transmisja dodatkowych danych – zużycie transferu. IMO takie nadużycie i pokrętne próby tłumaczenia są dyskwalifikujące, więc zamierzam trzymać się z daleka od wszelkich rozwiązań tej firmy.