niedziela, 27 grudnia 2015

Artoooooor, Dziennik Superbohatera 27.12.2015

To był zwykły dzień w Tajnej Bazie Władców Javy Przy Ulicy Storrady Nie Wyglądającej Jak Tajna Baza Władców Javy. Jak zwykle wykonywaliśmy próbę nuklearną w postaci uruchamiania ekspresu do kawy bez wody. Tradycyjnie też zapomniałem się odsunąć. Nie przyznam się przecież, że tak bardzo chciałem napić się porannej kawy.

W każdym razie skończyło się na tym, że wybuch odrzucił mnie z prędkością 4575935 km/s w kierunku Równika. Co gorsza, temperatura 944194°C rozbiła kawę, kubek i moje okulary na atomy, te na cząstki elementarne, które z kolei rozpadły się na kwarki. Musiałem działać! W czasie lotu zacząłem od składania kwarków w cząstki. Oczywiście zapomniałem, jak... to miały być 2 dolne i 1 górny, czy odwrotnie? No nic, wziąłem kilka kwarków, gluonów i zacząłem eksperymentować. Wyszło mi coś takiego:


i
eeee... jakim cudem mi to tak wyszło... eee... tak czy siak skończyło się to na:

world.pl.physics.NoSuchParticleException: what?!
Caused by:
world.pl.physics.PhysicLawBreakException: nie ma takich kwarków, nieuku!

A już cieszyłem się, że odkryłem kolejną cząstkę, kawion1. Chcąc nie chcąc zużyłem zbyt dużo gluonów i musiałem dokupić kilka w Castoramie. Przy okazji przypomniałem sobie, jak się składa cząstki elementarne i po kolei złożyłem sobie kawę i kubek. A razem z nimi okulary. Czyli miałem szansę wypić tę kawę. Niestety akurat wylądowałem z głośnym hukiem na jakiejś palmie, a cudowny płyn rozlał się dookoła.

Zaraz zaraz... palmie?! Rozejrzałem się dookoła żeby ustalić, czy to Egipt, Teneryfa, czy centrum Warszawy. Nic z tych rzeczy! Komuś akurat odbiła palma na punkcie Katie Melua i znalazłem się na kursie kolizyjnym z tym drzewem. Spowodowało to, że kokos z palmy spadł jej właścicielowi na głowę. Przeprosiłem go i udałem się do Tajnej Bazy Władców Javy Przy Ulicy Storrady Nie Wyglądającej Jak Tajna Baza Władców Javy.

Poobijany, zmęczony i bez kawy dotarłem na odprawę przed misją. Okazało się, że w Egipcie odnaleziono starożytne fragmenty jeszcze bardziej starożytnej budowli. Z analizy wynikało, że musiała ona należeć do legendarnego faraona GieWuTanona! Okazało się też, że misję musimy wykonać do wczoraj. Jak myślicie, kto został zgłoszony... znaczy zgłosił się na ochotnika? Oczywiście, że Zając "Terminator" Poziomka. Tak, został wybrany na ochotnika do wyboru ochotnika, którym zostałem ja. A ja wskazałem Zająca. I Stefana Słonia.

W czasie -0.001 ns znaleźliśmy się na miejscu. Ja, Stefan [data expunged], i Zając "[Redacted]" Poziomka. Tak, kamuflaż z [data expunged] jest wymagany. Przed nami wystawał kawałek budowli. Na początku misja nie wyglądała na skomplikowaną - należało tylko znaleźć i odkopać wejście do budowli. Stefan Słoń...znaczy Stefan [data expunged] poszedł pozbierać drewno i kamień, żeby zbudować łopaty. Za nic nie szło mu wytłumaczyć, że gra w RealLifeCrafta zamiast tej gry z sześcianami. Ech... po uspokojeniu wkurzonego właściciela drewna i skombinowaniu łopat z [data too lazy to appear] zaczęliśmy kopać. Praca szła szybko, ale z jakiegoś powodu nie posuwaliśmy się do przodu. Okazało się, że Stefan [data expunged] wykopywał piasek w stronę Zająca "[Redacted]" Poziomki, ten w moją, a ja - w stronę Stefana. Fail. Po krótkiej naradzie, SCRUMie, narysowaniu UMLa tej świątyni, zrobieniu sobie kawy i pograniu w Minecrafta pograliśmy w Minecrafta. W końcu nauczyliśmy się ze Stack Overflow, jak obsługiwać łopaty i odkopaliśmy wejście.

