PUM działa

Doprowadziłem PUMa do takiej postaci, że daje się używać i generuje w miarę strawny i używalny HTML. Przykładowy wynik działania. Oczywiście wszystko jest na GitHubie, który mnie drażni ostatnio, bo pisze (w związku z zupełnie innym projektem, notka leży w szkicach, których coraz więcej, upał taki, że nawet pisać się nie chce), że Can’t automatically merge. Don’t worry, you can still create the pull request. No niby mogę, ale autor upstreamu umiarkowanie nalega na wyprostowanie (się nie dziwię), a ja szczerze mówiąc nie widzę, co mu przeszkadza w automatycznym merge. Pewnie jakbym wiedział, to łatwiej byłoby mi pomóc gitowi ogarnąć się… W każdym razie będę doszkalał się z gita.

Wynikami nie ma się co sugerować zbytnio – sporo hostów zostało dodanych bardzo niedawno, stąd 100%. Jest też rozbieżność pomiędzy wynikami dla All time i jednego roku. Nie bug w skrypcie, tylko tak zwraca dane polecany niedawno Uptime Robot. Zgłosiłem buga i (szybka!) odpowiedź trochę martwi:

The Free Plan can return uptime ratios back to 1 month due to the limit of the logs kept. The Pro Plan supports back to 1 year.

And, the alltimeuptimeratio variable in the API currently returns 1-month uptime (and it’ll be removed from the APIv2).

Mój nos mówi mi, że idzie monetyzacja i z fajnej, darmowej usługi może być wkrótce coś niezbyt fajnego/używalnego. Ale może to tylko moje czarnowidztwo.

Poza tym, po niedawnej awarii (jak ktoś nie zna serwisu downdetector.pl do określania, czy jest awaria u dostawcy, to dość entuzjastycznie polecam) u mojego ISP wylądowałem za NAT (jak wielu innych abonentów). Po telefonie przywrócony publiczny IP, ale od tego czasu dla hosta w domu Uptime Robot pokazuje dziwne rzeczy – host znika, pojawia się, znowu znika… Podejrzewałem jakiś autosuspend w momencie, gdy żadne urządzenie nie jest aktywne, ale raczej nie o to chodzi. IP się nie zmienia, więc nawet w przypadku problemów z odświeżaniem dyndns nie powinno rzutować (ale nie wykluczę…). Problemy z routingiem? Może się zbiorę, ustalę IP z którego Uptime Robot monitoruje i zdiagnozuję… Póki co po prostu pauza, aby się śmieci nie generowały.

UPDATE Odnośnie problemów z git – stupid me, czyli niewiedza w temacie gita i podchodzenie do problemu od zadniej strony. Swoją drogą, namierzenie/szukanie rozwiązaniach po objawach mogłoby trwać długo… Przyczyna to złe forkowanie. Na szczęście GitHub ma świetną pomoc. Robienie forka repo git, następnie synchronizacja forka i wszystko działa.

Bezpieczniejsze i wydajne łącze mobilne

Nieco ponad pół roku temu opisałem możliwe sposoby przyspieszania łącza internetowego. Znowu jestem na urlopie, bez dostępu do „normalnego” łącza i korzystam z Aero2. Jak pisałem, najbardziej, ze względu na łatwość uruchomienia, przynajmniej w środowisku Linux, odpowiada mi wariant z socks proxy i ssh.

Poza tym, mignęła mi ostatnio – zupełnie nie pamiętam przy jakiej okazji, ale niezwiązana z tym tematem – informacja o polipo, czyli cache’ującym serwerze proxy, pomyślanym o użytku osobistym, domowym lub małych grupach użytkowników. W stosunku do pełnoprawnego proxy WWW, czyli popularnego squida ma parę ciekawych cech: jest lekki i szybki, prosty w konfiguracji, może robić za mostek między sieciami IPv4 i IPv6, umie socks proxy, posiada pewne opcje umożliwiające łatwe filtrowanie reklam i zwiększanie prywatności.

W kombinacji z tunelem SSH z którego korzystam, polipo będzie pełnił rolę cache oraz translatora socks proxy na zwykłe proxy WWW. O ile większość przeglądarek jakoś obsługuje socks proxy, o tyle chyba tylko w Firefoksie można to po prostu wyklikać, pozostałe wymagają zabawy z wierszem poleceń w celu uruchomienia obsługi. Poza tym, mając proxy WWW w systemie można je wykorzystać nie tylko do przeglądarek, ale do wszystkich programów, które umożliwiają ustawienie proxy HTTP.

Czyli całe rozwiązanie składa się więc z dwóch elementów: tunelu SSH, zapewniającego szyfrowanie przesyłanych danych (bezpieczeństwo) oraz kompresję (wydajność), oraz polipo zapewniającego cache plików (wydajność). Ponieważ moje łącze mobilne jest wolne (Aero2; DOWN/UP 512/256 kbps), zdecydowałem się umieścić serwer proxy na laptopie, przed tunelem SSH (patrząc od strony przeglądarki). Wydaje mi się, że tak będzie wydajniej – część zapytań nie trafi w ogóle do tunelu. Możliwa jest też konfiguracja z proxy uruchomionym na serwerze terminującym tunel – patrz linki na końcu wpisu. Topologia rozwiązania wygląda zatem następująco:

Internet - serwer - tunel SSH - polipo - przeglądarka

Serwer to maszyna z Linuksem (może być VPS dowolnego typu), serwerem SSH i przyzwoitym (optymalnie: lepszym od naszego mobilnego łączem).

