Béton brut

Jedną nogą na platformie, drugą nogą w trumnie

![Burza na morzu](http://bronikowski.com/wp-content/uploads/2011/03/platforma.jpg “platforma”)

Stojąc na ramionach gigantów

Słynna metafora o staniu na ramionach gigantów opisuje naturę inwencji, która nie zachodzi w próżni. Dzisiejszy wynalazek czy odkrycie naukowe jest możliwe dzięki zakumulowanej wiedzy przeszłych pokoleń. Przekładając to powiedzenie na nasze podwórko otrzymujemy dwa znaczenia, jedno zgodne z ogólnym zrozumieniem przesłania (wzorce projektowe, metodologia) i drugie, które wymaga lekkiej modyfikacji i po zmianie brzmi następująco: “stojąc na platformie gigantów”.

Róbta co chceta. Reszta jest wymieniona w TOS.

“Zbudujcie, a przyjdą. Zostawcie wiadro z farbą, a pomalują.” — tak mniej więcej wygląda rozwój popularnych projektów webowych. Brak API to faux pas. Kto nie mashapuje ten ma brud za paznokciami. Można wysunąć nieśmiałą tezę, że niektóre projekty nie osiągnęłyby dzisiejszej popularności, gdyby nie łatwy dostęp do danych przez ustandaryzowany protokół.

Czym projekt popularniejszy, tym więcej developerów grzeje się w odbitym blasku. Niektórzy budują własne małe (lub większe) biznesy w oparciu o żywiciela. Protokooperacyjna symbioza trwa tak długo, aż operator platformy nie staje się duży. Duży i niedożywiony.

Patrzę na Twittera. Przez ostatnie lata klient Twittera powstał chyba na wszystkie platformy, które mają dość pamięci aby wysłać i odebrać dane po HTTP. Aktualizacje statusów z użyciem C64 to najnowszy hipsterski trend. Wszystko było dobrze, programiści trzymali się za ręce, chodzili boso po plaży, jelenie ryczały do zachodów słońca. Wreszcie, jak to w związku, strony rozpoczęły testowanie limitów. Szybko okazało się, że “spodnie w związku” nosi właściciel platformy, który po kilku próbach spieniężenia jego API powiedział, że poligamia go już mocno zmęczyła i spróbuje związku z jedną aplikacją, własną. Która to aplikacja może mieć dostęp do kilku metod na wyłączność. Taki handicap.

Patrzę na mobilny ekosystem Apple. Konkretnie na ostatnie zmiany w temacie subskrypcji i dzielenia się dochodami. Pada teza, że to produkty Apple, dzięki swojej popularności, przynoszą klientów wydawnictwom, ale prawie nikt nie stawia tezy, że to aplikacje i cyfrowa prasa sprzedaje urządzenia kalifornijskich multimiliarderów. I czuję żal wydawców, ale nie zdają sobie oni chyba sprawy, że kiedy masz już założony stryczek, a ksiądz kończy modlitwę nie ma już wiele czasu na składanie apelacji.

Tabakiera dla nosa, czy nos dla tabakiery? To zależy, czy właściciel nosa jest uzależniony.

Anegdota: byłem kiedyś na spotkaniu, gdzie próbowano połączyć ruch open source z anarchizem. To jedna z tych pułapek: parówki są dobre, ale nie chcesz widzieć jak powstają. 1 Końcowy produkt jest smakowity, ale pisanie programów czy tworzenie platform zwykle nie ma nic wspólnego z wolnością. Dyktatura jest bardzo efektywnym systemem. Ktoś musi mieć możliwość pieprznięcia ręką w stół.

Martwi mnie wymuszona marketingowo fragmentacja 2 i pewna niefrasobliwość twórców. Brakuje mi oderwania produktu od platformy. Czuję, że powtarzamy lata osiemdziesiąte. A szło nam tak dobrze. Wszystko zaczęło się od technologicznej zupy pierwotnej, w której rodziły się i umierały pierwsze domowe komputery. Ze względu na mały potencjał i kompletną niszowość przenośność danych była przecinkiem na wielkim planie rozwoju. C64 nie wyświetało obrazków z Atari, PC nie czytał dyskietek Amigi, Mac miał kosmiczny system plików, który wymagał specjalnej troski. Potem powolutku, powolutku, drogą naturalnej selekcji, udało nam się coś ustalić.

Siedzimy sobie w trzy osoby, trzy laptopy, trzy systemy operacyjne. Możemy się wymieniać danymi bez większych problemów. Mamy wspólne protokoły, dekodery, kodeki. Czasem jest to najniższy denominator (VFAT na pamięciach flash), ale jakoś to się kręci.

Próbowałem dla zabawy zebrać “najlepsze” teksty z blożka i opakować je w coś, co pozwoliłoby rozdać je czytelnikom. No, jest ePub, ale ze wsparciem jest różnie. PDF teoretycznie odczyta się wszędzie, ale co z rozmiarami ekranu? Dystrybucja cyfrowa narzuca na mnie kolejne ograniczenia, a czasem jest niemożliwa ze względu na możliwości techniczne (cyfrowa dystrybucja w Amazonie nie wspiera polskich znaków diakrytycznych). Mogę śmiało powiedzieć, że jestem całkiem kompetentnym gościem jeżeli chodzi o komputery, ale ilość zmiennych i niekompatybilnych systemów zmusiła mnie ostatecznie do podjęcia męskiej decyzji: pieprzyć to.

Jestem oczywiście w komfortowej sytuacji, że nie muszę. Gdyby w grę wchodził czynnik ekonomiczny to prawdopodobnie wybrałbym najpopularniejszą, czy też przynoszącą największe dochody, platformę. I niby nie ma problemu, bo zwycięzcy zwykle piszą historię.

Ale. Jest we mnie ta kropla pryszczerstwa i nitka swetra. Ta, która martwi się, że zmiana w sposobie w jaki zwykły użytkownik używa komputera doprowadzi do ograniczenia dostępu do kultury. Każdej kultury, tej z dużej i tej z małej.

“Nasz” dyktat się skończył. Komputery nie są już zabawkami w rękach gości, którzy żyją i oddychają ich problemami. Firmy po dwudziestu latach walki z nami o różne rzeczy widzą nową, świetlaną przyszłość. Wmówiłem sobie, że zobaczę czas w którym będę krok od twórcy, a twórca krok od moich pieniędzy. Czy nie będzie świetnie pozbyć się tego piątego koła u wozu? Tego wydawcy, dystrybutora, hej! świat jest nasz. Dziś wygląda na to, że zamieniliśmy jedno na drugie. Do tego ten nowy jest dyktatorem i z chęcią sprzeda ci specjalne okulary do czytania jego książki.

Kult aplikacji

Sieć opakowana w małe pudełka po 128px i sprzedawana na raty. 3 Gdzieś udało się dyktatorom platform przekonać ludzi, że dużo lepiej zainwestować we “własną aplikację” niż w dobrą mobilną wersję strony.

Często jedyną wartością dodaną jest możliwość wskazania ikony i powiedzenia “To my!”. Na salonach należy bywać, bo kto nie bywa ten nie rozdaje wizytówek. W przypadku pudełkowania webu płacimy za to psuciem naturalnego środowiska (czy aplikacja Gazety X może podlinkować do aplikacji Bronikowski.com lub w drugą stronę? A co jeśli jedna z nich jest płatna? Niedostępna na platformie?) i zezwoleniem na kontrolę własnych treści.

Wreszcie możesz uczciwie powiedzieć, że kupujesz Playboy.app dla artykułów.

To wideo nie jest dostępne na terenie Twojego kraju

Mieć, czy być? Najlepiej to i to. Jak? Nie mam pojęcia. Jedyne, co mi przychodzi do głowy to edukacja użytkowników i technologiczny agnostycyzm. Dobre wzorce. Technologiczne rozwiązania. Lepsze prawo.

Okresu w którym zwycięzcy podzielą łupy nie unikniemy, naszym modus operandi powinno być skrócenie czasu rządów lokalnych książąt i baronów do minimum. Niech Hari Seldon będzie dumny!

Wykazują się niespotykaną nonszalancją puszczam tekst bez redakcji. Eri jest zajęta, a ja postanowiłem mieć pierwszy wolny weekend w 2011. Tekst leży dwa dni i mógł trafić na stronę lub do śmietnika. Najwyżej oddam Wam za abonament.

Fotografia na licencji CC, autor Mike Braid

  1. “Gdyby rzeźnie miały szklane ściany wszyscy bylibyśmy wegetarianami” — Paul McCartney
  2. powiedział użytkownik Androida, c’nie
  3. Chyba oczywiste jest, że nie piszę tu o grach i aplikacjach, które mają jakiś powód do bycia aplikacją?

Dema, intra, magia, Amiga

Yay, demoscene!

![demoscene](http://bronikowski.com/wp-content/uploads/2011/02/tG-yay-demoscene.png “tG!-yay-demoscene”)

Plan był prosty. Zebrać kilka ulubionych dem, dopisać do nich krótki komentarz i dodać linki do YouTube. Dochodzi wpół do trzeciej nad ranem, mam z pół setki dem i nie wiem jakich kryteriów użyć, żeby zostało ich mniej. Pójdę na żywioł i będę pisał tak długo, aż mi się nie znudzi.

The Black Lotus

TBL. Co można napisać o TBL? To jedna z najważniejszych grup na amigowej scenie. The Black Lotus służyło nam do zaginania użytkowników PC-ta, bo może oni mieli Quake, akcelerowaną grafikę i Windows 95, ale my mieliśmy “Captured Dreams”, o którym muzyk grupy Plastic powiedział kiedyś, że byłby to temat jego śmiertelnego zejścia, gdyby zdecydował się na samobójstwo przez przedawkowanie narkotyków.

Lata mijają, a TBL nadal wydaje dema. “Magia”, “Starstruck” czy “Rain” to produkcje, które wyciskają z biednej Amigi czwarte poty.

Scoopex

Kolejna grupa z historią sięgającą homo erectus. Ich niektóre produkcje (“Glory Stars”) mogą być starsze, niż moi czytelnicy. Ponieważ jestem “nastolatkiem lat dziewięćdziesiątych”, moimi ulubionymi demami są ich późniejsze dokonania: intro “1000%” (jedno z pierwszych wpisujących się w trend “zobaczymy, ile możemy wcisnąć w 64k”) i demo “Alien2”.

Floppy (AKA Flopi)

Chyba najważniejsza polska grupa w drugiej połowie lat dziewięćdziesiątych. Zig, Def, Revisq, X-Ceed, Madd, Mustafa, Maq: pierwsza liga demoscenowa. Przez lata wyprodukowali wiele dem, które zapisały się w historii demosceny. Ponieważ jest to moja lista debestof, muszę wybrać: “Datablade 2”, intro “Encore” i “Nadia”.

Pamiętajcie, you get what you deserve.

Potion

Historia jakich wiele, “spotyka się dwóch wybitnie utalentowanych gości i…”. W tym przypadku powstaje Potion. 1 Grupa napędzana przez kodera (choć Maveyowi bardziej należy się tytuł programisty, bo prócz matmy znał też system) i Skipa, jedynego chyba muzyka na świecie, który nauczył się programować, żeby móc napisać własne narzędzia do generowania sampli i mowy.

Do dziś pamiętam demonstracje generatora tekstur autorstwa Maveya. Po skompilowaniu binarka zajmowała około półtora kilobajta i potrafiła dane długości setek bajtów zamienić w gotową teksturę. Mózg wypadł mi przez ucho.

Gush”, “Gift” i ostateczny nokaut wszystkiego, co się rusza, “Planet Potion”.

Zawsze oszukuję się, że maczałem palce w sukcesie Potion sprzedając Skipowi w bardzo okazyjnej cenie moją kartę z PowerPC.

Encore

Kolejny duet. MDW i Caro. Dwójka najmilszych facetów na scenie. Cichych, skromnych i niezmiernie utalentowanych. Czasem nawet tak skromnych, że chce się bić w mordę, tu anegdota.

Kiedy Caro był już scenowcem znanym i cenionym, MDW był nadal “zwykłym amigowcem”. To znaczy, że sobie klikał, ale bez jakiegoś konkretnego kierunku. Na party zostałem zagadnięty przez Karola, czy mógłbym podrzucić jakąś dokumentację, kody, co tam mam ciekawego, bo MDW chce się uczyć programować. Coś tam dałem, ale będąc totalnym leszczem, nie mogłem go wspomóc w walce z przewracającymi się bryłami. Dwa lata później Encore wydało “Sulaco”, kod MDW.

Miłośnicy strzelanek mogą sobie zakupić grę “Fortis” ich autorstwa.

Madwizards (AKA Mawi)

Mawi długo pięło się na szczyty demoscenowej góry Olimp. Swój ostateczny sukces zawdzięcza liderowi i kierwonikowy budowy, Azzaro. Facet z charyzmą, generujący jednego przyjaciela na dwóch wrogów. Jego upór zaowocował zebraniem fantastycznej ekipy i “zdetronizowanie” Flopi jako najbardziej rozpoznawalnej ekipy z Polski.

Amsterdam Blessing”, “Cruel Karma Forms”, “Third Eye Conqueror”.

Więcej, więcej

Loonies i “Impossible”. Dwa kultowe dema Nerve Axis, “Pulse” i “Relic”. Dual Crew Shining z “Klone”, w którym to demie na dużej estradzie debuiutował Bonzaj. Hiszpanie z Ozone produkujący wg zasady “mniej brył, więcej dizajnu” w “Smoke Bomb”.

Wszystkie wystawy sklepowe grały “State of the Art”, nikt nie puszczał “9 Fingers” i “Symbolia”. Omal nie zapomniałbym o “Technological Death”! To też grali. Do wyrzygania. Jedna czwarta programu Dżojstik.

Artystycznie jest ślicznie z “KilleremCNCD. Mellow Chips zdobyło 1997 demem “Rise”.

Ha, ha

Demoscena nie polegała tylko na piciu wódki do kręcących się sześcianów i obrabianiu sobie dup w magazynach dyskowych. Głównie temu, ale nie tylko. Był też czas relaksu, czas konkurencji “crazy/wild compo”. Czasem zabawnie, często żenująco.

PSB (Przyjaiele Stefana B.) z ich wersją “Sabotage”, Brygada RR definiuje scenę w “SCENAriu”, Lamersis nawijają w “FKU”, a Ventures Art powołuje do życia boysband V-Block i nagrywają hit “Ognista bejbe”, który stanie się jedną z ulubionych przyśpiewek do ogórka.

Na koniec NSFW, trailer filmu z RR Meeting 2003. Można się zabawić w “authorspotting”. ;-)

PEEEEEEEEEEEEEEEEEECEET

Na demoscenie x86 się nie znam, ale zasięgnąłem języka u obywatela Czerskiego i pozwolę sobie zacytować tu jego rekomendacje.

Future Crew “Second Reality“, Doomsday “Vivid Experiment“, Coma “Control“, Fuse “Chanell88” i “the. product.”, które widział chyba każdy z dostępem do Internetu.

ASCII na górze przygotował Piotr Klimek, kiedyś thung/k0re.\^wpz\^pT\^TL\^itakdalej. Źródło .txt dla ciekawskich.

  1. Przed Potion tworzyli jeszcze inną grupę, ale nie mogę sobie za nic przypomnieć, jak się nazywała

Nasze Ulice, Wasze Tablice

(Uwaga! Ulało mi się grafo, nie zwracam za biliety)

Na skrzyżowaniu ulic Karola Wojtyły i Lecha Kaczyńskiego, nieopodal alei Poległych Bohaterów, kilka dni przed świętem narodowym, które pokrzepi nasze dusze, obywatelka zamknęła warzywniak.

Na dobre.

Będzie musiała się wprowadzić do syna, przy Chleba i Pracy.


Wypijmy za błędy

Errare humanum est. Perseverare diabolicum.

Żyjemy w kulcie sukcesu. Przeszczepiono nam “American Dream” i zamiast generalskiej buławy w plecaku nosimy w sercu mit pucybuta, starletki i Cukiergórów z Twarzoksiążek. O sukcesie się mówi, sukces się pompuje, kto nie miał sukcesu, ten przegrał życie.

“Moja branża” (czyli ogólny hi-tech-kable-i-ekrany) cierpi na nieuleczalną sukcesomanię. Mamy takie spotkania, na których przychodzimy się chwalić, że nie zawaliliśmy projektu. Widownia klaszcze jak u Rubika.

Wydaje się, że pomiędzy pomysłem, wykonaniem a sukcesem nie może minąć więcej niż trzydzieści dni, bo wtedy ktoś mógłby pomyśleć, że sukces został osiągnięty pracą, a branża nowych technologii stoi chińskozupkowymi standardami smaku, czasu wykonania i nieprzystającymi do rzeczywistości oczekiwaniami zwrotu wyhodowanymi na historiach sukcesu, którymi karmią nas poczytne blogi.

Mamy hall of fame, mamy hall of shame, gdzie wpisujemy najbardziej spektakularne katastrofy celem poprawienia sobie humoru kosztem cudzego projektu. Pomiędzy tymi dwoma skrajnościami są jeszcze błędy, które pomagają nam się uczyć. Te, o których nikt nie mówi 1 i te, które są najbardziej wartościowe. Podzielę się z Wami moją ulubioną wtopą w nadziei, że poświęcicie chwilę i napiszecie o swoich. W osobnych notatkach, niech Was zobaczą!

Fabricando fit faber

Była wiosna. Rok 2003. Moja pierwsza “prawdziwa praca” (taka z podatkami, w której nie trzeba biegać starszym po wódkę). Byłem jednym z trzech programistów w projekcie wspomagającym rekrutację pracowników z branży medycznej do skandynawskich placówek. Standardowy zestaw: wyszukiwarki, filtry, CV i lista wysyłkowa. Moim zadaniem było dopisanie kilku nowych funkcji do listy wysyłkowej i optymalizacja.

Obudziłem się radosny. Było ciepło, byłem wreszcie programistą i nauczyłem się nawet pić kawę. Dochodziła szósta. Posadziłem odwłok za biurkiem i zalogowałem się na serwer w pracy z myślą o ścięciu godziny z czasu biurowego, którą mógłbym poświęcić na konsumpcję obiadu. Dopisałem na szybko możliwość dodawania załączników do mailingu, poprawiłem trochę główną pętlę, która teraz wysyłała e-maile w paczkach i puściłem test. Serwer myślał i myślał, aż do komunikatu, że jest chory. Machnąłem ręką i zabrałem się za pakowanie do pracy.

Dotarłem do biura o ósmej i rozsiadłem się. Zadzwonił telefon. Zignorowałem, bo nie odbieram telefonów, zwłaszcza z biurka Projekt Manażera. Telefon dzwonił, dzwonił. Około dziesiątej pojawił się Marcin, PM. Nie minął kwadrans, gdy do pokoju wpadł Tomek, ówczesny dyrektor (obecnie prezes) i zadał nam proste pytanie: “Coście, kurwa, uczynili?”.

Cośmy?

Okazało się, że nie usunąłem linii, która wysyła e-maile. To znaczy, że mój testowy przebieg rozesłał wiadomość do wszystkich lekarzy i pielęgniarek zarejestrowanych w systemie. Kiedy zalogowałem się ponownie na serwer i przeczytałem pętlę oblał mnie zimny pot. Podczas dodawania kodu do grupowania wysyłki nie resetowałem tablicy. Wyjaśniam.

Pierwszy użytkownik na liście dostał e-maila. Potem drugi użytkownik otrzymał e-maila, a pierwszy dostał drugi e-mail. Potem trzeci dostał pierwszy, drugi drugi a pierwszy trzeci. Czwarty pierwszy, trzeci drugi, drugi trzeci, pierwszy czwarty. I tak chyba dwa tysiące osiemset razy.

Odwróciłem się do Tomka i wyjaśniłem, czego dokonałem w wolnym czasie. Po opierdolu otrzymałem przykaz odpowiadania na e-maile wściekłych klientów. Nigdy dotąd tyle osób na raz nie kwestionowało mojej seksualności, pojemności czaszki, nie wymieniało chorób, na które potencjalnie zapadłem. Po godzinie “jebany pedał z wodogłowiem” brzmiało jak “Dzień dobry, ja w sprawie tego mojego konta e-mail, które ma pięciomegowy limit”.

Tu mógłbym zakończyć historię, gdyby nie fakt, że testowałem też załączniki.

Dzień wcześniej Bartosz poprosił mnie o przykład szyfrowania metodą Cezara w C. Ponieważ jestem słabiak w C, postanowiłem spróbować. Tego właśnie kodu użyłem jako przykładowego załącznika. Jak się nazywał plik?

penis.c

Spędziłem dzień razem z kierownictwem na wymyślaniu akronimu pasującego do słowa penis, abyśmy mogli wydać odpowiedni PR, że ten załącznik nie nazywa się od męskiego organu. Najlepszy dzień w sali konferencyjnej!

Dwie najważniejsze lekcje, które odebrałem tego dnia:

  1. Przyznać się do winy jest bardzo łatwo, a po przyznaniu można zająć się gaszeniem pożaru, a nie zacieraniem śladów własnej głupoty
  2. Najgorsze, co może ci zrobić pracodawca to cię zwolnić

No i trochę o tym, że nie testuje się kodu na biednych użytkownikach. I trochę o blokowaniu portów. I że wymyślanie skrótów do słowa “penis” zbliża szeregowego pracownika z kadrą kierowniczą, bo kiedy jeszcze masz okazję błysnąć pomysłem wśród decydentów?

Nie zostałem zwolniony mimo okresu próbnego.

PS. blogowanie mi strasznie zbrzydło. Przewiduję kwartał ciszy.

  1. wiem, że odbyła się przynajmniej jedna konferencja w takim temacie, ale to listek figowy

Żądamy prawdy

Nie, nie żądacie prawdy. Prawda jest zbyteczna ludziom, którzy mają już wszystkie odpowiedzi. Prawda jest zwykle bolesna, przewraca spiżowe posągi i pali obrazy. Prawda nigdy nie służy “obozom poparcia wniosków słusznych z uwagi na to, że my je głosimy”, bo nie urodził się jeszcze człowiek, który przez całe życie nie popełniłby draństwa i nie zełgał.

Bardzo łatwo o “prawdę” w zero-jedynkowym świecie sloganów i megafonów, w którym to świecie wróg reprezentowany jest przez Ty*-1.

Kto nie krzyknął, że sędzia chuj, bo dyktuje słusznie rzut karny przeciwko twojej drużynie? I jest to prawo zaangażowanego tłumu. I jest to jego wersja prawdy, której trzeba złożyć hołd podczas wspominania porażki. Jeśli tłum krzyczy dość długo, że sędzia chuj to wreszcie krzyknie prawdę i tym samym upewni się w przekonaniu, że tak było, jest i będzie, że drużyna jego zawsze dostaje złego sędziego.

Bo “prawda” to tylko słowo, tak jak “miłość”. Dla jednych to większa wartość, dla innych penis w waginie. Dla mnie to jednak suma całości: jest prawda czasu, prawda ekranu, prawda?


Długi ogon krótkich fiutków

My artyści tak zwani niezależni
Mamy powód poważny na zmartwienia
Dosyć mamy sterczenia pod oknami
Czemu nie jesteśmy w końcu doceniani?

My artyści tak z kręgu podziemnego
Mamy powód na rozterki gorące
Skoro robimy tak fantastyczne rzeczy
Czemu się nie przekłada to na pieniądze?

Kult - Artyści Niezależni

Jednym z najsilniejszych mechanizmów społecznych jest chęć przynależenia do grupy. Oznakowania się, przepasania flagą. Bycie reprezentantem idei, bycie z kimś przeciwko komuś. Bycie marką, nawet jeśli ta marka jest tak słaba jak marka “bloger”.

Fascynuje mnie ruch świadomej blogosfery, który rodzi co jakiś czas spotkania (czy też w nowomowie “iventy”) mentorskie takie jak BlogDays. Uważny obserwator może zauważyć panującą wtedy atmosferę AmWayowego zebrania. Czubek piramidy nadaje komunikat, doły absorbują. Są piosenki, filmy motywacyjne. Uściski rąk i wzajemne całowanie policzków.

Ty, blogerze z dołu piramidy, całe życie będziesz miał zadarty łeb. Będziesz czytał teksty o tym, jak optymalizować treści, jak się marketingowo miziać, może nawet zrobisz jakiś własny “ivent”, na który zrekrutujesz kilku podobnych ci ludzi. Bo przecież to, że ten z czubka piramidy jest tam właśnie, to tylko dlatego, że odkrył skład sekretnego sosu na topowy blog.
Linki do własnych treści? A może udzielanie się w dyskusjach na innych blogach? Pastelowy szablon?

Wiesz, że to działa. Popatrz na ulice w sobotnią noc. Zobacz szeregi lachonów poubieranych w kostiumy Dody i Paris Hilton. One też szukają drogi na czubek piramidy.

I nie chcę cię martwić, ale pewnie jest bardzo niewiele osób, które twój blog interesuje. I nie chcę cię martwić, ale pewnie jest bardzo niewiele osób, które interesuje najbardziej poczytny blog, ten który znasz i liczysz, że zajmiesz jego miejsce.

Po raz kolejny pomyliłeś medium i wiadomość. Kupiłeś sobie bezprogowy bas i okazuje się, że nie grasz jak Les. Upijasz się jak Ernest, a kartka pusta.

Jesteś kapelą, która rozpada się przed pierwszą próbą w wyniku walki o nazwę i o to, czy bardziej jesteście soft-indy-scremo czy też post-punk-synth-indy. Musisz przeanalizować każde działanie, tak jak kobiece magazyny analizują kobiecy orgazm. Masz wyniki badań focusowych, zasiadłeś na panelu, na którym występowały osoby, które też czytały o orgazmie. Hostessy podawały krakersy i mineralkę. Na sugestię jakiegoś niewdrożonego prostaczka, że najlepiej rytmicznie poruszać członkiem w pochwie, zaśmiałeś się dobrotliwie.

Uwaga, radykalny pomysł na 12tej: żebyś przysiadł na dupie i napisał tak od serca, co tam cię kręci, wiesz, te rzeczy, od których jest gęsia skórka. Wrzuć zdjęcie swojego psa.

Nie optymalizuj nagłówków, odpuść sobie “@sethgodin Dude, you need to check this out”, nie publikuj nieudolnych tłumaczeń z TC. Blog miał być tubą, przez którą wykrzyczysz światu swoje żale, opinie i pochwalisz się nieważnymi dokonaniami. Blog ma być głupi. Nie zakładaj krawata do czerwonego nosa clowna i jego szerokich gaci.

Pamiętasz jak Vonnegut, Einstein i Puszkin spotkali się na AtramentDay? Ja też nie.


Do martwych drzew list miłosny

~~Była ciemna i burzliwa noc…
Była ciemna noc, dramatyczna burza…
Była złowieszcza noc…
Było ciemno.
~~
Była noc.
— Nada się.

Pisanie i projektowanie opiera się głównie na wyrzucaniu złych pomysłów i zastępowaniu ich równie złymi, ale perspektywicznymi. Czasem kilka razy próbujemy napisać zdanie. Czasem kilka razy zapisujemy myśl. Czasem piszemy to samo zdanie kilka razy. Często piszemy kilka razy to samo, próbując ująć głębszy sens w mniejszej liczbie celnych słów. Często piszemy i wykreślamy.

Ha! Wykreślamy. Padliśmy ofiarą technologii. 1 Nikt nie wykreśla niczego pracując z tekstem na komputerze. Wciskasz CTRL + Delete i znikasz tekst, potem piszesz od zera. Czasem zmieniasz poszczególne słowa. Jeżeli porzucisz tekst i wrócisz do niego później, jesteś pozbawiony historii. CTRL + z nie jest odpowiedzią.

Wiecie, kto pamięta wszystkie zmiany, wszystkie wykreślenia, życie i śmierć tego paragrafu, który miał za dużo metafor i porównań, pięknych jak różanopalczasta jutrzenka?

Kartka papieru.

Wczoraj pokreślona, dziś przypomni ci, że już tego próbowałeś.

I kiedy mówią ci o naturalnym interfejsie aplikacji, to spluń im w oko. Cóż jest bardziej naturalnego niż komunikat na papierze? Przekreślone zdanie? Nie nadaje się. Odkreślony paragraf? Zaczynamy od zera, ale to na górze nie było tragiczne. Kartka pognieciona? Kurwa, kurwa, kurwa. Odcisk kubka? Nie teraz, pracuję. Pusta kartka? Była ciemna i burzliwa noc.

  1. to jeden z memów mojego życia

Ludź vs. Futurysta

Odyseja kosmiczna 2001: HAL9000 App

Najtrudniej być prorokiem we własnym kraju i długowiecznym futurystą.

Nie jedzenie w pigułce, a fast food. Nie podbój kosmosu, a rzesze ludzi, którzy twierdzą, że na księżycu nie byliśmy. Nie globalny rząd, a globalny nierząd. Problemy sprawia nam upierdliwy pracownik niskiego szczebla działu IT, nie HAL9000.

To wszystko składam na konto nieudolnych techników, którzy nie dorośli do wizji Asimova, Dicka, Lema i Clarke’a. No, może nie szkoda mi trochę dewirtualizacji narkotykowych odjazdów Dicka, ale to temat na inną notatkę.

Każdy artykuł o porażce futurologów musi wspomnieć o jednym kluczowym dla krytyków elemencie krajobrazu przyszłości. O latającym samochodzie.

Dajcie mi wymiar, dajcie mi wolność.

Latający samochód wydawał się bardzo dobrym pomysłem. Koszta budowy infrastruktury spadają, mamy już wybudowane powietrzne autostrady dzięki braku potrzeby posiadania tychże. I można robić politykę, a nie budować mosty! Parkowanie na dachach to świetne odium na problemy z miejscem. Nigdy więcej samochodu zaparkowanego na chodniku tak, że po drugiej stronie powstaje dyfrakcja. Nie straszny będzie też deszcz czy śnieg, starczy sięgnąć nad pułap chmur i dać wolne wycieraczkom.

Rozważmy klasyczny samochód. Samochód przesuwa się w dwóch wymiarach, jedzie w kierunku Y i skręca przy pomocy X, wszystko w czasie T. Samochód latający otrzymuje trzeci wymiar w postaci Z, wysokości i musimy rozważyć co najmniej dwie zmiany Z: od zera do wysokości lotu i z wysokości lotu do zera w idealnych warunkach, lub więcej modyfikacji wysokości ze względu na warunki lotu.

Po rozważeniu tego stwierdzam, że brak latających samochodów nie jest spiskiem technologów przeciwko społeczności, a wyrazem głębokiego zrozumienia jej potrzeb. Ludzie, jak wynika z wieloletnich obserwacji, są z natury głupi.

Ze wzoru na śmiertelność wyprowadzam więc następujące twierdzenie: człowiek poruszający się z dowolną prędkością w trzech wymiarach jest dużo bardziej morderczy niż człowiek poruszający się w dwóch lub pozostający w spoczynku na kanapie.

Wyobraź sobie pijanego kierowcę. 9/11 w twoim domu. Ile razy kolega jechał ze strzałką paliwa wskazującą E? Zamiast podróży z bakiem na najbliższą stację odbywasz podróż “Z do zera” osiągając 9.81 m/s² w próżni własnej głupoty.

“Panie władzo, nie przejechałem na czerwonym. Przejechałem nad czerwonym!”

Zanim zarzucicie mi czarnowidztwo, chcę powiedzieć, że mam rozwiązanie. Latające tramwaje.


Do ubikacji tylko z telefonem

Życie pryszczersa 1 to ciężki kawałek chleba. Całe życie masz świadomość, że rzeczy które możesz sobie napisać w przerwie między papierosem a kawą inni muszą kupić w Sklepie na Aplikacje Przez Program do Słuchania Muzyki. Do tego jesteś przystojniejszy, a dogłębna analiza filmów erotycznych w przyszłości zaowocuje udanym pożyciem seksualnym z partnerką, partnerem, osiołkiem lub dowolną kombinacją powyższych.

Prawdę mówiąc nie mam pomysłu jak zacząć tę notkę, bo ludzie, którzy ją zrozumieją potrzebują dwóch linków do man-pages. Mam spotkanie o czwartej rano (tak, serio) i muszę zmarnować trochę czasu, postanowiłem więc wygrzebać coś z notatnika drewnianego hackera.

Podzielę ten tekst na trzy części: techniczną, liryczną i dramat w jednym terminalu.

Sinoząbek

Wiecie oczywiście, co to Bluetooth? W dużym skrócie to technologia bezprzewodowej transmisji danych. RS232 2.0. Używana jest popularnie do przesyłania danych między urządzeniami przenośnymi (“Przegraj mi ten dzwonek, ziom”), jako wirtualny kabel pomiędzy urządzeniami wejścia-wyjścia i systemem centralnym (myszki, kontrolery konsol, modem 3G w telefonie, słuchawki) i do rozsyłania spamu.

Urządzenie wyposażone w Bluetooth mogą być widoczne dla innych lub też pozostawać ukryte. Posiadają one, tak jak inne urządzenia sieciowe, swój unikalny numer MAC.

Idę do ubikacji, tylko niczego nie ruszajcie!

Och, święta naiwności. Ile razy wracałeś do pokoju po wizycie w ubikacji żeby doświadczyć goatse na podkładzie, zmiany statusu związku na Facebooku i e-mail na listę dyskusyjną, w którym przyznajesz się masturbacji podczas oglądania Koła Fortuny?

Twoi biurowi koledzy to gnoje i tylko czekali, aż oddalisz się od komputera aby zniszczyć twoją reputację. 2 Nauczony doświadczeniem zmniejszasz czas aktywacji wygaszacza na minutę i przez następny tydzień wpisujesz swoje hasło składające się ze stu znaków (małe-duże-specjalne-runy-lizanie-portu) za każdym razem, gdy sięgniesz po kawę.

Ktoś kiedyś gdzieś wpadł na dobry pomysł: gdyby komputer sprawdzał obecność twojego telefonu i blokował ekran, kiedy opuszczasz pomieszczenie z nim w kieszeni? Genialne w swojej prostocie. Kosztowało chyba dwadzieścia dolarów. Zanotowałem sobie żeby kiedyś zrobić taki hack pryszczer-stajla.

is_emil_home.sh

Problem wydawł się banalny. Trzeba sprawdzić narzędzia, które przychodzą z stosem BT i linię poleceń wygaszacza. Zajęło to dokładnie 87 sekund. Pierwszym narzędziem będzie hcitool. Sprawdźcie, czy macie włączony BT i wpiszcie:

emil[~]> hcitool scan
Scanning ...
   00:18:AF:3E:9E:EE    Psot
   00:19:4F:DB:DA:F5    Emil's tablet

W zasięgu mojego laptopa znajdują się dwa aktywne, wykrywalne urządzenia. Telefon (Psot) i N800. Ponieważ urządzenia nie mają nadanych adresów musimy je pingnąć po adresie MAC. Tu pojawia się pierwszy problem, l2ping wymaga uprawnień roota, co zdecydowanie ogranicza nasze możliwości, nie każdy ma takie uprawnienia.

emil[~]> l2ping 00:19:4F:DB:DA:F5
Can't create socket: Operation not permitted
emil[~]> sudo l2ping 00:19:4F:DB:DA:F5
[sudo] password for emil:
Ping: 00:19:4F:DB:DA:F5 from 00:23:4E:F7:7C:57 (data size 44) ...
44 bytes from 00:19:4F:DB:DA:F5 id 0 time 33.17ms
44 bytes from 00:19:4F:DB:DA:F5 id 1 time 9.66ms
44 bytes from 00:19:4F:DB:DA:F5 id 2 time 9.82ms
44 bytes from 00:19:4F:DB:DA:F5 id 3 time 20.79ms
4 sent, 4 received, 0% loss

Będziemy musieli użyć hcitool w naszym skrypcie. To wada, bo jego reakcja na pojawienie się nowego urządzenia jest dłuższa.

Teraz zajmijmy się wygaszaczem. Pisząc to mam dostęp do GNOME, prawdopodobnie da się zrobić podobną sztuczkę w innych systemach biurkowych.

gnome-screensaver-command -a #wygaś
gnome-screensaver-command -d #wyłącz

Połączmy to metodą taśma-klejąca-grep-bash:

1
2
3
4
5
6
7
8
#!/sh/bash

hcitool  scan |  grep "00:19:4F:DB:DA:F5" > /dev/null
if [ $? -eq 0 ]; then
  gnome-screensaver-command -d
else
  gnome-screensaver-command -a
fi

Wrzucić do Crona lub zapiąć we własną pętlę. Dwadzieścia dolarów możecie PayPalem.

It’s żywe!

  1. oddany użytkownik Linuksa z lekkim syndromem mesjasza
  2. OTOH jeżeli czytasz tego bloga jest spora szansa, że twojej reputacji nie da się zniszczyć

Piła, sinus, prostokąt i inne obwiednie

Kolejny weekend, które spędzę w pracy. Żaden z tekstów z notatnika nie nadaje się do publikacji. Pomyślałem, że nabiję Wam trochę rytm: po cztery bity na każdy dzień weekendu.

4 bits + 4bits = weekend

  1. pornophonique – Lemmings in Love (5:10)
  2. Ozzed – Knock Yourself In (2:01)
  3. Goto80 – Ter4 (3:16)
  4. Calidoscopio – Wandering stars (3:22)
  5. paniq – Erleuchte Mich (3:59)
  6. Nullsleep – On Target (3:31)
  7. Skruvmejsel – Mr.Yr (4:08)
  8. yawn – Kind of Guy (2:45)
  9. Paza – Crazy Bird (3:39)
  10. Linde – Enjoyable (2:41)
  11. Lithis – Laserboy Meets Robotgirl (3:12)
  12. pornophonique – Rock’n’roll Hall Of Fame (4:02)
  13. Tek Support – Mk V (4:58)
  14. Wipe of Steel – The Dark Side of the Jazz (5:36)

Odsłuchaj teraz (Link prowadzi do listy odtwarzania w formacie m3u)

Gdybym musiałbym określić gatunek muzycznych wymienionych wyżej utworów stawiałbym na cztery podstawowe grupy tematyczne: acid, WTF, 8bit i Twoja Żona Tego Nie Zniesie.

Jeżeli żyjesz w lesie i nie posiadasz odtwarzacza muzyki, który potrafi wczytać .m3u lub chciałbyś odłaczyć się od nieprzebranych zasobów Internetu, możesz pobrać lokalną kopię zapisując plik na dysku i odesłać wget do brudnej roboty.

wget -i 4bits_plus_4bits_eq_weekend.m3u

Miłego odbioru!

Moi faworyci na liście to: Lemmings in Love, Erleuchte Mich, Kind of Guy, Crazy Bird i The Dark Side of the Jazz. Należy.


N4

Lśniące włosy spływały rzeką na jej świetnie skrojoną kurteczkę koloru pistacjowego. Głowa poruszała się w rytm niesłyszalnego bębna wybijającego rytm transu. Gdybyś miał odwagę stanąć obok, ujrzałbyś delikatnie zaszklone brązowe oczy dominujące nad bladą cerą.

Jej krótka spódniczka opinała uda, gwałtownie uwalniając zgrabne nogi obciągnięte nylonem. Buty na wysokim obcasie odbijały światła latarni.

Stała wsparta o wiatę przystanku N4 i rzygała.


SSH → X11

Półprawda powtórzona tysiąc razy to 998 blognotek

Biegałem w panice od kilku dni. Usłyszałem, że Jobs usunie X11 z Linuksa! Och przeklęty, przeklęty czas! Później, kiedy już zakopałem wszystkie swoje komputery w parku, przyszło dementi: Nie Jobs a Shuttleworth, nie usunie a wymieni na Wayland i nie z Linuksa a z Ubuntu.

Kpię sobię oczywiście z blożków technologiczno-plotkarskich, które uprawiają zigływidłyzm w stylu wolnym.

Pośledziłem trochę komentarze i wyszło mi, że najfajnieszą rzeczą w X11 jest tzw. “network transparency”, co znaczy, że aplikacja odpalona na jednym komputerze może wyświetlać swoją część międzymordzia na zupełnie innym komputerze. Wyszło mi też, że nigdy nie widziałem człowieka używającego tej najfajniejszej rzeczy.

Przyszedł, wyniósł okna i zostawił resztę

Pomiędzy dwoma komputerami działającymi pod *NIX-ami wystarczy nam SSH 1 z terminala z dodatkowym parametrem -X (minus-duże-iks!)

ssh -X user@adr.es.kompu.tera
$ coś-graficznego

Jeżeli wszystko poszło zgodnie z planem, powinniście zobaczyć na komputerze klienckim okno programu coś-graficznego. Pięknie.

Dodatkowym plusem całej tej zabawy jest fakt, że X11 działa na wszystkich ważnych platformach. Możecie zainstalować serwer na swoim Windows 7/Vista/XP, użyć PuTTy 2 do zestawienia połączenia i używać aplikacji ze stojącego gdzieś serwera.

windows-x11

Nie pamiętam teraz, czy OS X ma serwer X11 w standardzie, czy też trzeba go zainstalować z narzędziami developerskimi (mi się kojarzy, że dostałem X11 z XCode na 10.5.6, ale mogłem być pijany), w każdym razie nie będziecie mieli problemu z jego zdobyciem.

x11-osx

Ponieważ mój tablet umie X11 mogę też wprost z kieszeni.

maemo-x11

RDP, VNC, KGB, OHP

Istnieją dziesiątki rozwiązań pozwalających na podkradanie obrazu z komputera drogą internetową. Za moją ulubioną metodą przemawiają dwa czynniki. Po pierwsze, każdy z moich komputerów posiada wszystkie niezbędne części i nie muszę się zastanawiać, czy 10.200.0.XYZ ma serwer VNC. Punkt drugi zilustruję Bardzo Skomplikowanym Schematem Sytuacyjnym.

x11

Jumanie pojedynczych programów i używanie ich w kontekście biurka komputera klienckiego wydaje mi się być rozwiązaniem dużo bardziej elastycznym niż przysłanianie sobie ekranu obcym systemem.

…and now something completely different

Modrzew, a bardziej wideo na YouTube. Chciałem pokazać jak wszystko ładnie działa, ale zgodnie z przewidywaniami podczas klikania mówiło do mnie kilka osób, stąd też demonstracja “co to ja chciałem powiedzieć?” w postaci pliku wideo.

  1. oczywiście zakładam, że OpenSSH jest zainstalowany, nie wyglądacie mi na rolników
  2. Connection → SSH → X11 → Enable X11 forwarding

Jest sobota

Ala Była Całkiem Dziwna,
Emocjonalnie — Fabryka Gniewu.
Harcowała I Jakoś Kurcze
Lepiej Mogła Nawet Odejść.

Prochy. Rozpusta. Seks.

Tak Uwikłana Wykitowała:
Xylofonem 1 — Yyyyh — Zgnieciona.

  1. dajcie luzu, kochani

Ty, ja i fotorezystor

Będzie to historia o kreacji kreatury. Anegdota o mistrzu i uczniu, pełna gorącej cyny i drewnianych biurek z ranami po wiertłach, które ominęły swój cel. Wyjaśnię, skąd się biorą wszelkiej maści giki i jak możesz sobie takiego wyhodować we własnym domu.

Będzie to też laurka dla mojego Ojca, osobistego mitbastera, hakera i szalonego elektronika, który nie przegrywa jak ten od Piotra Fronczewskiego. Wszystkie historie są prawdziwe, każda wydarzyła się w końcówce lat osiemdziesiątych, w małym jednopokojowym mieszkaniu na granicy miasta.

Lewo, prawo. Lewo, prawo.

Matka nie wróciła jeszcze z pracy. Trzyzmianowy system pracy czy też zakładowa impreza. Życie pracownika fizycznego w PRL-u zawsze było wypadkową wódki i trzech zmian. Siedzieliśmy z Ojcem w kuchni i przerzucaliśmy strony “Młodego Technika” lub “Elektrotechnika”. Mogło pojawić się też radzieckie “Radio”. Herbata indyjska, którą wujek pieszczotliwie nazywa “malowanym drewnem” ze względu na smak i wartości, lała się strumieniami. Trzy łyżki cukru i może trochę “koncentratu cytrynowego”, żeby całość nadawała się do spożycia.

Ojciec pochylił się mocniej nad którąś ze stron i postukał palcem. Znak, że jest rzecz godna uwagi. Był to układ zdalnego sterowania, do którego akurat mieliśmy części. Kiedy po pewnym czasie układ został skończony, stwierdziliśmy z żalem, że nie mamy czym sterować. Jak polski rząd: jest układ, nie ma celu.

Matka zastała nas w ciemnym korytarzu prowadzącym do mieszkania. Podskakiwaliśmy i wykrzykiwaliśmy sukces. Wyrywaliśmy sobie małą płytkę z potencjometrem, podbiegali do progu i powtarzali podskakiwanie i krzyki.

Na blacie stołu leżała moja mała wiertarka Piko. Jedyna na świecie wiertarka, której kierunek obrotu silnika można zmienić zdalnie. Bezsensowna radość tworzenia.

Jak w cyrku

Zapytany o to, czym jest gaz, nie potrafiłem odpowiedzieć. Gaz Niemcy chyba rzucali? Takie białe, puszyste? Czy to może być ciężkie? No jasne, że nie może być ciężkie. Ojciec wyciągnął szklankę w pięknym koszyczku z czerwonego plastiku. Sięgnął po zapalniczkę i pokazał mi przelewającą się w niej wodę.

— To jest gaz i ten gaz jest cięższy od powietrza - zakomunikował.

Trzymając zapalniczkę nad szklanką nacisnął języczek. Po pewnym czasie podniósł szklankę i zniżył ją na poziom moich oczu, mówiąc:

— Na dnie leży gaz. Nie widzisz go, bo jest przezroczysty jak powietrze. Nie poleci też nigdzie, bo jest cięższy niż powietrze.

Wiedziałem, że mnie oszukuje. Poruszałem szklanką, jakbym mieszał wino (umiejętność, która przydała się dopiero w przyszłości) i stwierdziłem, że niczego tam nie ma. Ojciec zabrał mi szklankę z rąk, zapalił zapałkę i trzymając ją między palcami “wypił” to, czego nie było w szklance. Kiwnął do mnie głową i dmuchnął w kierunku świeczki kulą pomarańczowego ognia.

Graj mi, piękny cyganie

Wychowując się wśród szkieletów telewizorów, które sąsiedzi znosili do nas na ostatnie namaszczenie, wśród przedłużaczy zrobionych z przedłużaczy, które są z kabla od prodiża, miałem niejednokrotnie okazję być rażony prądem. 1 Im więcej wiedziałem o faktach związanych z rażeniem prądem, tym bardziej się go bałem. Stwierdzenia takie jak “elektroliza” i “rozpad czerwonych krwinek” działały strasznie na moją fantazję.

Dlatego też nie chciałem się brać za wynalazek, który podgapiłem w książce kolegi ze szkoły. Był to instrument muzyczny zrobiony z kartki i ołówka. Ostatecznie wybłagałem jeden z głośniczków piezoelektrycznych leżących w szafkach Ojca. Pomazałem kartkę ołówkiem, wpiąłem w jeden brzeg przewód, a do końcówki ołówka przytwierdziłem jego drugą część. Podłączyłem głośniczek do prądu i ku mojemu zdumieniu popłynął dzwięk. Niczym to jednak nie przypominało instrumentu.

Zwołałem konsultacje na najwyższym szczeblu. Dowiedziałem się, że wiele rzeczy przewodzi. Że grafit w ołówku jest właśnie takim przewodnikiem i jeśli porysuję kartkę w jednym miejscu mocniej a w drugim lżej to zmienię coś, co nazywa się rezystancją.

Pierwszy raz mogłem dotknąć oliwkowego miernika. Wiedziałem już wcześniej, że pokazuje on, ile prąd może. Teraz okazało się, że przestawienie na tę rozszarpaną od spodu literę O mierzy ile prąd nie może.

Na koniec dnia wiedziałem już, że sam jestem przewodnikiem i dlatego prąd lubi po mnie chodzić, choć według wskazań rozerwanego O dużo bardziej wolałby chodzić po kablu.

Czas, czas, czas

Wiele można założyć obserwując człowieka, który wciąga taczkę cegieł na trzecie piętro. “Artystyczna dusza” nie jest raczej jedną z rzeczy, które przebiegają ci przez głowę. I może sam bym nie wierzył, gdybym nie miał okazję widzieć zegarków, które zrobił mój Ojciec.

Nie lubiłem wstawać. Nie lubiłem wstawać, kłaść się, odrabiać lekcji. Lubiłem grzebać, czytać Bajtka i Młodego Technika i udawać gorączkę, żeby móc zostać samemu i oglądać programy przeznaczone dla rolników. 2

Któregoś dnia Ojciec przyniósł mi mój własny budzik. Nie byle jaki budzik, choć umiałem już czytać godziny ze wskazówek, ten uśmiechał się do mnie białą tarczą z małym okienkiem, w którym przesuwały się obrazki. Pomiędzy ósmą a czternastą przewijały się rysunki książek, tablicy. Później słońce, piłka i inne sugestie wolności od zajęć lekcyjnych. Po nich nadchodziło biurko-z-lampką, którego nie znosiłem strasznie. Znaczyło chyba “robienie lekcji”, choć ja głównie używałem go do patrzenia w blat i rozgrywania pojedynków z kosmicznymi najeźdźcami (widziałem już Star Wars: New Hope) we własnej głowie.

To była fantastyczna rzecz. Dwa tekturowe okręgi, okienko wielkości dwóch godzin, drugi okręg zawierał rysunki i był podczepiony do mechanizmu kręcącego godzinową wskazówką. Mechanizm opóźniony o połowę, aby nie było problemu z zwykłą, dwunastogodzinną skalą.

Kilka lat temu znalazłem budzik i próbowałem zrobić kopię. Niestety, okazało się, że można zaszczepić chęć do rozgrzebywania rzeczy, ale zdolność manualna wymaga po prostu treningu. Rozwaliłem go młotkiem po drugim dniu dopasowywania tarczy.

Nie wiem skąd się wziął pomysł na drugi zegar. To chyba jedna z tych nerdowskich rzeczy; kiedy pytasz “dlaczego?”, to znaczy, że to coś nie jest dla ciebie.

Pamiętacie takie masywne, rosyjskie zegarki. Wiem, że “masywne” i “rosyjskie” brzmi prawie jak żart, w takim razie “masywniejsze niż zwykle”; były elektroniczne, miały czerwoną tarczę, która wyświetlała godzinę po naciśnięciu guzika.

Kiedyś jeden z tych zegarków pojawił się na biurku. Za każdym razem, gdy przechodziłem obok, zmieniał swój stan. Stracił pasek. Potem wyskoczył z koperty. Biały plastik utrzymujący elektronikę i kwarc został rozcięty. Przysiadam i oglądam przez kilka godzin, jak Ojciec dolutowuje przewody grubości włosa do wyświetlacza. Grot lutownicy zrobiony z igły. Gdybym wiedział wtedy co to jest “cyberpunk” pewnie powiedziałbym — Niezły cyberpunk, Tato.

Pod wieczór z ekranu zegarka sterczało ponad 60 przewodów. Po chwili na stole pojawiło się coś znajomego. Czarny element ze szkiełkiem, jak do aparatu. Ojciec przez chwilę próbował osadzić wyświetlacz tak, aby był widoczny zza oczka. Kiedy kładłem się już spać słyszałem, jak z szafy sypią się graty. Za chwilę na środku pokoju stanął taboret, a na nim rzutnik do przeźroczy. Ojciec nakręcił soczewkę z zegarkiem i zapalił lampę rzutnika. Cała ściana pokoju zamieniła się w wielki zegarek. Zegarek wkręcony w soczewkę do rzutnika. Kropki sekundnika wielkości mojej głowy. Lekko zielony na białej ścianie.

Kiedy stajesz oko w oko ze sztuką, nie liczysz czasu. Przez godzinę nie liczyłem czasu oglądając jak czas odlicza się na ścianie.

A co Ty?

Ten tekst zaczął się od notatki na kartce: nie płacz, wychowaj sobie gika.

Miał to być oskarżycielski wpisik o tym, że grupa fascynatów nie powinna płakać nad tym, że Apple robi “sklep z aplikacjami” i jak to gwałci twoje prawa do kompilowania kernela. Zamiast lać żółć, zaszczep u innych to, co jest najlepsze w byciu dziwakiem.

Pamiętasz tego jednego człowieka, który podrzucił ci dyskietkę, pożyczył magazyn i może nauczył jak ściągać muzykę za darmo? Tego człowieka, który przyniósł do ciebie swój obrazek, muzykę lub program, który rysował kolorowe paski? Najwyższa pora, żebyś sam zrobił własne giki.

  1. kolokwialnie “kopnięty”, oduczyłem się tak mówić po tym jak na praktykach profesor kopał w tyłek za “kopnąć” i “korki”
  2. przez pewien czas trzymałem rękę na pulsie rynku pasz

Problem strony odwrócony

Po rozwiązaniu wszystkich kluczowych problemów, którymi zajmuje się w obecnej chwili Internet (in vitro, wyklęcia przez lokalnych czarnoksiężników, “przemysł nienawiści”, opodatkowanie podatków, “mord łódzki”) postanowiłem zwrócić swe oczy w kierunku problemu, który dotyka każdego z nas. Chodzi oczywiście o paginację i to, jak obecnie akceptowane rozwiązanie powoduje, że nie da się spokojnie oglądać gołych dup.

Rozważmy standardowego blożka. Blożek wyświetla notatki, powiedzmy, dziesięć notatek. Na dole znajduje się link “Zobacz chopie do tyłu”, który wyświetla kolejne dziesięć notatek. Patrzymy na URI i widzimy, że jest to “strona druga” blożka.

Wizualnie idzie to tak:

Teraz rozważmy książkę, którą piszesz. Czy po napisaniu kolejnej strony nadajesz jej numer jeden i renumerujesz wszystkie wcześniejsze? Nie, to by nie miało sensu, sto pięćdziesiąta strona książki ma dokładnie taki numer. Książkę (hipotetyczną) czytamy od najstarszej napisanej strony do najnowszej strony. Notatki na blogu układa się zwykle w kolejności odwrotnej do daty opublikowania, co powoduje, że czytamy od ostatniej strony do pierwszej. Dlatego też taka paginacja nigdy nikomu nie sprawiała problemu. Ma sens.

Piotr Szotkowski podesłał mi rano stronę z rudymi paniami, utrzymywaną przez Tumblr. Wszystko ładnie i pięknie. Klikam na link i trafiam na http://adres/page/NUMER. Niestety, zdjęcie zostało opublikowane dawno temu, blogi z rudowłosymi publikują bardzo często, trafiam więc na stronę NUMER, która zdjęcia już nie zawiera.

Ujawnił się pewien problem. Do bloga zwykle dokładamy “z przodu” przez co wczorajsza strona dwadzieścia będzie pojutrze stroną czterdzieści pięć. Wysyłanie mnie na konkretną stronę bloga (“zobacz, jaki tu miał dobry okres, z tymi trzema notkami!”) prędzej czy później zaprowadzi mnie na manowce.

Prostym rozwiązaniem, którego nigdy nie widziałem na żywo, byłoby liczenie w drugą stronę. Zakładając, że blogi mało kiedy dodają coś z datą wsteczną i dokładają tylko na kupkę, chcemy żeby strony o identyfikatorach od 1…10 były zgrupowane jako page/1

Jak? Pewnie każdy z Was już wie. Normalnie paginacja to dwie liczby przekazywane do zapytania SQL, a konkretniej do polecenia LIMIT. Pierwszy parametr LIMIT mówi od którego rekordu należy zacząć, drugi ile wyświetlić. Więc:

LIMIT ($PAGE*LIMIT_PAGINACJI), LIMIT_PAGINACJI

a gdybyśmy chcieli liczyć od tyłu (gdzie MAX to liczba notatek):

LIMIT (MAX-($PAGE*LIMIT_PAGINACJI[/ref],LIMIT_PAGINACJI

Przyznaję, że nie jest to idealne rozwiązanie. Jest to jednak wystarczająco dobre rozwiązanie, abym mógł zobaczyć tę rudą, co mi ją Piotrek podesłał rano.


Łódź moim miastem

Hej, koleżko! Słyszałem, że lubisz czytać tego bloga, wstawiłem więc plakat żebyś mógł doświadczać kultury podczas doświadczania kultury.


Prawda dostępu wymagają podstępu

Nieomylność znaczy “nie robię niczego konkretnego”

Napisałem kiedyś na Facebooku, że łatwo rozpoznać aplikację, której UI projektował programista. Wystarczy poszukać, czy kwadrans to 0.25 h. Podśmiewałem się z aplikacji, której demo pokazywał mi marketingowiec. Dwa dni później znalazłem identyczny kod mojego autorstwa.

Programiści nie są głupi, programiści nie są antytalentami, kiedy idzie o projektowanie. Programiści poruszają się w świecie, który ma zupełnie inne punkty odniesień i przez to nie potrafią myśleć “jak zwykli ludzie”. Dla programisty wyłączenie czegoś w panelu przez wpisanie tam zera może mieć sens. Zaawansowane wyszukiwanie przy pomocy wyrażeń regularnych to oczywista oczywistość. Używanie unikalnych identyfikatorów z bazy w kolumnie LP. jest słuszne i pomaga się orientować. Jeżeli zapisujemy datę, to powinniśmy też zapisać godzinę, niewiele kosztuje, a użytkownik z pewnością się ucieszy wiedząc, że Cron wystawił mu automatycznie fakturę o 3:37.

Jedyny sposób na uleczenie tej wizji świata to posadzenie programera z designerem, wrzucenie kilku butelek czegoś mocniejszego i przekręcenie klucza od drzwi. Nie będzie to łatwe. Programerzy myślą o designerach jako o “mośkach od szabloników”, designerzy znów widzą w programerach uparte osły z aparycją małpy. Obie strony tego konfliktu są zwykle pełne gówna i potrzebują lunety, żeby spojrzeć poza czubek własnego nosa.

Ktoś będzie musiał być tym starszym i mądrzejszym, przerwać cykl nienawiści. Zakładam, że będą to programiści, bo są zwykle mądrzejsi i przystojniejsi.

Pamiętaj, nie jesteś alfą i omegą. Tylko tak myślisz!

Dla człowieka z Array() każdy problem wygląda jak .each()

Żeby nie być gołosłownym, pokażę wam problem, nad którym teraz siedzę. Oryginalny autor jest młodym programistą, a to był jego pierwszy większy projekt. Miał wystarczająco dużo wiedzy, żeby programować i zbyt mało, żeby podejmować decyzje projektowe. Niestety, projekty są realizowane zgodnie z zasadą “budżet dąży do zera do momentu napotkania frajera, który zrobi wszystko za jedną pensję”.

Rozważmy uprawnienia w systemie informatycznym. Mamy użytkownika, mamy moduły i metody, mamy uprawnienia. Uprawnienia są listą zawierającą nazwę i identyfikator. Przy wywoływaniu metody z modułu sprawdzamy, czy użytkownik ma identyfikator uprawnienia. Programistyczne przedszkole, prawda?

Implementacja jest poprawna z programerskiego punktu widzenia. Teraz dochodzimy do momentu implementowania międzymordzia dla użytkownika.

Spróbujcie wejść w umysł programisty. Macie listę użytkowników na osi Y, macie listę dozwolonych uprawnień na osi X. Uprawnienie może mieć dwa stany: nadany lub nienadany. Jaki element jest idealny do odwzorowania takiego układu? Checkbox.

To, co tu widzicie, jest efektem myślenia o danych po programersku. Jest to ujęcie całkowicie poprawne technicznie i totalnie spierdolone, jeśli weźmiemy pod uwagę, że użytkownicy systemu nie są robotami.

Wiecie, ile czasu zajmuje narysowanie takiej tabelki dla 120 użytkowników w systemie? Ponad stu pracowników razy ilość uprawnień plus narzut jQuery. Jak myślicie, ile koordynacji oko-ręka wymaga wybranie linii z uprawnieniami pracownika? Tabela jest na tyle wielka, że patrząc w ostatnie checkboksy, muszę odwrócić wzrok na listę nazwisk. To nie są ustawienia, to gra zręcznościowa. No i mój osobisty faworyt: żeby dowiedzieć się jakie uprawnienie nadajesz, musisz potrzymać wskaźnik nad pudełeczkiem checkboksa.

Eksperyment myślowy: jako nowy pracownik nadaj uprawnienia trzyma_kredens i czajnik_zabójca Halinie Krzywonos, ale nie Halinie Krzywons.

Oto kilka programerskich-designerskich błędów, które popełniono:

To, że trzymasz dane w jednej tabeli, nie znaczy że te dane należy prezentować razem. Informacje o uprawnieniach są połączone z profilem użytkownika. Powinny być wyświetlane w kontekście, na stronie z edycją profilu użytkownika.

Jestem człowiekiem, a nie numerem!” i tak samo jest tu. W programerskim umyśle nowo przyjęty do pracy dostaje taką informację na powitanie: możesz otwierać_drzwi, otwierać_okna, pić_kawę i podrywać_sekretarkę. W prawdziwym świecie powitanie wygląda tak: “będziesz pracował jako sprzedawca”. Uprawnienia powinny być ujęte w grupy. Tworzysz grupę X z uprawnieniami X1, X2 i X3. Pracownicy na odpowiednim stanowisku trafiają do odpowiedniej grupy.

Dwa zwycięstwa od ręki: możesz modyfikować uprawnienia dla całej masy ludzi bez potrzeby wybierania zmian dla każdego. Możesz dodawać wariacje: użytkownik może być w grupie X i mieć dodatkowe uprawnienie. Maksymalna elastyczność, minimalna ilość klikania.

Zapamiętaj: celem tworzenia UI nie jest replikacja struktur danych w twoim kodzie. Wiem, że ciężko się pozbyć takiego myślenia. Najlepiej w ogóle o tym nie myśleć. Znajdź przyjaznego designera, najlepiej takiego, który nie przegina w drugą stronę. Wiesz, takiego łączącego zaokrąglone rogi z feng szuje.

Na zakończenie jedna osobista uwaga. Nie wiem czy to ja jestem takim geniuszem, czy wy jesteście takie pały.

Widziałem to setki razy. Użytkownik wybiera opcję w systemie i zostaje pożegnany zimnym “Brak dostępu”, “Dokument niedostępny”, “Naruszenie uprawnień systemu. Ten wyjątek zostanie zgłoszony!”. Potem zaczyna się żonglowanie e-mailami pomiędzy przestraszonym użytkownikiem, jego kierownikiem i mną. Strata czasu.

Żeby ułatwić sobie życie, do komunikatu o braku dostępu dodaję link “Poproś o dostęp”, który generuje e-mail z informacją do zwierzchnika. On może mu nadać, może go olać, może mu nadać na 24h. Na drugą nóżkę wyświetlam listę pracowników jakoś związanych z nim (np. dział) posiadających uprawnienia. Czasem starczy się przejść biurko obok i zapytać, czy kolega może Ci coś sprawdzić. 1

Wszystko żeby mniej pracować. “Mniej pracować” powinno być twoim motto. Nie “techniczna doskonałość w służbie klienta”, tylko coś egoistycznego. Nie spierdol dziś, aby nie naprawiać jutro.

  1. Może nie przejść w supermegakorporacji.

Dwa litry napoju

Wracam z biura. Jest środa. Może czwartek. Ale bliżej dziewiątej wieczór niż maja. Moja droga wiedzie przez przekładaniec z warstw społeczeństwa. Bogato, biedno i white anglo-saxon protestants.

Na granicy wyznaczonej przez skrzyżowanie ulic znajduje się sklep. Można płacić kartą do 22:00. Rzuciłem szybkie spojrzenie w kierunku grupki bywalców ściśniętych przy schodach. Nigdy nie wiadomo, kiedy ktoś zapyta, czy mam problem, a ja mam problem w postaci zmęczenia życiem i dwa laptopy. Szarpać mi się nie chce, a do biegania nie jestem odpowiednio ubrany.

Kiedy tak lustrowałem sytuację, zauważyłem że schody pokonuje jakaś niewielka istota. Trzyma w rękach wielką butelkę napoju gazowanego. Człowiek, płci żeńskiej, znaczy dziewczynka. Pięć czy sześć lat. Patrzę z zaciekawieniem, jak walczy z ciężarem dwóch litrów o smaku zgodnym z naturalnym i wypatruję, kiedy pojawi się za nią ktoś dorosły. Dziewczynka mija mnie i skręca za róg. Opiekun nie pojawia się i po chwili podejmuję drogę do domu. Idę więc, a dziewczynka drepcze przede mną, chwiejąc się co jakiś czas pod ciężarem.

Myślę do siebie, że wypadałoby przypilnować dziecka, które spaceruje nocą. Czuję radość, że ktoś zaufał dziecku i puścił je po zakupy bez opieki. Pozostaję więc kilka kroków z tyłu i na chwilę pogrążam się w myślach. Nie wiem czy ja przyśpieszyłem, czy ona zwolniła, ale po jakimś czasie zrównaliśmy się w marszu i gdy odwróciłem się w jej stronę zauważyłem, że coś mówi. Zsunąłem słuchawki.

— Dobry wieczór - powiedziała dziewczynka.

— Dobry wieczór - odpowiedziałem lekko zbity z tropu.

— Nie boi się pan tak iść samemu w nocy? - zapytała zmieniając pozycję butelki tak, żeby było ją trochę zza niej widać.

— Trochę się boję - przyznałem - ale skoro idziemy razem, to z pewnością nic mi się nie stanie.

Przytaknęła i szliśmy tak przez jakiś czas w ciszy. Najdziwniejsza para na ulicy. Dziewczynka walcząca z ciężarem butelki, sięgająca mi może do kolana i ja, brodaty dziad w kapeluszu, z postawionym kołnierzem.

Tu oblewa mnie zimny pot, a głowa wypełnia się scenariuszami nadchodzącej tragedii. Jak ja wyglądam idąc tak z jakimś dzieckiem? Czy któryś z sąsiadów zauważył nas przez okno i dzwoni właśnie do ojca dziewczynki, który niechybnie wypadnie na mnie z następnej bramy? Czy uda mi się wytłumaczyć, że jestem przyjaznym gentlemanem, który docenia zaufanie, jakie pokłada w córce i robi to, co powinien zrobić każdy dobrze wychowany człowiek, to znaczy zerknąć czy dziecku w tej okolicy nie przytrafi się nic złego?

— Myśli pan, że są tacy ludzie, co porywają dzieci z ulicy? - przeczytała moje myśli dziewczynka.

— Nie. Nie, takie rzeczy się nie zdarzają - odpowiedziałem, czując się tak nieswojo jak wtedy, kiedy matka przyłapała mnie podczas masturbacji. Cokolwiek zrobisz, będzie źle.

— Tu mieszkam - doszedł mnie jeszcze głos z korytarza. - Dobranoc!

Dobranoc, burknąłem do siebie. Czułem się źle, źle. Wyciągnąłem papierosa. Bo tak, jeżeli ta dziewczynka powie rodzicom, że spotkała pana, który ją odprowadził do domu. Dlaczego czuję się podle mimo tego, że zrobiłem coś dobrego? W jakim spierdolonym, bez szans na naprawę społeczeństwie żyję, że czuję się jak gwałciciel.

Jak daleko sięga kontrola świadomości? Uważam się za kogoś, kto nie daje latających faków za opinię społeczeństwa i jednocześnie chcę się wrócić, odszukać klatki, drzwi i wytłumaczyć się z tego, co zrobiłem.


Dziad lub pedofil: wybór należy do Ciebie

Stoimy na skrzyżowaniu i czekamy na zmianę świateł. Podchodzi do nas przedstawiciel lokalnej społeczności, że żul znaczy. Zagaja. Osłaniam trochę Annę, bo z ryja mu jebie, jakby wcześniej stołował się w zakładach oczyszczania. Wygląda mi zza ramienia i zwraca się do mnie z pytaniem.

  • Córka?
  • Hę?
  • Córka?
  • …Żona — zażartowałem.

Żul rzuca kolejne szybkie spojrzenie przez moje ramie.

  • Panie, przecież ona jest młodsza od pana o jakieś dwadzieścia lat.

Teraz nie wiem, czy ja mam czterdzieści pięć, czy Anna pięć.


Vim. Wordpress.

Piotr Szotkowski dostarczył mi kilka stron poprawek do poprzedniego tekstu. Ignorowałem jego e-mail tak długo, jak mogłem. Wreszcie zdobyłem się na odwagę i odpaliłem edytor dostępny w Wordpressie, by po raz kolejny przekonać się, że pisanie w textarea jest wyjątkowo uciążliwe.

Potrzebowałem jakiegoś lepszego rozwiązania. Wiem! Napiszę sobie wtyczkę do Vima i będę mógł edytować teksty po ludzku.

Rzecz dzieje się w Internecie, okazało się więc, że spóźniłem się z tym pomysłem jakieś trzy lata. Przedstawiam Państwu Vimpress. Instalacja jest banalnie prosta:

cd
mkdir -p .vim
cd .vim
wget http://www.vim.org/scripts/download_script.php?src_id=7348 -O vimpress.tgz
tar zxf vimpress.tgz
rm vimpress.tgz
vi plugin/vimpress.vim
(w Vimie) :56

W pięćdziesiątej szóstej linii konfigurujemy dostęp do naszego bloga. Jeżeli wszystko poszło zgodnie z planem :BlogList powinno wyświetlić listę notatek.