Komunikacyjne podobieństwa

Czasem patrzę na różne rzeczy i stwierdzam, że wszystko to jest do siebie bardzo podobne. Półtora roku temu napisałem:

Blog to zbiór stron z atrybutami author, date, title, body, comments (comment author, comment date). Pewnie jeszcze tags.

No dobrze, zapomniałem jeszcze o category. Przypomniało mi się to w związku z pytaniem, które dostałem na maila, a które dotyczyło eksportu zawartości bloga na WordPressa i wynikającym z tym grzebaniem w skryptach różnych, starych i nowych.

Tyle, że jakby się dobrze zastanowić, to ta struktura jest powszechna w komunikacji. Weźmy takiego Facebooka – mamy wpisy, są tagi, jest treść, autor i data. Jedyne czego nie ma, to tytuł. Pod wpisami oczywiście są komentarze. Czyli w zasadzie blog.

Facebook oczywiście nie jest wyjątkiem, podobnie jest na Twitterze czy G+. A jakby się zastanowić głębiej, to początki sięgają pewnie NNTP lub emaili. Tam również były w postach data, autor i tytuł. Na komentarze trzeba by tam spojrzeć inaczej: każdy post mógł być komentarzem – decydowało o tym umiejscowienie w hierarchii. W pewien sposób rozwiązanie lepsze i bardziej elastyczne, niż to z blogów – tu protezą jest trackback lub linkowanie. Za to nie było tagów, które zapewniają komunikację/połączenia poziome pomiędzy wpisami.

Nie wiem czy pisałem już kiedyś o tym, ale zastanawiam się, na ile realne i sensowne byłoby użycie serwerów NNTP do komunikacji rozproszonej, niezależnej, powiedzmy „obywatelskiej”. Coś jak Diaspora. Oczywiście z jakimś sensownym frontendem do czytania. I pewnie z tagami i kategoriami, które łatwo można by było uzyskać przy pomocy wprowadzenia dodatkowych nagłówków, np. X-Category oraz X-Tags. Po co? Cóż, wydaje mi się, że istnieje gotowy, dojrzały soft, sprawdzony w działaniu w sporej skali. Pytanie, czy soft ten przypadkiem nie jest już przestarzały. Ale mam wrażenie, że sporo pary projektów typu Diaspora idzie w pisanie istniejących rzeczy, zamiast w układanie flow i dopasowywanie istniejących narzędzi. Rozumiem, że tworzenie jest fajne, ale jeśli ma być to wymyślanie koła od nowa, to IMHO przestaje mieć sens.

I jeszcze jedna sprawa, pasująca do układanki. Jakiś czas temu został zamknięty serwis Delicious, grupujący linki. Znalazłem backup i co? Jest to link, pełniący rolę treści, jego tytuł, są tagi i data. W związku z tym bliski jestem eksportu starych linków do minibloga i napisania prostego skryptu do dodawania nowych wpisów. Oczywiście pelican jako silnik, a skrypt w Pythonie.

Rejestracja karty SIM – sposób szybki

W ramach kolejnego etapu odbierania wolności obywatelom przez państwo, nieuchronnie zbliża się termin wyłączenia kart SIM niezarejestrowanych, tj. nieprzypisanych do konkretnego użytkownika. Postanowiłem nie zostać terrorystą i dokonać rejestracji karty SIM. Tu uwaga: termin rejestracji jest do końca tego miesiąca i mogą wyniknąć problemy, więc sugeruję się pospieszyć. W ramach przypomnienia, gdzie – poza telefonem podstawowym – można mieć niezarejestrowaną kartę:

  • telefon, który robi za stacjonarkę
  • karta w modemie robiącym za backup dostępu do internetu
  • nawigacja samochodowa
  • tablety
  • router na działce

Zrobiłem szybki przegląd, bo choć większość kart mam zarejestrowanych (zmiana operatorów), to znalazłem dwie, które zarejestrowane nie były. Obie w Virgin Mobile. Przyznaję, że zwlekałem z rejestracją, bo choć operatorzy namawiają i kuszą jakimiś zbędnymi bonusami, to procedura wygląda na skomplikowaną. Przeryłem się przez dokumentację i wybrałem rejestrację online, a następnie wizytę w punkcie w celu potwierdzenia (tu: poczta).

