Blogday 2014

Znowu niemal przegapiłem, ale rzutem na taśmę pięć polecanych blogów. Tym razem bez opisów, po prostu polecam przeczytać parę ostatnich wpisów. Uważam, że warto.

I w miarę dokładnie pokrywa się to z polskimi blogami, które przybyły w moim czytniku RSS w ciągu ostatniego roku. No, niecałego, bo ostatnio zombie blogerzy byli. Jeśli tak dalej pójdzie, to w przyszłym roku po prostu nie będę miał kogo polecać. Chociaż pewnie coś ze starszych jeszcze wygrzebię. Albo wrzucę coś anglojęzycznego.

Rowery miejskie w Szczecinie

Niedawno Szczecin uruchomił SRM, czyli Szczeciński Rower Miejski i dołączył do grupy polskich miast umożliwiających wypożyczanie rowerów miejskich ze stacji na ulicach. W przeciwieństwie do miast takich jak Poznań, Wrocław, Kraków czy Warszawa, nie jest to system obsługiwany przez firmę Nextbike, o którym na przykładzie Poznania pisałem (nawet dwa razy[1]), tylko przez zupełnie inną firmę.

Rozwiązanie takie ma zalety, ma też wady. Pierwsza, najważniejsza i najbardziej oczywista wada to brak wspólnego systemu. Mając konto w SRM nie skorzystamy z możliwości wypożyczenia roweru w innych miastach. Jako użytkownik PRM mam – przynajmniej teoretycznie, bo w praktyce nie zdarzyło mi się korzystać – możliwość wypożyczenia roweru w innych miastach kraju. Tak przynajmniej sugeruje strona Nextbike, bo informacji wprost nie znalazłem.

Kolejna wada – tym razem z mojego punktu widzenia – to format udostępnianych danych nt. dostępności rowerów miejskich na poszczególnych stacjach. SRM, podobnie jak Nextbike, udostępnia dane publicznie, ale robi to w tej chwili w sposób mocno kulawy. Zamiast ładnego XML z danymi o stacji (nazwa, położenie, ilość rowerów) mamy… HTML do samodzielnego parsowania. Mam nadzieję, że zmienią to do początku następnego sezonu, bo chciałem dodać Szczecin do strony z dostępnością rowerów miejskimi w Polsce[2].

Pora na zalety. Niewątpliwie zaletą SRM jest cena przy krótkich wypożyczeniach. Podobnie jak w Poznaniu, pierwsze 20 minut jest za darmo, ale za godzinę (łącznie) wypożyczenia w Szczecinie zapłacimy 1 zł (Poznań 2 zł), za 2h (łącznie) zapłacimy 4 zł (Poznań 6 zł). 3h w Szczecinie to 9 zł, w Poznaniu 10 zł. Potem już niestety Szczecin wypada gorzej, bo każda następna godzina w Sz-nie to aż 7 zł, w Poznaniu 4 zł. Chociaż traktując wypożyczane rowery miejskie jako alternatywę dla komunikacji zbiorowej liczą się IMO głównie krótkie okresy wypożyczenia (20 min, 1h, góra 2h), a tu Szczecin wypada lepiej[3].

Za zaletę uważam również powstanie konkurencji[4] – co prawda raczej w istniejących miastach niewiele to zmieni, przynajmniej w najbliższym czasie, ale wygląda, że kolejne miasta mają jakiś wybór operatora.

UPDATE W zasadzie wpis przestał być aktualny, bo od niedawna SRM jest częścią Nextbike. Z tego co mówią znajomi, jest wspólne konto, czyli pełna integracja z innymi miastami. A dane dotyczące ilości rowerów na stacjach w Szczecinie dostępne są już na stronie.

[1] Dość stare, trochę się pozmieniało, w szczególności wzrosła liczba stacji w Poznaniu, a ja nie bardzo korzystam – dorobiłem się własnego roweru, więcej chodzę pieszo i mam (miałem) sieciówkę.

[2] No i pewnie nazwę strony musiałbym zmienić, a koniec sezonu (słabo sobie IMHO wybrali termin startu w Sz-nie, chociaż może takie opóźnienie w przyswojeniu przez ludność faktycznie jest…) i używalność będzie nikła, więc trochę nie chce mi się.

[3] Ogólnie Poznań ma w tej chwili beznadziejne ceny transportu miejskiego. Najtańszy bilet to 3 zł (10 minut). W Szczecinie jest 2 zł za minut 15. A pamiętam, że gdy się przeprowadzałem do Poznania parę lat temu, było dokładnie odwrotnie – bilety w Poznaniu kosztowały 1 zł (też chyba 10 minut) przy IIRC 1,8 zł za 15 minut w Szczecinie.

