Nieudany humanista programuje

Obficie padało, gdy obudziłem się dziś rano. Wkrótce nadeszła porządna burza, zapewne by wyzwolić we mnie nieco negatywnych emocji; w całym mieszkaniu było ciemno i ponuro. Moje zdenerwowanie wciąż wzrastało, jako że zamierzałem pojechać gdzieś wyjątkowo daleko na rowerze. Deszcz niczego sobie z mojego trudnego położenia nie robił i wciąż popadywał, dla odmiany momentami zwyczajnie padając. Na domiar złego zużyłem wszystkie książki, jakie ostatnio wypożyczyłem z biblioteki, a jej pracownicy zrobili sobie długie wakacje – wyjechali najpewniej, za swoje tłuste, bibliotekarskie pensje, do ciepłych krajów. Zacząłem rozglądać się bezradnie, próbując znaleźć dla siebie jakieś zajęcie i przypomniałem sobie, jak optymistyczne były moje niedawne plany związane z jQuery.

Za punkt wyjścia obrałem założenie, iż języka programowania najlepiej jest się uczyć, dążąc do zrealizowania jakiegoś praktycznego celu. Już od paru tygodni nie miałem żadnych zleceń z Microsoftu – Steve musiał się ostatnio obrazić, kiedy nie chciałem mu pożyczyć swojego jachtu. W tej sytuacji najbardziej oczywistym celem wydało mi się ulepszenie niniejszej strony internetowej, jednakże trudno było mi wymyślić cokolwiek konkretnego. Źródłem tej trudności okazało się założenie, jakie przyjąłem podczas jej tworzenia, iż ma być ona możliwie prosta. Każdy swój pomysł uznawałem za nadmiernie wydumany. Przypomniałem sobie wreszcie, że lekkiej krytyce został niegdyś poddany formularz wyszukiwania. Spróbowałem napisać skrypt, który dodawał by do niego opis, wyjaśniając jego funkcję.

$(function() {

  var input = $("#search").find("input");
  var label = $("#search").find("label").text();

  input.val(label);
  input.css("color", "#aaa");
  
  input.bind('focus', function() {
    if (input.val() == label) input.val('');
  });

  input.bind('blur', function() {
    if (input.val() == '') input.val(label);
  });

  input.bind('focus', function() {
    $(this).css("color", "blue");
  });

  input.bind('blur', function() {
    $(this).css("color", "#aaa");
  });

});

Koślawy fragment kodu, jaki powyżej zaprezentowałem, spełniał swoje zadanie w sposób idealny. Natrudziłem się przy jego pisaniu, jednak nauczyłem się też paru przydatnych rzeczy. Efekt działania skryptu ostatecznie mi się nie spodobał, postanowiłem zrezygnować z jego użycia. Kolejnym pomysłem było wprowadzenie możliwości rozszerzania pola z treścią komentarza. Użyłem Interface i byłem już bliski osiągnięcia celu, jednak z tego również zrezygnowałem. Na koniec przypomniałem sobie, że wypadałoby rozwiązać wreszcie problem określania miejsca pochodzenia cytatów blokowych, o którym czytałem kiedyś w tekście Łukasza Grabunia.

$(function() {

  var blockquote = $("#content").find("blockquote");
  var cite = blockquote.attr("cite");

  blockquote.after(cite);

});

To zadanie niestety przerosło mnie, choć pozornie mogłoby wydawać się łatwiejszym niż dwa poprzednie. Uzyskałem efekt wyświetlania się adresu URI w formie tekstu, jednak nie zdołałem zmusić skryptu, by dodawał na stronę odnośnik. Przyjąć można, że znalazłem się w połowie drogi, nie mam jednak wcale pomysłu, jak by tu przebyć jej pozostałą część. Wspomnieć jeszcze muszę, że programowanie śmiertelnie mnie nudzi, nie uważam siebie też za osobę uzdolnioną w tym kierunku. Nie posiadam umysłu ścisłego, za typowego humanistę również trudno mnie uznać, przyjąć więc można, że nie nadaję się zupełnie do niczego. Z pewnością lepiej będzie, jeśli zajmę się teraz czymś bardziej sensownym, być może wkrótce rozwiązanie przyjdzie mi do głowy.

Koderskie nudziarstwo