Sprawdziliśmy na Stack Overflow, że wejście służy do wchodzenia. Weszliśmy (co za niespodzianka) do krótkiego korytarza, który prowadził do dość dużej, sześciennej sali w kształcie kotka. Budowniczy musiał być ekspertem! Hieroglify na wszystkich 7.666 ścianach sześcianu składały się z postaci na tle jednocześnie równoległych i prostopadłych linii. Czyli da się. Z małą pomocą Stack Overflow odczytaliśmy znaczenie tych napisów - było to dosłownie "Ten, Który Wkurzył Swoich Wrogów na Śmierć Za Pomocą Zbyt Długiej Kompilacji" - toż to przydomek GieWuTanona! Na potwierdzenie tej tezy na końcu sali znaleźliśmy tron Java Servlet, który musiał należeć właśnie do tego władcy.
- [data redacted]! - zaklął Zając, kiedy potknął się na jakimś leżącym kawałku XMLa. Podeszliśmy zaciekawieni i zbadaliśmy ten kawałek kodu. Musiał być napisany jakieś 4096 lat temu! Nagle podłoga zadrżała w 4,123 wymiaru, błysnęło światło (to od flasha aparatu jakiegoś Japończyka, który chciał zrobić sobie fotkę), a Zając poprosił o podwyżkę. Leżące na podłodze kawałki XMLa zaczęły łączyć się ze sobą, żeby uzyskać... potwora Reksio.ui.xml. Poznaliśmy to po <h1>Reksio</h1> Z drugiej strony leniwie podniósł się jego brat bliźniak - Reksio.java. Jak mogliśmy nie zauważyć kodu Javy leżącego na podłodze? Ale już było za późno - byliśmy w potrzasku. Stefan [data expunged] próbował rozładować sytuację wykonując reksio.title.addStyleName("funny-green"), ale Reksio.java odpowiedział zmieniając elementowi H1 klasę na "angry-red". Sprawdziliśmy na Stack Overflow, co to oznacza. Najwięcej głosów dostała odpowiedź "PANIC!", na drugim miejscu była "Uciekać, gdzie pieprz rośnie", na trzecim - "grać w bierki". Oczywiście wyciągnąłem bierki i zacząłem grać z Zającem o to, kto spanikuje i ucieknie jako ostatni.
Już rozłożyliśmy bierki, a zdziwiony Reksio zaczął nam się przyglądać, kiedy za nami ktoś krzyknął donośnym głosem:
- reksio.braćIch();
odwróciliśmy się i zobaczyliśmy Strasznego Ducha Faraona GieWuTanona. Strasznego, jak "Buuuu!" w tym zdaniu! W zaistniałej sytuacji jednogłośnie ogłosiliśmy, że Reksio.ui.xml przegrał i zaczęliśmy uciekać.

UWAGA

Ze względu na protest Lorda Errora przeciwko nieuwzględnieniu go w tym wpisie zmieniam scenariusz - ogłosiliśmy, że to Lord Error przegrał i został ugryziony przez Reksio.java.
- Porzućcie wszelką nadzieję, albowiem mocy GWT Maven Plugin użyję! - zadudnił duch GieWuTanona. Ja też nie wiem, jakim cudem duch potrafi dudnić.

Zaraz po tym zmienił styl widgetu <KamiennyGłaz/> umieszczonego wewnątrz <Wejście></Wejście> z display:none na display:block, przez co podczas ucieczki...znaczy taktycznego odwrotu zderzyliśmy się z kamieniem, który się tam pojawił. Tymczasem GieWuTanon (lub jego duch) rozpoczął kompilację GWT!
- Compiling permutation 0 - wrzasnął
W tym momencie użył straszliwej broni - obfuskacji kodu z GWT. Ten straszny środek bojowy zmienia nazwy wszystkich zmiennych, funkcji i kotów na losowe, krótkie ciągi znaków. Dzięki temu Zając "[Redacted]" Poziomka stał się uiower.yuyt, Stefan został zmieniony w gogfy[ertb], a ja - w Tmggggggr.wtf. To spowodowało, że Stefan i Zając spanikowali i zderzyli się ze sobą podczas próby ucieczki.
- Poddaj się! - powiedziałem wyciągając Lvyepf Guna (też nie uniknął obfuskacji).
- HUHUHUHUHU - próbował zaśmiać się GieWuTanon. I zamknął moich towarzyszy w tagu <div/>. A podwyżkę Zająca w <span style="display:none"/>.
- jak ci zaraz fdfdg.bn w pmgbnoiy, to się nie nfty.utn(hg)! - odpowiedziałem wnerwiony.

Teraz przegiął. Sprawa musiała pójść łatwo - za pomocą Lvyepf Guna przeniosłem towarzyszy poza div-a, ustawiłem faraonowi breakpointa i wystarczyło go...
- cup = new EmptyCup(); - powiedział. Za chwilę dodał:
- cup.addStyleName("hot-coffee-with-milk");
Przede mną pojawił się kubek pełen kawy. Ciepłego, cudownego napoju z mlekiem. To był cios poniżej Pasa Kuipera! Teraz mnie zagiął. Podszedłem do kubka, a GieWuTanon rzekł:
- Compiling permutation 1! - i rzucił we mnie kompilatorem.

