Powiązania wpisów

Na blogu do wiązania wpisów korzystam z wtyczki YARPP[1]. Niedawno autor zaprzyjaźnionego bloga zrobił rozwiązanie serwujące graf powiązań między wpisami. Półserio napisałem, że to mogła by być wtyczka no i jest.

U mnie jej chwilowo nie zobaczycie, a to z uwagi na niedawny błąd w WordPressie dotyczący REST API. Stwierdziłem wówczas, że chyba z API nie korzystam, więc baba z wozu. No, teraz by się może przydało… Ale ponieważ coraz bardziej mam wrażenie, że i tak za dużo tu ruchomych części, to nie włączam.

Ale wtyczkę Article Relationship Graph for YARPP i tak polecam. Poza tym, że pokazuje więcej powiązanych artykułów w ładny sposób, to przydała się do diagnostyki dziwnych poleceń generowanych przez YARPP. Nie wiem co się dokładnie wydarzyło, ale wyglądało to tak, że pewne 2-3 wpisy były podobne do praktycznie wszystkich innych. Nawet myślałem, że rozjechało się to przez wyłączenie API, bo wtedy zwróciłem uwagę, przy okazji rozglądania się co tu mogło przestać działać, ale nie. Zresztą, nie powinno, bo YARPP nie korzysta z niego, tylko z wewnętrznej tabeli w bazie.

W każdym razie wtyczka pozwoliła łatwo zwizualizować, że problematyczne wpisy mają po dużo kilkaset podobnych. Czemu? Nie wiem. Nie zaglądałem jeszcze do bazy. W każdym razie czyszczenie cache czy proste zmiany w konfiguracji nie pomogły.

Stanęło na tym, że zrezygnowałem z oceny podobieństwa po treści. Zostały tylko tytuły i tagi. Nie jest to jakiś killer ficzer, zresztą na problem z działaniem nikt nie zwrócił uwagi, a i ja spojrzałem dopiero po wyłączeniu API.

[1] W sumie powinienem opisać ją też wpisie o wtyczkach WordPressa

Browsergate

Skoro jest strona, to sprawa jest poważna, prawda? Coraz głośniej robi się o aferze ochrzczonej Browsergate. Zaczyna się od LinkedIn Is Illegally Searching Your Computer. Czyli grubo. Ale czy słusznie?

Wydaje mi się, że autorzy trochę wyolbrzymiają. Co się dzieje technicznie? Na stronie LinkedIn jest javascript, którego zadaniem jest zebranie informacji o zainstalowanych rozszerzeniach w Chome[1]. Jest to robione przy pomocy paru technik. Najważniejsza z nich opiera się o predefiniowaną listę rozszerzeń i obecnych w nich plików. Skrypt próbował czytać kolejne pliki i – w przypadku sukcesu – zapamiętywał informację, że dane rozszerzenie jest obecne (i aktywne). Tak zebrane informacje były wysyłane do właściciela LinkedIn, czyli Microsoftu. Nie ma natomiast mowy o przeszukiwaniu komputera, co sugeruje nagłówek autorów znaleziska. Aktywność jest ograniczona do plików rozszerzeń.

Autorzy znaleziska argumentują, że za sprawą rozszerzeń w przeglądarce można określić przekonania polityczne, religijne, zdrowotne i dotyczące zatrudnienia. Jestem w stanie się zgodzić, że w specyficznych przypadkach[2] faktycznie da się określić je z wysokim prawdopodobieństwem. I – ponieważ użytkownik jest zalogowany – skorelować z konkretną osobą.

Zatem oburzenie na Microsoft jest słuszne. Czemu jednak jest ograniczone tylko do tej jednej firmy, a Google i twórcy rozszerzeń są tu pominięci? Cała technika możliwa jest tylko dlatego, że przeglądarka Google, podobnie jak wszystkie pochodne Chromium, stosują stałe lokalne identyfikatory rozszerzeń. Nie jest to żadna tajemnica. Nie jest to też norma wśród przeglądarek. Firefox na przykład stosuje losowe identyfikatory lokalne. Takie działanie uniemożliwia stronie próbę odczytu znanego pliku z rozszerzenia, więc technika nie zadziała.

Dodatkowo, twórcy rozszerzenia muszą w manifeście jawnie zezwolić stronie[3] na dostęp do plików przy pomocy dyrektywy web_accessible_resources. Ładny opis, łącznie z tym, że Chrome nie ma losowych identyfikatorów znajdziemy na stronie Mozilli.

Czemu nie ma oburzenia na twórców Chromium, którzy nie randomizują lokalnych ID rozszerzeń? Ani na samych twórców rozszerzeń pozwalających na ustalenie wrażliwych danych, że pozwalają na czytanie plików rozszerzenia stronom[4]? No i w końcu zastanawia mnie, czy to jedyna strona, która tak działa?