Uruchomienie tunelu:

ssh -CND 9000 user@serwer

Konfiguracja serwera polipo (bardzo podstawowa, dostępnych jest znacznie więcej opcji, ale ich opis wykracza poza tematykę tego wpisu; cat /etc/polipo/config):

logSyslog = true
logFile = /var/log/polipo/polipo.log
socksParentProxy = 127.0.0.1:9000
socksProxyType = socks5

Następnie ustawiamy w przeglądarce WWW jako HTTP proxy: adres 127.0.0.1 i port 8123 (domyślny port na którym słucha polipo). Gotowe.

Uwaga dotycząca bezpieczeństwa: z uwagi na to, że w ww. rozwiązaniu szyfrowany jest tylko ruch HTTP, i tylko ten przechodzący przez proxy, należałoby pewnie ograniczyć dostęp dla pozostałego ruchu wychodzącego na firewallu. Jeszcze lepszym rozwiązaniem pod względem bezpieczeństwa, z uwagi na ew. spoofing DNS i uniezależnienie się od DNSów dostawców sieci, byłby VPN. Ale w tym przypadku nie to jest priorytetem, poza tym, korzystam z lokalnego serwera DNS.

Linki:

  1. Opis konfiguracji Aero2, wvdial i modemu Huawei E3131.
  2. Alternatywna konfiguracja z polipo uruchomionym na serwerze.

Rzeczywistość przerasta wyobrażenia

Przeczytałem ostatni wpis na blogu Blox i trochę mi wszystko opadło. Po kolei, rozwijając komentarz zamieszczony pod ww. wpisem:

Edge Rank

Ze swoim rzekomym 100k parametrów Edge Rank jest IMO niezłą klapą totalną porażką. Z tego co widzę u mnie na FB, cały algorytm sprowadza się do trzymaj usera przy kompie czyli jak zareagował, to dorzuć mu więcej tego samego. Bąbelkowanie ( dontbubble.us/ ) w najlepszym wydaniu. Mnie osobiście wkurza takie podejście, podobnie jak opisywane u Boniego (nie mogę znaleźć wpisu, znajdę to poprawię) bardzo podobne podejście przy reklamach. W skrócie: klient wpisał w wyszukiwarkę kasa fiskalna, to od tej pory pojawia mu się to cały czas w reklamach. Mimo, że kasę fiskalną kupił dwa tygodnie temu.

Bardzo kojarzy mi się to z wpadnięciem w jakieś ekstremum lokalne przy poszukiwaniu optimum z wykorzystaniem algorytmów genetycznych. Niby dobrze (zwł. lepiej, niż losowo), ale tak naprawdę bardzo niedobrze. Oczekiwałbym jednak jakiejś finezji typu skoro ktoś interesuje się X, to za chwilę zacznie Y. No i oczywiście algorytm wie, kiedy to za chwilę nastąpi. Albo skoro użytkownik czytał już N wpisów/czasu o X, to się nasycił. Tymczasem rozwiązań tego typu brak, zamiast tego bombardowanie do znudzenia tym samym.

Publikowanie wpisów o określonych porach

Gdy pisałem wpis o pięciu sposobach na poprawienie zarobków, to raczej się nabijałem, że ktoś będzie sobie zawracał tym głowę w kontekście bloga, ale właśnie w tym miejscu rzeczywistość przerasta wyobrażenia. Nie tylko temat kiedy publikować na Facebooku jest opisywany w wielu artykułach czy nawet FAQ, ale nawet istnieją serwisy (Sotrender), które za drobną opłatą typu 13 euro czy 49 zł miesięcznie zbadają tę aktywność u naszych fanów. Znaczy naszego profilu na FB.

Pomysł z dorzuceniem uwzględnienia prognozy pogody w opisany w linkowanym wyżej wpisie sposób nie wygląda już wcale na niedorzeczny. Przecież mamy dość dokładne dane dotyczące położenia geograficznego czytelników. Do tego historia pogody dla miast, prognoza pogody (dowolny serwis, masa tego…) i załatwione. Z moich obserwacji z pracy u ISP wynika, że korelacja między pogodą a wykorzystaniem internetu przez użytkowników końcowych jak najbardziej istnieje. Zresztą, daje się to zauważyć nawet na blogu. Niezbyt skomplikowane do napisania, zresztą.

W sumie mam Piwika, więc mógłbym się pobawić w wyciąganie danych dotyczących miejscowości użytkowników stamtąd… Plus prosta baza z pogodą (historia) i gotowe. Tylko niestety widzę, że darmowa wersja bazy GeoIP dla Polski ma skuteczność rozpoznawania dla miast na poziomie 26% dla przybliżenia 50 km i 32% dla 100 km. Trochę niska ta skuteczność… Komercyjna wersja ma odpowiednio 58% i 70% i wtedy może to mieć sens…

Facebook to nowe Google

Pamiętam, jak zupełnie niedawno jedyną wyrocznią w sprawach tego, co jest dobre a co jest złe w sieci było Google. Wszyscy patrzyli, co Google lubi, co promuje w wyszukiwaniach (ostatnio: wersje mobilne). Oczywiście na Google nadal ludzie patrzą, ale to co zobaczyłem odnośnie FB przypomniało mi o wpisie, gdzie pisałem, że Facebook to nowy internet. I faktycznie, ilość treści i narzędzi pomocniczych pozwala sądzić, że FB w dziedzinie social media jest już tym, czym Google w „reszcie sieci”.

Nawet nie to, że się tego wszystkiego nie spodziewałem, ale… już?