Co z tego, że potrafię bez większych trudności napisać dokument XHTML i ostylować go? Całość potrafię jeszcze opatrzyć, niezbyt rzecz jasna skomplikowanymi, plikami graficznymi, wydzierganymi w programach takich, jak Gimp czy Inkscape. Ostatnimi czasy mam wrażenie, że to zbyt mało. Nie rozwijam swoich umiejętności, a wiąże się z tym obawa, że stają się one przez to coraz skromniejszymi. Jeśli brać pod uwagę wyłącznie moje przyszłe życie zawodowe, taka sytuacja pozbawiona jest ewentualnych, negatywnych konsekwencji, w tym wypadku jednak daje znać o sobie ambicja, ukierunkowana głównie na ciągłe poprawianie niniejszej strony.

Trwające właśnie wakacje zorganizowałem w taki sposób, by mieć dla siebie możliwie najwięcej czasu. Zaplanowałem już wcześniej, by wykorzystać go produktywnie, próbując zrozumieć wreszcie JavaScript. Swoje zamiary zacząłem wprowadzać już w życie, początkowo korzystając z kursu Damiana Wielgosika ze strony Ferrante.pl. Kurs przystępnie napisany, pozbawiony zbędnych rozwlekłości, jednak niestety wyposażony jestem w umysł, w stanowczo zbyt małym stopniu ścisły, bym mógł zrozumieć całość bez problemów. Trudności nie zdołały mnie zrazić, jednak wciąż nie byłem w stanie sobie wyobrazić, jak osiągać można efekty, znane z nowoczesnych stron internetowych.

Przeglądając źródła strony głównej Jogger.pl odnalazłem wiele odwołań do biblioteki jQuery, wychwalanej podobno tak często przez Piotrka Petrusa. Po przeczytaniu tekstu Getting Started with jQuery Jörna Zaefferera, już bez jakichkolwiek wątpliwości, postanowiłem zainteresować się tym kawałkiem JavaScriptu. Wydaje się, że dzięki tej bibliotece i jej komponentom Interface, będę wkrótce w stanie zrealizować swoje plany, związane z unowocześnieniem bloga. Najprawdopodobniej czeka mnie ogromnie wiele trudności, całe szczęście jednak, że czasu również mam ogromnie wiele.

Chcę być kimś

Uświadomiłem dziś sobie, że całe moje dotychczasowe życie pozbawione było sensu, monotonnie ciągnęło się dzień za dniem, oślepiając mnie swą szarością. Wszystko spowodowała uważna lektura doniesień lemiela na temat hackingafery, która przetoczyła się przez internet, siejąc ogromne spustoszenia. Postanowiłem, dość już tego. Czas najwyższy pokazać wreszcie światu swoją prawdziwą twarz, twarz wojownika. Musiałem tylko demonstracyjnie usunąć serwis Hacking.pl ze swojego czytnika!

Rozpacz rycerza

Pierwsze problemy dały o sobie znać niemal natychmiast. Dotarło do mnie, że nie jestem wystarczająco hakerski, by mieć ten serwis w swoim czytniku. Przez własną ignorancję nigdy się nim nie zainteresowałem. Całe szczęście, że nawet w sytuacjach kryzysowych potrafię zachować zimną krew. By całej scenie nadać odpowiedniej dramaturgii, zmieniłem od razu kursor na odświętny, przeznaczony wyłącznie na specjalne okazje.

Dodanie do czytnika

Rzeczą jasną było dla mnie, że aby usunąć Hacking.pl z czytnika i udowodnić tym samym swoją waleczność, niezbędnym było najpierw nieszczęsny serwis dodać. Mimo jego oporów i własnego obrzydzenia, dokonałem tego bez większych trudności.

Usunięcie z czytnika

Nadeszła wreszcie pora na decydujące starcie. Ja przeciw złu i tylko jedna szansa. Musiałem już tylko wykonać prosty gest, który miał zaważyć na całym moim życiu. Wstrzymując oddech nacisnąłem przycisk… Poczułem od strony monitora silny cios, jednak wiedziałem już, że nikt w walce ze mną nie ma najmniejszych szans. Ocknąłem się czując odrażający smród krwi, potu i błota – opary bitwy. Po wrogu nie było ani śladu, czyżby kiedyś znów miał stanąć na mojej drodze?