Béton brut

Musisz być kimś

![ojej](https://fuse.pl/beton/wp-content/uploads/2014/09/ojej.png)

Jeśli zdolność do odczuwania wątpliwości jest miarą inteligencji, to jestem bardzo inteligentnym typem. Raz do roku muszę wykonać jakiś piruet wokół własnych idei, sprawdzić, czy to co uważam za słuszne jest nadal słuszne, czy tylko przyzwyczaiłem się do myśli, że jest.

W tym sensie jestem jak puenta peerelowskiego dowcipu: „Mam swoje poglądy, ale się z nimi zupełnie nie zgadzam”.

Na początku wakacji spędziłem kilka godzin w towarzystwie Leszka Tarkowskiego, który zawodowo zajmuje się tłumaczeniem meandrów programowania pracownikom różnych firm okołotechnologicznych. Nasza rozmowa kręciła się wokół różnych tematów (kobiety, wino, śpiew), ale najdłużej utknęliśmy właśnie na edukacji informatycznej, a dokładniej na tym, jak ciężki to kawałek chleba.

Programowanie to wielowarstwowy problem, który przypomina lalkę-Matrioszkę. Kiedy wyciągasz pincetą absurdalnie małą lalkę rejestrów okazuje się, że w środku żyją jeszcze mniejsze, te które są opisane „dostęp do pamięci” czy „utylizacja pamięci podręcznej procesora”. Na dodatek niektóre rozkładają się też na boki, tworząc lalki identycznych rozmiarów, ale inaczej pomalowane i te też mają swoje mniejsze odpowiedniki w środku.

Prawdziwą sztuką jest wybrać tylko te rzeczy, które są ważne. Jak to mówimy: „wybrać najlepsze narzędzia do pracy, którą masz zamiar wykonać”. Problem z tą metaforą jest taki, że nie odzwierciedla ona stanu rzeczywistego. Kiedy mamy upiłować rurkę to bierzemy do ręki piłę i piłujemy. Piła piłuje. W ekstremalnych przypadkach jest instrumentem w kapeli podwórkowej, ale ogólnie piłuje. Najlepsze narzędzie do pracy. A jak chcę przetworzyć kawałek pliku tekstowego, to co jest lepsze: Perl, Ruby czy Python? Znam przynajmniej dwie osoby, które powiedzą, że C. Mój przyjaciel, który administruje, powie że wszystko da się zrobić potokami i Awkiem. Wszystkie te odpowiedzi są poprawne i wszystkie rodzą kolejne problemy: wyrażenia regularne, unicode w Pythonie 2.x, absolutnie wszystko w temacie ciągów znaków w C.

Zróbcie eksperyment: spróbujcie wyobrazić sobie jak wytłumaczyć procedurę wczytania pliku, pobrania któregoś wyrazu i wyświetlenia go na ekranie, ale użyjcie do tego swojej wiedzy na temat tego, co się może spieprzyć i co może być potrzebne żeby na serio mieć świadomość, co się dzieje?

Co to jest plik? Czy plik da się odczytać? Otworzyć go jako ‘r’ czy ‘rb’? Czy nie jest za duży żeby go wczytać naraz? W Pythonie użyć file czy context managera with? Obsługiwać stdin?

Jestem pewien, że możecie bez zastanowienia rozwlec ten problem jeszcze bardziej.

Oczywiście jest to dzielenie włosa na czworo, jak większość debat o programowaniu. Rodzi to jednak pytanie w mojej głowie: kiedy mówimy o „uczeniu mas programowania” to gdzie tak naprawdę chcemy się zatrzymać? Mamy uczyć programowania, konkretnego języka programowania czy przekazać ogólną wiedzę, która pozwoli uczniom wybrać to, co im się podoba?

Dla mnie idealną sytuacją byłoby przekazywanie wiedzy ogólnej. Niestety, aby zamienić wiedzę ogólną na zdolność programowania potrzebna jest odrobina pasji i uporu.

Powszechną naukę programowania sprzedaje się czasem jako wymóg teraźniejszości (i przyszłości), porównuje się ją do nauki czytania i pisania, podwalin reszty edukacji. I to bardzo słuszna koncepcja, poza kontekstem.

Kiedy uczono nas pisać i czytać nikt nie mówił nam, że to po to abyśmy mogli napisać bestsellery. Często gęsto nauka programowania odbywa się w kontekście „bycia nowym Cukiergórą, zrobienia aplikacji, wspierania nowej ekonomii”. Może to naiwne z mojej strony, ale zawsze widziałem podstawową edukację jako coś odłączonego od czynnika ekonomicznego. Możemy posadzić wszystkich w ławkach i wyłożyć im „Hello, World” w dowolnej ilości języków programowania, a i tak większość uczniów odpisze zadanie domowe, tak jak Ty i Ty odpisywaliście zadania z chemii i biologii. Oczywiście mieliście w klasie „olimpijczyków” matematyki, fizyki i języka obcego, mieliście też pewnie kogoś, kto klikał komputery — zgaduję, że to Wy — i może część z nich zamieniła swoją pasję w zawód.

I żebym nie był źle zrozumiany: każdy powinien posiadać wiedzę technologiczną i każdy, kto chce, powinien móc odebrać edukację, która pozwoli mu zostać programistką lub programistą. Nie każdy zostanie i nie powinno się próbować sprzedawać dziedziny nauki jako lewar do podnoszenia PKB.

Edukacja powinna służyć ludziom, a nie politykom, którzy akurat wymyślili budowanie Krzemowej Doliny w Twoim mieście.

Kiedy słyszę czasem, że „współczesny dziennikarz powinien potrafić napisać sobie bota, który śledzi wydarzenia na Twitterze” to zaczynam sobie wyobrażać, że autor takiej propozycji nie bardzo wie, co powinien robić dziennikarz. Jeżeli dziennikarz będzie miał świadomość, że dane są udostępniane przy pomocy API i że można coś zautomatyzować to będzie bardzo dobrze. Wtedy dzwoni się po ten procent ludzi, którzy zdecydowali się zostać programistami i oni szast-prast wypluwają jakiś kawałek kodu. Wtedy mamy kompetentnego dziennikarza i kompetentnego programistę tworzącego wartość dodaną. W idealnym świecie cyber-haker-futurystów byłoby dwóch słabych dziennikarzy, którzy czytają Twittera.

Jest mi bardzo ciężko wytłumaczyć moją wizję cyfrowej edukacji. Spędziłem całe (bez żartów) życie ryjąc — ryjem naprzód — norę w górze wiedzy informatycznej. I po tych trzydziestu latach nadal czuję, że jakiś facet produkujący komputery zaworowe w latach sześćdziesiątych mógłby mnie złapać za wszarz, złamać na kolanie jak strzelbę, wsadzić mi w tyłek kapiszony i naciskając moszną wystrzelić z nozdrzy. Shit’s hard.

Może mówię z pozycji kogoś, kto w swojej głowie uchodzi za sprytnego drania, który „własnymi rencami, wszystko”, ale na serio nie widzę opcji żeby Ci sami ludzie, którzy zapisują dokumenty Worda na pulpit nagle odnaleźli w swoim sercu chęć do napisania drugiego Instagrama.

Naszym celem (jeżeli mogę się włączyć w szereg ludzi, którym nauka leży na sercu) powinno być stworzenie środowiska w którym ludzie chętni są mile widziani, co nie zawsze było naszą mocną stroną. Dlatego ważne jest otwarte oprogramowanie, dlatego ważna jest dokumentacja i przykłady, dlatego trzeba robić „pracę u podstaw”.

Jesteśmy obecnie świadkami technologicznej gorączki złota: wszyscy wiedzą, że jest złoto do wzięcia, słyszeli o ludziach, którzy ledwie postawili nogę na działce górniczej, a już potknęli się o fortunę. Nikt już nie pamięta, że podczas gorączki złota najlepiej było sprzedawać sprzęt górniczy.

Programowanie jest często jak praca w dziewiętnastowiecznej kopalni: brud, pot, kiepska dieta, kilka osób i kilka osłów. Jeżeli już chcesz być w tej kopalni to upewnij się, że nie jesteś osłem.

* * *

Mówiąc o: Szóstego grudnia, roku bieżącego, w mieście Łodzi odbędzie się pierwsza edycja Django Girls, gdzie będę szatniarzem/sprzątaczem. Szczegóły można uzyskać od Marty lub Justyny.


Retro już było

Wszystko, co było stare, będzie nowym. Retro wróciło, skarbie. I pewnie wraca tak co chwilę, ale jest zauważane tylko przez kolejne pokolenia trzydziestokilkulatków, którzy nagle odkrywają, że ich młodość uśmiecha się do nich z mediów i banerów reklam, że pląsa na wybiegach mody.

Nie jest to jednak zrządzenie dobrego losu, że ktoś znów kręci Nastoletnie Zmutowane Ninja Rycerze. Stoi za tym rzecz prozaiczna, motor napędowy wszystkiego — pieniądze.

Trzydziestokilkulatkowie mają wolne środki finansowe, które można wymienić na neonowe hula-hoop lub flanelową koszulę od znanego projektanta. W społeczeństwie kapitalistycznym rynek natychmiast znajdzie sposób na dostarczenie odpowiednich produktów, a nawet zbudowanie słusznego, marketingowego przekazu pozwalającego kupującym uciszyć wątpliwości, czy ktoś aby nie sprzedaje im ich własnej młodości wprost z butiku.

Świat technologiczny, wyglądający z zewnątrz jak rakieta z napisem „lecę w przyszłość bardzo szybko”, też ma swoje retro. Jest to jednak retro o innym kolorze. Nie bez znaczenia pozostaje, że ludzie mają muzykę na winylowych płytach i zegarki starsze od najbardziej prymitywnych maszyn napędzanych mikroprocesorami.

Daje to bardzo mały margines błędu. Istnieją ludzie pragnący podłączyć specjalnie spreparowany joystick do telewizora i pograć w gry na Atari 2600. Nieco mniej jest takich, którzy chcieliby wpisywać sekwencję bootowania Altaira za pomocą przełączników na głównym panelu. Ludzi, którzy chcieliby mieć komputer z lat 60., jest pewnie zupełnie niewielu, a wyłączając muzealników i wariatów, ich liczba oscyluje wokół zera.

Retro jest emocjonalnie powiązane z autentycznością. I dla wielu produktów będących w strefie wpływów autentyczność ta jest osiągalna. Nie straciliśmy możliwości szycia flanelowych koszul. Wtryskarki nadal mogą wypluć okrąg w pstrokatych kolorach. Nikt nie chce wspominać swoich grungowych lat w lnianej koszuli zdobionej czarno-czerwoną szachownicą. 1

Technologiczne zabawy w przeszłość są skomplikowane. Z jednej strony mamy entuzjastów zbierających artefakty i walczących ze stosem wiecznie piętrzących się problemów. Z drugiej są ludzie, którzy chcieliby tylko zerknąć, jak to było.

![s](https://fuse.pl/beton/wp-content/uploads/2014/09/s.jpg)

Tych pierwszych podziwiam, ale im współczuję. Drugich rozumiem, bo sam wolę być hedonistycznym retronautą: skupić się na własnej radości.

Dlaczego w świecie krzemu tak trudno uzyskać autentyczność „w warunkach domowych”? Najlepiej ująć to następująco: w dupach nam się poprzewracało.

Kiedy autor gry chce nawiązać do ośmiobitowych lat chwały, dziś jego dzieła nie ograniczy sprzęt, na którym owo dzieło będzie konsumowane. Grafik może narysować postać przy pomocy „dużych pikseli”, ale nadal będzie ich więcej niż 320x200. Nie będzie też chciał rwać sobie włosów z głowy, próbując zmieścić się w szesnastu
kolorach, z których połowa wygląda jak coś, co umarło w męczarniach.

Programista nie musi gdybać nad liczbą „duszków” na ekranie, wolną pamięcią i czasem dostępu do danych na nośniku.

Nie jest to przytyk. To konsekwencja.

Może autentyczność jest wartością przecenioną i retro należy traktować tylko jako estetyczny wybór, który zachowuje sedno rzeczy udawanej? Kwarcowy zegarek kieszonkowy i ośmiobitowa gra, której instalator zajmuje kilka gigabajtów, mogą wywołać grymas u purysty, ale przecież nadal jesteśmy w stanie ustalić, która jest godzina i ile czasu spędziliśmy, grając w platformówkę o smaku i zapachu nieodróżnialnym od tych z Nintendo.

Czytałem ostatnio książkę — Gwiezdne Wojny napisane jak szekspirowska sztuka. Ani to autentyczne Gwiezdne Wojny, ani Szekspir. Ni pies, ni wydra, podobny do świdra.

To był eksperyment, choć może zbyt łatwy do zakwalifikowania w kategorii „skok na kasę”, jak te wszystkie książki znajdujące się w domenie publicznej, do których jakiś typ dodaje ”…and zombies”. Z drugiej strony ”Krzyżacy and zombies” brzmią nieźle.

Połączenie estetyki, o której myślimy „wielkie dzieło”, i Gwiezdnych Wojen, które dla wielu było pierwszym spotkaniem z monomitem.

Cieszmy się z naszych podrabianych wspomnień. Coraz wyraźniej widzę nadchodzący czas nowej fali: low poly. Już nie piksele wielkości pięści, a obiekty składające się z kilku ścian, bez nich lub z niewielką ich liczbą, cieniowane. Użytkownicy oryginalnej PlayStation dobijają do finansowej niezależności, rynek musi karmić spragnionych.

![low poly](https://fuse.pl/beton/wp-content/uploads/2014/09/w6ZG2zo.jpg)

Kiedy nasze retro odejdzie w przeszłość, będziemy przynajmniej mogli mówić, że było lepsze niż to nowe retro, które dopiero przyjdzie.

  1. Osobiście byłem fanem niebiesko-czarnych, a gardziłem zielono-czarnymi

Piątki poprzedzają poniedziałki

Dopijam dopiero drugą kawę, a już musiałem ubrudzić ręce w kodzie. Niewybaczalne.

Wiecie jak idą dni w tygodniu: poniedziałek, wtorek, środa, prawie piątek, pół dnia, picie, kefir. W pół dzień ludzie mają wszystko głęboko w otworach swojego ciała. Wszyscy są w blokach startowych i czekają na sygnał do opuszczenia budynków biurowych żeby dać nura — głową wprost — w hedonizm i zakupy w markecie.

Niestety, przychodzą też poniedziałki.

W jedynym systemów, który piszę i którym administruję, mamy funkcje wymuszonej zmiany haseł. Co trzydzieści dni prosimy o nowe hasło i ku rozpaczy większości ludzi nie pozwalamy im ustawić już raz użytego. Nie wiem, czy to był wymóg, czy może mój sadystyczny wymysł: zgaduję jednak, że wszystkie hasła mają teraz dodane “0” za każdy miesiąc.

Większość użytkowników została poproszona o zmianę hasła w piątek. Ludzie nieobecni duchem mają problemy z wymyślaniem haseł, a są już kompletnie bezradni przy ich zapamiętywaniu. Ba, widok weekendu na horyzoncie powoduje, że nie chce im się nawet zapisać „nowego hasła” na przylepnej karteczce.

![pls, haslo](https://fuse.pl/beton/wp-content/uploads/2014/08/Untitled.png) ![pls, pls](https://fuse.pl/beton/wp-content/uploads/2014/08/Untitled2.png)

Sprawdziłem poprzednie miesiące i widzę pozytywną korelację pomiędzy zbliżającym się weekendem a narastającym hasłowym tumiwisizmem. Postanowiłem więc zaaplikować „poprawkę” która przesuwa wszystkie zmiany haseł na poniedziałki. Zobaczymy, czy uciszy to głosy strapionych.


Puchar Z

* * *

Zawodnik w niebieskich spodenkach potoczył się po murawie. Wyglądał na skończonego, jego kończyny były rozrzucone na boki, a z ust płynęła strużka gęstej śliny. Trybuny ucichły. Do sprawcy zajścia podbiegł sędzia. Po zapoznaniu się z przewinieniem sięgnął ręką do kieszonki: kara indywidualna.

Kiedy odgłosy strzału ucichły, trybuny wybuchły oklaskami. Arbiter nakazał gestem wniesienie noszy i usunięcie ciała z boiska.

Teraz przyjdzie im kończyć mecz w dziesiątkę, ale nie ma się co martwić, to dopiero pierwsza runda Pucharu Z.

Do piłki ustawionej na plamie posoki, która wyciekła z głowy wyeliminowanego zawodnika, doczłapał kapitan drużyny przeciwnej i niezgrabnie kopnął ją przed siebie wydając przy tym gardłowy „Yyyh”.

* * *

Historia zaczęła się od pierwszego ugryzienia. Podczas jednej z wielkich imprez piłkarskich zawodnik ugryzł swojego przeciwnika. Lekko komiczna sytuacja przerodziła się w tragedię, gdy ugryziony zawodnik wrócił ze swoją wyeliminowaną drużyną do kraju i zaczął gryźć innych w meczach lokalnej ligi.

„La Gazzetta dello Sporte” napisała jakiś bardzo klikalny nagłówek o tym, jak sportowcy odgryzają się swoim boiskowym adwersarzom. Nikt nie widział powodów do paniki.

Wszyscy spoważnieli, gdy podczas derbów Mediolanu, ustawiony przez bramkarza mur ruszył przed gwizdkiem w stronę wykonawcy rzutu wolnego i rozszarpał go na oczach widowni. Ludzie tratowali się próbując opuścić stadion, a na drugi dzień ultrasi obu klubów wypuścili wspólne oświadczenie, które można podsumować tak: „Nie zgadzamy się na takie barbarzyństwo na naszych boiskach!”.

Apel najlepiej uzbrojonych kibiców nie przeszedł bez echa.

* * *

Wieczorne wiadomości donosiły o kolejnych pogryzieniach, a obecni w studiu eksperci ekstrapolowali z dostępnych danych, że w tym tempie najwcześniej przed czwartkiem po południu nie pozostanie już nikt, kto posiada rozum i zdolność formowania zdań.

Tak, wtórowali spikerzy, jeżeli sytuacja się nie zmieni, nawet jedna czwarta populacji naszej planety może paść ofiarą „piłkarskiej plagi”.

Apokaliptyczni wizjonerzy zostali jednak szybko wybudzeni ze swojego snu o katastrofie. Zadziwiające jak łatwo pozbyć się kilku tysięcy potykających się o swoje nogi, niezorganizowanych, humanoidów. Czego nie załatwiły naloty dywanowe, dokończyła Matka Natura. Hordzie zamarzła krew w żyłach: dosłownie, nie ze strachu.

(Słyszano też, że kilku pisarzy porzuciło swoje popularne serie o zombie i przeskoczyło w techno-thrillery, każdemu kiedyś zawiesił się komputer i mógł sobie wyobrazić jak zawiesi się ich wiele, wszędzie. Masy pożeraczy ciał nie straszyły już czytelnika, nie po tym jak widział, co z małym batalionem oszalałych człekokształtnych może zrobić kilka czołgów i wanna napalmu.)

* * *

Pozostał jeden problem. W jednej momencie świat stracił swój najpopularniejszy sport. Wychowanie następnego pokolenia piłkarzy potrwa, a może będzie nawet niemożliwe — dzieci mało się garną do sportu, gdzie w poprzednim sezonie prócz poważnej kontuzji można się było nabawić zupełnie realnej śmierci przez rozszarpanie.

Na szczęście FIFA jest organizacją, która nie poddaje się łatwo. Do krajów ogarniętych futbolową suszą popłynęły listy, a stało w nich:

FIFA, która mówi nie tylko „nie” dla rasizmu, czy „nie” katarskich łapówek, nie powie też „nie” dla życiowo usuniętych. Proponujemy waszemu rządowi program rehabilitacyjno–rehumanizacyjny. Dajcie mi waszych zmęczonych, dajcie mi waszych głodnych, a przede wszystkich tych, którzy byli futbolistami w poprzednim, świadomym życiu.

Zwrócimy im godność, damy im szanse uczestnictwa w życiu społecznym, zarobimy trochę dolarów.

PS. Podpisaliśmy już kontrakt z PEPSI na serię reklam „PEPSI OŻYWIA”.

* * *

Przed pierwszym Pucharem Z musiano zmodyfikować nieco zasady. Ze względu na ograniczenia motoryczne nowych zawodników zmniejszono boiska i bramki. Nie ma nic żałośniejszego niż szybki kontratak, który trwa pięć minut.

Arbitrzy mieli też przykazane żeby dyktować spalone częściej, nawet jeśli nie podobało się to straży pożarnej, która co chwila musiała dogaszać za daleko wysuniętego napastnika.

Pułapki „ofsajdowe” zostały zaostrzone.

Dogrywki kończyły się nagłą śmiercią.

Sędziowie otrzymali kewlarowe stroje.

Wrócono do zapomnianej już architektury stadionów, gdzie płytę boiska odgradzała od widowni wysoka siatka. Tym razem służyła do powstrzymania tych z murawy do wtargnięcia na trybuny.

* * *

Większości widzów się podobało, gra nabrała kolorów, nawet jeśli dominował czerwony.

Polska się nie zakwalifikowała.


Pixel Heaven 2014

Timex
2048

Zacznijmy historię chwilę przed końcem naszej przygody.

Zmierzamy na zachód.

Ja, Ola prowadząca samochód pod wpływem 230ml paskudnej kawy z automatu na stacji benzynowej oraz dwa śpiące na tylnym siedzeniu, pijane cherubinki, tg i Metal.

Uciekamy autostradą przed świtem niedzielnego poranka. Jest trzecia pięćdziesiąt siedem.

* * *

Kiedy obudziłem się dwadzieścia dwie godziny wcześniej, wiedziałem, że będę w paskudnym nastroju. Na biurku stał kufel z niedopitym piwem, znak piątkowej przesady. Wykopałem ze śmieci mniejszą torbę, tę, której używam w sytuacjach, gdy potencjalnie może się pojawić potrzeba dłuższego spaceru. Czasem ucieczki. Wcisnałem do niego trzy notatniki, dwa pióra: jedno za 5,25 PLN, czerwone i w wisienki, którego używam. I drugie, markowe, które noszę tylko dlatego, że otrzymałem je w prezencie, pół talizman, pół wspomnienie innego życia. Nadaje się też jako pojemnik na zapasowy nabój z atramentem.

* * *

Przed budynkiem biura ochroniarz, który palił papierosa, przywitał mnie skinieniem głowy. Nikomu się nie melduję, gdy wchodzę lub wychodzę. Budzenie ochroniarza, który śpi w swojej budce przy dźwiękach ujadania bojowego jamnika, doprowadziło do niepisanego paktu między mną i obsługą budynku. Don’t ask, don’t tell.

Wyjazd na Pixel Heaven się opóźnił. To normalne, już nawet się nie złoszczę, że ludzie nie stawiają sobie bycia na czas za punkt honoru. Zahaczyliśmy jeszcze o moje mieszkanie, gdyż przejęty pakowaniem piór zapomniałem papierosów, a tkwiąc od miesięcy w stanie bankructwa, muszę być ostrożny z folgowaniem swoim nałogom.

Podróż minęła bez większych wydarzeń. Droga Łódź-Warszawa po nowozbudowanej autostradzie jest szybka i nudna jak dania w budach McDonalda. Jedynej rozrywki dostarczył nam teleportujący się Węgier, który przeciął nasze koordynaty czasoprzestrzenne, gdy zatrzymaliśmy się na siku. Madziar pojawił się na chodniku i natychmiast zaofiarował nam okazję – noże kuchenne za jedyne 200 PLN. Metal zaoferował 15 PLN, na co cena spadła do 150 PLN. Targu nie dobito, a sprzedawca, korzystając z naszej nieuwagi, zniknął. Podobno widziano go obok stojących nieopodal tirów.

Odlałem się w krzakach obok darmowej toalety, ponieważ JP100%!

Parking obok miejsca, w którym miała się odbyć impreza, był zatłoczony. Wiedzieliśmy, że trafiliśmy na miejsce, obserwując znaczne nasycenie warszawskich ulic modelem samca, lat 27-40, ubranego wyjściowo w modelu tiszert/dżins, ironiczny zarost fakultatywny.

Innymi słowy, my. Nasi ludzie na ulicach, dookoła. Mogliśmy poprawić średnią, ale Olka powiedziała, że idzie Gdzie Indziej. Nie wiem, czy Gdzie Indziej to popularny klub, ale nie pierwszy raz słyszałem o nim z ust niewiasty.

* * *

I jesteśmy. Dookoła ludzie i hałas. Bilety kupiliśmy w drodze, więc jest dychę taniej na łebka. Do standardowego „badża” otrzymaliśmy gazetki, ale swoją zgubiłem dosłownie w minutę, nawet nie wiem, jak tego dokonałem. Nie będzie więc w tym tekście jej recenzji, poza stwierdzeniem, że jest ekstremalnie zgubywalna.

Impreza ma też program. Są różne gry i konkursy, przemawiają rozmaici matuzalemowie mediów komputerowych, są zaplanowane koncerty. I mam pewność, że nie zobaczę niczego z części oficjalnej. Powinienem iść i to wszystko oglądać, przyjechałem w sumie pod pretekstem uprawiania dziennikarstwa internetowego.

Organizatorzy stają przed problemem wbudowanym w samo jądro imprezy, której tematem jest technologiczne retro: duża część „naturalnej” widowni rekrutuje się z okolic demosceny komputerowej, a demoscena komputerowa nie jest na serio zainteresowana starymi komputerami. Ba, kiedy nadszedł schyłek „starej” sceny, dominującym hasłem zlotów było „Bo scena to nie tylko komputer”.

Ktoś bardziej cyniczny mógłby to przetłumaczyć jako „jak się tu najebać”.

W samym akcie upijania się wśród starych znajomych nie ma niczego złego, gdyby nie to, że niektórzy starają się odgrzać wspomnienia nastoletniej konsumpcji: rzucania butelkami, łapania przypadkowych pań za tyłki, bluzgania na starsze osoby i robienia ogólnego chlewu. Wtedy od razu chcę wyjść z kina, ale jestem tchórzem i sam przechodzę w tryb „kim ja jestem, żeby zwracać uwagę elicie sceny”. Wzruszam ramionami i staram się nawigować z daleka od ludzi, którzy zerwali się z paska dorosłości.

A kiedy jestem już bardzo zmęczony, idę na spacer.

* * *

Rozkopany brzeg Wisły wyłożony był betonowymi płytami, których układ przypominał przegraną sesję Tetrisa. Usiedliśmy na jednej z nich, tej w kształcie „L”, która idealnie nadaje się do ukrycia kontrabandy piwnej, uzyskując widok na bawiącą się na brzegu młodzież i stadion piłkarski, w miarę nowy model z Euro 2012 w biało-czerwoną szachownicę.

Zabawne, że człowiek czasem musi przejechać kilkadziesiąt kilometrów, zapłacić po 40 PLN od łebka, żeby iść gdzieś na betonowe płyty i porozmawiać o życiu z kimś, do kogo spacerem z biura mógłby dojść w 20 minut, góra.

Może to efekt Stolicy? Obaj mamy tu swoje historie, zasypane już piaskiem i obsiane brukwią. „Pamiętasz, kiedy jeszcze było dobrze” — a on protestuje — „Przecież jest dobrze”. Nie musi mnie oszukiwać, nikt, kto pije Łomżę Miodową, nie może mieć dobrze.

* * *

Robię kolejne podejście do party place. Przechodzę szybko rzędami, rzucając okiem na rozstawiony sprzęt. Sekcję Amigową szybko pomijam – wszystko wiem, wszystko znam, a pewnie ¼ wystawionego sprzętu stała u mnie w biurze, żebyśmy mogli grać w SWOS-a.

Znajduję za to Commodore 128D, komputer, który do dziś jest dla mnie najpiękniejszą szybkoliczącą maszyną, jaką wypuszczono w świat. Samo C128[D] było klapą. To tak jak z drugim albumem kapeli, która zadebiutowała genialną płytą dopieszczaną przez lata. Zrobić ośmiobitowy komputer po Commodore 64 to ciężka sprawa.

128D to mój DeLorean. Nie tylko przenosi mnie w przeszłość, ale też trzeba być prawdziwym koneserem, żeby rozpoznać technologiczny łabędzi śpiew.

Nigdy nie siadam przy moim wymarzonym komputerze. Rzucam mu tylko przelotny uśmiech. Wymyśliłem sobie, że będę w niego klikał, kiedy już zdobędę własny. Drogą zakupu, wyłudzenia lub morderstwa. Dzięki temu mam po co żyć.

Commodore
128D

* * *

Jedną z tradycji demosceny jest wynajdywanie miejsc położonych niedaleko właściwej imprezy, nadawanie im marketingowo słusznych nazw i zajmowanie ich w celach konsumpcji i wandalizmu. W tym przypadku był to niedaleki murek ogrodzony od ulicy krzakami, nazywany Pixel Hell.

Szukałem znajomych, a znalazłem coś lepszego. Pośród małego zgromadzenia klęczał Jon Hare i podpisywał seryjnie podsuwane mu pudełka gier, które jego firma, Sensible Software, wyprodukowała w złotych latach Amigi. Ominąłem tłumek i przez murek podałem mu rękę, a kiedy on — przyzwyczajony do fanów — odwzajemnił mój uścisk, powiedziałem to, co zawsze chciałem mu powiedzieć.

— Zniszczyłeś mi życie, Jon.

Mój angielski przełączył się w tryb „praktycznie zrozumiały” i zacząłem tłumaczyć, jak bardzo pochłonęła mnie wyprodukowana przez niego gra. Ile czasu, energii i wagarów kosztowało mnie rozpracowanie strzałów z trzech czwartych boiska, które wyciągały mnie z meczowych tarapatów.

— Dobry byłeś w SWOS-a? – zapytał.

— Tak myślałem, przynajmniej do czasu, kiedy nie zagrałem z ludźmi spoza mojej dzielnicy.

— Nie martw się – odpowiedział – w zeszłym roku zaproszono mnie na turniej w Niemczech i przegrałem wszystkie mecze.

Ha ha, śmiejemy się jak starzy koledzy. Część mojego mózgu próbuje mi wytłumaczyć, jak surrealistyczna jest sytuacja, w której plotkuję sobie z ikoną gier komputerowych, a on opala mnie z fajek.

Czas na ostateczne uderzenie. Mówię więc, że skoro już jestem w tej komfortowej sytuacji, to mogę też zmazać jeden ze swoich grzechów. Przyznaję się więc, że pomogłem skrakować jedną z wersji SWOS-a. W mojej obronie stają otaczający nas słuchacze – tłumaczą zmiany w prawie autorskim, dysproporcje w dochodach, brak dostępu do oryginałów, ogólną nieświadomość konsumentów itd. Znów wszyscy się śmieją, grzechy zostały odpuszczone przez najwyższą instancję. Hare sięga po kolejnego papierosa z mojej paczki, nachyla się do mnie i mówi:

— Teraz jest mi trochę mniej przykro, że zniszczyłem ci życie.

* * *

Ruszam znów na spacer. Muszę ochłonąć. Niedaleko znajduje się jakiś niezasiedlony budynek biurowy, którego schody idealnie wprost pasują pod mój tyłek. Siadam więc, rozkoszując się ciszą. Pociągam elektrolity z butli, jestem stary i zmęczony.

Z przeciwnej strony nadchodzi jakaś osoba, która po tym, jak zauważyła mnie na schodach, zaczyna powoli skręcać. Ojej, czy znów będziemy musieli odtańczyć taniec „Poznajesz mnie?”. W tym tańcu nigdy nie znam kroków i nie poznaję wielu ludzi, z którymi spędziłem wiele czasu, lata temu. To krępujące.

Osoba jest obca, pyta, czy może się przysiąść. Pewnie, że może. Moje zasady poznawania nowych ludzi są proste: jedna osoba, dobrze; dwie osoby, ech; trzy osoby, chcę wyjść. Siedzimy sobie na tych schodach, patrząc na kończący się powoli dzień, i rozmawiamy o demach. Zaczyna się od „w moich czasach mieliśmy tylko kamień i sznurek, a zobacz, jakie efekty się robiło”, tezy, z którą niezupełnie się zgadzam, ale potem znajdujemy równowagę między szacunkiem do tradycji i nadzieją, którą niesie przyszłość.

Zapytałem, chyba nawet bardziej siebie, czy my, którzy mamy tendencje do utyskiwania na współczesność, zrobiliśmy cokolwiek w sprawie edukacji tych, którzy przyszli po nas. I czy w ogóle jest jakaś szansa na powołanie tradycji, skoro wszystko, co mamy, to raptem trzydzieści lat komputeryzacji.

Nie znajdując odpowiedzi, wracamy na imprezę.

* * *

Znów biegam między grupkami znajomych, wypijam trochę wódki w krzakach z Jonem, ale moje wkurwienie z poranka zaczyna powoli sączyć się do krwiobiegu. Wszyscy są radośni, lekko pijani, wdychają ciepłe powietrze letniego wieczoru i rozmawiają głośno, poklepując się po plecach i udach.

To nie miejsce dla ludzi, którzy wydali już wszystkie żetony społecznej integracji i nie są zatankowani etanolem.

Znajduję knajpę i pytam, czy mają zwykłą, czarną herbatę. Mają. Osiem polskich nowych złotych. Trudno, azyl zawsze słono kosztuje. Wbijam się w ławkę na końcu sali, wydłubuję notatnik i staram się zrobić szkic notatki, zamiast której napisałem to, co czytacie.

Nagle zza rogu wychyla się głowa znanego scenowca.

— Opi, ty pracujesz?

— Nie, nie. Próbuję notatkę zrobić. Twój brat przywiózł mnie tu z takim przykazem. – Mówiąc to, pokazuję mu gestem notatnik z rzędami krzywych zdań.

— Jak to, zapisujesz tak? Na papierze, długopisem?

— Piórem. – Unoszę w jego kierunku stalówkę czerwonego pióra w wisienki.

Przez jego twarz przewija się wyraz autentycznego obrzydzenia. Widząc ten grymas, przez chwilę tracę dar mowy, a kiedy go odzyskuję, jestem znów sam. Tylko ja, notatnik i jakieś chujowe techno, które pozwala kucharzom przeżyć wieczorny dyżur.

* * *

Kiedy wreszcie udało się nam zebrać do odjazdu, nasza grupa wprost promieniała szczęściem. Odskocznia, stare, dobre czasy. Rozumiałem ich, ale te pozytywne emocje jakoś się mi nie udzieliły. Fatalnie jest jechać na imprezę w podłym humorze i zepsuć sobie samemu frajdę.

W drodze powrotnej zatrzymaliśmy się na stacji. W dwóch podejściach zakupiłem kawę dla Oli i po hot-dogu dla powoli usypiających na tylnych siedzeniach przyjaciół.

Pan na kasie powiedział, że „będę panu winien trzy grosze”. Zgodziłem się i powiedziałem, że upomnę się, gdy będę następnym razem.

Pewnie za rok.

IMG_4622


Korekta: Bianka Kowalewska
Zdjęcia: Świnioklub Schizerstwa Polskiego

PS. A czy Ty wiesz, że jest coś takiego, jak BeSquare, gdzie nadaję retro muzyczkę? Zacznij słuchać już dziś!


Kto zna języki ten ma wyniki

Życie gracza w pionierskich czasach komputerów było ciężkie. Czasem wstawałem dwa dni wcześniej, żeby zacząć ładować grę z kasety. Szanse na sukces były znikome, ale i wiara wielka. Potem sprawy obrały lepszy obrót i na popularności zyskały dyskietki.

Dzięki dyskietkom gry nie wczytywały się dużo szybciej.

Często gęsto gra nie mieściła się na jednej dyskietce. Czasem na dziewięciu. Rekordzistą był Quake I, który w pirackiej wersji zajmował dziewięćdziesiąt osiem dyskietek DD. Wraz ze wzrostem ilości dyskietek malała szansa na ukończenie gry. Przelicznik szedł mniej więcej tak:

1 dyskietka — nie ma problemu, pograsz.

2 dyskietki — prawdopodobnie pograsz.

3 dyskietki — rozważ zwycięstwo w zakładach sportowych Lotto.

> 3 dyskietki — przynajmniej jedna będzie uszkodzona przez kolegę, usiądziesz na niej, zalejesz ją keczupem i w ogóle zapomnij.

Nie tylko jednak świat materialny stawał nam na drodze do rozkoszy bycia graczem. Były też problemy intelektualne. A czasem w koordynacji ręka/oko. Głównie jednak dyskietki i znajomość języków zwanych obcymi.

Kiedy połączyć te dwa problemy to dostajemy gatunek gier, który ukochałem, gry przygodowe.

Gry przygodowe były morderczym połączeniem gór dyskietek (element fizyczny: co się psuje) z narracją polegającą na popkulturowych żartach, idiomach i powiedzonkach, które rozumieją tylko i wyłącznie ludzie wychowani w anglosaskiej kulturze. Czyli nie my w 1991.

Gry przygodowe były jak czekoladowa marihuana, palisz ją i zaczynasz cierpieć z powodu „gastrofazy” — wtedy zdajesz sobie sprawę, że smakuje jak czekolada, więc palisz jeszcze.

Spędzałem godziny grając w „przygodówki”. Najwięcej zdrowia i serca pozostawiłem jednak na karaibskich wyspach, gdzie wcielałem się w rolę Guybrusha 1, młodego potencjalnego pirata odbywającego bezpłatny staż w branży. Twoim zadaniem jest: skradzenie skarbu, zakochanie się w Gubernator Marley, wykopanie skarbu, pokonanie mistrza miecza 2, kupienie statku, skompletowanie załogi, odbicie ukochanej z rąk zombie-voodoo-kompletnie-złego pirata LeChucka.

Monkey-Island-SE-Wallpaper

W skrócie.

Mimo to serce automatycznie podskakuje mi z radości, gdy słyszę muzykę, która rozbrzmiewa po wczytaniu gry (oryginał, cover Press Play On Tape i [Meets Metal](http://youtu.be/lEHIwxGA17Y.

Jeśli mnie pamięć nie myli to pierwsza część mieściła się na czterech dyskietkach, co znaczyło, że prędzej czy później utkniesz gdzieś w środku zagadki. O ile nie utkniesz podczas rozwiązywania samych zagadek. Co przytrafiało mi się częściej, niż powinno.

Oto moje dwa „ulubione” zacięcia, każde z nich zajęło przynajmniej miesiąc.

Otis i guma o smaku grogu

scummvm00580

Otisa poznajemy jako więźnia na Scabb Island. Siedzi za kratami, marudzi i strasznie wali mu z pyska. Mówi, że to kwestia więziennej diety, której głównym składnikiem są szczury. Wymyśliłem sobie, że muszę go uwolnić (albo wydudkałem: wydedukowałem dukając obcy język). Niestety, Otis prosił o jakiś plik, którego nie mogłem znaleźć nigdzie na wyspie. Próbowałem mu podarować wszystkie kartki, które znalazłem, ale on tylko opryskliwie pytał, co ma niby z tym zrobić.

Pisałem kiedyś o tym, że najgorzej jest się źle nauczyć? Pisałem. Skąd pochodziła moja cała znajomść języków obcych? Z kreskówek i programów. I wszyscy wiedzą, że słowo „file” znaczy plik.

Znaczy też pilnik.

A Otisa nie uwalnia się nawet tym pilnikiem, kompletne oszustwo.

Bar, metronom i hipnotyczne banany

Wyobraźcie sobie sytuację. Znajdujecie się nad brzegiem wodospadu, który z jakichś powodów wyposażony jest w kurek. Kurka nie da się przekręcić ręką ani niczym, co posiadasz obecnie w swoich n-wymiarowych kieszeniach. Chodziłem więc od jednego końca wyspy po drugi, żebrząc o narzędzia hydrauliczne. Nikt się nie przyznawał do posiadania owych.

Wreszcie ktoś z moich kolegów się zlitował i podpowiedział: Idziesz do baru, gdzie na pianinie gra małpa. Widzisz metronom wybijający rytm? Zasadź nań banana, którego znalazłeś wcześniej. Wzrok małpy podąży za bananem i w efekcie otrzymasz zahipnotyzowanego grajka. Schowaj go do kieszeni. Spokojnie, w przyszłości, grając w Simon The Sorcerer, schowasz drabinę do kapelusza, małpa w kieszeni to zero wyzwania.

Zanieś małpę nad brzeg wodospadu. Użyj małpy na kurku.

Hej, właśnie dowiedziałeś się, co to jest monkey wrench!

  1. taki dżołk, animowane pędzle na Amidze miały rozszerzenie .brush (ponieważ DOS i 8+3 saks, ha ha) i animacja przyszłego protagonisty nazywała się guy.brush
  2. na docinki, to materiał na osobną notkę prawie

Poważnie nie na żarty

Zając

Przez zielony las skacze sobie zajączek i podśpiewuje wesołą przyśpiewkę:

— Pojebane misie, pojebane misie.

Nagle przystaje w pół słowa. Zajączek zdaje sobie sprawę, że z nieznanych nauce powodów potrafi nie tylko myśleć abstrakcyjnie, ale posiadł też zdolności lingwistyczne. Wyciągnął przednią łapę i niezgrabnymi ruchami narysował na piasku kilka symboli.

Wyprostował się i spojrzał na swoje dzieło. W jego mózgu ułożyło się zdanie: „Nieźle przejebane!”. Podwójne przekleństwo.

Na polanę wkroczył miś, grzecznie odchrząknął i zapytał:

— Co mówiłeś zającu?

— Co to za różnica? Nie rozumiesz misiu, ktoś nam dał dar mowy i myśli tylko po to, abyśmy stali się marionetkami w jego rękach; narzędziami do opowiadania historii, puentą, wyrażeniem opinii autora.

— Hmm — zamyślił się miś — wszystko to, co mówisz, jest prawdą. Mimo to odpowiada mi moja rola antropomorficznej personifikacji bezmyślnej przemocy.

— Nieźle przejebane — pomyślał zajączek kiedy światło jego życia gasło w wyniku dekapitacji.

Majty

Do knajpy wchodzi Polak, Rusek i Niemiec. Zamawiają dwie wódki i trzy piwa. Siadają przy stole i zaczynają rozmawiać o swoich żonach, ponieważ komediowe historyjki do opowiadania muszą wspomagać heteronormatywną komórkę społeczeństwa, rodzinę.

Zaczyna Niemiec:

— Moja Stara, to ma taką wielką dupę, że jak siedzi na kanapie to najwyżej dwa jamniki mieszczą się jej po bokach.

Po czym podejmuje Rusek:

— Phi, moja Stara to jest dopiero…

Tu przerwał mu Polak:

— Słuchaj, nie uważasz, że to idiotyczne tak siedzieć i gadać o dupach? Powiedz lepiej co Wy, obywatele Rosyjscy, macie zamiar zrobić z erozją instytucji demokratycznych w Waszym kraju. Sytuacja na Krymie powoduje napięcia wśród europejskich koalicjantów, mimo obrazu jedności każdy kraj ma indywidualne cele i potrzeby: ekonomiczne i wizerunkowe. Coraz ciężej będzie nawigować pomiędzy geopolitycznymi interesami możnych. Chcemy Wam pomóc wyprowadzić Wasz region na prostą, zanim przyjdą Indio-Chiny i zjedzą naszą gospodarkę. I fakt, Twoja stara ma wielką dupę.


Wszyscy powieszeni w galerii

Ostatnie dwa dni pomagałem w przygotowywaniu instalacji artystycznej potrzebnej mojej przyjaciółce do obrony pracy dyplomowej. Dziś miałem okazję nadziać się przemykające się po korytarzach gromadki profesorów, którym przypadło zadanie przepytania dyplomowych petentów z „co autor miał na myśli” i „ile sztuki w sztuce”. Zawsze zastanawia mnie, co można powiedzieć o kolekcji fotografii wykonanych szerokokątnym obiektywem.

Kiedy ktoś pyta mnie o motywy wyprodukowania kawałku tekstu lub zdjęcia zwykle wymieniam „fajne”: fajne kolory były, fajny pomysł miałem, było fajnie. Kiedy słucham studenta, odpowiadającego na pytanie o swoje dzieło mam wrażenie, że odpowiedź „zrobiłem, bo mi się podobało” jest praktycznie przyznaniem się do amatorstwa, a może nawet umysłowej cepelii. Jak to? A gdzie dramat ludzkości na przełomie wieku? Galopujący dysonans przecięty czarnym ostrzem monochromatycznej fotografii?

Aleksandra
Korszuń

Nie słucham nigdy zbyt długo, cierpię na schorzenie, które można opisać jako cyniczna empatia. Czuję wewnętrzne konwulsje słuchając umysłowego galopu artysty, to moja empatyczna część. Ta cyniczna widzi, że to taki teatr pozorów: pytania są tak samo bez sensu, jak i odpowiedzi. I znów przełączam się na empatię: czuję, że wszyscy robimy się tu w chuja.

Jestem sceptyczny co do procesu tworzenia, który sugeruje takie odpytywanie. Nikt nie myśli: wykonam pięćset, może sześćset kroków, a kiedy usiądę na ławce, to będzie spacer do parku. Przespacerowałem się w ramach protestu przeciwko zanikającej zieleni miejskiej, co łatwo odczytać z faktu, że siedzę w parku i palę fajkę.

Bez wątpienia wszystko ma swoją myśl założycielską. Nie jest to zwykle coś wybitnego, coś, co jest gotowe do podania wprost z mikrofali. Raczej kawałek pomysłu, który rzucasz na stół i okładasz swoim artystycznym narzędziem tak długo, aż przez przypadek lub w wyniku „skradzenia” dostateczniej ilości dobrych, już wykonanych, pomysłów masz coś swojego. Teraz możesz do tego dopisać mit i już masz sztukę, a nie hobby!

Przykładowo, moja poprzednia notka o pamięci. Emil staje w obliczu przemijającego życia, które jest odmierzane przez cyfrowe serwisy archiwizujące bezlitośnie jego porażki. A tak na serio: idąc do domu, zapisałem to „zdanie”.

Notatka z
Keep

Ktoś pomyśli, że jestem niesprawiedliwy wobec sztuki. To samo myślałem kiedyś na zajęciach z plastyki. To był tydzień, czy może miesiąc, pierwszych prób wyłożenia ekoświadomości młodym ludziom, którzy nie mogą dawać mniejszego faka. Praca miała mieć oczywiście temat związany ze zmianami w ekosytemie. Spędziłem dobre 40 minut, walcząc z najbardziej żałosnym zestawem farbek, które składały się głównie z kurzu i wody. Pracowałem uczciwie, a siedzący obok mnie przyjaciel gadał coś o masturbacji albo Terminatorze. Może o obu rzeczach naraz. Kiedy pani plastyczka rzuciła „proszę pokazać prace”, Marcin umoczył pędzel w czarnej farbie i w przeciągu dziesięciu sekund narysował słońce, razem z oczkami i buzią, która była wykrzywiona.

– To oddasz? – zapytałem.
– Jasne, wkurwione słońce – odpowiedział.

Stał za mną w kolejce do oceny. Trzymałem mój malunek, który ze względu na ilość wody, miał kształ blachy falistej i równie dobrze komunikował ekologiczne zagrożenia. Dostałem trzy plus. Podszedł Marcin i usłyszałem:

„Cóż za ekspresyjne dzieło, nie myślałem, że potrafisz patrzyć tak perspektywicznie, Marcinie. Ciemne słońce niszczy naszą planetę, niejako w geście zemsty! Piątka!”

Może noszę tę zadrę zbyt długo w sercu. Może sztuka to totalna bzdura.


Pamięć absosmutna

Im bardziej przyszłość staje się naszą teraźniejszością, tym mniej przeszłość zostaje w cieniu historii. Brzmi jak bełkot, prawda? To moja hipoteza, którą wydumałem, robiąc ostatnio porządki na dysku laptopa.

Emil sprzed 25 lat istnieje głównie w podaniach i na kilku zdjęciach uwieczniającego go jako uczestnika zdarzeń. Emil sprzed dziesięciu lat zostawił już lepiej widoczny odcisk. Kilka rzeczy, które budował, działają do dziś. Różne serwisy archiwizujące zawartość Internetu pozwalają wydłubać jakieś doskonale suche teksty.

Emil sprzed roku, około popołudnia, szedł sobie w kierunku Castoramy, witając pierwszy prawdziwie wiosenny dzień 2013. Mogę nie tylko sprawdzić jego „każdy krok”, ale nawet zerknąć na to, co widział.

![śniek](https://fuse.pl/beton/wp-content/uploads/2014/03/snow.png)

Wracając do sprzątania na dysku, ważyłem poszczególne foldery w Dropboksie. Katalog Camera Upload, którego chyba nigdy wcześniej nie otwierałem, ważył kilka giga. Zerknąłem do środka, wybrałem pierwsze zdjęcie z brzegu i zacząłem rytmicznie naciskać spację.

Impreza za imprezą, wyjazd za wyjazdem, przeprowadzki biura, spotkania i rozstania. Uwiecznione, poukładane, z metadanymi wskazującymi długości i szerokości geograficzne. Wiele rzeczy, których nie warto pamiętać, kilka, które wolałbym zapomnieć.

Nie tylko zdjęcia i mapy powodują, że mogę postawić znak równości między wczoraj a dwa lata temu. Każdy serwis internetowy buduje sobie awatar na moje podobieństwo i stara się, abym pamiętał.

„Cześć, jestem kolejnym śmieciowym e-mailem z LinkedIn. Chcesz się może zakumplować z tym gościem, co robiłeś biznes, który tak spektakularnie się wyjebał? Nie? Przypomnę Ci pojutrze!”.

„Możesz znać także: Była dziewczyna, chłopak byłej dziewczyny, uciążliwy kolega z dawnych lat, który ciągle stara się zaprosić cię na piwo, mimo że nie masz mu nic do powiedzenia”.

W dyskusji o prywatności pojawia się czasem opinia, że należałoby dać obywatelowi opcje do „bycia zapomnianym”. I jest to bardzo słuszna koncepcja, mogę sobie wyobrazić, jak wyglądałyby moje cyfrowe wspomnienia, gdyby przez całe moje nastoletnie życie każdy mógł strzelić mi fotkę, nagrać klip, a każda sprzeczka została zarchiwizowana w brzuszku Faceboga.

Nic nie stoi też na przeszkodzie, żebym wyłączył synchronizację zdjęć, żebym wyłączył usługi lokalizacyjne na telefonie, kasował z kontaktów ludzi, z którymi nie mam zamiaru się już stykać. Przynajmniej nic racjonalnego. Irracjonalny facet w mojej głowie mówi, że „w przyszłości się może przydać” i obaj wiemy, że to kłamstwo, ale na tyle dobre, że mogę w nie uwierzyć.

Idealnie zachowana historia zabija nostalgię. Pamiętasz, jak w przeszłości byłeś szczuplejszy, ładniejszy, pisałeś bardziej ambitny kod i mniej piłeś? No, fotografie i repozytorium kodu mówią co innego.

W rysunkach satyrycznych często używana jest postać, która otoczona armią butelek „pije, by zapomnieć”. Postuluję zmianę puenty: „Pije, bo pamięta.”


Krótki róg

drogaDlugaJest

Nosiłem się z zamiarem napisania wielkiego tekstu o piłce nożnej. Ilekroć wracałem do tego pomysłu, z notatnika przyglądały mi się litery, które układały się w wielkie „nie uda się raczej”. I raczej się nie udało. Nie umiem skompresować tej wiedzy – jakże zbytecznej – otwierając truizmem o popularności sportu wynikającej z niewielkiej ilości sprzętu potrzebnego do jego uprawiania (podpowiem: starczy piłka), wplatając w to opis holenderskiego futbolu totalnego, przecinając studium socjologicznym o stadionowym chuligaństwie, i kończąc – no, nawet w notatkach nie dobrnąłem do zakończenia.

Mogę jednak napisać o jednym.

Większość z nas zaczyna karierę piłkarską od aklamacji dowolnego placu, którego nachylenie nie przekracza „TIR by nie podjechał zimą”. Po aklamacji dzielicie się na dwie drużyny, a w tych drużynach na role. Jak wszyscy neofici padacie ofiarą narracji sukcesu. Aby uzyskać prawdopodobny skład takiego kolektywu należy policzyć uczestników, usunąć z tak uzyskanego zbioru jednego, a potem nazwać ich wszystkich napastnikami. Napastnik, szpica, snajper, dziesiątka. Każdy chce być dziesiątką, Messim, Pele, Ronaldo, twarzą z okładki, katem drużyny przeciwnej. Tą jedną osobą, którą wyjęliśmy poza nawias, jest bramkarz.

Bramkarza bardzo często rekrutuje się z nizin koleżeńskich. Ktoś za gruby, za brzydki, za chudy, ktoś, kto nie ma dobrych jeansów i jest raczej na doczepkę. Czasem, w sytuacji gdy wszyscy napastnicy-bramkostrzelcy zajmują zbliżoną pozycję w grupie wprowadzany jest system rotacyjny: co gol nowa ofiara.

Zostałem bramkarzem raczej w wyniku tego pierwszego. Miałem za to ukrytego asa w rękawie: zawsze chciałem być bramkarzem.

Chciałem być bramkarzem, bo nikt nie chciał być bramkarzem. Dla kogoś, kto unika konfliktów taka opcja wydaje się być manną z nieba. Byłoby jednak niesprawiedliwe, gdybym pominął wkład dziadka, który opowiadał mi o chłopakach z okolicy, którzy „stali na budzie”. O Młynarczyku, o Tomaszewskim. No i Genzo Wakabayashi.

Nie pamiętam szczególnie tych pierwszych meczy. Jestem pewien, że nie wiedziałem, co robię. Jednak robienie czegoś źle z olbrzymim uporem powoduje, że stajesz się lepszy. Po latach dochodzę do wniosku, że właśnie ten brak lęku przed kompromitacją w obliczu nowego był kiedyś moim zbawieniem.

Czym jest bycie bramkarzem? Najbrutalniej ujmując jesteś zawodnikiem, którego jedynym celem jest zablokowanie skórzanej kuli zanim przekroczy ona swoim całym obwodem linię narysowaną za prostokątem o wymiarach 7 metrów i 32 centymetry szerokości na 2 metry 44 centymetry wysokości. Musisz to robić zdecydowanie i starać się jak najmniej przy tym ucierpieć.

Jedno i drugie jest niemożliwe.

opi_hitBycie bramkarzem ma wbudowany fatalizm. Nie jest pytaniem, czy ktoś cię pokona, tylko kiedy. I jak wielka będzie przy tym twoja wina. Ten stary żart o saperze, który myli się tylko raz, zupełnie się nie przekłada. Podczas meczu możesz pomylić się nie raz, często katastrofalnie w skutkach. A im bardziej się mylisz, tym bardziej się wkurwiasz. A im bardziej się wkurwiasz, tym bardziej się dekoncentrujesz. I popełniasz kolejne błędy.

Nadchodzi jednak moment, kiedy to wszystko zaczyna nabierać sensu. Dla mnie tym momentem była pierwsza parada. Nie był to jakiś wybitnie mocny strzał i nie leciał daleko ode mnie. Pomyślałem do siebie „TERAZ!” i przewróciłem się w kierunku piłki z wyciągniętą ręką. Lecąc zamknąłem oczy. Piłka, jak to ma w zwyczaju, po napotkaniu ręki ubranej w najmodniejsze rękawiczki budowlane skradzione ojcu odbiła się i spokojnie wytoczyła na rzut rożny. Otrzepałem się i napotkałem wzrok kolegów z drużyny. Ktoś powiedział: Zrobiłeś to jak prawdziwy bramkarz!

Jak prawdziwy bramkarz!

Do dziś czuję, że to jedyny komplement składający się z słów „jesteś jak prawdziwy X”, który mogę przyjąć bez cynizmu. Wprowadziłem na nasze boisko Nową Jakość: bycie piłkołapem nie było już tylko zajęciem dla leszczy. Bycie bramkarzem znaczyło, że odbijasz piłkę w powietrzu!

Nigdy nie zaszedłem daleko w mojej sportowej karierze. Nie urosłem na tyle żeby być efektywny 1, nie byłem wystarczająco utalentowany, no i ostatecznie bitwę o mój czas wygrał komputer. Nigdy jednak nie zapomnę urywków meczy.

Kiedy wybiega na ciebie zawodnik przeciwnej drużyny, twoja obrona właśnie odkrywa, że to nie był najlepszy czas na dłubanie w nosie, a ty masz tylko te ułamki sekund na decyzję i piętnaście metrów kwadratowych obramowanej dziury do zakrycia. Więc biegniesz jak idiota, starając się wcisnąć pod buty napastnika tylko po to, żeby zobaczyć, jak unosi nogę do strzału. Piłka trafia cię jak pocisk i rykoszetem spada pod nogi drugiego z przeciwników, który podążył za atakiem. Pół pełznąc, pół idąc, na czworaka starasz się dopaść piłkę przed nim.

Zdeprymowany zawodnik, widząc nawiedzonego wariata pełznącego w stronę piłki, strzela z całych sił i chybia. Kładziesz się wtedy twarzą do ziemi i wdychając pełne płuca piasku myślisz do siebie: „kurwa, ale się udało”.

I chwile mniej chwalebne. Kiedy biegniesz po linii, mając w głowie potencjalną interwencję i nagle ktoś posyła piłkę w drugą stronę. Jesteś przegrany. Martwy. Prawdopodobnie strzelą ci też gola. Stanąłeś na „wykroku”, cały ciężar twojego ciała spoczywa na nodze, która nie jest teraz potrzebna do interwencji. Nigdy nie zdążysz na czas. Obserwujesz mijającą cię piłkę i łudzisz się, że jej adresat spieprzy tak jak ty. Ale nie. Strzela. Skurwysyn strzela piętką. Miał wystarczająco czasu, żeby się ogolić i zjeść obiad.

Najgorzej jednak dostać piłkę „za kołnierz”. Wybiegłeś przed pole bramkowe, chcąc przeciąć podanie, i nagle znajdujesz się w sytuacji, gdzie strzelec ma wystarczająco czasu, żeby posłać piłkę parabolą. Piłka minie cię w najwyższym punkcie i spadnie do bramki. I choćbyś nawet spektakularnie wybił się w powietrze, wyciągnął się jak struna i rozczapierzył palce, to piłka cię minie. Możesz też spróbować obrócić się i zacząć biec w kierunku gola, ale wygląda to komicznie i prawie nigdy nie działa.

Bycie bramkarzem jest jak bycie człowiekiem. Wszystkie twoje błędy zostaną wytknięte z nawiązką, wszystkie sukcesy będą uznane za „robiłeś, co do ciebie należy”, część porażek sprokurowali ci leniwi koledzy, a prawdziwa chwała przypada nielicznym.

Lepiej zostańcie napastnikami.

~~Tekst poszedł bez kurekty. Do tego nie działa mi połowa klawiszy i spędziłem część nocy czekając aż będę mógł napisać ‘t’ lub ‘h’. Frustrujące. Korektę przyjmuję drogą elektroniczną, a~~Korekta baj Kya + Shot. Za wszystkie przecinki i leterówki przepraszam z całego serca. Jeżeli lubicie historie z boiska to możecie rzucić okiem na inną notkę, Lato.

  1. choć mam o tym ciekawą anegdotę, którą może opowiem innym razem

Jedni pchają, inni ciągną

Rozważmy hipotetyczną sytuację: chcemy się napić z kolegą. Sytuacja ta jest hipotetyczna dla części z Was, dla innych to czwartek, 11:30. Mamy dwa scenariusze.

Scenariusz pierwszy

Wsiadasz w komunikację miejską, pokonujesz n przystanków. Wysiadasz. Wchodzisz na klatkę i łomocesz do drzwi. Kolega otwiera, a na pytanie o wspólne picie mówi, że jeszcze od wczoraj mu nie zeszło. Wracasz więc do domu, rzucasz palto i czekasz cały kwadrans. Zakładasz palto i wsiadasz w komunikację miejską. Wysiadasz, klatka, a kolega nadal to samo. Jaki debil.

Wracasz, wstawiasz wodę, zjadasz torebkę Sagi i wpijasz duszkiem wrzątek. Kierowca komunikacji miejskiej kiwa Ci głową i pyta, czy tam, gdzie zwykle. Tam. Tym razem nikt nie odpowiada. Jedziesz do szpitala na płukanie żołądka po herbacie Saga. Wsiadasz w komunikacje miejską, siedzący obok Syzyf kręci głową z dezaprobatą.

Dwa dni później kolega otwiera ci i zaprasza szerokim gestem. Wypijasz kolejkę i wsiadasz po kwadransie w komunikację miejską.

Scenariusz drugi

Wsiadasz w komunikację miejską, pokonujesz n przystanków. Wysiadasz. Wchodzisz na klatkę i łomocesz do drzwi. Kolega otwiera, a na pytanie o wspólne picie mówi, że jeszcze od wczoraj mu nie zeszło. Mówisz

– To weź zadzwoń jak ogarniesz, OK?
– Dobra

Kolega dzwoni i jedziesz się napić.

Pierwszy scenariusz ssał, nie tylko jako sposób na życie, ale także jako metodologia. W podobny sposób zachowuje się wiele aplikacji klienckich.

  1. Odczekaj interwał
  2. Sprawdź, czy jest nowa poczta
  3. Jest? Jeśli jest, zapisz. Nie? Idziesz na start, nie otrzymujesz \$200.

W drugi przypadku mówimy o Push. Pewnie zauważyliście, że Wasz mądrytelefon albo tablet piszczy niecierpliwie natychmiast po otrzymaniu wiadomości? To dlatego, że serwer po otrzymaniu informacji, które są dla konkretnego klienta informuje go o tym fakcie. Nie ma więc interwału pomiędzy przychodzącą wiadomością, a „świadomością” klienta o tym fakcie.

Gdybyście projektowali jakąś prostą aplikację, gdzie jest wyraźny podział między częścią serwującą dane, a klientem możecie wprowadzić proste modyfikacje, które pozwolą Wam uniknąć tej całej komunikacji publicznej via TCP/IP.

Serwer powinien móc zapisać ścieżkę „do oddzwonienia” dla konkretnego klienta. Kiedy pojawia się nowa informacja, serwer opakowuje nowe dane i przesyła je do klienta, który może natychmiast zareagować. Przykładowy dialog:

– Klient: Dzień dobry, to moje dane autoryzacyjne
– Serwer: OK, widzę. Czego?
– K: Jak pojawi się coś dla mnie to zapamiętaj, że masz to wysłać na http://bronikowski.com/flaszka/
S: Pamiętam. Idź już.

A potem:

– S: O, są nowe informacje o flaszkach, których wg dostępnych logów nie słałem do klienta. Gdzie to słać? A, tam.
– K: O, dane!

Notkę napisałem głównie żeby się zawstydzić, bo znów zaprojektowałem coś, co robi Pull. Jestem leniwym i durnym draniem, ale to już wiedzieliście.


16 do zajezdni

Wsiadam. Jedzie do domu. Przystanek przy białym kościele. Dwóch pijanych zrywa się do wyjścia. Trzeci siedzi. Próbują go przekonać, że jego dom jest geograficznie usytuowany w przeciwną stronę do ruchu tramwaju.

Negocjacje trwają. Po dwóch minutach wreszcie udaje się przekonać najbardziej zawianego, wysiadają a my ruszamy. Propsy dla motorniczego za cierpliwość.

Przystanek przy MNC. Tylimi drzwiami się gramoli się kolejna parka. Ten mniejszy szybciej, ten większy wolniej. Kiedy większy osiąga ostatni stopień grawitacja wygrywa i zaczyna wypadać przez drzwi, głową do tyłu.
Jego kompan łapie go za marynarę, a ja rzucam się ze środka tramwaju i wciągam go za rękę.

Uratowany ewidentnie uważa tę interwencję za zniewagę i chce się bić. Mówię, że nie mam czasu (wysiadam za dwa przystanki). Siedzący przede mną facet uśmiecha się i wymieniamy jakieś niezobowiązujące uwagi na temat przypierdolenia potylicą o przystanek.

Dobijam do mojego przystanku, razem ze mną wysiada rozmówca. Podchodzi do mnie, klepie mnie po plecach i mówi:

  • Masz refleks!

  • No, trochę mam.

  • Pewnie grałeś w ping-ponga.


A Ty (prze)siej: imapfilter

Co jest najlepszą rzeczą na świecie? Zgnieść swoich wrogów, zobaczyć ich u Twoich stóp i Inbox Zero. – Konan z księgowości

Uwielbiam e-maile. Czytać, ale przede wszystkim pisać. Dla poczty elektronicznej byłbym w stanie poświęcić wszystkie inne usługi.

Jakiś czas temu jechałem gdzieś pociągiem i wdałem się w konwersację o przedstawieniu teatralnym Terminator II, który używa wyimków ze sztuk Szekspira do opowiedzenia znanej wszystkim historii o gołym robocie w barze dla motocyklistów. Debatowałem z amerykańskim Koreańczykiem z Bostonu. Za każdym razem wyobrażałem sobie jak te dane zapieprzają po dnie Oceanu, te wszystkie EHLO i RCPT TO. Robię się niepoprawnie romantyczny wobec technologii, która zbliża ludzi i pozwala im się kłócić o trywialne popkulturowe rzeczy.

Do dziś mam w szpargałach swój pierwszy e-mail, który wysłałem do autora gry Fundation, Paula Burkey’a.

Ponieważ tak wysoko cenię sobie moją skrzynkę prowadzę nieustanną walkę o jej godność i cześć.

Ostatnio ostatecznie porzuciłem Gmaila jako operatora mojej prywatnej skrzynki 1. Zmiany w UI, a przede wszystkim zmiany w edytorze wiadomości nie pozwoliły mi zostać. To jak uczyć się całe życie kaligrafii i otrzymać kredkę świecową złamaną w ¾ długości i papier toaletowy do robienia notatek.

To zrodziło jeden problem: filtrowanie wiadomości.

Skrzynka u Googla rozwiązywała problem. Ustawiasz filtry i bez względu na sposób dostępu do e-maili (IMAP, czy też aplikacja) wszystko było „na miejscu”. Zwykłe konta pocztowe nie posiadają takiej funkcjonalności, a przy liczbie urządzeń na których czytam pocztę konfigurowanie wszystkich klientów byłoby robotą głupiego. Na szczęście rozwiązałem ten problem już jakiś czas temu: imapfilter to małe narzędzie napisane w Lua, które pozwala na „zdalne” filtrowanie kont pocztowych. Z małym, nerdowskim twistem.

Gdybym popatrzył w Wasze filtry to pewnie trafiłbym na większość w formacie:

„Jeżeli nadawcą jest X przesuń do Y”

To oczywiście sprawdza się doskonale dla ludzi, którzy nie biorą swojej poczty tak serio, jak ja. Na ten przykład przeczytane wiadomości zalegające w skrzynce są mi obrzydliwe. Tak samo jak wybieranie ich jak rodzynków z ciasta i zanoszenie do folderu z archiwum. I tu wchodzi nerdowski twist, plik konfiguracyjny imapfilter to po prostu kawałek kodu w Lua. To praktycznie taki DSL do filtrowania wiadomości.

current_year = os.date("%Y")
target_archives = "Archives." .. current_year
private.INBOX:select_all()
old = private.INBOX:is_seen() * private.INBOX:is_older(1)
old:move_messages(private[target_archives])

„Hej, znajdź mi wiadomości w Inboksie, które są przeczytane i starsze niż z dziś, rzuć je do Archives.2013 jeśli jest 2013, dzięki ziom.”

Czy macie święte soboty? Ja mam. W sobotę mam tylko jeden tryb, „pierdolę, nie robię”. Wskaźnik nieprzeczytanych e-maili spędza mi jednak sen z powiek. Na szczęście:

 day_of_week = os.date("%w")
 if day_of_week == 6 then
   gtfo = work.INBOX:is_unseen()
   gtfo:move_messages(work['GTFO'])
 end

Macie klienta, który pisze do Was na niewłaściwy adres? Jeżeli oba konta są zdefiniowane w konfiguracji możecie przesunąć e-mail pomiędzy skrzynkami. Jedyne ograniczenie cudów, których możecie dokonać ze swoją skrzynką to wasza wyobraźnia i znajomość Lua. Tak, to znaczy, że nie ma limitów. Wraz z pakietem imapfilter przychodzi konfiguracja, którą można bez problemu zaadaptować na swoje potrzeby. Jeżeli macie tak jak ja i spędzacie dużo czasu rozwiązując problemy, które nie istnieją poza waszymi głowami to macie zabawę, na przynajmniej jeden dzień. Jeżeli uważacie, że nie ma nic głupszego niż spalać godziny życia na budowanie systemów filtrowania poczty, które dałyby pierwszą erekcję panu Rube to potraktuj to jako krótką przygodę z Lua.

Dokąd stąd?

Strona projektu imapfilter Programming in Lua, książka do której zerkałem podczas dłubania Przykładowe konfiguracje: Prosta i trochę bardziej zawiła

  1. mam dwa adresy e-mail, jeden dla wszystkich, drugi dla bliższych osób

Widzę szuje więc szyfruję: encfs

Wróćmy na chwilę do szyfrowania. Pisałem niedawno 1 o kryptografii asymetrycznej i GPG. W artykule wspominałem jak kłopotliwym problemem w kryptografii jest system, który da się „odemknąć” znając tylko jeden sekret: hasło. Niestety, w normalnych okolicznościach zawsze dochodzi do zderzenia między ideami a rzeczywistością. Wyrazem tego ilorazu jest narzędzie, które chciałem dla Was pokrótce opisać.

encfs to krypto-pseudo-system-plików w przestrzeni użytkownika.

Rozwijając nieco to karkołomne zdanie, encfs umożliwia stworzenie wirtualnego napędu przez każdego użytkownika systemu, który nie został pobłogosławiony przez administratora systemu pełnymi prawami (nie jest w /etc/sudoers, nie zna hasła roota). Wszystkie pliki umieszczone w folderze zamontowanym przez encfs podlegają szyfrowaniu przy użyciu klucza, którym jest hasło ustawione przez użytkownika.

Praktycznie znaczy to tyle, że folder źródłowy zawiera pliki, których zawartość jest nie do odczytania dla osób postronnych 2.

Kiedy pierwszy raz trafiłem na to rozwiązanie pomyślałem, że będzie to praktyczne rozwiązanie pozwalające mi ukryć moje pliki wideo w których dinozaury pieprzą samochody 3 przed oczami postronnych osób, które trafią przypadkowo na mojego laptopa. Później zdałem sobie sprawę z jeszcze lepszego zastosowania: szyfrowanie danych w Dropboksie.

Dropbox używa szyfrowania danych, ale osobiście znajduję ich zabezpieczenie bezużytecznym: to oni mają klucze. Wiemy to z absolutną pewnością: gdyby nie mogli zerknąć do naszych danych nie mogliby też zbudować interfejsu webowego, gdzie mamy do nich dostęp. Bez względu na rodzaj stosowanej kryptografii Dropbox jest sejfem, który ma klucz pod wycieraczką.

Natura encfs daje nam idealne narzędzie, które możemy połączyć z Dropboksem i ukryć przynajmniej część informacji. Dodatkowym plusem jest fakt, że tak współdzielony katalog możemy bez problemu zamontować na drugim komputerze, a zmiany dokonane na nim propagują się idealnie.

encfs jest zwykle dostępny w repozytoriach Dobrych Dystrybucji. Może działa też na OS X via homebrew. Pewnie nie działa na Windowsie.

Po instalacji musimy się upewnić, że nasz użytkownik ma dostęp do grupy fuse. Możemy to sprawdzić w następujący sposób:

$  groups
emil cdrom floppy audio dip video plugdev netdev fuse scanner bluetooth

Teraz nie pozostaje nam nic innego jak stworzyć nasz szyfrowany system plików:

tmp $ encfs /tmp/zrodlo /tmp/szyfrowany_dysk [ref]zwróć uwagę, że ścieżki być absolutne[/ref]
Katalog "/tmp/zrodlo/" nie istnieje. Utworzyć? (y,n) y
Katalog "/tmp/szyfrowany_dysk" nie istnieje. Utworzyć? (y,n) y
Tworzenie nowego zaszyfrowanego wolumenu.
Proszę wybrać jedną z pośród niżej podanych opcji:
 wprowadź "x" aby uruchomić tryb konfiguracji eksperta,
 wprowadź "p" aby wybrać preinstalowany tryb paranoiczny,
 jakikolwiek inny znak, lub pusta linia spowoduje wybranie trybu standardowego.
?> p

Wybrano konfiguracje paranoiczną.

Konfiguracja zakończona. Tworzony system plików
będzie miał następujące własności:
Algorytm szyfrujacy system plików: "ssl/aes", wersja 302
Kodowanie nazwy pliku: "nameio/block", wersja 3:0:1
Długość klucza: 256 bitów
Rozmiar bloku: 1024 bajtów, włącznie z 8 bajtami nagłówka MAC
Każdy plik zawiera 8-bajtowy nagłówek z unikatowymi danymi IV.
Filenames encoded using IV chaining mode.
File data IV is chained to filename IV.
File holes passed through to ciphertext.

[...]

Nowe hasło EncFS: 
Potwierdź hasło EncFS:

Wybrałem konfigurację paranoiczną i Wy też powinniście. Manualna konfiguracja jest dla ludzi, którzy nie mają nic lepszego do roboty. Wolumin jest już zamontowany i szyfruje. Wszystkie pliki przegrane do /tmp/szyfrowany_dysk zostają odtwarzane w swojej zaszyfrowanej formie w /tmp/zrodlo.

tmp $ cd /tmp/szyfrowany_dysk/
szyfrowany_dysk $ dmesg > dmesg.txt
szyfrowany_dysk $ ls -l dmesg.txt 
-rw-r--r-- 1 emil emil 54881 gru 15 21:24 dmesg.txt
szyfrowany_dysk $ cd /tmp/zrodlo/
zrodlo $ ls -l
razem 56
-rw-r--r-- 1 emil emil 55329 gru 15 21:24 ppfVDlRysmXqpOOqaolF2kF7

A jak spiąć to z Dropboksem?

$ encfs ~/Dropbox/myp0rn ~/Documents/VeryImportant

I ot, cała magia. Jesteście teraz w posiadaniu „bezpiecznego” folderu, który może podążać za Wami ze wszystkimi plikami, który nie pokazalibyście Waszym Matkom.

Ta notka miała być moim debiutem w świecie demonstracji audio-wizualnych. Niestety po raz kolejny stchórzyłem słysząc własny głos. Pozostał mi tylko nieprzycięty i niemy materiał na którym demonstruję wszystko, o czym pisałem wyżej.

Możecie pobrać plik źródłowy lub rzucić okiem na YouTube.

EDIT (2014-3-12): Niezależny audyt EncFS wskazuje kilka problemów z aplikacją.

  1. „niedawno” biorąc pod uwagę cykl wydawniczy tego internetowego czasopisma
  2. „nie jest” to oczywiste kłamstwo, zawsze mogą Wam połamać palce prosząc o hasło
  3. Wujek Dobra Rada: nie googlajcie

Kocpiskr

Działo się to w najlepszej z krain. Krainie, gdzie pomarańcze są wielkie jak głowy, a głowy obywateli też są większe, wypchane pomysłami. Niedaleko granicy, w przytulnym studio pełnym kreatywnego rozgardiaszu, wygodnych foteli i sieci bezprzewodowych o identyfikatorach tak pomysłowych, że od śmiechu bolała głowa, pomieszczenie biurowe podnajmował biedny właściciel firmy rozbiegowej. Nasz bohater nie miał na świecie nikogo – żadnego mentora, żadnego kapitalisty wysokiego ryzyka, nawet liczbę ludzi w jego sieciach społecznościowych można było policzyć na palcach jednej ręki.

Niezrażony tym budził się ze snu, by zapadać w sen na jawie, sen o przyszłych sukcesach jego platformy do sortowania grochu: Kocpiskr. Wiedział, że każdy, nawet najmniejszy krok przybliża go do celu, dlatego z pokorą przyjmował przeróżne prace, do których zmuszali go inni właściciele firm rozbiegowych. Właściciel studia zamykał go czasem na noc w budynku, by produkował slajdy do prezentacji dla innych rozbiegowych firm, w które zainwestował ciężko odziedziczone dolary. Siedział więc tak, załamywał ręce, bo musiał pracować z PowerPointem, a brzydził się używać plebejskiego systemu Windows i pisał, składał, podkręcał memetyczność, wklejając rozmaite zdjęcia kotów.

Nigdy nie otrzymał za to słowa podzięki, nikt nie zaoferował mu swojej wizytówki.

Nocami, gdy zbierało mu się na łzy, czytał notki na blogach innych rozbiegowców, a tytuły mamiły przyszłością: „Twój pierwszy milion klientów”, „Podnoszenie cen zwiększyło dochód”, „Jedyna droga to IaaPaaSoM” 1. Och, być jak oni, ci, którym się choć trochę udało!

Pewnego pięknego dnia gruchnęła wiadomość: władca lokalnego inkubatora innowacyjności organizuje wielki bal, na którym będzie można poznać przyszłego inwestora. Wszyscy z dostatecznie dużą listą e-mailową powinni stawić się na wezwanie. Zapanował straszny rozgardiasz: chętni rozbiegowicze wydzierali sobie z ręki o numer za małe koszulki, potłuczono kilka par okularów bez szkieł, bardziej zaskoczeni próbowali po cichu i w kącie zapuścić w ekspresowym tempie ironiczny zarost. Gdy wiadomość dotarła do autora Kocpiskr, który dziś dostał wyrok pracy w kuchni, jego serce zabiło szybciej. Teraz albo nigdy!

Kiedy nakrywał do stołu dla innych najemców studia, zatrzymał się na chwilę przy gospodarzu. Ten zmierzył go od stóp do głów i szczeknął: Tak?

Bo ja – zaczął stremowany – chciałem też iść na bal, ten w lokalnym inkubatorze. Wydrukowałem nawet wizytówki – wyciągnął zza pleców szare zawiniątko i trzymał je przed sobą jak tarczę – i chciałbym poznać kogoś, kto pomógłby mi w rozwiązaniu światowego problemu nieprzebranego grochu.

Wydech.

Właściciel ułożył twarz w grzeczny gryśmiech, grymas uśmiechu, który komunikuje, że następne słowa, jakie wypowie, nie będą ani zabawne, ani nawet uprzejme.

– Ho ho, ty? Ukaż no nam swoją stronę, na której lądują żądni rozwiązań klienci! Ile masz nazwisk na swojej liście do beta testów? Słyszeliście? – zwrócił się do niemrawo zbierającej się gromady – Gość chce iść z nami!

– Jako kto? Rozbiegowicze nie potrzebują takich ludzi jak ty. Prawda, że napisałeś Kocpiskr w PHP? Ma sens, chujowy projekt w chujowym języku! – ocenił lokalny ekspert od estetyki programowania – Czasem miną tygodnie zanim napiszę jedną linię kodu. Sztuki nie należy popędzać! Na ramieniu, oprócz syrenki i kotwicy, wytatuował sobie maksymę swojego życia: „Code is poetry”. I wszystko, co koduje, się mu rymuje. Największy jednak jest ambaras, by nazwa klas była tej samej wody, co nazwy metody.

I gdy ośmieszała go lewa strona stołu, prawa zanosiła się śmiechem. Tak samo po zmianie polaryzacji. Na końcu było coś o tym, że nigdy nie znajdzie kapitalisty wysokiego ryzyka, z którym mógłby podzielić się akcjami, ale on już nie słuchał, myślami był przy rozbiegowym samobójstwie, spokojnej pracy w biurze pośród plotek i romansów, gdzie największym problemem jest odwieczny katar przekazywany sobie między działami.

Kiedy zapadł zmierzch, budynek opustoszał. Przy jednym ze stołów świeciła się lampka, przy nim siedziała zmęczona postać, która przeciągała palcem po zostawionej przez resztę liście TODO. Na brzegu stołu stał otwarty laptop. Odpalony edytor, niedokończona linia w index.php błyszczała na czerwono. Niedomknięty nawias, brak średnika.

– Ach, gdybym mógł iść na bal – westchnął do siebie – zamknąłbym wszystkie nawiasy, ponaprawiał wcięcia, miałbym cel.

Nagle rozległ się dźwięk dzwonka. Potem drugi. I głośne przeklinanie. Bohater podszedł do drzwi, przyłożył ucho i – nie słysząc dalszych hałasów – uchylił lekko.

Na progu stał jakiś facet i przyglądał się uważnie podeszwie swojego buta. Stojąc w tej pozycji, uniósł głowę i powiedział z wyrzutem:

– Co się pan gapisz, w gówno wdepnąłem.

– Kim pan jest, jeśli wolno zapytać?

– Możesz mi mówić Dem. De jak Deus, E jak Ex, Em jak Machina. Agencja pracy bezpośredniej zatrudnia nas do, jakby to powiedzieć, przekładania zwrotnicy torów, po których toczą się losy bohaterów. Chyba. Przynajmniej to mam w umowie-zleceniu.

– Aha.

– No tak właśnie. I chciałbym Ci pomóc, oferując to, co mogę najlepszego.

– Czyli?

– Praktycznie nic. Inni mają w budżecie sportowe samochody z warzyw i wyszukane ciuchy, ja osobiście specjalizuję się w cynicznych monologach. Pozwolisz, że zacznę od razu, jest późny wieczór, człowiek chciałby się napić i nie myśleć o pracy.

Dem przestąpił próg i pociągnął młodego kodera za rękaw, usadził go na pierwszym fotelu, wyciągnął papierosa, zapalił i przez chwilę popatrzył pół metra nad głowę swojej ofiary, jakby rozważając, gdzie najpierw ma zatopić nóż szczególnie cynicznej uwagi.

– Po pierwsze myślicie, że wypadliście samemu Stwórcy spod ogona. Holy shit. Każdy z was, ty tu i oni tam, myślą, że świat na serio potrzebuje ich wkładu. Nie, nie myślicie; macie niezbitą pewność, że świat byłby dużo gorszym miejscem bez was. Ta pewność bije z was jak promienie gamma, niszcząc wszystko dookoła, a gdy zbieracie się do kupy, to eksplodujecie jak wielka bomba atomowa sloganów. Mitologię zmyślacie na bieżąco, czerpiąc z nieistniejących mitów lub dobrze zatuszowanych fałszerstw. Nawet nie jesteście tak utalentowani, jak o sobie myślicie. Zobacz, napisałeś pieprzony formularz. Używając przeglądarki, której byś nie stworzył, która działa na systemie, którego nie rozumiesz, który używa protokołów, których byś nie zaprojektował, używając sprzętu, który w ogóle wymyka się świadomości. Ciężko sobie wyobrazić większą bufonadę niż ludzi ślizgających się po powierzchni cudzych dokonań, ludzi mających przekonanie, że to oni tak naprawdę to wszystko domknęli. Postawili kropkę i podpisali się zamaszyście. Jak wojskowa parada dzieci z obdartymi galotami, trzymających swoje pistolety-patyki dumnie prężących piersi do orderów za bohaterskie czyny. Jak podwórkowe drużyny walczące na rynku transferowym, gdzie twardą walutą są kapsle. Że też wam łby nie jebną pod naporem zmyślonej wagi waszych dokonań.

Dem wzruszył ramionami, dając znak, że to koniec. Potem zaciągnął się szybko papierosem i dał znak dłonią, że jeszcze chwila.

– I wiesz co, ja nie wiem, po co ty tu w ogóle siedzisz? Kazali ci zostać? Przecież w oczach Stwórcy wszyscy jesteście równi, oscylujecie w okolicach zera. Idź, zabaw się, rozdaj wizytówki, poszalej. Nie potrzebujesz strojów, nie potrzebujesz zaproszeń, musisz być tylko arogancki. Ale pamiętaj! – Dem uniósł palec ku niebu – Wróć przed dwunastą!

– O dwunastej czar pryśnie?

– Nie, ktoś tak nieobyty nie da rady dłużej wśród zawodowych pijaków. Zapamiętaj moje słowa.

Za Demem zamknęły się drzwi. Dało się zza nich jeszcze usłyszeć ostatnie bluźnierstwo i odgłos szurania butem z podeszwą w gównie.

Taksówka zatrzymała się przed oświetlonym budynkiem. Dookoła przelewała się rzeka ludzi. Z boku stała kolejka do promocji – rejestracja w serwisie za darmową toksykologię krwi. Przez otwarte drzwi słychać było wrzawę. To podekscytowani, pijani ludzie handlowali pomysłami.

Wizytówki przemykały z rąk do rąk. Ludzie łączyli się w pary i przyciszonym głosem rozmawiali o niszowych rynkach będących w zasięgu ręki. Ktoś położył dłoń na ramieniu nowoprzybyłego.

– Kocham, kurwa, fasolę. Fasola, człowieku, to są konopie 2014!

– Przepraszam, chyba mnie pan z kimś pomylił, jestem autorem Kocpiskr, platformy do liczenia grochu. To moja wizytówka.

– Groch, fasola czy jebane mandarynki, detale. To wszystko są strąkowce.

– Są?

– Niech się o to martwi marketing! Tu chodzi o bycie pierwszym na rynku. Widzę w tobie przyszłość, mój chłopcze. Z kimś takim mogę nawet zatańczyć piwota.

– Zatańczyć piwota?

– Choćby i jutro. Cokolwiek. Groch nie idzie? Robimy jeb, ciach, zostawiamy backend, robimy frontend i uruchamiamy subskrypcję na cokolwiek.

– Jak to, na cokolwiek?

– Cokolwiek, rzuć jakiś okropny pomysł!

– Szklane pantofelki?

– Idealne! Zero przepuszczalności powietrza, wywrotka może się zakończyć przecięciem kilku żył, nie da się ich naprawić. A my je co?

– Co?

– A my je pakujemy w slogan: dla aktywnych i odważnych, robimy miesięczną subskrypcję i wartość dodaną, ubezpieczenie, którego można użyć u ortopedy. Win-kurwa-win!

– To bardzo dobry pomysł – ale co z liczeniem grochu? Chciałem się skupić na tym.

– Nie możesz się tak przywiązywać do jednego pomysłu, zrób MVP, niech, ja wiem, coś liczy. I dalej dobrniemy. O, zobacz, która to godzina. To co, po kolejeczce pod ten deal?

Ranek wdarł się przemocą do świata naszego bohatera. Najpierw zlokalizował się na mapie świata. Przy maksymalnym zbliżeniu były to krzaki. W rękach trzymał wizytówki. Rozpoczął powolną drogę do pozycji wyprostowanej i jeżeli można coś powiedzieć, to tyle, że poszło mu lepiej niż Australopitekowi. Rozejrzał się powoli. To będzie długa droga do domu.

Po tygodniu poszukiwań inwestorzy go odnaleźli. Linię szklanych pantofelków kupiło Yahoo!

Jeżeli podobał ci się ten kawałek tekstu możesz zbadać Dramat 2.0. I jeszcze praprzyczyna notki.

  1. Infrastructure as a Platform, as a Service, on Mobile

Automaty i empatia

Pisałem program magazynowy. Dziś też piszę i przypomniało mi się, że pisałem. Pomiędzy magazynem, farbiarnią i produkcją ginął materiał. Całe bele materiału. Kierownictwo chciało sobie ten problem jakoś poukładać i wymyślili, że może wgląd w obecne stany i nazwiska ludzi odpowiedzialnych za daną operację pozwoli im wyłowić, kto gubi te setki złotych. Przyjechałem z notatnikiem, zapisałem ich biznesowy „kejs”, przespacerowałem się po pomieszczeniach, powiedziałem, że wpadnę za dwa tygodnie z jakimś prototypem, żebyśmy mogli dalej.

Wpadłem, potem pojechałem. Minął miesiąc, drugi, trzeci i ostatecznie miałem coś, na czym można było przeprowadzić szkolenie. Pierwszy etap, magazyn surowców, mieliśmy gotowy do wdrożenia. Usiadłem w konferencyjnej, wymieniłem uprzejmości z dwoma szefami, zrobiłem im krótką demonstrację; podali kawę i słone paluszki, czekaliśmy na pracowników, których miałem szkolić.

Wreszcie pojawił się główny magazynier. Bardzo wysoki i szczupły, prawie tyczka obleczona w niebieskie ubranie robocze, ściskał w rękach kapelusz i nerwowo obracał go za rondo, jak klisza „chłop u jaśniepaństwa”.

Posadziłem go przed komputerem i zacząłem tłumaczyć koncepty: tu jest nawigacja, tu jest sesja, hasło i użytkownik, stany, „proszę się nie martwić, tu wspieramy transakcje” i kiedy tak mówiłem, moje samozadowolenie rosło. Gdy już unosiłem się balonem nad mahoniowym stołem, zobaczyłem, jak szkolony przeze mnie pracownik próbuje użyć myszki do przesunięcia wskaźnika. Zrozumiałem, że przez ostatnie pół godziny mogłem mówić w innym języku, uzyskując identyczny rezultat. Trochę wystraszony sytuacją, w jakiej się znalazłem, spróbowałem podejścia bezpośredniego: wskazywałem palcem elementy, opisując je, a potem mówiłem, co należy zrobić dalej. Szło okropnie.

Magazynier cofnął nagle krzesło, odwrócił się w kierunku stołu, zza którego moje wysiłki edukacyjne podziwiali szefowie i powiedział: „Panie prezesie, czterdzieści lat pracuję na magazynie, ja się tego nie nauczę. Proszę mnie zwolnić. Przepraszam, proszę mnie zwolnić. Do widzenia.” – wyszedł, zostawiając mnie zamrożonego z palcem uniesionym w kierunku monitora, na którym pewnie wskazywałem ważną ikonę. Po chwili jeden z prezesów, widząc moje totalne zagubienie, podszedł do mnie, poklepał mnie po ramieniu i powiedział, że nic się nie stało, że będzie ciężko i że zadzwoni, jak obgada sprawę z pracownikami.

Spotkaliśmy się jeszcze dwa razy, ale mimo zatrudnienia młodego pomocnika, który miał zdjąć z magazyniera obowiązek walki z techniką, projekt upadł. Tamtego dnia straciłem do niego wszelki zapał; pierwszy raz poczułem, że moje grzebanie w literkach ma realne przełożenie nie tylko na stan mojego konta, ale także na życie ludzi, których mogę nawet nigdy nie spotkać i jego jakość.

Innym razem pisałem wyszukiwarkę prostytutek. Śmiałem się z przyjaciółmi, że jak robię zrzut bazy, to mam jak w Matriksie: „brunetki, blondynki, rude”. Kolor włosów był jednym z parametrów wyszukiwania. Do dziś pamiętam spotkanie z klientami, którego elementem była ożywiona dyskusja, jak oznaczymy rozmiar piersi. Literkami, numerami? Ktoś rzucił, że „mieszczą się w dłoni” –­ nie śmiałem się, ale powiedziałem „ha ha”.

Tak sobie myślę: czy my, autorzy tych różnych gówienek, mamy w ogóle jakiś kod moralny? Gdzie jest nasze „po pierwsze nie szkodzić”? Czy powinienem pośrednio wspierać stręczycieli tylko dlatego, że jestem krok dalej i robię tylko zapytania SQL? Czy w micie programisty-kowboja, który sam jest sobie prawem, sądem, katem i debuggerem, jest miejsce na jakieś zawodowe rozterki? I nie mówię tu o osobach, które parają się pisaniem malware czy innego draństwa, mówię o „dobrych gościach”, którzy spokojnie piszą kod robiący komuś gorzej.

Ktoś pisze te filtry internetu, ktoś pisze kod budujący fantomowe profile na Facebooku, ktoś implementuje behawioralne pułapki w grach typu „pierwsza działka za darmo”.

Może nadszedł już czas (albo nadszedł tak dawno temu, że nawet taki gość jak ja zaczyna zauważać problem), żeby popytać wśród nas samych: „czego nie zakodujesz za pieniądze?” i zastanowić się nad popularnymi pozycjami? Mam przeczucie, że głoszenie moralności w softwareowym El Dorado nie spotka się z pozytywnym odzewem.

Zostaliśmy handlarzami broni, ale nie wyglądamy tak dobrze w garniturach.


Emil czyta #3

emil

Odcinek trzeci, spóźniony. Poszedłem z Bartkiem na długi, dwudziestokilometrowy spacer i zrobiłem sobie dziurę w nodze. Dziura boli mnie brakiem, a braku nie mogę zapełnić nawet mocnymi proszkami. Dlatego od razu przepraszam, że zdania będą poszarpane.

„Baer’s Odyssey: Meet the serial inventor who built the world’s first game console”

Słowo „innowacja” odmieniane jest przez wszystkich marketingowców. O! Innowacja! Kogo, czego nie ma? Innowacji. Jednym, tak jak bohaterowi artykułu, przychodzi ona łatwiej niż innym.

„We Are a Creative Agency Specializing in All Your Branding Needs.”

Agencja kreatywna „Syzyf” podejmie się każdego zadania.

„On Getting Drunk in Antarctica”

Co mogę dodać do tytułu, który mówi „O Chlaniu Na Antarktyce”? Na zdrowie i nie sikajcie na dworzu pod wiatr.

J.K. Rowling and the Chamber of Literary Fame”

Dobra wiadomość: jakość nie przekłada się na widownie, brakuje Ci głównie szczęścia. Zła wiadomość: brakuje Ci głównie szczęścia.

„Fuck the Super Game Boy”

Pięcioczęściowa seria artykułów o konsoli Super Game Boy. Od sprzętowo-programistycznych sztuczek pozwalających uzyskać więcej niż cztery kolory na ekranie po powód, dla którego należy go pieprzyć.

„Top Myths of Renaissance Martial Arts & Swords”

Bullshido, ale na miecze.

W następnym odcinku: wideo! 1 Próbuję od dwóch tygodni przełamać się i zostawić ścieżkę dźwiękową z moim głosem. No nie da się. W następnym następnym odcinku długi, dydaktyczny tekst o Chmurze. Wcześniej leki przeciwbólowe na bazie opiatów.

  1. wideo!!11omgwtf

Emil czyta #2

Witajcie w drugim, możliwe że ostatnim, odcinku „Emil czyta”. I od razu praktyczna porada: nie biegajcie z butelką piwa i tabletem w tej samej przegródce torby/plecaka. Nie wiem ile lat nieszczęść sprowadza stłuczony ekran, ale z pewnością nie ułatwił mi zebranie tej listy.

„Open Waters”, Simon Winchester

Esej o Oceanie. Oceanie jako kolebce życia, grobie statków, wielkim nieznanym.

„Alan Moore: the revolution will be croud-funded”, Scott Thil

Autor takich klasycznych komiksów jak „Watchmen” i „V for Vendetta” wierzy w moc sprawczą Kickstarterów i niezależność autorów.

„Nothing like this will be built again”, Charles Stross

Podróż w paszczę reaktora atomowego.

„The Animator”, Michael Slater

Fantastyczny esej o Dickensie, znawcy londyńskiej mgły i organizatorze związków zawodowych otwieraczy mięczaków.

„On Git’s shortcomings”, Peter Lundgren

Jaki jest Git każdy widzi. Z pozycji ludzi o filozofii podobnej do Linusa wygląda jak miliard dolarów. Inni będą kręcić nosami na niektóre rzeczy.

„If Films Were Reviewed Like Video Games”, Dennis Farrell

Najważniejsze, że frame-rate w ostatnim przeboju był stabilny, a aktorzy nigdy nie wychodzili z kadru.

„Historia niebieskiej tasiemki”, Michał Łaszczyk

Sport wyczynowy to 90% treningu, 10% szczęścia i jakieś 17% guseł, zaklęć i fatalnej voodoo medycyny.

„Prison Break”, Karrie Jacobs

Nie wiem nic o architekturze. No, może te kolumny i rozety. Nieforemna perła. Artykuł próbuje odpowiedzieć na pytanie, czy architekci powinni projektować więzienia. Zawsze fascynuje mnie, gdy ktoś na serio próbuje podjąć dyskusję o etykę zawodową. W tym świecie pytanie „czy powinniśmy?” wydaje się prawie nie na miejscu. Chyba, że uściślone „za ile?”.

„Your First Short Story Speaks”, Peter Kispert

Odradzam czytanie tego tekstu ludziom, którzy bawią się w pisanie.

„I Look Good in My Pork Pie Hat”, Ryan O’Neill

To są teksty dla których żyję. Nic nie wnoszące, trzy piąte zmyślone, teksty o kapeluszach.

Mods


Emil czyta #1

8165693058_b5fbe3aaf5_c
(cc) Sam Howitz

Bardzo ciężko jest być moim bliskim znajomym. Nie tylko dlatego, że zapraszany się nie stawiam, a nieproszony dzwonię do drzwi, trzymając torby foliowe pełne brzęczącej radości. Chodzi też o moje „dzielenie się linkami”. Nie ma dnia, żebym komuś nie podesłał odnośnika do jakiegoś tekstu. Większość osób przepytana ze znajomości treści przyznaje, że skasowała od razu i robi to od lat. Ci o miękkim sercu twierdzą, że odłożyli na później.

Jestem tym absolutnie niezrażony. Przez lata zmieniałem formy, słałem do przyjaciół poranne e-maile zawierające ciekawą prasówkę (wstawanie o piątej ma ten plus, że daje dużo czasu na spokojną lekturę), wieszałem je po społecznościówkach, drukowałem i zostawiałem w kiblu ludziom, którzy zostawili swoje telefony na biurkach i tym samym zostali skazani na lekturę naklejki na środku dezynfekującym. Kilka razy przeszło mi przez myśl zrobienie specjalnego blożka z linkami, ale potem zorientowałem się, że ktoś mógłby nazwać mnie „kuratorem treści w Internecie” i byłoby mi przykro, że upadłem tak nisko, nie ruszając się nawet z fotela.

Mniejszym złem będzie jedna notatka tygodniowo. Na weekend. Nie na „specjalnym blożku”, ale tu. Kilka odnośników. Krótki opis. Miałem więcej pisać, a taki półautomatyczny tekst pomoże mi w utrzymaniu rytmu.

Zaczynamy, Emil czytał, sezon pierwszy, epizod pierwszy, scena!

„Art of Translation”, Nabakov

http://www.newrepublic.com/article/113310/vladimir-nabokov-art-translation

Złe tłumaczenia bywają zabawne i zajmujące. Wszyscy wspominają legendy o Łaziku i krzatowych kaloszach. Najmniej rozbawieni wydają się autorzy, których dzieła przepuszczone są przez magiel kiepskich tłumaczeń. Nabakov poucza, grozi i wydaje się momentami okładać swoją twarz palmami. 1

„Drugs and the Meaning of Life”, Harris

http://www.samharris.org/blog/item/drugs-and-the-meaning-of-life

Czym są narkotyki, czym są odmienne stany świadomości. Jak o nich rozmawiamy, jak o nich myślimy. O mechanice i biochemii używania.

„Jim Patterson: Black Soviet Icons Lonely American Sojourn”

http://rianovosti.com/analysis/20130611/181603045/Jim-Patterson-Black-Soviet-Icons-Lonely-American-Sojourn.html

Kilka lat temu Microsoft wpakował się w jedną z setek wpadek „piarowskich”. Seria reklam (chyba) pakietu Office zamieszczona w polskich gazetach wycięła głowę czarnoskórego biznesmena, a na jego miejsce wstawiła łeb bardziej aryjski. Świat odebrał to jako rasizm, a ja w kuluarach tłumaczyłem zagranicznym znajomym, że w Polsce nadal pokazuje się czarnoskórych palcami i że są oni nowinką w każdym mniejszym mieście. To pragmatyczne działanie ze strony Microsoftu mówi więcej o nas, obywatelach, niż o zleceniodawcy zmiany reklamy.

Tytułowy Jim Patterson jest nie tylko czarnoskórym amerykańskim poetą, ale także dziecięcą gwiazdą rosyjskiego kina z lat 30-tych. Nie ma czego więcej dodawać.

„The Top F2P Monetization Tricks”, Ramin Shokrizade

http://www.gamasutra.com/blogs/RaminShokrizade/20130626/194933/The_Top_F2P_Monetization_Tricks.php

Model „free to play” (zwany przeze mnie „pierwsza działka darmo”) jest promowany wśród autorów aplikacji mobilnych jako ten, który przynosi największe korzyści finansowe. Gazety co i rusz dostarczają nowej, łamiącej serce historii o dziecku, które zakupiło wirtualnych rybek za tysiące dolarów. Autor analizuje najpopularniejsze metody wyciągania pieniędzy z niczego niespodziewających się graczy i naświetla problemy związane z takim podejściem.

„A few words on Doug Engelbart”, Bert Victor

http://worrydream.com/Engelbart/

Nazwisko Engelbart nie jest pewnie obce żadnemu z entuzjastów komputerów. Czy jego pomysły da się zamknąć w „wynalazca myszki komputerowej”?

  1. Specjalnie, redakcję prosimy o powstrzymanie się od poprawek

Czerwone śmierdzi zbukiem

Ostatnio dużo rozmyślam o szczęściu. To normalne: spragnieni chcą wody, głodni posiłku, a nieszczęśliwi się wygadać. Próbowałem wrócić do momentu, kiedy byłem świadomie szczęśliwy; bycie nieświadomie szczęśliwym, pijanym, zaćpanym, czy po prostu wsiąść do tramwaju pięć minut przed ulewą, jest łatwe.

Kiedy jesteś szczęśliwy, świadomie widzisz miejsce, w którym nie byłeś, a teraz jesteś. A kiedy już znów przestaniesz, bo świat jest kiepskim brokerem i zwykle przychodzi grać z parą dziewiątek, możesz zaznaczyć to miejsce, by móc wrócić do niego w noc, kiedy nie możesz zasnąć, a książka, którą czytasz, ma w pierwszym rozdziale śmierć księdza i nic nie wydaje się dość dobre.

Ostatnio dużo rozmyślam o szczęściu i próbuję destylować je tak, żeby móc zakupić odpowiednie składniki w markecie, a potem stanąć o odpowiedniej godzinie i w odpowiednim miejscu, powiedzieć „O! To tu”.

Najłatwiej jest znaleźć takie chwile w młodości, młodość jest zawsze w trybie samoczynnego rozgrzeszania. Każda zła historia zakończona „ale miałem wtedy naście lat” zyskuje status przypowiastki, ludowej mądrości, nauki, z którą można iść przez życie. Historia, o której pomyślałem, nie jest zła, jest zwyczajnie głupia. Jest szczeniacka i niewinna. I ma wyraźną zakładkę, na której mogę odczytać „świadomie szczęśliwy”.

Było wczesne lato, wakacje stały się już częścią naszej świadomości. Jeszcze coś zadawali, ale nikt już się nie martwił, poza tymi, którzy musieli poprawiać oceny. Byłem w tym podwójnie szczęśliwy, gdyż lekcji zwykle nie odrabiałem, a rok kończyłem z bardzo dobrym świadectwem. Pierwszy raz w życiu. Po szkole poszliśmy na rowery. Ja i sześć dziewczyn z naszej klasy. Tu mógłbym praktycznie skończyć, bo jako niezbyt popularny dzieciak, który bawił się w komputery i miał tylko jedną podkoszulkę z Van Dammem, nie mogłem trafić lepiej. Nawet teraz, gdy to piszę, wydaje mi się, że kłamię.

Prawa narracji są jednak nieubłagane i niedaleko lokalnego domu kultury, w którym puszczali nam pirackie wersje „Rybki zwanej Wandą” 1 i „Jurassic Park”, mojemu rowerowi odpadł pedał. Nic, co można naprawić. Chwilowo wstrzymany peleton koleżanek otoczył mnie, a ja myślałem tylko, jak wybrnąć z tej sytuacji, która za chwilę pozbawi mnie tej jedynej okazji na bycie zaakceptowanym nie tylko jako wartościowy bramkarz (numer dwa w szkole, ale tylko dlatego, że nie miałem serca prosić o strój i broniłem w rękawicach ochronnych dla budowlańców podkradanych Ojcu) i znawca asemblera 6502, ale jako kolega z którym można iść na rower.

Nie znajdując rozwiązania, zaciągnąłem rower w krzaki i z determinacją oświadczyłem, że mogę bez problemu biec obok. Zimą trenowałem zwykle lekkoatletykę, bo bronienie bramki na skamieniałej ziemi nie należało do przyjemności. Byłem pewny siebie. Po kilometrowym podjeździe rozpocząłem proces znany tylko fizjologom zajmującym się polskim sportem: oddychałem rękawami i marzyłem o możliwości szybkiego wyrzygania się w krzakach. Determinacja warta lepszego celu pchała mnie jednak do przodu. Kiedy dziewczyny wreszcie się zatrzymały, a ja doczłapałem na wpół martwy, podpierając się na wietrze, zebrałem nawet kilka komplementów. Pewnie coś w stylu „dobrze, że nie umarłeś”, ale mógłbym im potakiwać choćby i pół godziny. Tyle mniej więcej – zgadywałem – potrzeba, żebym mógł zrobić następny krok.

Podczas mojej (usprawiedliwionej) nieobecności wśród koleżanek narodziło się kilka pomysłów na dalszy ciąg dnia. Część chciała wracać na jakiś serial, jedna stwierdziła, że jest w sąsiedztwie swojej babci i złoży jej niezapowiedzianą wizytę. Ostatecznie na placu pozostałem ja i Julia, która stwierdziła, że pojedzie do Moniki po zeszyty do chemii. Monika mieszka rzut kamieniem ode mnie, zaproponowałem więc, że pobiegnę. Popatrzyła na mnie tymi swoimi oczami i powiedziała, że jest zbyt zmęczona, aby jechać taki kawał, ale możemy pojechać razem na jednym rowerze. Ach, ta cudowna Julia. Dlatego się w niej kochałem. Wszyscy się w niej kochali. Jechaliśmy więc, ja skoncentrowany na trasie, w stanie, który będę mógł nazwać dopiero w przyszłości, po pierwszych eksperymentach z narkotykami i ona, z czarnym warkoczem do pasa, opalona na oliwkowo, opowiadająca o jakiś zatargach z przyjaciółką.

Operacja „Zeszyt” przebiegła sprawnie, Monika, od której zawsze się odpisywało, przywykła do traktowania swoich zeszytów jako dobra publicznego. Julia wyszła przed bramę, gdzie czekałem, imaginując sobie, że ten dzień mógłby być lepszy tylko gdyby zza rogu wyskoczył na mnie trener seniorskiej drużyny ŁKS-u i powiedział, że podziwia mnie i chce, abym stanął między słupkami.

To było kilka zeszytów. Julia zapytała mnie, czy mam gdzie je przechować. Wzruszyłem ramionami. Po nieudanych próbach z kieszeniami szortów uniosła palec ku niebu w geście triumfu pomysłowości nad materią. Złapała za podkoszulkę, przytrzymała ją brodą i wsadziła zeszyty za szorty. Zapytała, czy jedziemy. Trawiłem jeszcze przez chwilę ostatnie dziesięć sekund. Wykreśliłem trenera ŁKS-u z listy życzeń na dziś. Przytaknąłem.

Jechaliśmy więc, odprawiając rytuał zgadywania, jakiego koloru będzie mijany ściek wielkiej fabryki farbującej ubrania. „Śmierdzi zbukiem” – powiedziałem – „Zbukiem śmierdzi czerwony”. Lata praktyki. Wreszcie zdobyłem się na odwagę, zwolniłem, żeby móc słyszeć dobrze odpowiedzi.

– No, tego. Czy Ty dziś nie założyłaś biustonosza?
– Co? A skąd wiesz?

Po chwili dostałem kuksańca i musieliśmy zatrzymać się, żeby się wyśmiać. Poprosiła, żebym nikomu nie mówił. Zgodziłem się. Dlatego teraz zapisuję to dla kilku tysięcy ludzi. Ale miałem wtedy naście lat.

  1. Aleśmy się zaśmiewali z motywu „Nie dotykaj jego kutasa”, wychowawczyni mniej

1000+

Umarł król, niech żyją książęta. Książęta i lokalni wasale, gentlemani z własnymi armiami, przyszli zdobywcy wypalonych pól i wieśniaków, którym z podartych portek wystają brudne tyłki.

Mówię oczywiście o nadchodzącej śmierci króla, wyłączeniu Google Readera. Kiedy Google ogłosiło datę pogrzebu, internetowi komentatorzy wylali morza hypertekstowego atramentu: dlaczego i czy to dobrze, czemu darmowe produkty będą naszym końcem, paralele między Microsoftem wczesnych lat dziewięćdziesiątych a współczesnym mordercą czytnika, ostatecznie wystawiono scenę i przegoniono przez nią paradę pretendentów do tytułu królewskiego. Były rozczarowania, sukcesy, obietnice, stroje wieczorowe i bikini.

W reportażu z pogrzebu pojawił się też jeszcze jeden wątek. Pytano, czy w ogóle potrzebujemy takich koślawych agregatorów treści. Dlaczego nie iść na Twittera, dodać do swojej listy ludzi znanych i szanowanych, otrzymywać od nich linki i aktualizacje o bułkach z masłem? Dorzućmy do tego aplikację na tablet, która generuje „magazyn” na podstawie naszego konta w społecznościówce i już możemy konsumować treści tak, jak się powinno w 2013: obrazek, lead-in i spierdalać.

Prawie się z nimi zgadzam, ale w ogóle to jednak nie. Zacznijmy od małej anegdoty z mojego życia. Kiedy nie mogę już oglądać biura albo zawaliłem kolejny termin i wolę się schować przed światem do czasu naprostowania wyrządzonych krzywd, zaszywam się w domowym biurze Piotrka, gdzie siedzę przysypany Amigami i próbuję pracować. Przynajmniej raz dziennie z drugiej strony biurka pada „Kurwa, co za głupoty piszą na tym [wstaw popularny portal z wiadomościami]!”. Pytam wtedy, co zmusza go do czytania portali (bo zaczynam podejrzewać, że to jakiś pies Pawłowa siedzi i wczytuje mu te strony, czekając aż się mój tymczasowy współlokator oślini) i czy nie może po prostu raz dziennie zerknąć na BBC, a potem już olać?

Zwykle pada odpowiedź, że nie, bo na BBC nie ma nic o wydarzeniach w Polsce. I za każdym razem muszę mu przypominać, że się myli. Myli się w kluczowej sprawie: na BBC nie ma informacji o Polsce dzień w dzień, ponieważ dzień w dzień w kraju nie dzieje się nic ekstremalnie ważnego czy szczególnego. W ogóle na świecie dzieje się bardzo mało ciekawych i wartych uwagi rzeczy.

Tak więc zgadzam się ze stwierdzeniem, że może nie potrzebujemy czytników zdolnych do śledzenia tysiąca blogów rzygających dwudziestoma wpisami dziennie. Nie uważam jednak, że należy je wymienić na linki od celebrytów zamienione w magazyn TL;DR. Co natomiast należy, to oznajmić wam, że nie musicie wiedzieć o każdym starciu polityków, o każdej iteracji telefonu komórkowego, o każdej dramie rozgrywanej się w każdej niszy.

Wasza uwaga i wasz czas jest waszą walutą w Internecie. Nie chodzicie do knajpy, żeby kelner napierdział wam w twarz za dychę, czemu więc subskrybujecie blog, który jest jelitem cienkim dla oświadczeń prasowych?

Nie byłem smutny, kiedy ogłosili, że król zejdzie. Nie dlatego, że jestem przeciwny czytnikom. Jestem w tej całej grze bezpaństwowcem od wielu, wielu lat. Czytniki irytowały mnie zawsze tak, jak irytuje picie ze szlauchu. Interwał pomiędzy „Przeczytałem wszystko” a „o, są nowe” jest zdecydowanie za krótki. Kiedy postanowiłem złożyć paszport obywatela Google Readera, postawiłem sobie za cel stworzenie środowiska, w którym czytałbym dużo fajnych rzeczy, ale bez ciśnienia i dla siebie.

Zacząłem od przygotowania listy serwisów wartych mojej uwagi. Metoda eliminacji była prosta: patrzę na URL i pytam się „Kiedy i co ciekawego ostatnio tam przeczytałem?”. Jeżeli przez kilka sekund nie potrafiłem sobie odpowiedzieć na to pytanie, serwis trafiał do śmieci. Po selekcji zacząłem rozmyślać o czytniku. Jak wspominałem wcześniej, mam właściwie dwa oczekiwania co do takiego programu:

  • Nie musi być „na bieżąco” z nowinkami i kusić mnie,
  • Musi się integrować z moim trybem życia.

Po krótkiej debacie „napisać czy poszukać” znalazłem wybitnie znakomity program rss2email, który, jak sama nazwa wskazuje, wysyła nowinki e-mailem. Biorę swoją skrzynkę bardzo serio, dlatego nie pozwolę jej zagracać głupotami, co znów w teorii podkręci jakość dostarczanych treści!

Ustawiłem wszystko na domowym serwerze i kazałem Cronowi wysyłać mi komplet raz dziennie, o piątej rano. Ostatecznie zrezygnowałem z automatyzacji (może dziś nie jestem w ogóle zainteresowany światem, nawet jego najlepszymi częściami?) i logując się na serwer, stukam po prostu r2e run.

E-maile przychodzą, a ja je czytam, najczęściej pijąc pierwszą albo trzecią kawę 1 i kiedy skończę to… nie ma już nic więcej. Mogę spokojnie zająć się swoimi sprawami. Czasem nawet myślę sobie „ciekawe, co będzie jutro!” i jestem zadowolony, że mogę się dowiedzieć jutro. To bardzo ważne, umieć odkładać przyjemności na później 2

Chwileczkę, oszukuję. Części wiadomości nie czytam od razu. Wkładam je sobie do kieszonki i konsumuję w weekendy. Te dłuższe, ważniejsze, te nad którymi warto pomyśleć.

E-mail, Pocket i weekend

rss

Nie piszę tego, żeby chwalić się swoim hipsterskim stosem do RSS-ów, chcę wam powiedzieć, że śmierć Google Readera jest nie tylko okazją do ożywienia tej niszy branży, jest to niebywała okazja żeby skonfrontować swoje nawyki ze swoimi potrzebami. Ile razy przytłoczony komunikatem 1000+ zadeklarowałeś bankructwo, przyznając „Mark all as read”, skazując tym samym te kilka wartych uwagi perełek na śmierć z tonami błota? Może to, z czego byliśmy tak dumni - fakt, że utykamy na godziny na Wikipedii, klikając bez sensu, że czytamy z wypiekami wątek na trzysta siedemnaście komentarzy w którym osoby, których nie znamy, kłócą się o rzeczy, które nas tak na serio niezbyt interesują, nie jest czymś wartym pochwały?

Informacyjny bufet „all-you-can-eat” ugina się pod setkami paragrafów treści, wszystkie oblepione tłuszczem reklam i wypalcowane przez edytorów szukających jeszcze bardziej kłamliwych nazw dla potraw. Akurat zmieniają zastawy. Macie dobrą okazję rozważyć dietę.

  1. pierwsza kawa w domu, trzecia to pierwsza w biurze
  2. Stanford karmi słodyczami.

Krótki wstęp do osobistej kryptografii

Tu lepszy wstęp

Internet wydoroślał. Nie ma już w nim miejsca na zaufanie i nadzieję, że nikt nie czai się za ścianą z zamiarem dziabnięcia nas. Czasem tym kimś jest morderca nieświadomy swojej ofiary, skrypt, który szuka dziur, automat.

Na szczęście możemy się uzbroić.

Możemy użyć szyfrowania asymetrycznego! Ha, sama nazwa wystarczy, żeby nastoletniemu odpalaczowi skryptów zmiękły kolana. Niestety, jest to broń obosieczna, pistolet z dwoma lufami, granat z doczepioną gumką-recepturką; dobre narzędzie kryptograficzne jest po prostu skomplikowane. Wymaga nie tylko zrozumienia (choćby pobieżnego) kilku idei związanych z kryptografią, wymaga też odpowiedniej higieny: gdzie i jak przetrzymujemy swoje informacje, których programów używamy do szyfrowania informacji, kiedy, komu i będącemu gdzie ufamy.

Symetrycznie nie jest ślicznie

Może jednak nie warto się tyle kłopotać? Prawie każdy program do archiwizacji danych (ZIP, RAR, 7Zip, etc.) ma możliwość założenia hasła na utworzony plik. Wydawałoby się, że jest to wystarczająca ochrona dla informacji. I jest to prawda, o ile w archiwum czyhają jakieś krępujące materiały pornograficzne, wypożyczone z największej wypożyczalni na świecie pliki muzyczne czy kolekcja limeryków. Rzeczy, które – gdyby wyciekły – zażenowałyby znajomych. Może załatwiły wydanie jakiegoś tomiku wierszy. No wiecie: nic, czego potrzebujecie, ale też nic, co zniszczy Wam życie.

Hasło jest drugim co do słabości ogniwem w łańcuchu bezpieczeństwa. Pierwszym jesteś Ty, wymyślający hasło. Jedno wynika z drugiego. Przytoczę anegdotkę: pisałem kiedyś oprogramowanie dla pewnej firmy, która zażyczyła sobie poziomów dostępu dla swoich pracowników. W miarę standardowa robota: X może Y, Z nie może B. Kiedyś, podczas aplikowania zmian w bazie, moją uwagę przykuł pewien fakt – napisałem odpowiednie zapytanie, które zgrupowało mi skróty haseł: wszyscy pracownicy mieli takie same. Co oznaczało, że wszyscy mieli to samo hasło, będące numerem telefonu do biura. 1

Wyobraźmy sobie jednak sytuację w której autor archiwum poświęcił chwilkę na wymyślenie w miarę „ciężkiego”, unikalnego hasła. Teraz pozostaje nam przetransportowanie tak utworzonego pliku do celu. Dajemy go więc znajomemu na przenośnej pamięci USB lub wysyłamy e-mailem. Gotowe! A, chwileczkę, co z hasłem? Zadzwonić i powiedzieć przez telefon? Może wyślę drugim e-mailem hasło, będzie łatwiej?

Znów: załóżmy, że zrobiłeś najlepsze co mogłeś i wyszeptałeś odbiorcy hasło wprost do ucha. Jaką masz pewność, że nie zostanie zapisane na „przylepnej karteczce”? Praktycznie zerową, kontrola nad dostępem do hasła (czyli, de facto, zawartości pliku) została przekazana drugiej osobie.

„Dwie osoby są w stanie dochować tajemnicy o ile jedna z nich jest martwa.”

Teraz – naciągając naszą sytuację do ram fantastyki – przyjmijmy, że jesteście akurat dwiema najbardziej odpowiedzialnymi osobami na świecie, hasło nigdy nie zostało zapisane i siedzi tylko w Waszych głowach. Pozostaje nadal sprawa dostępu do pliku: plik może zostać wykradziony. Nie mówimy tu o nocnym ataku zakonu ninja, którego członkowie wpełzną po suficie i zwisając z elastycznych lin ukradną twardy dysk. Mówimy o kimś, kto wyśle go sobie e-mailem z Twojego komputera gdy będziesz w toalecie.

Teraz między nim a dostępem do Twoich danych stoi tylko hasło.

Jak widzicie proste metody ukrywania informacji stają się skomplikowane gdy tylko zaczniemy brać bezpieczeństwo na poważnie. Dodatkowo wszystkie procedury zabezpieczające wykorzystują elementy, które prawie zawsze padają jako pierwsze.

Podsumujmy więc problemy z tradycyjnym modelem „przesyłam Ci archiwum z hasłem”:

  • pojedyncze hasło umożliwia uzyskanie dostępu do archiwum,
  • każdy może skopiować archiwum i próbować wymusić do niego dostęp,
  • archiwum można podmienić, a odbiorca nie będzie tego świadomy.

Przejdźmy do meritum tego tekstu – jak poprawić bezpieczeństwo naszych danych i jak zmniejszyć szanse na wpadnięcie ich w niepowołane ręce. Zanim jednak rozpoczniemy zabawę z pakietem GPG musimy pomówić trochę o teorii.

Czy hasło to tylko znaki?

Zanim przejdziemy do kluczy prywatnych i publicznych porozmawiajmy przez chwilę o hasłach. Co jest takiego złego w prostych hasłach, jak się je zwykle zapisuje i na jakie problemy z tym możemy się natknąć w systemach informatycznych?

Każdego dnia logujemy się do wielu systemów. Od poczty, przez intranetowy system w pracy, kończąc na Facebooku. Większość z tych czynności sprowadza się do podania identyfikatora (zwykle adresu e-mail lub nazwy użytkownika) i hasła. Te wartości są sprawdzane w bazie danych i jeżeli para się zgadza, system zaczyna udostępniać dane.

Dobrą (jedyną!) praktyką jest składowanie tzw. skrótu hasła, matematycznie wyliczonej wartości przedstawionej najczęściej w zapisie szesnastkowym o stałej „długości”. Powodem używania tej metody jest ograniczenie dostępu do samego hasła zarówno dla administratorów, jak i w przypadku włamania do systemu.

Co to znaczy, że skrót jest wyliczany? Zróbmy własny, okrutnie zły i niepraktyczny skrót; jego koszmarne założenia pozwolą mi zademonstrować jeszcze jeden problem, ale po kolei.

Jeżeli A = 1, Ą = 2, B = 3, C =4, to Z = 35, jasne? Nie rozróżniamy wielkości liter. Teraz zapiszmy wyraz:

EMIL = 
  E[7] + 
  M[17] + 
  I[12] + 
  L[15] = 
  51 = 
  0x33

Czyli nasz „algorytm” to dodawanie wartości pozycji liter w alfabecie. Teraz, gdy ktoś będzie się próbował zalogować hasłem EMIL, mogę policzyć skrót hasła i sprawdzić, czy w bazie mam zapisane 0x33. „Nikt” nie wie, czym jest ten ciąg i hasło jest „bezpieczne”.

Czy potraficie zgadnąć jaki jest z nim problem?

GOAAAAAL = 
  G[10] + 
  O[20] + 
  A[1] + 
  A[1] + 
  A[1] + 
  A[1] + 
  A[1] + 
  A[1] + 
  L[15] = 
  51 = 
  0x33

Jak to? Co to znaczy, że EMIL = GOAAAAAAL? Tak, nazywamy to konfliktem w skrócie, czyli takim wypadku, gdy więcej niż jeden ciąg generuje tą samą wartość skrótu. Ktoś, kto widzi 0x33 i zna metodę liczenia może przygotować hasło, które nie jest hasłem użytkownika a mimo to można go używać do logowania.

Płynie z tego pewna nauka: jeżeli myślisz, że możesz napisać sobie własne „skracanie” to mylisz się (o ile nie jesteś jednym z dwustu-trzystu matematyków, którzy zajmują się tym zawodowo). Jeśli jesteś jednym z tych matematyków to bardzo mi przyjemnie, że czytasz ten tekst!

Co jeszcze? Kolejną dobrą praktyką jest „solenie” skrótu. Oznacza to, że do hasła dodawane jest jeszcze coś, tajemnica pozwalająca na zmianę standardowego skrótu. Czemu się to robi? Hakerzy to sprytne bestie, wzięli słownik i przepuścili go przez popularne metody skracania uzyskując wieeeelką tablelę ze skrótami. Teraz, w przypadku nieposolonych skrótów, wykradziona baza danych z użytkownikami o hasłach takich jak „kot”, „pies” i„herbata” jest czytelna niemal automatycznie. Wystarczy porównać tabelkę już przeliczonych skrótów z tymi w bazie, hop i już mamy! Stąd tylko krok do wypróbowania haseł w innych serwisach.

Kiedy posolimy hasło „pies” naszą T4J3MN1C0M, skrót wyliczony z ciągu „piesT4J3MN1C0M” nie ma nic wspólnego ze skrótem ciągu „pies” i unikamy możliwości łatwego odkrycia hasła.

Klucz prywatny, klucz publiczny

Widzieliście pewnie jakiś film o piratach. W filmach o piratach chodzi głównie o to, kto pierwszy odkopie skrzynię ze skarbami. I czy ma do niej klucz, a jeśli nie klucz, czy skrzynia wytrzyma uderzenia łopatą. Taka skrzynia reprezentuje szyfrowanie symetryczne. Jest skrzynia (archiwum) i klucz (hasło) w którego posiadanie może wejść każdy: na drodze rozboju, dziedziczenia czy też fantastycznego zbiegu okoliczności. Jest też ostra część łopaty, która służy za metaforyczny dostęp nieautoryzowany.

Właśnie zdałem sobie sprawę, że strzeliłem sobie w stopę piracką metaforą. Z armaty. Szyfrowanie symetryczne nie ma łatwej analogii w rzeczywistym świecie, a wynika to właśnie z natury fizyczności; każdy dostatecznie skomplikowany zamek ma liczbę n łopat, która go wreszcie rozwali.

Niech będzie, że nasi piraci poza korsarskim rzemiosłem parają się też czarną magią. I skrzynia jest magiczna. (Jęczenie, które teraz słyszycie, to analogia rozciągana jak guma w starych gaciach).

Ojej, z przykrością zawiadamiam, że piraci nie żyją. Wypadek przy pracy. Nie wiedzieli, że armata jest załadowana. Zginęli w słusznej sprawie. Dzięki ich śmierci mogą uniknąć dalszego męczenia tej anegdoty!

Kryptografia asymetryczna sprowadza się do posiadania pary kluczy; treści zaszyfrowane jednym z nich można odszyfrować tylko drugim i odwrotnie. Jeden z tych kluczy nazywamy prywatnym i w jego posiadaniu jesteśmy wyłącznie my (a każda z osób, z którymi przychodzi nam się wymieniać zaszyfrowanym informacjami, jest w posiadaniu własnego); drugi nazywamy publicznym i udostępniamy reszcie świata. Jeżeli ktoś chciałby przekazać mi plik dostępny tylko dla mnie, musiałby pobrać mój klucz publiczny i dodać do swojego „pęku kluczy”. Podczas szyfrowania archiwum wskazałby mój klucz publiczny, i tylko ja byłbym w stanie odszyfrować zabezpieczone archiwum (bo odszyfrować je można tylko moim kluczem prywatnym).

Klucz prywatny i publiczny tworzą nierozłączoną parę, która umożliwia osobom będącym w posiadaniu naszego klucza publicznego wygenerować zaszyfrowane informacje dostępne tylko dla nas. Nie musimy się umawiać „na hasło”, nie musimy się nawet widzieć czy też uprzednio informować o fakcie. Każdy, kto ma mój publiczny klucz może przysłać mi swoje tajemnice z pewną dozą pewności, że nikt postronny nie będzie mógł z łatwością dostać się „do środka”. Klucz prywatny jest (a przynajmniej: powinien być) dodatkowo zabezpieczony hasłem, tak więc odkodowanie informacji od nadawcy wymaga nie tylko posiadania specjalnego pliku w postaci klucza prywatnego, ale także znania hasła.

Jest to pewien szczególny wypadek „two factor authenitcation”, modelu autoryzacji który polega na „tym co wiesz” (tu: haśle do klucza prywatnego) i „tym, co masz” (tu: pliku zawierającego klucz prywatny). W podobny sposób działają tokeny, które niektórzy z Was otrzymali z banków. Autoryzacja odbywa się na podstawie skrótu RSA generowanego algorytmicznie („to, co masz”) i hasła („to, co wiesz”).

Starczy może suchej teorii. Może to niewielka dawka, ale kto próbował zjeść łyżkę cynamonu ten wie, że nawet niewielkie dawki czasem ciężko przełknąć.

W części praktycznej zainstalujemy pakiet GNU Privacy Guard, który jest otwartym odpowiednikiem PGP. GPG jest oczywiście dostępny na większość systemów operacyjnych, tych płynących w głównym nurcie jak i tych hobbistycznych. Potęga otwartego kodu.

W tekście posługuję się klientem terminalowym. Jest on wspólny dla wszystkich wersji, a i dużo łatwiej uczyć się wydając świadomie polecenia, a nie klikając guziory w interfejsie graficznym. Gdybym miał władzę nad światem to zabroniłbym w ogóle guzików. OK, może grafikom bym pozwolił, ale reszta z Was może zapomnieć. Na wasze szczęście moje dyktatorskie zapędy stępiłem grając w The Sims 2, gdzie prowadziłem postać powoli starzejącego się faceta, który pracował jako programista i czasami mdlał ze zmęczenia w kałuży własnego moczu. Lubię odmianę.

Rozkład zajęć:

  1. Wygenerowanie własnej pary kluczy
  2. Import klucza publicznego dostępnego na stronie
  3. Import klucza z serwera
  4. Eksport własnego klucza publicznego
  5. Podpisanie pliku i weryfikacja sygnatury
  6. Szyfrowanie pliku i jego odszyfrowanie
  7. Szyfrowanie symetryczne

Wygenerowanie własnej pary kluczy

 gpg --gen-key [ref]Wytłuszczam komendy i klawisze[/ref]

gpg (GnuPG) 2.0.19; Copyright (C) 2012 Free Software Foundation, Inc.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Proszę wybrać rodzaj klucza:
  (1) RSA i RSA (domyślne)
  (2) DSA i Elgamala
  (3) DSA (tylko do podpisywania)
  (4) RSA (tylko do podpisywania)

Klucze RSA będą miały od 1024 do 4096 bitów długości.
Jakiej długości klucz wygenerować? (2048)

Żądana długość klucza to 2048 bitów.

Okres ważności klucza.

        0 = klucz nie ma określonego terminu ważności
       = termin ważności klucza upływa za n dni
     w = termin ważności klucza upływa za n tygodni
     m = termin ważności klucza upływa za n miesięcy
     y = termin ważności klucza upływa za n lat
Okres ważności klucza? (0) 2y

Klucz traci ważność sob, 13 cze 2015, 16:35:36 CEST

Czy wszystko się zgadza (t/N)? t

Odpalenie gpg z parametrem —gen-key rozpoczyna procedurę generowania klucza. W pierwszym kroku wybieramy domyślną pozycję, tj. parę kluczy RSA, dzięki czemu możemy szyfrować i podpisywać informacje.

Długość klucza jest wprost proporcjonalna do jego “siły”. Możemy przez to rozumieć jego odporność na najbardziej prymitywne (ale często zaskakująco skuteczne) metody łamania haseł. Długość klucza wpływa też na czas, który będzie potrzebny na zaszyfrowanie/odszyfrowanie wiadomości. Dla większości zastosowań można spokojnie wybrać maksymalną długość.

Okres ważności klucza to czas po którym klucz stanie się bezużyteczny. Teoretycznie, gdyż informację tę możemy zmienić w dowolnej chwili edytując klucz. Pole to służy bardziej jako element higieny.

GnuPG musi utworzyć identyfikator użytkownika do identyfikacji klucza.

Imię i nazwisko: Emil Oppeln-Bronikowski
Adres poczty elektronicznej: emil@adrespoczty.pl
Komentarz: Testowa parka
Twój identyfikator użytkownika będzie wyglądał tak:
    "Emil Oppeln-Bronikowski (Testowa parka) "
Zmienić (I)mię/nazwisko, (K)omentarz, adres (E)mail, przejść (D)alej,
czy (W)yjść z programu? d

Musisz podać długie, skomplikowane hasło aby ochronić swój klucz prywatny.

[...]

Musimy wygenerować dużo losowych bajtów. Dobrym pomysłem aby pomóc komputerowi
podczas generowania kluczy jest wykonywanie w tym czasie innych
działań (pisanie na klawiaturze, poruszanie myszką, odwołanie się do dysków);
dzięki temu generator liczb losowych ma możliwość zebrania odpowiedniej ilości
entropii.

gpg: sprawdzanie bazy zaufania
gpg: potrzeba 3 marginalnych, 1 pełnych, model zaufania PGP
gpg: poziom: 0 poprawnych:   1 podpisanych:   0 zaufanie: 0-,0q,0n,0m,0f,1u
gpg: następne sprawdzanie bazy odbędzie się 2015-06-13

pub   2048R/EFB571A3 2013-06-13 [wygasa: 2015-06-13]
      Odcisk klucza = 6D42 0F8B E9EA 0100 A5A8  5F82 F0F6 7FBF EFB5 71A3
uid                  Emil Oppeln-Bronikowski (Testowa parka) 
sub   2048R/693FF3FC 2013-06-13 [wygasa: 2015-06-13]

W tym kroku nie ma niczego magicznego, podajemy dane idetyfikacyjne i czekamy, aż generator liczb losowych zdobędzie się na odwagę wygenerowania dla nasz kluczy. Kiedy wreszcie gpg odda kontrolę konsoli możemy zacząć zabawę w szyfrowanie.

Import klucza publicznego dostępnego na stronie

Zacznijmy od zaimportowania mojego klucza, dostępnego na serwerze HTTP.

 wget http://bronikowski.com/emil.gpg
--2013-06-13 16:41:40--  http://bronikowski.com/emil.gpg
Translacja bronikowski.com (bronikowski.com)... 46.248.176.108
Łączenie się z bronikowski.com (bronikowski.com)|46.248.176.108|:80... połączono.

Żądanie HTTP wysłano, oczekiwanie na odpowiedź... 200 OK

Długość: 2170 (2,1K) [text/plain]
Zapis do: `emil.gpg'

[...]

2013-06-13 16:41:40 (52,5 MB/s) - zapisano `emil.gpg' [2170/2170]
 gpg --import < emil.gpg
gpg: klucz 96769184: klucz publiczny ,,Emil Oppeln-Bronikowski '' wczytano do zbioru
gpg: Ogółem przetworzonych kluczy: 1
gpg:          dołączono do zbioru: 1
Pobrany plik zawiera mój klucz publiczny. Parametr --import odpowiada za dopięcie mojego klucza do pęku twoich kluczy.

 gpg --list-keys

pub   2048R/EFB571A3 2013-06-13 [wygasa: 2015-06-13]
uid                  Emil Oppeln-Bronikowski (Testowa parka) 
sub   2048R/693FF3FC 2013-06-13 [wygasa: 2015-06-13]
pub   1024D/96769184 2011-05-10
uid                  Emil Oppeln-Bronikowski 
uid                  Emil Oppeln-Bronikowski 
sub   2048g/F8FE0300 2011-05-10

Import klucza z serwera

Dzięki —list-keys możesz zobaczyć detale swojego pęku kluczy i dowiedzieć się, że mój odpowiada za dwa adresy e-mail. No dobrze, masz mój klucz bo ci powiedziałem gdzie dokładnie jest. Co w przypadku ludzi, których znasz tylko z nazwiska lub znasz ich adres e-mail? Na szczęście klucze można wysłać do specjalnego serwera zajmującego się ich dystrybucją. Klucz umieszczony w katalogu można odnaleźć bez większego problemu przy pomocy parametrów —keyserver i —search—keys

 gpg --keyserver pgp.mit.edu --search-keys marks@ubuntu.com

gpg: poszukiwanie ,,marks@ubuntu.com'' z serwera hkp pgp.mit.edu

(1)     Martin M Marks (sobankiithsa@UBUNTU.CASTER) 
       Mark Shuttleworth 
       Mark Shuttleworth 
       Mark Shuttleworth 
       Mark Shuttleworth 
       Mark Shuttleworth 
         1024 bit DSA key D54F0847, utworzono: 2004-02-18
Keys 1-2 of 2 for "marks@ubuntu.com".  Wprowadź numer(y), N)astępny lub Q)uit > 2

gpg: zapytanie o klucz D54F0847 z serwera hkp pgp.mit.edu
gpg: klucz D54F0847: klucz publiczny ,,Mark Shuttleworth '' wczytano do zbioru
gpg: potrzeba 3 marginalnych, 1 pełnych, model zaufania PGP
gpg: poziom: 0 poprawnych:   1 podpisanych:   0 zaufanie: 0-,0q,0n,0m,0f,1u
gpg: następne sprawdzanie bazy odbędzie się 2015-06-13
gpg: Ogółem przetworzonych kluczy: 1
gpg:          dołączono do zbioru: 1

 gpg --list-keys

pub   2048R/EFB571A3 2013-06-13 [wygasa: 2015-06-13]
uid                  Emil Oppeln-Bronikowski (Testowa parka) 
sub   2048R/693FF3FC 2013-06-13 [wygasa: 2015-06-13]
pub   1024D/96769184 2011-05-10
uid                  Emil Oppeln-Bronikowski 
uid                  Emil Oppeln-Bronikowski 
sub   2048g/F8FE0300 2011-05-10
pub   1024D/D54F0847 2004-02-18
uid                  Mark Shuttleworth 
uid                  Mark Shuttleworth 
uid                  Mark Shuttleworth 
uid                  Mark Shuttleworth 
uid                  Mark Shuttleworth 
uid                  Mark Shuttleworth 
sub   1024g/9DE743C9 2004-02-18

I już, Mark Shuttleworth został odnaleziony a jego publiczny klucz umieszczony w naszym pęku. Zanim przejdziemy dalej: aby wyeksportować klucz (w przykładzie poniżej: mój publiczny) możemy użyć parametry —export i idetyfikatora klucza. Opcja -armor powoduje, że wyeksportowany plik ma formę pliku ASCII, a nie jak standardowo, binarną.

 gpg --export -armor emil@adrespoczty.pl >/tmp/emil-at-adrespoczty.gpg

I już. Plik /tmp/emil-at-adrespoczty.gpg mogę wysłać komuś e-mailem, umieścić na serwerze lub wydrukować. 2

Podpisanie pliku i weryfikacja sygnatury

Termin „podpis elektroniczny” jest wam z pewnością znany, prawda? Zwykle myślimy o kwalifikowanym podpisie elektronicznym, który jest równoznaczy z podpisem i pozwala nam na załatwianie spraw drogą elektroniczną.

Podpisanie dokumentu to procedura w której użytkownik używając swojego klucza prywatnego (który znajduje się na karcie przy podpisie kwalifikowanym) tworzy unikalny skrót z dokumentu co pozwala nam, odbiorcom, potwierdzić:

  • że podpisujący znał hasło do klucza prywatnego użytkownika (czyli „był nim” lub „bił go aż zdradził”),
  • że dokument od tego czasu nie uległ modyfikacji (modyfikacja psuje skrót),
  • datę podpisu.

Podpiszmy więc Code of Conduct.

— xhtml2pdf http://www.ubuntu.com/about/about-ubuntu/conduct

Converting www.ubuntu.com-about-about-ubuntu-conduct to /home/emil/www.ubuntu.com-about-about-ubuntu-conduct.pdf...

Zrobimy sobie z tej strony dokument PDF, a następnie, używając —sign, podpiszemy go.

— gpg --sign www.ubuntu.com-about-about-ubuntu-conduct.pdf

Musisz podać hasło aby odbezpieczyć klucz prywatny użytkownika:

,,Emil Oppeln-Bronikowski (Testowa parka) ''
długość 2048 bitów, typ RSA, numer EFB571A3, stworzony 2013-06-13

— l www.ubuntu.com-about-about-ubuntu-conduct.pdf*

-rw-r--r-- 1 emil users 19596 06-13 17:10 www.ubuntu.com-about-about-ubuntu-conduct.pdf
-rw-r--r-- 1 emil users 11244 06-13 17:10 www.ubuntu.com-about-about-ubuntu-conduct.pdf.gpg

Do wygenerowanego dokumentu dołączony został podpis. Każdy, kto otrzyma tę parę plików może zweryfikować ich autora i czas powstania.

— gpg --verify www.ubuntu.com-about-about-ubuntu-conduct.pdf.gpg

gpg: Podpisano w czw, 13 cze 2013, 17:10:42 CEST kluczem RSA o numerze EFB571A3
gpg: Poprawny podpis złożony przez ,,Emil Oppeln-Bronikowski (Testowa parka) ''

Szyfrowanie pliku i jego odszyfrowanie

Czas wreszcie się zakonspirować. Mam dokument, który chcę przekazać temu innemu sobie (z prawdziwym kluczem). Podaję więc parametr -e (szyfruj) i -r, po którym podaję listę odbiorców, a na końcu sam plik, który ma zostać zaszyfrowany.

 gpg -e -r emil@fuse.pl ubuntu.com.pdf

gpg: F8FE0300: Nie ma żadnej pewności, czy ten klucz należy do tej osoby
pub  2048g/F8FE0300 2011-05-10 Emil Oppeln-Bronikowski

Odcisk klucza głównego: 820F D398 6D48 4BF3 3F3F  23CF 4276 4910 9676 9184
      Odcisk podklucza: 74BA 5DEF A968 0D74 0C4D  3197 76A2 538A F8FE 0300

NIE MA pewności, czy klucz należy do osoby wymienionej w identyfikatorze.
Jeśli nie masz co do tego żadnych wątpliwości i *naprawdę* wiesz co robisz,
możesz odpowiedzieć ,,tak'' na następne pytanie.

Użyć tego klucza pomimo to? (t/N)

Przyznam, że sam byłem zaskoczony tą wiadomością. Oczywiście zaraz strzeliłem się w czoło i przypomniałem sobie o tym, o czym nigdy nie chcę pamiętać: o poświadczaniu posiadania klucza. Widzicie, każdy może stworzyć sobie dowolny klucz i użyć w nim danych jakich mu się podoba. Nic nie stoi na przeszkodzie żebym wygenerował sobie klucz z fałszywymi informacjami i namówił ludzi do zaimportowania takiego klucza do ich systemów.

Jeżeli ktoś zaimportuje mój klucz, który mówi, że jestem billg@microsoft.com to w komunikacji z taką osobą mogę nie tylko udawać Billa, mogę używać tego klucza jako podpisu pod plikami.

Aby prawidłowo poświadczyć autentyczność pary klucz/osoba należałoby umówić się z drugą osobą na piwo, mieć przy sobie wydrukowany odcisk swojego klucza publicznego, wymienić się swoimi wydrukami, potwierdzić tożsamość i po stwierdzeniu poprawności, powrocie do domu i kacu wyedytować zaimportowany klucz i zwiększyć (lub zmiejszyć jeśli współpiwoszowi źle z oczu patrzyło) zaufanie do jego klucza, po czym ostatecznie podpisać jego klucz publiczny swoim kluczem prywatnym.

To chyba najgorsza część tej całej zabawy. Jeżeli na serio chcemy pewność korespondencji nie możemy po prostu zaufać elektronicznym drogom komunikacji. Zdaję sobie sprawę, że chodzenie z wydrukiem heksów i zmuszanie przyjaciół do składania na nich podpisów stawia nas pomiędzy zwolennikami teorii o tym, że Żydzi wysadzili WTC, a ludźmi którzy odbierają radio AM dzięki plombom. Kryptografia jest bardzo łatwa póki nie jest ciężka.

 gpg --edit-key emil@fuse.pl

gpg> trust

pub  1024D/96769184  utworzono: 2011-05-10  wygasa: nigdy       użycie: SC  
                    zaufanie: marginalne    poprawność: nieznany

sub  2048g/F8FE0300  utworzono: 2011-05-10  wygasa: nigdy       użycie: E   
[    nieznane   ] (1). Emil Oppeln-Bronikowski 
[    nieznane   ] (2)  Emil Oppeln-Bronikowski

Zastanów się jak bardzo ufasz temu użytkownikowi w kwestii sprawdzania
tożsamości innych użytkowników (czy sprawdzi on odciski kluczy pobrane
z różnych źródeł, dokumenty potwierdzające tożsamość, itd.).
 1 = nie wiem albo nie powiem
 2 = NIE ufam
 3 = mam ograniczone zaufanie
 4 = mam pełne zaufanie
 5 = ufam absolutnie
 m = powrót do głównego menu

Twoja decyzja? 3

pub  1024D/96769184  utworzono: 2011-05-10  wygasa: nigdy       użycie: SC  
                    zaufanie: marginalne    poprawność: nieznany
sub  2048g/F8FE0300  utworzono: 2011-05-10  wygasa: nigdy       użycie: E   
[    nieznane   ] (1). Emil Oppeln-Bronikowski 
[    nieznane   ] (2)  Emil Oppeln-Bronikowski 
gpg> sign

Czy na pewno podpisać wszystkie identyfikatory użytkownika? (t/N) t
pub  1024D/96769184  utworzono: 2011-05-10  wygasa: nigdy       użycie: SC  
                    zaufanie: marginalne    poprawność: nieznany

Odcisk klucza głównego: 820F D398 6D48 4BF3 3F3F  23CF 4276 4910 9676 9184
    Emil Oppeln-Bronikowski 
    Emil Oppeln-Bronikowski

Czy jesteś naprawdę pewien, że chcesz podpisać ten klucz
swoim kluczem ,,Emil Oppeln-Bronikowski (Testowa parka) '' (EFB571A3)

Czy na pewno podpisać? (t/N) t

Po tym jak wyedytowałem klucz i zadeklarowałem do niego pewne zaufanie, a ostatecznie podpisałem go swoim, wcześniej występujący komunikat nie powinien się już pojawiać.

 touch tajnydokument
 gpg -r emil@fuse.pl -e tajnydokument
 l tajnydokument*

-rw-r--r-- 1 emil users   0 06-13 17:20 tajnydokument
-rw-r--r-- 1 emil users 603 06-13 17:20 tajnydokument.gpg

Szyfrowanie symetryczne

Jeżeli po przeczytaniu tego całego tekstu poczułeś nienawiść do ludzi, którzy próbują skomplikować ci życie — nie rozpaczaj — GPG/PGP potrafi szyfrować też pliki „na hasło”, wystarczy, że użyjeszcz parametru -c i podasz unikalne hasło, które dowolny inny użytkownik, bez względu czy jest w posiadaniu twojego klucza, czy też nie może odszyfrować używając hasła.

— gpg -c test.pdf

Koniec

Tekst ten przeleżał kwartał na dysku i właściwie miał już nigdy nie trafić do edytora, ale ostatnie doniesienia o tym, że amerykańskie służby szpiegowskie szpiegują wystraszyły niemało ludzi, którzy używają wszędzie tego samego hasła i pomyślałem, że to czas żeby poodcinać trochę kuponów od nowej fali paranoi.

Mówiąc już zupełnie serio. Jeżeli używacie komputerów tak jak ja to są duże szanse, że macie na dyskach wiele ważnych dokumentów. Dokumentów, które może wkładacie do Dropboksa? Albo trzymacie na pulpicie? Wystarczy, że wygenerujecie dla siebie tę parę kluczy i zaczniecie przepuszczać te pliki przez gpg -e -r . Bams. Nie musicie się z nikim wymieniać kluczami prywatnymi, nie musicie ustawiać swoich klientów pocztowych, po prostu od czasu do czasu zaszyfrujcie „sami na siebie” ten dump bazy danych.

Dodatkowo

Piotr Szotkowski, który robił mi kurektę, poleca także następujące teksty:

  1. Co nie powinno się zdarzyć. Działo się to dawno temu kiedy jeszcze nie wiedziałem o czymś, co nazywamy „soleniem haseł”.
  2. wydrukować? Tak, o tym trochę później

Dobre intencje

Nie ma dla mnie nic bardziej niepokojącego niż Internet unoszący dłonie w geście zwycięstwa. Naturą Internetu jest to, że „wygrana” nie musi być wygraną obiektywną i mierzalną, uczciwym zwycięstwem nad jasno określonym przeciwnikiem według zasad. Tłum nie jest sumą głów. Tłum jest sumą odbytów i pięści.

Jeszcze niedawno takie zjawisko żyło w popkulturze dzięki wieśniakom dokonującym szturmu na zamek Doktora Frankensteina. Żyło też jako piętno publicznych linczów. Internet ukrył sznur i zamiast pochodni ma latarkę z LED. Internet przyczepił sobie też gwiazdę szeryfa, wystawił licencję na zabijanie, a za Fedorę zatknął przepustkę prasową.

Wydarzenia w Bostonie wstrząsnęły mną w sposób, jakiego nie byłem w stanie przewidzieć. Pomiędzy moją sympatią do miasta i podziwem dla maratońskiego wysiłku, pomiędzy zdjęciami z ludźmi, którzy rzucają się do pomocy i mną, wracającym na lekkim podpiciu do domu, wszystko nabrało dla mnie hiper-realności, której nie było w stanie przegonić kolejne piwo wypite już w pozycji leżącej. Spałem mało, o piątej wyszedłem do biura by przykleić się ekranu i czytać.

Czym więcej czytałem, tym bardziej rosła we mnie nienawiść. Na moich oczach powtarzał się cykl szaleństwa: garbage-in, garbage-out. Niesprawdzone, fantastyczne teorie wyprodukowane przez internetowych Batmanów uzbrojonych w kompletny brak empatii i MS Paint trafiały do szerszej konsumpcji, a po trawieniu zamieniały się w gówno, w którym taplali się spece od spiskowych teorii. Tempo produkcji oskarżycielskich obrazków rosło wraz z uczuciem podniecenia wśród klawiaturowych detektywów. Kulminacyjnym punktem był pościg bostońskiej policji za podejrzanymi. Stwierdzono deficyt rąk wśród tłumu poklepującego się po plecach, aż wreszcie ogłoszono ex cathedra, że oto jesteśmy światkami ostatecznego triumfu posiadaczy telefonów komórkowych z aparatami i stałego dostępu do sieci nad mediami tradycyjnymi. Jeden z użytkowników reddita z dumą rozdawał linka każdemu, kto chciał słuchać. Odgadł on słusznie, że zamachowcem będzie dwudziestoparolatek. Nie, że będzie ich dwóch i że 26 i 19 lat ledwie mieści się w jego przepowiedni. „Remember the hits, forget the misses”.

Pośród tego pościgu o dowody jeszcze mętniejsze, jeszcze lepiej korelujące z wyznawanym przez wskazującego smakiem rasizmu zdjęcia „potencjalnych podejrzanych”, hipotez o rządzie, który wysadził obywateli żeby ukryć to lub tamto, przepchnąć taką a nie inną ustawę, nikt nie wziął nawet oddechu by przystanąć i zastanowić się nad skutkami takich działań.

Internet stał się repozytorium głupoty, z której garściami czerpać może każdy, kto ma akurat ochotę na usztywnienie poglądów, jakie już wyznaje. Na tragediach budowane są kariery, które wspierają się o mantrę „ja tylko zadaję pytania!”.

I nie piszę tego żeby „bronić” mediów tradycyjnych. One też przykładają się do kociokwiku, legitymizując czasem te bajdurzenia. Piszę o tym dlatego, że czuję obrzydzenie do ludzi, którzy widzą się jako bohaterów, ponieważ mają konto w popularnym serwisie i potrafią narysować czerwoną linię na zdjęciu. Nie jesteście dziennikarzami śledczymi, nie jesteście Batmanami, nie jesteście bystrymi obserwatorami. Macie dostęp do Internetu.


git branch five-stages-of-fuckup

Popełniłem błąd w kodzie. Strasznie głupi, amatorski, „PHP w dwa tygodnie” błąd. Taki, którego się nie popełnia. Pominąłem jedną z warstw autoryzacji aplikacji i „wyciekłem” dane.

Zaprzeczenie

Nie ma szans, żeby był błąd. Dopisywałem wprawdzie w piątek poprawkę niedaleko middleware, ale przecież ona nie mogła wpłynąć na działanie warstwę niżej. Dzwonię do zgłaszającego błąd. Weryfikuję zgłoszenie. Użytkownik, który widzi niepoprawne informacje został dodany bez nadania roli. Ha ha. Nie ma błędu. Wysyłam głośnego e-maila, dwa razy używam wytłuszczenia. Moje na wierzchu, hurra.

Godzinę później otrzymuję paczkę e-maili od pracowników, którzy błąd znaleźli. Jest. Akurat w tym samym miejscu. Popełniłem błąd.

Gniew

Kurwa! Kurwa jebana mać. Ja pierdolę. To dlatego, że nigdy nie mam czasu. I w ogóle wszystko o kant dupy potłuc. Przecież to głupie. Pierdolę, nie robię.

Targowanie się

Może jednak nic się nie stało? O, praktycznie tylko jeden widok cieknie, a reszta i tak będzie rzucała wyjątkiem podczas filtrowania. Wezmę logi i sprawdzę.

Jeden grep, trzeci. -v lokalne_adresy. Wygląda normalnie. Może się jednak nic nie stało, prawda? No i ktoś musiałby świadomie wpisać cały URL. Nie ma szans, nie ma szans.

Depresja

Tyle lat to robię i nadal sadzę takie kwiatki. Może ja tylko świetnie gram światłego nerda ku uciesze internetowej gawiedzi? Nic dziwnego, że nic nie osiągnąłem i jestem zupełnie nikim, tak spieprzyć. W czym ja w ogóle jestem dobry? Stare meble nieźle rozwalam na kawałki. Może powinienem się zająć czymś prostszym tak żeby nie nieść zagrożenia?

Pogodzenie się

Jeszcze czekam.


Chciałbym powiadomić

Czy powinno się naśladować „realny świat” podczas projektowania aplikacji? Ofiary programów obitych „skórą”, których nawigacja jest „rozsypana” po wyłożonej panelami podłodze, które dotykają idealnie płaskiego ekranu celem „przekręcenia potencjometru na 11”, zawołają głośno, że nie, nie wolno. Potem dostaną coś na uspokojenie i będą mogły wrócić na terapię.

Poprawną odpowiedzią na to pytanie jest: „To zależy.”

Podczas udzielania tak głębokiej odpowiedzi najlepiej jest pocierać brodę i patrzeć wzrokiem widzącym sto lat do przodu. Nadaje to odpowiedniej powagi stwierdzeniu, które jest odpowiednikiem „nie wiem” dla tchórzy.

Do rzeczy: potrzebuję czasem stuknąć użytkownika w ramię i powiedzieć mu coś na ucho. Zostawić mu liścik, przesłać całusa. No, wysłać powiadomienie. W projektowaniu systemu powiadomień nie ma niczego skomplikowanego, prawda? Treść, do kogo i czy już była widziana. Proste. Banał. Zrobiłem.

Czasem przytrafi się sytuacja, kiedy napisany przeze mnie system oszaleje i nie potrafi sobie już sam pomóc. Kiedyś wyświetlałem błąd w nadziei, że zanim ja skoczę na ratunek, użytkownik wyciągnie wniosek z komunikatu i spróbuje iść dalej bez mojej asysty. Moje marzenia zostały przecięte serią e-maili o tym, że „jak klikam, to wyskakują bzdury”. Teraz zawracam nieszczęśnika na stronę główną, wysyłam sobie e-mail z trackbackiem i stosem, a użytkownika uspokajam przez powiadomienie, że już wiem, żeby napił się kawy i że w ogóle jest w dobrych rękach.

Nie minęło nawet kilka dni, kiedy podczas jednej z poprawek udało mi się doprowadzić do sytuacji, w której kod obsługujący wyjątki miał wyjątek. To oczywiście zbudowało fantastyczną kolejkę powiadomień zawierających informację o tym, że „nic się nie stało”.

Część użytkowników czekało sto kliknięć (lub po 30 sekund na automatyczne wygaszenie się informacji razy sto), żeby mogli się pozbyć żółtej ramki mówiącej, że nic się nie stało. Słabo. I teraz dochodzimy do tezy o „projektowaniu jakbyśmy byli w pubie”.

Gdyby podczas naszej wizyty w toalecie znajomy pytał się o ciebie innego znajomego kilka razy, to czy po powrocie przekazanie tej wiadomości wyglądałoby tak:

„Hej, był tu jakiś łoś, z pięć razy się o ciebie pytał”

czy

„Hej, był tu jakiś łoś”
„Hej, był tu jakiś łoś”
„Hej, był tu jakiś łoś”
„Hej, był tu jakiś łoś”
„Hej, był tu jakiś łoś”

Pierwszą modyfikacją kodu było grupowanie zdarzeń.

Kiedy napisałem nowy moduł komunikacji, wymyśliłem sobie, że można informować o wysłanych wiadomościach. Wcześniejsza modyfikacja okazała się trafić na wyboiste skały mojego braku wyobraźni i kompetencji. Przenieśmy się do naszego hipotetycznego pubu. Tym razem, walcząc z fobią społeczną, jesteśmy przedstawiani grupie osób.

„Poznajcie się: to Pan X, Pan X′ i Pan X″”
W mojej wersji byłoby to:

„Poznajcie się: to Pan X”
„Poznajcie się: to Pan X′”
„Poznajcie się: to Pan X″”

Żeby zrobić to dobrze, nie wystarczy po prostu sprawdzać, czy treść komunikatu, który chcemy zapisać, nie jest identyczna z ostatnią. Nie w sytuacji gdy mamy zmienną. Dodałem do kodu obsługę tagów dla zdarzeń i teraz, grupując, widzę serię E_HELLO i jako treść część zmienną — nazwiska. Mogę już przedstawić się jednym tchem.

Byłem zadowolony. Dopisałem sobie malutkie narzędzie, którego mogę używać do powiadomienia użytkowników o różnych rzeczach: „Za kwadrans konserwacja, baza będzie niedostępna”, „Proszę zamykać stare wydarzenia, bo mi się indeks urwie”, etc.

Moje pierwsze użycie było związane z przenosinami serwera. Ostrzegłem, że od 18. do dnia następnego system jest martwy i już. Pisałem to w piątek, prawdopodobnie po 17. Część ludzi pracuje do 16.

Zgadliście już? Tak, w poniedziałek rano otrzymali informację o tym, że dziś po 18. nie ma systemu do jutra. Byli słusznie oburzeni, że im się w poniedziałek i wtorek takie rzeczy robi.

Jeżeli informacja ma jakąś logiczną datę przydatności do spożycia, to powinno się ją po cichu schować po tej dacie. Ludzi po powrocie z urlopu nie interesuje brak dostępności sieci spowodowany faktem, że operator ISP się opił i wpadł w kable.

Z tym nie pójdziemy już do hipotetycznego pubu; sytuacja wymknęła się spod kontroli. Jesteśmy na hipotetycznym pogrzebie. Twoim własnym. Wypadek samochodowy. Ktoś informuje zebranych:

„Dwa tygodnie temu też wsiadł pijany”
„Hej, był tu jakiś łoś”
„Hej, był tu jakiś łoś”


Skutki bycia ekstremalnie zajętym

To był bardzo męczący rok. Z wielką radością złożę jego truchło na stos i rzucę zapałkę. Siedzę teraz przy komputerze i próbuję ogarnąć ostatnie tematy zanim ludzie rozejdą się do domu, a ja będę mógł w spokoju przycupnąć sobie z drinkiem, wyobrażam sobie pierwszych pijanych wujków i kolejki po karpia w których utknęliście.

Mam kilka marzeń. Jednym z nich jest napisanie bardzo dobrej gry tekstowej. Rysuję sobie czasem schematy takiego silnika do tekstówek 1 i marzę, że znajdę czas. Dziś moje zmęczenie i zniechęcenie osiągnęło apogeum, uciekłem więc w bezmyślne „googlanie” różnych problemów, których rozwiązania nie szukam.

Jak sprawdzić rozmiary terminala bez używania curses? Aha, ciekawe czy działa. Działa. To dopiszę jeszcze coś. Ha ha.

I tak z minuty na minutę zrobiłem to, co zrobiłem. Najlepiej zmarnowane 30 minut tego tygodnia.

ssh hi@tiny.magt.pl [hasło: hello]

screenshot_ssh_blog

PS. pluje w UTF8, ale bez kontroli, mój developerski serwer dostał ciężkiego zapalenie locales i jestem w trybie idontknowwhatimdoing.jgp

  1. wiem, że są. Chcę tego użyć jako zaczepki do nauki nowego języka programowania, więc NIH jest zupełnie usprawiedliwiony!

Non_omnis_moriar.doc.gpg

Obchodziliśmy niedawno święto ciętej dyni i gumowych masek. To dobry czas, żeby porozmawiać o umieraniu. Nie śmierci kulturowej, nie śmierci w wymiarze metafizycznym, nawet nie o samym fakcie gnicia. Porozmawiajmy o tym, co się dzieje, kiedy wyciągniesz nogi, a jesteś jednym z nas, szczęśliwców - kowalem własnego losu, samozatrudnionym ekspertem, wolną lancą, szybkim jak strzała blogerem.

W oczach świata składasz się ze starszego i młodszego bitu, z cyfrowych pierdnięć w światłowód, jesteś trochę domeną wpisaną w system nazw, odrobinę - profilową fotką. Dla większości z was ja nie jestem niczym więcej, wy nie jesteście niczym więcej dla mnie.

Zanim przyjdą futuryści i podłączą nasze martwe głowy do Internetu, w którym przyjdzie nam śmigać po wsze czasy, musimy jakoś zmierzyć się z faktem, że nigdy wcześniej nasze zejście nie dezintegrowało tylu naszych utworów. Jako wychowanek komputerów powierzyłem wszystkie myśli, wspomnienia, całą pracę zawodową, swoje hobby kawałkom metalu, w których kręcą się magnetyczne krążki. Nie ma listów do kobiet, które kochałem. Są e-maile, które znikną wraz z pierwszym nieopłaconym rachunkiem mojego operatora. Żaden bawidamek w przyszłości nie przeczyta antologii moich listów, by poznać surowe piękno kontaktów międzyludzkich na przełomie tysiąclecia.

Byliśmy tacy dumni, że Internet pozwolił nam wszystkim stać się autorami dzieł, tymczasem za trzydzieści lat okaże się, że przejedzie nas walec głównego nurtu kultury. Wypromowaliśmy sposób przekazu, który wymaga nieustannego karmienia monetami, a nawet nakarmiony może się obalić chromą nogą tej czy innej firmy.

Porzućmy jednak ten wątek. Wątek długiego życia, podczas którego możecie się przygotować, stać się kimś na tyle ważnym, żeby te okruszki życia nie zostały sprzątnięte. Możecie zginąć spektakularnie i niespodziewanie: zadławicie się papierosem, zostaniecie postrzeleni na konferencji, komuś z balkonu spadnie działo argonowe i rozłupie wasz łeb. Co wtedy? Czy któryś z przyjaciół może opłacić Waszą domenę? Napisać ostatnią notkę? Zgrać kopię zdjęć? Co z tymi wszystkimi książkami, filmami i muzyką, które kupiliście? Te DRM-owe na podpałkę, a te bez? Jedyny przypadek, w którym można podzielić między wszystkich tak, że każdy otrzyma komplet.

Jaką politykę obsługi sztywnych klientów ma Twój operator? Czy można wypłakać u Googla nowelkę, którą pisałeś przed śmiercią, schowaną „na sieci” w brzuszku Docsów?

No i rzecz równie ważna. Może najważniejsza, bo to od niej rozpocząłem dumanie nad kwestią śmiertelności w czasach e-wszystkiego. Jest duża szansa, że jesteś jednym z tych kowbojów Internetu. Opiekujesz się sygnaturami elektronicznego bydła twoich klientów. Gdybym teraz skoczył przez okno, pociągnąłbym z sobą kilka firm. Nie dlatego, że spadłbym na ich parking ubrany w kamizelkę z trotylem; w moich rękach witalne są części ich infrastruktury. Przykładowo: dziennie produkuje się około 4GiB różnych backupów, które trafiają do mojego prywatnego kuferka. Wszystkie są zaszyfrowane przy użyciu klucza GPG. Nawet gdyby ktoś wyrwał dysk z mojego laptopa, to wszystkie kopie bezpieczeństwa nie zdadzą się na wiele.

Ten tekst wyszedł troszkę zbyt kpiarsko jak na temat, który chciałem poruszyć. Zawsze jest ten pierwszy raz, kiedy położysz produkcyjną bazę, potkniesz się o kabel, prawie wszystko jest pierwszy raz, a nauczyć się unikać podobnych błędów macie szansę dopiero, gdy popełnicie je po raz trzeci lub siedemnasty. Umiera się tylko raz, dlatego trzeba się do tego przygotować z wyprzedzeniem. Zróbcie sobie, moi admini, moi programiści, moi technologiczni spece od wszystkiego, rachunek sumienia. Usuńcie się z równania i zobaczcie, co znika razem z wami.


Grają dramat na ekranach

Jadłem kanapkę z jajkiem, kiedy otworzyły się drzwi od wagonu. Wsiadł on: ubrany w dwie kurtki, z brudnymi, przyklejonymi do czaszki włosami. W ręku trzymał zielony, wiklinowy koszyk. Farba zdawała się być nałożona zbyt entuzjastycznie, być może był to taki model koszyka z wikliny, jaki zamawia się u jakiegoś artysty. Sprawiał wrażenie zaniedbanego i zwariowanego. Okrążył wagon, w którym miałem zamiar spędzić samotne dwie godziny, poświęcając się kontemplacji słowa pisanego. Przycupnął wreszcie na rozkładanych krzesłach używanych na zatłoczonych trasach. Zerwał się dopiero na widok konduktora. Aha, typ bez biletu? Może chciał przemknąć tylko między Kaliską a Widzewem?

Mój współpasażer wyciągnął z wewnętrznej kieszeni jednej z dwóch kurtek portfel i zapłacił za bilet. Kiedy zostaliśmy sami, poprawił się znów na fotelu i wyciągnął z wiklinowego koszyka lewy but. Typ sportowy. Położył go na podłodze i przymierzył do swojej nogi. Ściągnął but, a ja automatycznie odwróciłem wzrok. Cóż może się kryć w bucie dwukurtkowego posiadacza wiklinowych koszyków?

Śnieżnobiała skarpetka. But niestety nie pasował i został ponownie wtrącony do koszykowego więzienia. Uwaga współpasażera przeniosła się na telewizor. Taki, na którym odtwarzane są trzy reklamy. Bez przerwy. Próbował bez powodzenia zmienić kanał.

Nasz wagon był wagonem użytkowym. Miał wieszaki na rowery, podesty dla użytkowników wózków inwalidzkich i toaletę. Toaletę, której drzwi zamykają się i otwierają na dotknięcie świecącego guzika. Towarzysz podróży obszedł ją z zainteresowaniem, nacisnął guzik i zniknął w środku.

Ucieszyłem się. Próbowałem czytać, ale wszystkie jego zachowania mój umysł rejestrował jako „warte uwagi” – jeżeli nie ze względu na noszenie zapasowych lewych butów w plecionym koszyku, to dlatego, że mam lęk przed byciem dziabniętym zardzewiałym nożem.

Po pewnym czasie wyszedł i zadowolony zajął miejsce naprzeciw kabiny. Nie musiał czekać długo, podróż trwała już jakiś czas, pierwszy gość w „jego toalecie” pojawił się w kilka minut po zamachu stanu, którego dokonał na nikim, a dzięki któremu stał się samozwańczym tyranem WC na trasie Łódź-Warszawa.

Goście ustawiali się karnie w kolejce. Otrzymywali instrukcje co do funkcjonowania toalety, jak ją otworzyć, zamknąć, znów otworzyć. Kilka osób podjęło grę. Zadało dodatkowe pytania i otrzymało odpowiedzi. Profesjonalnie. Podejmujesz grę albo spuszczasz oczy i czekasz na koniec instruktażu.

Zbliżaliśmy się powoli do końca naszej wspólnej przygody. Ja, próbujący czytać człowiek z notatnikiem i on, imperator doglądający swoich włości z fotela przy toalecie. Jaki Gal Anonim takie pierwsze królestwo.

Drzwi ubikacji otworzyły się i wyszedł z nich starszy, dystyngowany pan. Ładny płaszcz, stalowe włosy, utrzymany zarost. Nie wyglądał na osobę, która zwykła przyjmować połajanki. Nie od kogoś, kto tuli wiklinowy koszyk, a już z pewnością nie w sprawie zaniechania zamknięcia drzwi od toalety, które zamykają się automatycznie.

Krzyczeli do siebie przez chwilę, a ja oglądałem pantomimę, wygłuszając przedział słuchawkami. Stalowowłosy spojrzał nad fotelem swojego wroga i popatrzył mi w oczy. Bezgłośnie prosił o wsparcie. Wzruszyłem ramionami i odpatrzyłem mu: „Nie moja jurysdykcja, sukinsynu.”

Sytuacja uspokoiła się. Bohaterski obrońca toalety podszedł do telewizora i próbował znów zmienić kanał. Kolejna porażka. Tym razem nie miało się na tym skończyć. Chwycił brzegi ekranu i próbował zerwać go ze ściany.

Ekran po chwili zgasł. Jeżeli nie potrafimy się zachowywać, to nie będzie oglądania telewizji. Zniknął na Zachodnim.

Wysiadł albo nigdy nie istniał.


e-glina

Na początku ustalmy kilka faktów. Nie jestem dobrym recenzentem i nie lubię pisać recenzji. Moje opinie zbieżne są z opiniami garstki ludzi, którzy zwykle nie potrzebują zewnętrznych potwierdzeń dla wybranego oprogramowania bądź sprzętu.

Nienawidzę wydawać pieniędzy na gadżety. I komputery. Jest coś obrzydliwego w płaceniu za wygląd i markę. Za punkt honoru stawiam sobie wyduszenie z ledwie żywego złomu każdej kropelki elektronicznego potu przed jej śmiercią.

Nie jest to objaw skąpstwa. To kwestia mojej filozofii pracy z komputerami. One mają pracować dla mnie, nie ja dla nich. Możecie z mojego profilu odjąć punkty w pozycji „racjonalność”. Kiedy mówię: „skaczcie!”, one mają odpowiadać: „jak wysoko? (aplikacja nie odpowiada)”.

Tyle w kwestii formalnej.

Kupiłem sobie tablet. Nie z wewnętrznej potrzeby posiadania urządzenia do picia kawy w modnych miejscach. Chciałem zobaczyć, co można wcisnąć w kawałek plastiku za 360 PLN. Nie jestem nowym użytkownikiem takiego urządzenia - w 2004 klikałem w SIMPada SL4, a od 2008 noszę ze sobą N800, która dziś nie załapałaby się na definicję tabletu. Nie miałem wielkich oczekiwań, moje wymogi zamykały się w odtwarzaniu radia last.fm, czytniku komiksów i wyświetlaniu plików wideo. Minął tydzień (a może dwa? Czas nie płynie liniowo podczas nadchodzącej linii śmierci) i mogę podzielić się uwagami.

Depudełkacja

Depudełkacja zwana też unboksingiem jest przeżyciem religijnym, a mnie, jako ateiście, nie jest dane go dostąpić. Rozerwałem pudełko i wysypałem zawartość na biurko. Ze środka, prócz tabletu, wypadły: zasilacz, instrukcja, przewód USB i żeńska przejściówka USB, która pozwala podłączyć urządzenia zewnętrzne. Tablet wyglądał dokładnie jak 360 PLN. Był ciężkawy, plastikowy, a z jednego z boków wystawało trochę nadmiarowego plastiku, milimetr poza obudowę. Ludzie z internetowym OCD 1 od razu wrzuciliby takie urządzenie do śmietnika. Kwadrans później miałem do nich dołączyć.

Pierwsze włączenie, wybrałem WiFi, zalogowałem się do konta na Google i pozwoliłem się mu zsynchronizować. Kiedy uznałem, że upłynęło wystarczająco dużo czasu, przesunąłem sobie tablet pod nos i odblokowałem ekran. Chwilę później tablet zdecydował, że rejestrowanie dotyku jest rzeczą zbyteczną, więc każde moje dotknięcie powodowało akcję w zupełnie innej części ekranu. Sfrustrowany i wypłukany już z repertuaru wulgaryzmów cisnąłem go w kąt i tak zostawiłem na godzinę lub dwie. Wtedy urządzenie porzuciło swój bunt i już nigdy nie próbowało rewolucji w temacie koordynatów.

Sprzęt

Tablet ma siedem cali, ekran pojemnościowy z kilkoma aktywnymi punktami. Nie wiem, ile waży. Ma port na kartę SD, wyjście HDMI, port zasilania, port USB, klawisze regulacji głośności i włącznik. Poza tym „na dole” znajdują się trzy dodatkowe guziki dotykowe: menu, home i back. Duplikują idealnie te, które znajdują się w Androidzie 4.0, ale nie będę narzekał.

Opiszę tu jedyną rzecz wartą odnotowania: ekran. Tablet składa się głównie z niego, a reszta to elementy dodatkowe. Zasilacz zasila, USB się komunikuje, tyle.

Ekran jest królewsko okropny. Jest tak okropny, że ściąłbym mu głowę. To chyba pierwszy ekran, który sprawił, że byłem smutny. Pisze to człowiek, który pracował na Amidze w trybie interlace, niszczącym wzrok skuteczniej niż przecieranie oczu wapnem gaszonym. Podświetlanie jest nierówne, daje to efekt „pogiętego papieru” w niektórych aplikacjach, gdzie autorzy niefortunnie dobrali paletę kolorów. Nie mogę też pominąć tego, że na moje oko system pracuje w palecie 16-, a może 15-bitowej. Efekt przejść kolorów w Reddit is Fun powoduje, że nic nie jest fun. O dziwo, najbardziej komfortowe warunki uzyskałem w aplikacji Kindle, która pozwala na inwersję kolorów. Białe litery z czarnego czyta się zdecydowanie lepiej.

Procesor jest. Boxchip A10 taktowany zegarem 1.5 Ghz. 1GiB pamięci. Mimo wysokiego taktowania wydaje się powolny. Nie udało mi się wygooglać żadnych ciekawych informacji (poza tym wiem niewiele o rdzeniach ARM-a), musicie więc polegać na mojej nienaukowej opinii. Wolny procesor w połączeniu z gigabajtem pamięci prowadzi do większej liczby nieszczęść, niż mogłem przewidzieć. Wszystko zostaje w tle, zjadając cykle procesora. Podejrzewam, że urwanie jednej kostki pamięci spowodowałoby znaczne przyspieszenie poprzez wymuszenie pracy wewnętrznego OOMK.

Bateria nie jest jeszcze do końca przetestowana. Wczoraj w nocy wrzuciłem w pełni naładowane urządzonko i chciałem zobaczyć, ile baterii zejdzie do rana. Po pięciu godzinach snu wskaźnik baterii pokazywał dziewięćdziesiąt pięć procent. Niestety, ten niski spadek wynika z bardzo agresywnego usypiania. Sieć bezprzewodowa jest odcinana równocześnie z wygaszeniem ekranu, więc aplikacje działające w tle nie poinformują Was o nowych wiadomościach. Z pewnością da się przestawić, ale absolutnie mi to nie przeszkadza - nie jestem fanem powiadomień.

Do tej pory miałem tylko jedną dłuższą sesję z tabletem. Po 4 godz. czytania Reddita i odpisywania na e-maile bateria pokazywała 56 proc. Myślę, że spokojnie można liczyć na sześć godzin ciągłego użycia. Spodziewałem się dużo gorszego wyniku.

Oprogramowanie

Tablet przychodzi z Androidem 4.0.3. Ku mojej radości nie zostałem skazany na jeden z „alternatywnych” sklepów z aplikacjami i mogłem używać oryginalnego Play Store, dzięki czemu moje zakupione aplikacje oraz „firmówki” takie jak Gmail i Google Maps były dostępne mimo braku „błogosławieństwa” dla produktu od Wielkiego G.

Zainstalowałem mnóstwo różnego śmiecia. Kilka gier, które nie były kłopotliwe i chodziły bardzo ładnie. Jedynym odstępstwem była gra „Cut the Rope”, zarówno wersja darmowa, jak i płatna. Na moje oko (i po odcyfrowaniu komunikatu błędu) system nie zawiera jakiegoś kodeka, który odpowiada za odtwarzanie animacji z intra.

Aplikacje użytkowe także nie sprawiały większego problemu. Comixology wyświetla Batmany, Twitter wyświetla łebskie wpisy znanych i światłych, Last.fm gra moją muzykę, VLC gra moje filmy - lokalnie i ze źródła streamu (oglądałem połowę meczu LM), a nawet via Samba z serwera ukrytego pod stołem kuchennym. Niestety, aplikacje, które potrzebują chwili na osiągnięcie stanu używalności (Flipboard aktualizujący kanały wiadomości), potrafią zatrzymać cały system. Czasem nawet doprowadzić do stanu, w którym zielony robot wyrzuca dłonie w górę, mówiąc „Nie wiem? Może zacznij z początku”, a tablet się restartuje.

Tak, miałem kilka twardych wywrotek. Najgorsze w nich jest to, że nie mogę odkryć dokładnego powodu. Kombinacja aplikacji? Stan baterii? Liczba rzeczy w tle? Jest to chyba najbardziej irytująca rzecz w tej całej zabawie. Mogę przeżyć ten okropny ekran, ale restarty psują całą zabawę w „urządzenie konsumpcyjne” i ciągnie mnie w stronę laptopa.

No i?

Moja opinia jest następująca: zabawka zdecydowanie przebiła moje oczekiwania w kontekście ceny. Oczekiwałem, że cisnę je w kąt po dniu, tymczasem jeździ ze mną non stop. Choć nie zostanie nigdy moim docelowym elektronicznym gadżetem 2, to całkiem polubiłem krótkie sesje z Redditem i Readability. Moja N800 może wreszcie odejść na zasłużoną emeryturę. Gdyby wyeliminować te losowe zwieszki (może czas rozejrzeć się za jakąś zewnętrzną dystrybucją?), powiedziałbym, że jest to najlepsza rzecz, jaką można nabyć za 360 PLN.

Niestety, moja opinia jest pokolorowana faktami, o których wspomniałem na początku. Jeżeli chcesz być majnstrimowym użytkownikiem tabletów, to polecam dorzucić jeszcze sto dolarów i kupić Nexusa 7.

W tym tygodniu wykonam factory reset i pożyczę tablet przyjacielowi. Jeżeli jego opinia będzie diametralnie różna od mojej, to poproszę go, żeby zostawił komentarz pod tą notką.

PS Dwa miesiące bez tekstu. Życie nie chce, żebym został popularnym blogerem! Mam w lodówce pięć tekstów, które obiecuję sobie napisać. Tekstów ważnych, rzeczowych – takich, z których jestem znany 3. Ba, dwa opowiadania! Za kilka dni zostanę „bezrobotny”, linia śmierci przetnie moje dni i może wreszcie będę mógł cieszyć się rzeczywistością, w której nie jestem zawsze spóźniony dwa dni w stosunku do tego, co mówi kalendarz.

  1. fałszywe OCD, które powoduje, że jesteś fajniejszy w oczach followersów na socjalmediach; nie prawdziwe schorzenie niszczące życie
  2. wątpię, czy w ogóle jest taki tablet na rynku, mój laptop ma klawiaturę, 8 godz. baterii i waży kilogram. Mam też drugą baterię, która ciągnie kolejne 4 godz.
  3. ha ha

Problem z dzięciołem

Gdyby architekci stawiali budynki tak, jak programiści piszą programy, to jeden dzięcioł rozwaliłby całą naszą cywilizację

„Piękny budynek. Doskonały. Te kształty, basen przy ogródku. Podoba mi się. Naprawdę mi się podoba. Niestety, wnuczek jednej z pań powiedział nam, że w tym sezonie sensowniej byłoby zbudować igloo i martwić się letnimi problemami w lecie. Za ile możemy mieć igloo? Nie znam się na architekturze, ale wygląda mi to na kilka dni roboty.”

Rozmawiałem ostatnio z kilkoma inżynierami. A raczej słuchałem, jak odmieniali cytat z góry przez różne przypadki. Własne przypadki przeżyć podczas używania bardzo złego oprogramowania. Potakiwałem. Nie oszukujmy się, jest cała masa przykładów usprawiedliwiających ich drwiny. Sam, częściej niż bym chciał, produkuję kod, którego jakość można zakwestionować. Nie będąc wtedy w stanie wymyślić jakiejś sensownej linii obrony własnej pracy, zapisałem sobie w notatniku, żeby zmierzyć się z tym problemem w wolnym czasie.

Nie mam niestety wolnego czasu, więc spróbuję podumać „na głos” dziś.

Pierwszym problemem w porównaniu pracy programisty z pracą inżyniera jest końcowy efekt. Życie aplikacji, choć zwykle krótsze niż w przypadku budynku, mostu czy nowego modelu silnika, nie ma końca. Oczywiście pojawiają się nowe, stabilne wersje, ale programista jest zmuszony ciągle odgadywać przyszłe intencje klienta czy też użytkowników. Czasem jedna decyzja technologiczna podjęta w wersji n może okazać się niesamowitym źródłem problemów podczas dopisywania nowej funkcjonalności w wersji n+1. Ten permanentny stan niewiadomej jest źródłem frustracji i mnożenia się błędów i niedociągnięć. Prawię słyszę, jak krzyczycie do mnie o specyfikacji projektowej. Błogosławieni ci, którzy mają specyfikację i klienta, który się jej trzyma. Z mojego doświadczenia wynika, że specyfikacja często jest (jeżeli jest) ogólnym dokumentem, do którego nikt się nie modli. Skoro można pisać poprawki do konstytucji, to czemu nie można zmieniać specyfikacji? I zmienia się specyfikacje aż do momentu, gdy programiści osiągają stan apatii, w którym, często pod wpływem aresztu finansowego, zgadzają się na wszystko jak leci.

Przykład z mojego życia. Klient przychodzi i pragnie sklepu internetowego. Piszemy. Po wykonaniu trzech czwartych projektu następuje piwot, ponieważ klient klienta zmienił zapotrzebowanie. Na podstawie wykonanej pracy mamy zrobić platformę serwującą filmy na żądanie. Niby można, wystarczy ubić koszyk, zmienić profile użytkowników, przerobić trochę kategorie. Da się, są pieniądze. Mijają miesiące. W międzyczasie otrzymujemy przykaz, żeby używać FreeBSD jako platformy. Administrator klienta nie przepada za Linuksem.

Co dalej? Piwot. Klient klienta zbankrutował. Nie można wyrzucić tyle pracy. Przeróbmy to na chmurową platformę, która będzie spięta z Google Apps i będzie potrafiła odpalać oprogramowanie Windowsa przez serwer Citriksa. Aha, zmieńmy też platformę na Windows 2003 i IIS.

Po dwóch latach napisałem, że już dłużej nie mogę, że nie wiem już, co się dzieje w kodzie. Projekt, który zeżarł wiele tysięcy dolarów i wepchnął mnie w zawodową depresję, zostaje spuszczony w kiblu.

Łatwość modyfikacji oprogramowania powoduje, że programiści wszelkiej maści muszą posiadać zmyślone moce Nostradamusa albo być twardzielami, którzy potrafią utrzymać świętość specyfikacji. Koderzy dużo lepiej kodują niż negocjują, dlatego mamy całe masy niespełnionych Nostradamusów i oprogramowanie, które zaciągnęło taki dług technologiczny, że najłatwiej spłacić go butelką benzyny i zapałką.

Ile lat buduje się mosty, stawia domy? Kilka. Inne branże miały czas zakumulować know-how. Programiści chorują chronicznie na brak dobrych wzorców projektowych i ich nieznajomość połączoną z ostrym zapaleniem wyrostka Nie Wynaleziono Tutaj. Dodatkowym problemem jest ciągłe wywracanie technologii do góry nogami. Wczoraj zdecentralizowane dziś się centralizuje, by pojutrze rozproszyć. I choć teoria leżąca u podstaw pisania kodu jest w miarę jednolita, to zmieniają się miejsca, w których wychodzą problemy. Warstwy abstrakcji przykrywają poprzednie warstwy abstrakcji, powodując totalne rozwarstwienie pomiędzy wcześniejszą generacją programistów a generacją obecną. Dorzućmy do tego nieprawdopodobny (nie bez powodów) konserwatyzm wśród zawodowych klikaczy i mamy sytuację, w której dwóch programistów może posiadać sześć rozwiązań problemu. Każdy z nich nie mrugnie nawet okiem, usprawiedliwiając swój wybór. Dodajmy do mikstury świeżych autorów programów, którzy nie zakrzepli jeszcze w swoich schematach i każdy problem rozwiązują, dodając do stosu modne, nieprzetestowane technologie i uzyskujemy totalny kociokwik bibliotek, serwerów i metodologii przebijających swoim spektakularnym końcem dziewiczy rejs Titanica.

Przez pięćdziesiąt lat programowanie zmieniło się tak bardzo, że nie zmieniło się w ogóle. To znów urodziło eksperymentatorów z ciągotami do konserwatyzmu. Tymczasem stała grawitacyjna, wzory na objętość i materiałoznawstwo zdają się trwać. Oni mają ewolucję, a my krwawe rewolucje, które niosą na sztandarach hasło, że „Tym Razem Będzie Dobrze”.

Wiedza. Nie oszukujmy się, można być programistą, kompletnie ignorując jakiekolwiek dziedziny nauki. Kilkuset niezmiernie łebskich gości pisze narzędzia dla niedomytych mas. Niedomyte masy są tak dobre w rozwiązywaniu problemu, jak dobre narzędzia otrzymają od łebskiej elity. Wystarczy jednak wykonać jeden krok poza sferę kompetencji narzędzi, aby przekonać się, jak bardzo przeciętny programista jest w dupie. Bycie w ciemnej dupie nie jest fantastycznym doświadczeniem, dlatego też reakcją obronną jest naginanie dostępnych narzędzi do problemów. Człowiek krojący chleb piłą łańcuchową, człowiek, który ma bazę danych i wszystkie problemy potrafi przydusić tak, aby zamknęły się w SELECT/INSERT/DELETE/UPDATE. Jeden jest najedzony, a drugi ma rozwiązany problem, ale z szerszej perspektywy obaj wyglądają na durnych i lekko zagubionych.

Napisałem fantastyczną bibliotekę do obsługi aplikacji typu data-driven. Schemat bazy jest ekstremalnie generyczny, wszystko można zostawić użytkownikowi. Potem pojawiły się pierwsze problemy: jak rozpoznać, że grupa rekordów już istnieje i należy ją zaktualizować? Trzeba dodać unikalne indeksy. A co z polami o konkretnym typie, które topią się w bezpłciowym schemacie? Trzeba je ewaluować i trzymać cztery kopie tak, żeby dało się wykonać operacje via wbudowany ORM. Zanim się ocknąłem, reimplementowałem bazę danych w bazie danych, w kodzie we frameworku. Wyświetlenie głupiej tabelki zajmuje ORM-owi wieki i generuje kilka trylionów zapytań. Nie rozumiałem problemu, miałem młotek, dookoła mnie same gwoździe. Powbijałem je trzonkiem młotka i uznałem, że wszystko jest w jak najlepszym porządku.

Mimo to uważam, że nie jestem totalnym kretynem. Jestem produktem środowiska, mód i narzędzi. Ostatecznie doczytałem trochę teorii i ponaprawiałem (z pomocą [Patrysa](http://room-303.com/blog/[/ref] bardziej porąbane miejsca. Kod nie szedł jeszcze na produkcję, ale przecież mógł.

Łatwość, z jaką przychodzi nam budowanie rozwiązań dla oczywistych problemów, włącza nam tunelowe widzenie i wiąże ręce.

Czyli co, nie ma ani krzty nauki, metodologii i dobrych wzorców w całym programistycznym świecie? Skądże, jest coraz lepiej. Coraz lepsze narzędzia, coraz większy zasób wiedzy i metodologie projektowe pomagają nam wydźwignąć się z bagna niekompetencji. Nauczymy się rozwiązywać problemy, przed którymi stajemy zupełnie na golasa, będziemy bohaterami własnych historii.

Do czasu, aż przyjdzie kolejna rewolucja. Wtedy będziemy znów w dupie. I mogę poradzić tylko naukę gry na harmonijce i metalowy kubek, którym będziemy wybijać rytm o nasze superlekkie laptopy, śpiewając:

Nobody knows the trouble I’ve seen

Nobody knows my sorrow

Nobody knows the trouble I’ve seen

Glory hallelujah!

Sometimes I’m up, sometimes I’m down

Oh, yes, Lord

Sometimes I’m almost to the ground

Oh, yes, Lord