Sama funkcjonalność odczytu plików rozszerzeń nie jest nowa i była znana wielu osobom (tak, znałem). Zastosowanie jest… interesujące. Mi masowe skanowanie rozszerzeń nie przyszło do głowy. Może dlatego, że nie mam zastosowania dla tych danych? Czy za sprawą Browsergate będzie mała rewolucja w świecie rozszerzeń i podejściu do prywatności? Zobaczymy.

[1] Tak naprawdę w pochodnych Chromium.
[2] Wymieniają te przypadki i są to konkretne rozszerzenia, których obecność Microsoft celowo sprawdza.
[3] Lub stronom, możliwe wildcardy.
[4] No dobrze, nie zawsze może dać się uniknąć dostępu do plików, zapewne zależy od tego, co dane rozszerzenie robi.

Gdzie się kończy sieć tekstowa?

Dawno czytałem wpis o powrocie do sieci tekstowej. Już w komentarzach zaczęła się dyskusja, czym jest sieć tekstowa. Zacząłem pisać ten wpis i – niespodzianki dla stałych czytelników nie będzie – trafił do szkiców i tam sobie leżakował. Wpis miał być o tym, jak rozumiem sieć tekstowa i jak widzę poziomy utekstowienia sieci.

Sieć tekstowa bez formatowania

Sieć tekstowa bez formatowania, czyli autor treści ma do dyspozycji wyłącznie tekst. Wszelkiego typu ozdobniki są możliwe jedynie poprzez wykorzystanie znaków tekstowych, w stylu ascii-art. Bez gwarancji, że będzie to widoczne zgodnie z zamierzeniem przez odbiorcę. Przykłady: IRC, mail w trybie tekstowym, newsgroups (NNTP). Trochę odpowiednik nadawania alfabetem Morse’a czy telegramów. Albo notatek odręcznych. Idealnym analogowym przykładem, który wyniknął podczas dyskusji jest… maszynopis.

Sieć tekstowa z formatowaniem

Sieć tekstowa z formatowaniem i… ilustracjami. Jest to odpowiednik książek, gazet czy nawet magazynów ilustrowanych. Autor określa zarówno treść, jak i sposób jej prezentacji. Przynajmniej sugerowany sposób. Ma możliwość stosowania krojów pisma, fontów, styli w dokumencie. Ma zatem pewną – choć niekoniecznie pełną – kontrolę nad prezentacją treści. Użytkownik będący odbiorcą może dowolnie modyfikować wygląd styli na swoim urządzeniu.

Typowym przykładem jest zwykła strona WWW, z wykorzystaniem HTML. Na przykład ten blog. Zaliczam też tu różnego rodzaju social media typu Facebook, Twitter/X, czy Mastodon. Oraz maila w HTML. Zamiast HTML może być dowolny inny sposób formatowania dokumentów, np. Markdown. Ważny jest fakt formatowania, nie technologia.

Pewnym nietypowym wariantem będzie tu strona z osadzonym dźwiękiem czy filmami. Taki powiedzmy odpowiednik książki lub czasopisma z dołączoną płytą CD czy DVD.

Sieciowy komiks

Sieciowy komiks, czyli sieć, gdzie tekst jest nierozerwalnie związany z grafiką, a grafika pełni pierwszoplanową rolę. Tekst istnieje i jest niezbędny, ale zwykle jest krótki i nie jest samodzielnym przekazem. Autor określa treść, sposób prezentacji i ma pełną kontrolę nad tym ostatnim. Możliwość zmiany przez odbiorcę ogranicza się do powiększenia. Przykłady to różnego rodzaju memy czy serwisy typu demotywatory.pl. Tekst – niekiedy szczątkowy – jest osadzony na stałe w grafice.

Sieć multimedialna

Sieć multimedialna, czyli sieć, gdzie tekst w zasadzie nie istnieje. Jeśli nawet istnieje, to jedynie jako dodatek, nie jest obowiązkowy. Przekaz treści następuje głównie – albo nawet wyłącznie – poprzez obrazy i dźwięk. Jest to odpowiednik słuchowisk radiowych, audycji telewizyjnych, audiobooków, czy filmów. Przykładem mogą być różnego rodzaju podcasty, filmy na YouTube czy TikTok.

Wracając do odpowiedzi na pytanie: gdzie się kończy sieć tekstowa? Jak dla mnie kończy się ona na sieciowym komiksie. Podobnie jak zwykłego komiksu już nie uważam za książkę, tak sieciowego komiksu nie uważam już za sieć tekstową. Może, w pewnych okolicznościach, uznam je za szczątkowe czy też wyjątkowe formy.

UPDATE Dodany maszynopis jako przykład.