Zostałem skompilowany do kodu JavaScript. I to działającego w języku chińskim na Operze. Przeglądarka się uruchomiła, a ja wylądowałem na środku sceny wielkiej sali pełnej publiczności (i wcale nie napiszę, że akurat na skórce od banana). Sama sala była... no i tyle można o niej powiedzieć. To nie ta sama Opera, co kiedyś. Ale ale, sam GieWuTanon zapowiedział mój występ - "Pokonanie Artoooooora" (i wcale nie napiszę, że nie wyhamowałem na tej skórce przed końcem sceny. Ale w końcu zacząłem śpiewać. Efekt był podobny do występu tego pana. Tego nie mogła znieść żadna przeglądarka (może poza Internet Explorerem), więc Opera zawiesiła się, wybuchła, wykrzaczyła się, a na koniec przestała działać. Krótki

pl.music.CoToDoLichaByłoException: nie śpiewaj więcej
zakończył cały występ i spowodował, że wróciłem do sali GieWuTanona. Ha! Teraz miałem przewagę. Zobaczyłem na jego tronie source-maps/ZającRedactedPoziomka.java, Artoooooor.java i StefanDataExpunged.java. Obok nich leżało DebuggerGun.java. Source-mapy! Za ich pomocą mogłem przywrócić sobie, towarzyszom i Debugger Gunowi początkową formę, światowi pokój, a pokojowi kuchnię! No dobra, przynajmniej to pierwsze było możliwe.

Ale musiałem dostać się tam tak, zeby nie zwrócić uwagi GieWuTanona, który był trochę rozkojarzony po moim genialnym występie. Próbowałem to osiągnąć mówiąc GieWuTanonowi, zeby nie zwracał na mnie uwagi. Z jakiegoś dziwnego powodu nie zadziałało. GieWuTanon zaszedł mi drogę i popwiedział:
- HUHUHUHUHU, nie ty jeden chciałeś przeszkodzić GieWuTanonowi Wnerwiającemu! Compiling permutation 2!
O nie, teraz zaczął kompilować wersję dla Internet Explorera w języku Suahili! Uskoczyłem w 3.5-tym wymiarze przed promieniem kompilującym, szybko wziąłem source mapy i przywróciłem całą drużynę do pierwotnej postaci. HA! Teraz za pomocą starego dobrego Debugger Guna podmieniłem mu w trakcie kompilacji <ui:TextBox /> na <ui:ListBox/>. Ale tylko w ui.xml, nie w .java. To mogło skończyć się tylko w jeden sposób.
- Compilation Error! - zaklął GieWuTanon - Reksio.kill("Artoooooor")!
Ale ja przewidziałem taki ruch. Utworzyłem:
- patyk = new Patyk();
a następnie:
- pustynia.add(patyk);
W końcu wykonałem:
- reksio.aport(patyk);
HA! Reksio rozpędził się, aby zaaportować patyk, a ten ostatni był dodany poza świątynią! Potwór przebił się przez ścianę, stratował GieWuTanona (auć!), złapał patyk i przyniósł mi go ponownie tratując GieWuTanona (auć!). Władca tej świątyni próbował jeszcze mi grozić:
- compiling... puff... permutation... 3... jeszcze się policzymy,
ale Stefan [data expunged] odpowiedział:
- Hasta la vista, error!
i włączył mu kasetę Britney Spears. To dało nam czas na ucieczkę. Niestety przez cały czas Reksio biegł za nami i chciał się bawić, więc musiałem bez przerwy rzucać mu ten nieszczęsny patyk. Eeeee... przyjmie ktoś do domu 1024-letniego potwora Reksia? Jest grzeczny, aportuje i przynosi gazety.

Ogłoszenie specjalne

Życzę wszystkim jak najciekawszych errorów w nowym roku (bo mój wehikuł czasu zaprotestował i nie mogę złożyć życzeń światecznych). A szczególnie dwóm superbohaterkom - Astroni, znanej jako "Ta, która oswoiła add-ony (takie mięciutkie)" i Kici, którą wrogowie nazywają "Mrs. Error...PANIC!" życzę wszystkiego, co kosmiczne, nerdowskie i cool (i mięciutkie).

pl.artoooooor.WielkaStopaException: A teraz coś z zupełnie innej beczki
pl.artoooooor.InnaBeczkaException: ćwir

Piosenka na dziś:

1 kawion - hipotetyczna cząstka przewidziana w teorii Jacka Studenta-Przedegzamina. Krążąc wokół jądra złożonego z kofeinotronów i redbullonów tworzyłoby atomy cappucinonu, espressonu i lattonu. Teoria nie została potwierdzona eksperymentalnie.

Brak komentarzy:

Prześlij komentarz