Wniosek online wypełniłem bez problemu, poszedłem na pocztę i… zaczęły się schody. Otóż pani na poczcie lekko się pomyliła i zaczęła nową rejestrację, której nie mogła zakończyć, bo była już rozpoczęta ta online. No ale jak sobie to wyjaśniliśmy, to wybrała właściwą opcję. I znowu zonk – niezgodność danych.

No i pyta się mnie, czy na pewno dobrze wpisałem imię, nazwisko i PESEL. Hm, raczej dobrze, poza tym PESEL ma sumę kontrolną, więc pomylić się niełatwo. A czy mam jakieś potwierdzenie tego co wpisałem. Otóż nie mam, bo nic takiego operator nie przewidział. No nic, pełen spokój, mówię, że mam drugi numer.

I znowu ta sama scena – niezgodność danych z wnioskiem. Tu miarka się przebrała. Ponieważ było pusto, to stwierdziłem, że dzwonię na infolinię i niech radzą. Zadzwoniłem. Sympatyczny konsultant anulował wnioski złożone online i zrobiłem pełną rejestrację karty SIM na poczcie.

tl;dr Nie baw się w składanie wniosku online, kurierów itp. Po prostu weź telefon z aktywną kartą i dowód osobisty i idź na pocztę (tylko wybrane placówki, sprawdź online).

Nginx z automatycznym odnawianiem certyfikatu SSL, HTTP/2 i A+

Artykuł na z3s o automatycznym odnawianiu darmowego certyfikatu SSL od Let’s Encrypt przypomniał mi, że nie skończyłem sprawy z nginx i certyfikatami SSL i oceną A+. Po pierwsze, brakowało mi wpisu w cronie. Trzy miesiące to jednak kawał czasu, a na serwer i tak się logowałem, więc certyfikaty były odświeżane ręcznie. No ale jak robić to porządnie, czyli w pełni automatycznie.

Wpis do crontab, którego używam to:

43 3 * * 2 /usr/bin/certbot renew --post-hook "service nginx reload" >> /var/log/certbot.log

Nie jest idealny – przede wszystkim restart nginx będzie wykonywany przy każdej próbie przeładowania, czyli raz na tydzień. Wydaje mi się, że przedładowanie konfiguracji nie będzie stanowiło problemu. Ale jeśli komuś przeszkadza, to polecam zainteresowanie się opcją –renew-hook, zamiast –post-hook. Wykonuje się ona tylko przy odświeżeniu certyfikatu (czyli raz na kwartał). Z tym, że mam kilka certyfikatów i nie jestem przekonany, że restart nginx podczas odświeżania certyfikatu to jest to, co chcę robić. A testować mi się nie chce, tym bardziej, że na sucho średnio jest jak.

Rozwiązałem sprawę nie do końca działającego HTTP/2 (problemy z Firefox) opisaną w poprzednim wpisie. Przyczyna wskazana w komentarzach była trafna, żeby było ciekawiej, korzystałem dokładnie z

ssl_ciphers 'EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH:!aNULL';

tyle, że zapewne podczas zabaw ze zwiększaniem kompatybilności z przeglądarkami zmieniłem to na wersję z gotowca, a potem odkręciłem ale… nie wszędzie. Poza tym, dopisanie http2 w każdej linii listen zawierajacej ssl i jest HTTP/2. Trochę sztuka dla sztuki. Jak pokazały testy szybkości, ale wynika to głównie z tego, że same strony są małe i lekkie. Albo, jak Planeta Joggera, korzystają głównie z zasobów zewnętrznych, więc zmiany na moim serwerze nic nie dają.

W każdym razie powyższe szyfry i włącznie HSTS wystarczają do uzyskania dla nginx oceny A+ na teście SSL. Czego w nadchodzącym 2017 wszystkim życzę, korzystając z tego, że wpis przeleżał w szkicach nieco dłużej, niż planowałem.