[4] Trochę na wyrost wniosek, bo powiązań osobowych i finansowych nie sprawdzałem jeszcze.

Jak zrobić kuku spamerowi?

Jak wielu innych ludzi, darzę spamerów czystym i płomiennym uczuciem. Jakiś czas temu popełniłem automat do wykrywania spamu na Blox. W zasadzie, to tych skryptów jest kilka i raczej dane zbierają się „na kiedyś”, niż działa to produkcyjnie, ale czasem coś tam podeślę do blokowania. Niemniej, nie jest to pełny automat.

Jeśli chodzi o pocztę, to nie jest u mnie ze spamem źle. Łącznie na wszystkie konta dostaję jakieś małe pojedyncze sztuki dziennie. Część odsiewają dostawcy poczty, przytłaczającą większość tych nielicznych, które przejdą oznacza Thunderbird.

Dodatkowo, jeśli już coś do mnie dotrze, to zwykle trafia na Spamcopa (polecam zarejestrowanie się). Roboty z tym tyle, co kliknięcie Forward i linka w mailu, więc niewiele, a powiadamiane są wszystkie powiązane abuse. Polecam rejestrację. Czasem nawet odpiszą, że zablokowali (i to niekoniecznie nadawcę, bo potrafią reagować także właściciele domen/hostingów na których znajduje się „reklamowana” strona. Tak czy inaczej, o ile nie zadziała to pewnie na spam o niebieskich pastylkach wysyłanych z botnetów (ale liczę, że to odpada na etapie dostawcy poczty, zresztą mało tego typu dociera do mnie), to działa[1] na byznesmenów wysyłających zapytania o możliwość wysłania oferty handlowej do adresatów z baz pozyskanych z ogólnodostępnych źródeł. Znaczy, tłumacząc na polski: na spamerów wysyłających spam, bo (polskie) prawo prawem, ale o tym, czy wiadomość była zamówiona decyduje jednak odbiorca.

Niedawno, podczas szukania rozwiązań antyspamowych trafiłem na ciekawą stronę Email Labirynth, która generuje losowe adresy email w celu zaśmiecenia baz danych harvesterom, a w konsekwencji spamerom. Czyli po pierwsze stracą czas zbierając te adresy, po drugie stracą czas wysyłając maile na nieistniejące adresy, a po trzecie jest spora szansa, że dzięki takim wysyłkom trafią na RBLe. Nie jestem przekonany o skuteczności, ale spróbować IMO nie zaszkodzi. Sceptykom twierdzącym, że spamerzy nie mogą być aż tak głupi od razu mówię, że nie tylko mogą, ale są. Może nie wszyscy, ale większość. No i zwykle mają słabe automaty, a nadzór ludzki kosztuje.

W każdym razie powyższe rozwiązanie ma IMO kilka wad:

  • Brak spamtrapa na każdej stronie. IMHO na każdej(?) stronie wśród generowanych maili powinien być także spamtrap w celu automatycznego zgłaszania IP korzystających z harvestowanych adresów email do abuse/RBLi.
  • Stały adres strony. Wystarczy szczątkowa inteligencja, by nie harvestować tam adresów email.
  • W pełni losowe loginy. Trochę wada, trochę zaleta. W każdym razie wyglądają mało naturalnie i przy odrobinie wysiłku można je odsiać.
  • Brak lokalizacji. Wiadomo, że spamerzy celują z niektórymi produktami raczej w określone grupy klientów, np. klientów z Polski. Dane z ww. strony zdecydowanie nie wyglądają na bazę polskich klientów email.

Koniec końców postanowiłem zrobić swoje rozwiązanie realizujące podobny cel (oczywiście Perl). Na razie mam opracowane częściowe rozwiązanie[2] dla dwóch ostatnich punktów. Punkt drugi też będzie rozwiązany, bo zamierzam opublikować gotowca, którego każdy będzie mógł podpiąć na swojej stronie.

Ponieważ pewnie trochę czasu będę miał dopiero w przyszły weekend, liczę do tego czasu na uwagi dot. sensowności i ew. innych funkcjonalności.

[1] Działa, znam trochę środowisko hostingowe. Przyzwoite hostingi nie przepadają za wysyłającymi spam do zaśmieconych baz adresów email, a z tego co wiem w polskich firmach hostingowych abuse raczej działa.

[2] Jak dam sobie na luz z perfekcjonizmem, to pewnie uznam je za docelowe, przynajmniej w pierwszej wersji.

UPDATE: No i uruchomiłem. Póki co wersja testowa karmnika z adresami email wisi tu.

Wyszukiwarka na blogu

Z jakichś powodów szukałem niedawno możliwości podpięcia pod bloga innej wyszukiwarki, niż ta przychodząca z Blox. Pierwsze co przyszło mi do głowy, to Google i któraś z ich usług. Wiem, zewnętrzny serwis, w dodatku Google. Pewnie bym nie użył i tak, ale nie każdemu to przeszkadza… Jednak to co znalazłem u Google miało wadę – nie dawało się zawęzić do danej witryny, szukało także na podlinkowanych stronach.

Dziś u Boniego w komentarzach zeszło na dyskusję nt. wyszukiwarki na blogu i… postanowiłem poszukać, czy DuckDuckGo się dorobiło. TIL:

  • Mają stronkę z pomysłami i całkiem przyzwoitą wyszukiwarką wśród nich. Na dodatek zintegrowaną z forum.
  • Mają też możliwość podpięcia wyszukiwarki do bloga dokładnie w taki sposób, o który mi chodziło. Oczywiście o ile ktoś się nie brzydzi iframe i zewnętrznym serwisem. Ja się nie brzydzę.
  • Obsługują parametr site: dla wyszukiwania w danej domenie. Albo nowe, albo ślepy jestem, bo brakowało mi tego i korzystałem do tego celu z Google.

Dla Google pewnie też zadziała, w analogiczny sposób, ale w trosce o prywatność, anonimowość itd. itp. zostaje DuckDuckGo. Wyszukiwarki z Blox póki co nie zdejmuję, ale zachęcam do korzystania z nowej.

UPDATE Strona opisująca umieszczenie wyszukiwarki DuckDuckGo na stronie.

Obudź sobie Linuksa

Mało kto wie, ale komputer może się sam włączyć o zadanej godzinie. Zupełnie sam, bez pomocy zewnętrznych źródeł, magic packet i Wake-On-LAN. Można to wykorzystać do oszczędzania energii (i zużycia sprzętu), a przy tym nie musieć włączać komputera ręcznie, nie czekać na jego uruchomienie, ogólnie – mieć wrażenie, że działa on cały czas.

W szczególności można zrobić z komputera budzik (włączy się o zadanej godzinie i np. odtworzy zadany utwór albo stację radiową) czy też do maszynki przyjmującej backupy (nie musi być włączona cały czas, wystarczy włączyć ją na czas transferu backupu i wyłączyć po ich przesłaniu). Automagiczne włączanie przydać się może także w firmie, gdzie Linux pełni rolę serwera NAS i wydruku – nic nie stoi na przeszkodzie, by wyłączał się po pracy (np. 18:00), a uruchamiał przed przyjściem pierwszych pracowników (np. 7:00).

Wszystko to można osiągnąć za pomocą programu rtcwake będącego częścią util-linux z odpowiednimi parametrami.

Na początek warto jednak pamiętać, że wyłączenie wyłączeniu nierówne. Program rtcwake obsługuje m.in. następujące tryby wyłączenia (wybierane przełącznikiem -m):

  • standby – stan ACPI S1. Minimalne oszczędności energii, błyskawiczny powrót do działającego systemu. Tryb domyślny.
  • mem – stan ACPI S3 (Suspend-to-RAM). Wyłączone jest wszystko, poza pamięcią RAM. Duże oszczędności energii, bardzo szybkie wybudzanie.
  • disk – ACPI state S4 (Suspend-to-disk). Wyłączenie wszystkiego, stan maszyny zapisywany jest na dysku. Stosunkowo wolne wybudzanie z uwagi na konieczność odczytu zawartości pamięci RAM z dysku.
  • off -ACPI state S5 (Poweroff). Wyłączenie systemu. Nie jest oficjalnie wspierane prze ACPI, ale zwykle działa.

Niestety, rtcwake posiada jedną poważną wadę – nie pozwala na podanie czasu wybudzenia w „ludzki” sposób. Można jedynie podać za ile sekund ma nastąpić wybudzenie albo czas w postaci Unix time. Mało wygodne. Oczywiście można to obejść przy pomocy skryptów (patrz linki).

Ja chwalę sobie tryb mem i używam często wieczorem, żeby rano mieć włączony komputer. Przy okazji często budzę się dźwiękiem włączanego komputera (nie, nie ustawiam muzyki). Skryptów nie używam, po prostu usypiam kompa na ten sam okres czasu, osiem godzin, przy pomocy polecenia:

rtcwake -s 28800 -m mem

Da się oczywiście zrobić więcej/lepiej ale… jakoś nie mam potrzeby.

Więcej o rtcwake AKA warto przeczytać:

  1. http://czytelnia.ubuntu.pl/index.php/2012/05/23/automatycznie-wybudzanie-z-hibernacji-budzik/ – dobry opis po polsku, dobry skrypt
  2. http://blog.loleksy.pl/2014/01/28/reuse-an-old-laptop-or-netbook-as-a-vps-backup-solution/ – skrypt do backupu z wykorzystaniem rtcwake