Jako, że gotowanie mnie relaksuje, postanowiłem dziś coś upichcić. A jako, że dawno tu nic nie pisałem o jedzeniu, to postanowiłem mój przepis tu umieścić.
W mojej lodówce, od dobrych dwóch miesięcy, zalegał tuńczyk w puszcze. Postanowiłem go w końcu wykorzystać.
Poszedłem na początku drogą dość klasyczną. Jajka na twardo, chudy jogurt, odsączony tuńczyk w sosie własnym z puszki, trochę soli, więcej pieprzu, majeranek, tymianek. Ale, przy wyciąganiu przypraw, spostrzegłem pudełko orzechów włoskich i zacząłem je podjadać. W końcu smaki się spotkały – słodkawy orzech, słony tuńczyk.. i stwierdziłem, że smak jest świetny.
Wrzuciłem zatem dwie garści orzechów włoskich do moździerza i wygniotłem – dzięki czemu cześć z orzechów była w większych kawałkach, cześć sproszkowana. Jajka podziabałem widelcem – więc też były tam większe i mniejsze kawałki. Zamieszałem, spróbowałem, ale jeszcze czegoś mi brakowało – dodałem ostrej i słodkiej papryki, szczypiorku i pietruszki.
Może moje kubki smakowe są dziwne, może po prostu miałem smaka na te składniki, a może to po prostu jest świetne połączenie – mi smakuje wprost nieziemsko. Wrzucone na ciemną bagietkę po prostu miażdży moje podniebienie, a kubki smakowe reagują orgazmicznie.
Fotki będą później (chyba, że domownicy wpałaszują ;-) ).
A teraz składniki: dwie puszki tuńczyka w sosie własnym, jeden (150g) chudy jogurt, trzy jajka – na twardo, dwie garści orzechów włoskich, szczypiorek, pietruszka, czerwona papryka, tymianek, majeranek, pieprz, odrobina soli.
Jestem graczem. Gdy miałem niecałe dwa lata, w 1986 roku, w moim domu pojawił się IBM PC AT na którym, już wtedy, były preinstalowane gry. Pamiętam do tej pory uczucia które wzbudzało we mnie granie. Uczucie rywalizacji przy graniu w PC-POOL czy Spacewar!, chęć bycia coraz lepszym w wyścigach, czy wyzwanie i chęć odkrycia historii przy Space Quest. Potem było już tylko lepiej. Pojawiła się Amiga, Pegasus, gry takie jak Contra, Mario, Settlers, Settlers 2, pierwsze Playstation, Intel Pentium 75MHz, coraz lepsza grafika, ciekawe historie i coraz bardziej złożone mechaniki. Potem granie online: Quake, Half-Life, Counter Strike, Unreal Tournament, Day of Defeat, Battlefield 1942, Ultima Online, MUDy. Gry “singlowe” których wszystkich na pewno nie pamiętam, ale wspomnieć muszę o serii Fallout ( łącznie z ostatnim New Vegas ), Baldur’s Gate, Planescape Torment, serii Vampire, grach FPP od Wolfensteina po Half-Life 2, Bioshock, System Shock.. sporo ich było. Nie wiem ile czasu spędziłem na graniu “w młodości”, ale z pewnością znaczącą ilość czasu. Co ciekawe, w dzisiejszych czasach, w USA, od piątej klasy podstawówki ( coś jak koniec podstawówki u nas ) do ukończenia liceum, uczeń siedzi przed ekranem komputera, grając w gry, średnio 10000 godzin. Przy stu procentowej obecności na zajęciach, czas nauki w szkole w USA we wspomnianym czasie to 10080 godzin. Oznacza to, że uczeń poświęca mniej więcej tyle samo czasu na naukę grania w gry komputerowe co na naukę wszystkiego innego. Jest to przerażające, ale jednocześnie można o tym pomyśleć jako o niesamowitym zasobie osobogodzin do wykorzystania do czegoś dobrego, kreatywnego, budującego. I właśnie o tym będzie ta seria wpisów.
Ja sam nie mam teraz czasu grać. Za gracza uważa się osobę, która średnio gra godzinę dziennie codziennie, ja na pewno nie spędzam tyle czasu przemierzając wirtualne światy. Możliwe, że w pierwszym zdaniu powinienem napisać “byłem graczem”, ale mentalnie dalej się za gracza uważam.
Ale jestem też znudzony. Oprócz braku czasu, coraz rzadziej zdarza mi się napotkać grę która wzbudza we mnie jakieś emocje, czy jest wyzwaniem. W którą tak po prostu chciałbym pograć. Która stymuluje mnie na tyle intensywne żeby przyciągnąć mnie do siebie na długie godziny. Tak jak książka czy film przyciągają nas interesującą fabułą.
Znalazłem trzy prezentacje, trwające łącznie około godziny. Zazębiają się one w wielu kwestiach. Trzy prezentacje z których każda pokazuje, że z graniem się nie wygra ;-) ale też, że można przekuć je na coś dobrego.
Pierwsza z nich jest najstarsza (luty 2006) i pokazuje spojrzenie na przyszłość.. czyli na to co teraz i to co będzie za kilka lat. Jest też trochę smutnym, przerażającym i melancholijnym spojrzeniem wstępem do całego tematu.
W prezentacji zawarte są dwa ciekawe filmy. Jeden pokazuje ewolucje gier od zarania dziejów po rok 2006 (6:29). Drugi to swoisty manifest studenta uzależnionego od gier, zrealizowany w bardzo fajny, profesjonalny sposób (9:30). Dodatkowym smaczkiem niech będzie to, że prelegentem jest David Perry, człowiek odpowiedzialny za Earthworm Jim, MDK, Messiah, czy adaptacje takich filmów jak Alladin, Matrix czy Terminator na coś w co możemy pograć. Dostępne są polskie napisy.
Według mnie najciekawszą częścią tej prelekcji jest film studenta zaczynający się w 9min30s. Padają w nim mocne stwierdzenia, których słuszność potwierdzą prelekcje które pokaże w kolejnych wpisach.
Zresztą, myślę, że sporą ich część mogą potwierdzić wasze własne doświadczenia.
Granie wiąże się z silnymi emocjami. Gry są tak zaprojektowane, po to byśmy chcieli w nie grać. Bo co uzależnia mocniej od emocji właśnie? Każdy gracz czuł wzruszenie, podniecenie, dumę czy strach. Niezliczoną ilość razy przebiegały nam ciarki po plecach. W końcu czujemy, że to nasze działania i decyzje mają wpływ na świat w którym się poruszamy. Czujemy odpowiedzialność za naszych żołnierzy nawet mimo tego, że 95 procent ich działań jest zaprogramowanie. Przez to intensywność naszych emocji jest stosunkowo duża. Czujemy to przy wszystkich tych “whoa” momentach – gdy zbieramy szczękę z ziemi, gdy udało się nam dokonać coś, czego teoretycznie dokonać nie mogliśmy – coś epickiego. Wynik 80:4 k:d w CSa, trwająca minutę i wygrana walka na karabiny snajperskie, pokonanie kolejnego bossa, odkrycie dalszej telenowelowej historii w Metal Gear Solid – wszystko to, chcąc nie chcąc, budzi w nas – graczach – emocje.
Pisałem wcześniej, że jestem znudzony i po tej prelekcji myślę, że wynika to ze zbyt dużych oczekiwań. Oczekiwań które zostały rozbudzone przez granie w przeszłości. Zostałem przyzwyczajony do zupełnie innego poziomu oddziaływania niż jest oferowany dziś. Bo mnie nie rusza specjalnie nowa świetna grafika, tylko fabuła – która teraz ma tendencje do bycia coraz płytszą, albo coraz bardziej zbliżoną do Mody na sukces w kosmosie albo w świecie fantasy. Kręci mnie też interakcja i skomplikowanie, które są często zarzucane na rzecz liniowości i cutscenek. Wystarczy porównać budowę poziomów z Quake 2 z tymi z Crisis.
W grach nasze wysiłki są od razu nagradzane, gra od razu powiadamia nas o naszych postępach. Co poziom dowiadujemy się jak nam poszło, co chwilę odblokowujemy jakiś “achievement” czy zdobywamy trofeum. Cała gra składa się z wielu wielu małych i dużych celów, a dzięki ich zdobywaniu wciąż czujemy, że posuwamy się do przodu.
Jesteśmy przyzwyczajani przez gry do tego, że mamy szybki i bezpośredni wpływ na życie. To co robimy zmienia świat, mamy też natychmiastowy feedback. Nie musimy czekać miesiąca żeby dowiedzieć się, czy nasza akcja się powiodła. W realnym świecie nie mamy takiego poziomu interakcji, a przez to czujemy, że nie mamy wpływu na własne życie.
Przez to niektóre uniwersytety zrezygnowały z wystawiania ocen, a w ich miejsce stworzyły “paski postępu” – zupełnie takie same jak przy zdobywaniu doświadczenia w grach. Dzięki temu każda ocena coraz bardziej posuwa nas do przodu – i widać to dokładnie. Taki pasek pokazuje drogę która pokonaliśmy, łatwiej też jest porównać go do czyjegoś paska i utworzyć ranking, a przez to stworzyć zdrowe współzawodnictwo.
Patrzymy na świat i rozumiemy świat poprzez pryzmat naszych doświadczeń, tego co przeżyliśmy i co widzieliśmy wcześniej. Od mojego pokolenia, a pewnie i w tym trochę wcześniejszym też, dużo z życiowych doświadczeń stworzyły telewizja i gry. Gdy jesteśmy nastolatkami nasz mózg nie do końca kapuje, że to co oglądamy nie jest rzeczywiste, szczególnie gdy stanowi to tak dużą część świadomego życia. Najzupełniej w świecie nie ma porównania do rzeczywistości. To co widzimy w TV czy ekranie staje się naszą rzeczywistością.
Czy po pięciu godzinach grania w Gran Turismo czy Need for Speed nie macie poczucia, że staliście się mistrzami kierownicy?
Albo po graniu w Tony Hawka nie macie ochoty wskoczyć na deskę i “kręcić” tricki, mimo, że wasza jedyna dotychczasowa styczność z deską była krótka i szybko po niej nastąpiła styczność z asfaltem? Ja wiem, że tak mam.
A ile razy ktoś z czytających chciał “zasejwować” życie, tak na wszelki wypadek?
Przez to, że nasze życie i świat nie dają nam takiej interakcji i poczucia, że można coś zmienić w łatwy sposób, problemy takie jak ubóstwo, wojna, choroby czy ludobójstwo tracą swoją powagę, stają się płytkie, nie dotyczące nas. W końcu w grach głównym pomysłem na fabułę jest “od zera do bohatera”. Ile razy ratowaliście już świat? Bo ja z kilkadziesiąt. W życiu, teoretycznie, nie mamy szans stać się takimi bohaterami. A skoro nie mamy jak rozwiązać tych problemów, to nie przejmujemy się nimi.
Spędzamy tonę czasu grając, w grach czujemy się bohaterami, dokonujemy epickich czynów, przeżywamy intensywne emocje, dostajemy szybki feedback – czujemy się panami swojego losu. Z tego wynika ten zły wpływ gier i możliwość uzależnienia się od nich. Z jednej strony jest to przerażające, ale z drugiej – nic tego nie zmieni. Rynek gier komputerowych stale rośnie, gry będą powstawać dalej. Będą coraz bardziej realistyczne i będą nas coraz bardziej wciągać i odcinać od rzeczywistości. Niedawno był boom na HD, teraz zaczyna się boom na 3D. Fizyka w grach jest coraz lepsza. Nie ma przed tym ucieczki.
Jedna z istniejących teorii sukcesu, sformułowana przez Malcolma Gladwella, mówi, że spędzając nad czymś 10000 godzin zanim osiągniemy wiek 21 lat, stajemy się wirtuozami tego czegoś. Oznacza to, że cała masa nastolatków jest wirtuozami grania w gry komputerowe. Ale co to oznacza i jak można przekuć to w coś dobrego?
Na końcu filmu Michaela, studenta z opublikowanej tu prelekcji, padają słowa, że “Może to pranie mózgu [ przez gry komputerowe ] nie jest takie złe. Wyobraźcie sobie gry uczące nas wzajemnego poszanowania, czy pomagające nam zrozumieć problemy otaczającego nas świata. Gry mają potencjał do robienia dobrych rzeczy. ”
I właśnie o takim podejściu do sprawy będzie część druga.
Dokładnie 23 miesiące temu, w święta 2008, pisałem o i wrzucałem linki do shortów “Rare Exports”, opowiadających o tym skąd bierze się święty Mikołaj. Nie będę pisał całej fabuły, co by nie popsuć. Każdy może obejrzeć sobie sam. Link do notki z działającymi filmami na końcu tego wpisu.
Shorty te zdobyły na tyle dużą popularność, że ich twórcy postanowili nakręcić film pełnometrażowy, który trafia do światowych kin trzeciego grudnia 2010. Niestety nie wiem jeszcze czy zobaczymy go w Polsce, ale jak tylko się dowiem, to dam znać. Całkiem możliwe, że nie jesteśmy jeszcze wystarczająco światowi, ale ja na pewno go nie przegapię.
A poniżej trailer, ku podkręceniu atmosfery. Prawda, że fajnie się zapowiada?
Właśnie uruchomiliśmy nową stronę Zeno.pl . Jest to już siódma odsłona jeżeli chodzi o grafikę.
W związku z ostatnimi rotacjami i rosnącym doświadczeniem zmieniło się nam portfolio usług i projektów.
Największą zmianą jest dodanie oferty projektowania, wyceniania kosztowego i czasowego oraz prowadzenia projektów internetowych.
Brzmi skomplikowanie, a sprowadza się do rozmów mających na celu jak najlepsze określenie danego projektu tak, aby firma która go realizuje wiedziała co zrobić, klient wiedział co chce otrzymać i co otrzyma, ile za to zapłaci i kiedy to będzie. Możemy również zrobić mały headhunterski wypad i poszukać agencji, firmy która w najlepszy sposób zrealizuje dany projekt. Dzięki temu zdejmujemy klientom trochę pracy z barków, jednocześnie obniżając koszty i zmniejszając czas potrzebny na realizację. A w prowadzeniu projektów mamy już osiem lat doświadczenia.
Udało się nam też nawiązać współpracę z Przemkiem Melnarowiczem, którego pierwsze wypociny graficzne osiem lat temu miałem okazję obserwować i komentować. Teraz często podnoszę szczękę z podłogi na widok jego prac. Zresztą jest on autorem nowej grafiki Zeno.pl .
Oferujemy też hosting dla naszych klientów. Możemy dzięki temu dostosować całe środowisko dla danej aplikacji i dać to czego ktoś potrzebuje, o wiele taniej niż udaje się to uzyskać na popularnych hostingach.
Zaczynamy też pisać aplikacje na Androida. Póki co budujemy jego portfolio i zdobywamy doświadczenie, ale pewnie w przeciągu kilku miesięcy będziecie mogli kupić jakąś aplikacje autorstwa Zeno.pl w Android Market.
A tak jako wisienkę na torcie i abyście mogli na świeżo śledzić co się dzieje założyliśmy profil na Facebooku .
Niestety w tym roku nie udało mi się zrealizować moich wyprawowych planów. Niektórzy myśleli, że jestem cham i prostak nie pożegnawszy się na okres mojego wyjazdu – a smutna prawda niestety jest taka, że nie pisałem przez natłok pracy i życia. Patrząc jak pogoda za oknem robi się coraz mniej przyjazna a szanse na bezpieczną samotną pieszą wycieczkę po górach znikają.
Wyprawa się nie udała, ale plan pozostał – do realizacji w przyszłym roku. Została też ciekawa historia o tym jak ów powstał. Czyli właśnie krótka historia o tym, jak programista planuje podróż.
Plan wyprawy jest prosty: pojechać w Bieszczady i przejść głównie ich słowacką częścią w tatry i zakończyć w Zakopanem. Po drodze zaliczyć weekend w gorących źródłach w celu chwilowego lenienia się i regeneracji sił.
W Bieszczady jeździłem kiedyś sporo, w Tatrach byłem kilka razy. Nigdy nie byłem w górach Słowacji. Zacząłem zatem przeczesywać Internet w poszukiwaniu mapy szlaków turystycznych, a idealnie jakiegoś narzędzia do wytyczania trasy. Niestety nie udało mi się czegoś takiego znaleźć. Zapisałem się więc na forum poświęcone Bieszczadom. Przywitałem się grzecznie i zadałem nurtujące mnie pytania: którędy najatrakcyjniej przejść i co zobaczyć gdzie można? Niestety okazało się, że mój pomysł jest raczej z tych mało popularnych. Dostałem garść porad, ale nikt nie szedł w ten sposób wcześniej, więc nie miałem z kim takiej trasy przygotować.
Udałem się do Traffica. Właściwie lepszym stwierdzeniem było by “wstąpiłem do Traffica przy okazji” – nie był to plan, raczej fakt, że przechodziłem obok, a lubię to miejsce. Znalazłem się szybko w dziale z przewodnikami i przez niecałą godzinę szukałem mapy i/lub przewodnika po górach Słowacji. W końcu, gdy oczy miały mi wyjść z orbit, a szyja bolała mnie od ciągłego przechylania głowy to w lewą to w prawą stronę…
Mała dygresja. Czy książki nigdy nie mogą być ustawione tak, żeby tytuły na ich grzbietach dało się czytać bez ciągłej zmiany pozycji głowy? Czy może jest to jakiś specjalny sposób na rozruszanie moli książkowych? I jeżeli prawidłowa jest ta druga opcja – to serio – wystarczy próba czytania książki w autobusie. Ustawiajcie książki tak, żeby były zgodne grzbietami!
.. znalazłem to, czego szukałem. “Góry Słowacji”. Przewodnik napisany przez Barbarę Zygmańską. Nie piszę “Panią Barbarę Zygmańską” gdyż.. gdy tylko napisałem o tym na forum bieszczadzkim, okazało się, że Barbara jest jednym z jego użytkowników. A jako, że niepisana ( a czasem też pisana ) zasada forów mówi, że z użytkownikami owych jest się per “Ty” to właśnie z tego korzystam. Zresztą, na szlaku wszyscy jesteśmy znajomymi, prawda?
Ale jeszcze zanim okazało się, że autorka jest na forum, udało mi się przewertować wszystkie potrzebne mi rozdziały przewodnika i zacząć planować trasę. Użyłem do tego Google Earth, Google Maps oraz cudownego spreadsheeta z wszelkimi cenami, przelicznikami walut, liczbą kilometrów, planem wydatków i innymi.
Na Google Earth nałożyłem trasy z przewodnika i z tego co udało mi się znaleźć w necie. Niestety gotowe już warstwy programu nie miały tras które by mnie interesowały. Musiałem więc robić to sam. Obliczyłem również dzięki temu odległości oraz znalazłem część noclegów i stron ośrodków wypoczynkowych. Warstwa zdjęć natomiast pomogła mi ocenić które miejsca warte są obejrzenia a które nie. Zaplanowałem nawet o której porze dnia najlepiej iść, żeby słońce ładnie oświetlało zbocza gór. Dzięki temu powstała mapa, lista punktów ważnych ( łącznie z koordynatami do GPSa, którego planowałem kupić, a którego znalazłem oczywiście na allegro, korzystając też z testów znalezionych w necie ), lista odległości do przebycia, a nawet wykresy mówiące o różnicach wysokości i nachyleniu terenu – dzięki czemu łatwo było mi oszacować ile czasu zajmie mi przejście danego odcinka.
Gdy autorka przewodnika znalazła mój wątek dorzuciła mi jeszcze masę zdjęć, wskazówek oraz interaktywną mapę tras górskich na Słowacji. Dzięki temu mogłem doprecyzować wszystko czego potrzebowałem w bardzo zgrabny sposób.
Lubię planować od A do Z ale nie lubię trzymać się tego planu sztywno. Lubię móc improwizować, dostosowywać się do bieżących wydarzeń. Dlatego lubię też mieć możliwość zorientowania się w wielu pobocznych wątkach, ciekawostkach i faktach dotyczących różnych rzeczy. Taka wiedza ogólna pozwala na bezpieczne improwizowanie – czyli stwierdzenie “ok, jest burza, nie dojdę na tamten szczyt, ale przenocuję w tej chatce – wiem, że tam jest, bo widziałem ją na fotkach użytkownika google earth”, lub stwierdzenie “ok, w październiku ta kwatera okazała się być nieczynna, ale wiem, że 8km stąd jest większa miejscowość, tam pewnie się coś znajdzie”, zamiast stwierdzać “ok, idę tam, bo nie wiem gdzie mam iść”. Lubię też być przygotowany na wiele okazji. Dlatego kupiłem pneumatyczną syrenę alarmową (znaną dobrze z meczy piłkarskich ) i race spadochronowe – gdyby się coś stało, mógłbym z tego zrobić pożytek. Odświeżyłem też informacje o pierwszej pomocy i zaznajomiłem się, ponownie, z wszystkimi zasadami obowiązującymi na szlaku oraz w kontakcie z ratownikami.
Odruch szukania i planowania swoich wakacji używając Internetu nie wydaje się niczym dziwnym – wiele osób tak robi, bo jest to praktyczne. Gdybym zdał się tylko na wyniki wyszukiwania to nie miałbym za dużo informacji i pewnie przegapiłbym wiele ciekawych miejsc i możliwości. Dzięki temu, że użyłem Google Earth i Google Maps cała moja wyprawa osadzona jest w czasie i przestrzeni. A ja dokładnie wiem co jest w okół mnie. I jakie są opcje planu “B”, który mogę stworzyć na poczekaniu.
Dzięki temu, że napisałem na forum Bieszczadzkim wiedziałem, od najbardziej świadomych polaków w necie, co zobaczyć i gdzie się przespać gdy już będę na Słowacji.
Gdybym planował tą podróż kilka lat temu. I to niedużo, dosłownie pięć czy sześć lat wstecz, musiałbym zdać się na mapy papierowe. Nie miałbym też możliwości zakupienia, za stosunkowo nieduże pieniądze, urządzenia w którym mógłbym zapamiętać najważniejsze lokacje i w łatwy sposób wyznaczyć sobie odległość od nich. Jasne, kompas, mapa i orientacja w terenie to umożliwiają, ale bezpieczniej użyć GPSa (szczególnie, że nigdy nie wiadomo w jakich okolicznościach ta wiedza będzie potrzebna). Z pewnością ominąłbym dużo ciekawych miejsc, gdyż informacje byłyby niepełne.
Dziś, używając komputera i kilku darmowych programów, można zdobyć tonę informacji pobocznych, pomoc doświadczonych osób, zaplanować swoją podróż w wielu szczegółach i dopuszczając wiele możliwości. To piękne jak technologia ułatwia nam życie. Nie mówiąc już o tym, że gotowe notatki i mapki musiałbym laminować, żeby móc korzystać z nich nawet w deszczu.
Trasę i relację z wyprawy, które miałem plan opublikować właśnie jakoś teraz, opublikuję gdy już ją przejdę i będę miał co relacjonować. Póki co zostanie to moją słodką tajemnicą.
A może i Wy macie jakieś ciekawe miejsca które trzeba zobaczyć na Słowacji, idąc z Łupkowa do Zakopanego, w ciągu dwóch tygodni? Piszcie o tym w komentarzach.
Po wpisie o tym jak zostałem programistą kilka osób zapytało się mnie o więcej konkretów – jako, że konkretami są książki to poniżej krótka lista tych które stanowią zupełne podstawy PHP, SQL, Linuxa i Apache’a ( tzw. LAMP ). Po ich przeczytaniu powinniście znać słownictwo i programowanie w PHP na tyle, żeby móc umieć: napisać aplikacje rozwiązujące konkretne problemy, umieć przeczytać czyjś kod ( ze zrozumieniem! ), móc użyć gotowych frameworków i zrozumieć jak działają, no i mieć podstawy pozwalające na dalsze dokształcanie się w internecie.
Ja sam przerabiałem różne książki, z różnych serii wydawniczych i pisane przez wiele różnych osób. Do samego PHP4 miałem około trzech książek podstawowych i dwie lub trzy dotyczące bardziej zaawansowanych zagadnień. Potem nadszedł PHP5, ale wtedy już wiedziałem które książki kupować.
Najfajniej mi się czytało książki z serii Wrox, wydawane w Polsce przez Heliona.
Co programista powinien wiedzieć?
Według mnie samo PHP nie wystarczy. I mimo, że PHP uważane jest przez wielu za prosty i prostacki język ( głównie dlatego, ze “próg wejścia” jest niski – czyli wystarczy trochę wiedzy, by mój pisać skrypty PHP, które są wątpliwej jakości ), to jednak pozwala on na wiele konstrukcji używanych w językach bardziej zaawansowanych, takich jak C++, Java czy C# . Ale wojny językowe to osobny temat. Skupmy się na tym co programista wiedzieć powinien, aby umieć pisać kod dojrzały i profesjonalny. Tak, co by “zaawansowani programiści” mieli mniej powodów do naśmiewania się z developerów PHP ;-) Oto lista zagadnień:
Podstawy programowania ogólnie ( czyli znajomość mechanizmów, które każdy język programowania musi mieć, aby móc się nazywać językiem programowania ). Z definicji językiem programowania nazywa się taki, w którym można zapisać każdy algorytm. Matematycznie rzecz ujmując musi on być kompletny w sensie Turinga – czyli zgodny z modelem maszyny Turinga. Ale znów, ja nie o tym tu miałem.
W bardzo dużym uproszczeniu znaczy to, że trzeba znać instrukcje warunkowe, rekurencyjność i zapis/zmianę danych w pamięci. HTML, XML, CSS to nie są języki programowania, gdyż nie mają takich mechanizmów. Podstawy programowania opisują książki takie jak PHP5, Apache i MySQL. Od podstaw ( to specyficznie dla PHP – ale bardzo dobrze napisane ) oraz Programowanie. Od podstaw – trochę bardziej ogólna i oderwana od PHP, ale daje sporo jeżeli chodzi o wejście w “całe to programowanie”. Zajmuje się środowiskiem pracy, tym jakie problemy można napotkać po drodze i czemu jest to normalne ;-)
Często dużym problemem jest instalacja Apache’a i PHP tak, żeby wszystko działało jak należy – książki o podstawach PHP zawierają taką wiedzę. Aczkolwiek planuję na łamach tego bloga napisać poradnik o instalacji PHP i Apache’a pod Windowsem, jak również używając Linuxa lub jakiejś maszyny wirtualnej.
Algorytmy i struktury danych. Każdy program to algorytm – czyli zestaw działań które trzeba wykonać, aby stało się coś konkretnego i zdefiniowanego – czyli żeby otrzymać określony wynik. Tu również miałem kilka książek, ale i w tym przypadku Wrox wygrał Algorytmy. Od podstaw .
Podstawy PHP. Ten temat obejmuje książka o której wspomniałem wyżej – PHP5, Apache i MySQL. Od podstaw . W tym temacie znajduje się opis składni PHP, łączenia go z HTMLem, wywoływania przez Apache’a ( lub inny serwer WWW ). Poznanie podstawowych funkcji, pętli (for, foreach, while ) i instrukcji kontrolnych ( if, switch ). Komunikacji z użytkownikiem, pobierania od niego danych, itp. itd.
Programowanie obiektowe. Aby znać obiektowość w pełni radzę wziąć w ręce książkę o zaawansowanym programowaniu w Java lub C++, natomiast aby opanować podstawy zawarte w PHP5, polecam PHP5. Zaawansowane programowanie . Aktualnie pisanie kodu strukturalnie, to strzelanie sobie w stopę. I chociaż każdy od tego zaczyna, to lepiej, po opanowaniu podstaw, przejść do programowania obiektowego. Tutaj dowiedzieć się można co to są klasy, interfejsy, klasy abstrakcyjne, metody, hermetyzacja, dziedziczenie, implementacja i cała masa innych ciekawych słów, których definicję i sposób użycia znać trzeba.
xHTML i CSS. W idealnej sytuacji programista zajmuje się programowaniem, grafik tworzeniem grafiki, a webmaster/webdeveloper czy jak to się teraz nazywa, zajmuje się przygotowaniem grafiki dla programisty – czyli “pocięciem” jej i stworzeniem szablonu HTML, kawałków grafiki i plików CSS, a czasem nawet dołączeniem do tego AJAXa. Natomiast na początku, i aby własna twórczość nas nie odrzucała, przydaje się znać HTML i CSS ( zresztą podstawy CSS i HTMLa nikomu nie zaszkodzą ). Aby się tego nauczyć polecam tutoriale na w3schools lub CSS. Projektowanie profesjonalnych stron WWW .
Head First to też ciekawa seria, chociaż dość specyficzna – nie wiem czy do wszystkich głów trafi jej forma przekazu. Co nie zmienia faktu, że są kompletne i, przynajmniej mi, dobrze się je czyta.
Oczywiście nie trzeba kupować wszystkich tych książek na raz. Dobrą zasadą jest wypróbować nowo nabytą wiedzę w trakcie czytania, a potem popisać trochę kodu używając nowo nabytych technik.
Miłego czytania, mam nadzieję, że ta lista pomoże komuś w zostaniu programistą aplikacji internetowych.
Powyższe linki mają w sobie mój kod z programu partnerskiego Heliona. Gdy kupicie książkę na ich stronie, to na moje konto zostanie zaliczona prowizja. Jeżeli komuś to nie odpowiada, niech przed zakupem skasuje ciasteczka w przeglądarce.
Ostatnimi czasy zabraliśmy się w Zeno.pl za refactoring kodu którego używamy do pisania naszych aplikacji – ZenoFuel i ZenoApp.
Staramy się to robić raz na kilka projektów, bo nic tak nie pokazuje ewentualnych pól do poprawy jak używanie kodu w praktyce. Tym razem postanowiliśmy jednak zrobić kilka sporych zmian – co oznacza również przegląd kodu od początku do końca.
W skrócie: nasz framework oparty jest luźno na Zend Framework ( podobny jest podział na pliki, wykorzystujemy kilka z jego modułów – np. do wysyłki poczty czy łączenia się z bazą danych ), napisany jest zgodnie z duchem MVC, wykorzystuje OPT do generowania HTMLa.
Składa się z kilku modułów: zestawu kilku Routerów ( do wyboru do koloru ), które decydują o tym jakie tworzyć Kontrolery, które to mają hooki pozwalające np. przed wykonaniem akcji na sprawdzenie uprawnień użytkownika. Zestawu klas do tworzenia Formularzy opisanych za pomocą XMLa. Abstrakcyjnych Modeli pozwalających na łatwy i uniwersalny dostęp do bazy. Prosty Cache oparty na APC ( który ma być wbudowany w PHP od wersji 6.0 ). Obsługę Sesji w bazie danych i plikach. No i całej masy klas pomocniczych do różnych zadań specjalnych.
Część tego kodu nie zmieniała się od kilku lat. Stał się on swoistym ‘blackboxem’ który po prostu działa. A skoro działa, to nie ma co w nim grzebać. Zmiany natomiast wprowadzamy gdy w jakiś sposób kod nas ogranicza lub widać miejsce które mogło działać by szybciej, lepiej, zgrabniej. Na bieżąco staramy się też dodawać komentarze lub uwagi na przyszłość.
Tyle słowem wstępu a propos materiału na którym oparte są te przemyślenia.
Czym jest refactoring ( tudzież refaktoring tak z polskiego ;-) )?
Refaktoryzacja to zmiania kodu programu, nie zmieniając jednocześnie zbytnio jego funkcjonalności. Oznacza to, że nie wprowadza się przy tym nowych featuresów, tylko dba się o to, aby nazwy metod, parametrów, funkcji itp. itd. były odpowiednie. Dodaje się komentarze tam, gdzie jest to wymagane. Rozbija się kod na mniejsze porcje – dzieląc na nowe metody i funkcje. W niektórych przypadkach można nawet w ogóle wydzielić część funkcjonalności do osobnej klasy.
Co oznacza “odpowiednie”?
Samo opisujące się. Idea jest taka, żeby przeczytanie nazwy metody dało nam już pełen ogląd na to, co owa robi i co zwraca. W praktyce trudno się operuje potem metodami które złożone są z siedmiu słów, nawet mimo podpowiadaczy we współczesnych edytorach.
Czyli tak naprawdę sprowadza się to do połączenia ze sobą komentowania i odpowiednich nazw – szczególnie, że taki Eclipse potrafi pokazać co metoda robi poprzez pokazanie nam,oprócz nazwy, również jej dokumentacji w auto-uzupełniaczu.
Umiejętność odpowiedniego wypoziomowania tych dwóch podejść przychodzi z praktyką.
Refaktoryzacja jest fajna i przydatna z kilku względów. I można robić ją na wielu poziomach.
Po pierwsze ułatwia zrozumienie kodu po dłuższej rozłące. Nie oszukujmy się, gdy wracamy do kodu po dwóch trzech miesiącach trochę czasu zajmuje nam połapanie się o co w nim w ogóle chodzi i czemu robi to co robi i jakim prawem to w ogóle działa?! :O Dobry podział plików, nazwy klas, metod, funkcji, odpowiednie zależności klas od siebie, hermetyzacja i odpowiednie komentarze/dokumentacja pozwalają skrócić czas ponownego zrozumienia.
Po drugie dobrze podzielonym kodem łatwiej zarządzać. Jeżeli w kodzie panuje chaos, to nie wiemy czy zmiana działania danej metody sprawi, że w innym miejscu nie pojawią się błędy. Porządek pozwala utrzymać panowanie.. nad kodem i nas swoimi nerwami ;-)
Po trzecie zmiana kodu na lepszy często wiąże się ze wzrostem wydajności. I tak, mimo, że komputery są coraz potężniejsze – oszczędzanie wydajności bardzo się przydaje. Podobna zasada tyczy się generacji HTMLa i CSSów – należy oszczędzać transfer.
Po czwarte jest to niezły ubaw. Z dwóch względów – widzimy jak się rozwinęliśmy, gdy coś co kiedyś potrzebowało kilku ifów i dziwnych funkcji teraz potrafimy zrobić połową ilości poprzedniego kodu. Niektóre nasze stare komentarze dla potomnych również potrafią rozbawić do łez ;-)
Jak pisać kod by potem dużo nie refaktorować?
To jest pytanie na zupełnie osobny wpis, ale odpowiedź może być prosta: pisać dużo kodu. Wracać do starego kodu, myśleć co by się w nim zmieniło i robić to :-)
Ja, gdy mam pomysł na rozwiązanie jakiegoś problemu, to najpierw sprawdzam go w praktyce, później dopiero, ale chwilę po sprawdzeniu czy działa, porządkuje go. Jeżeli może okazać się, że pomysł jest zły, to nie ma sensu poświęcać czasu na napisanie go od razu poprawnie. Jeżeli kod rzeczywiście działa, to trzeba sprawdzić, czy nasza pisanina nie ma zbyt rozciągłych czy zduplikowanych zmiennych, za dużo pętli i czy coś do poprawy nie rzuca się od razu w oczy. Nie ma co szukać na siłę, jeżeli wszystko wydaje się ok i spełnia swoją rolę, to nich tak zostanie.
Lepiej wrócić do takiego kodu za jakiś czas, gdy już osiądzie w swoim kontekście i będzie kilka razy wykorzystany – wtedy łatwiej zobaczyć co mógłby robić lepiej lub inaczej. Czy nie lepiej go podzielić, wydelegować niektóre czynności na zewnątrz. Czy część z tego co robi nie mogła by być wykorzystana w innym miejscu – czyli czy nie lepiej jej wydzielić obok. A może należy coś dopisać?
Może tablica z czynnościami do wykonania na porcji danych powinna zostać wydzielona do osobnej kolekcji, może trzeba dodać dodatkową parametryzacje, zrobić kod bardziej ogólny? W niektórych przypadkach kod jest na tyle samodzielny, że powinien stać się osobną klasą.
Co zmieniliśmy?
W Zeno, po przejrzeniu kodu ZenoFuel, liczącego sobie około 600 plików i 400 klas, interfejsów i abstrakcji, do zmiany poszło około 40% ( licząc również drobne poprawki kosmetyczne, w stylu ładniejsze ułożenie kodu, wywalenie nadmiarowych białych linii itp. itd. ).
Zmieniło się nazewnictwo kilkudziesięciu klas, niektóre zostały wyodrębnione w osobne miejsca – np. filtry danych z klas do formularzy uzyskały samodzielność, można je teraz bez obaw wykorzystywać zupełnie obok. Oznacza to również, że poszły z drzewa katalogów Formularzy do swojego własnego osobnego ( wyprowadziły się z domu ). Kontrolery straciły pewną część nadmiarowych metod i składowych ( pól ) – z kilku rozwiązań tych samych problemów wybraliśmy najlepsze. Niektóre klasy trzymają w sobie więcej danych aby zmniejszyć obciążenie bazy danych dodatkowymi zapytaniami – okazało się, że i te dane są często wykorzystywane w praktyce w naszych aplikacjach. Zmieniły się też odpowiedzialności klas, np. teraz to Kontrolery zajmują się przetwarzaniem parametrów które dostały od Routera – wcześniej to on nimi zarządzał. Niektóre metody skróciły się o dobre 70%, w kilku miejscach doszła rekurencja – jako jednak lepszy wybór.
Po tym etapie wszystko działa dokładnie tak samo jak działało wcześniej, jednak w ten nowy fajniejszy i lepszy sposób niż kiedyś – i to jest właśnie refaktoryzacja.
Klasy zostały też uporządkowane tak, aby móc przyjąć na siebie nowe funkcjonalności które dla nich planujemy, np. eventy ( zależności ) w Formularzach, bardziej rozbudowany Cache, elastyczniejszą Konfigurację, generowanie HTMLa Formularzy zdefiniowanych w XMLu, itp. itd. A wszystko w duchu wzajemnej nauki.
Oczywiście i te nowe featuresy dostąpią zaszczytu refaktoringu za kilka miesięcy, gdy w praktyce okaże się, czy spełniają dokładnie swoją rolę ;-)
Nie znam się na neurologii. O mózgu czasem sobie myślę, bo lubię wiedzieć jak działamy i my i świat w okół. W głowie rodzą mi się teorie, napędzane tym, że dużo o tym temacie myślę tak sam z siebie lub przez jakąś obserwację. I przez to łatwiej mi o tym myśleć. Błędne koło, ale z tych fajnych a nie złych.
Wczoraj mnie olśniło, że gdy dni są jednakowe – np. jak codziennie rano się budzimy, idziemy do pracy, wracamy – ot, rutyna, to te dni mają tendencję do łączenia się w jedność. Żadne odkrycie, prawda? Wiele wiele osób mówi, że “zupełnie tracę poczucie czasu”, “nie pamiętam co wczoraj jadłem na obiad”. Dla mnie wczoraj był śnieg i zimno i plucha. Wszystko od stycznia do teraz praktycznie zlane jest w mojej pamięci w całość. A wszystko dlatego, że tymi dniami, w większości, rządzi rutyna. Czy jestem w stanie teraz przypomnieć sobie co robiłem dokładnie 14 lipca? Nie. Mogę sobie przypomnieć, że w czasie tych ostatnich ośmiu miesięcy zdarzyło się to i tamto, może uda mi się to uszczegółowić co do miesiąca, a raczej okresu – np. “kiedy widziałem tą śliczną dziewczynę w metrze? no jak było ciepło, bo miała na sobie sukienkę”.
Mózg oszczędza w ten sposób miejsce. I mimo, że tak naprawdę każdy z tych dni był zupełnie inny. Mimo, że robiłem różne rzeczy, jadłem różne jedzenie, godziny były inne, ludzie na ulicy inni – to jednak mózg odrzuca drobne szczegóły różniące te dni i zapamiętuje ogólniki. Że wstałem, poszedłem do pracy,wróciłem z pracy i poszedłem spać.
Żeby zapamiętać cokolwiek musimy myśleć o szczegółach. Musimy łączyć to co chcemy zapamiętać z innymi rzeczami – jeżeli jakaś, nazwijmy to, komórka, pamięta gdzie położyliśmy klucze, to żeby zapamiętać gdzie je położyliśmy – żeby móc szybko przypomnieć sobie to miejsce, ta komórka musi łączyć się z innymi komórkami przez skojarzenia. Jak wiele łatwiej jest nam pamiętać gdzie są klucze, gdy kładziemy i znajdujemy je w tym samym miejscu po raz setny? A co, gdy ten sto pierwszy raz położymy je w innym miejscu? Nie ma ich nigdzie. A zauważyliście ile razy instynktownie wracamy do miejsca gdzie były “zawsze”? A zauważacie jak trudno potem to miejsce zmienić?
Na kursach szkolących pamięć jest technika układania tego co chcemy zapamiętać w jakąś historyjkę – stworzenie z ciągu danych historii ułatwia tworzenie połączeń z innymi rzeczami które są tej historii częścią. Więcej połączeń oznacza więcej dróg pozwalających wejść nam na ścieżkę zawierającą to co chcieliśmy zapamiętać.
Dlatego też sprawdzają się takie techniki jak “mapa myśli” – bo gdy zdamy sobie sprawę z tego z czym powiązane jest to co chcemy zapamiętać, to łatwiej znów wywołać w sobie te same skojarzenia. Wtedy myśli same płyną, tym samym torem, naturalnym dla nas – bo wykształconym. Bo droga owym utwardzana była już wiele razy – właśnie dlatego, że myśleliśmy o tym wiele razy, umacniając połączenia między komórkami.
Co ciekawe nasz mózg pamięta nie tylko co należy do zbioru skojarzeń z inna rzeczą, ale pamięta też często kolejność występowania tych rzeczy. Nasza pamięć jest chronologiczna. Dzięki temu możemy przywołać z pamięci zdarzenia po kolei i opowiedzieć historię. W końcu żyjemy w czasie, więc musimy go pamiętać. Choćby ogólnikowo.
Natomiast ta właściwość, że mózg odrzuca szczegóły, żeby móc uogólniać wspomnienia, dzięki czemu oszczędza miejsce, rodzi też inny problem/właściwość. Często zapominamy o małych rzeczach, pamiętamy ogół, ale nie pamiętamy szczegółu. Pamiętamy fajną randkę, ale nie pamiętamy czy niebo było zachmurzone, chyba, że to, że było lub nie odróżnia tą randkę od innych, i że było to silne przeżycie. Na tyle silne, by od razu móc utrwalić połączenie między komórkami tworzącymi w naszej głowie obraz danego spotkania. Jasne, nasz mózg zdaje sobie sprawę z tego, że na jakiejś randce, niebo było zachmurzone lub nie. Ale to czy potrafimy sobie przypomnieć która to randka była, to już kwestia tego, jak ważne to zachmurzenie na niej było – jaką rolę odgrywało.
Wspomnienie konkretnej randki, jako komórka o nazwie “randka z Ewą w grudniu 2007″ łączy się z komórkami które zawierają czynności/słowa “randka”, “kobieta”, “Ewa”, “wieczór”, “zimno”, itp. itd. Taka komórka nie musi mieć treści sama w sobie, ona jest zbiorem połączonych ze sobą innych treści, które ją tworzą. Gdy ktoś powie “pamiętasz tą Twoją randkę w zimie?” wpadną Ci na myśl wszystkie randki podczas których było zimno i będziesz chciał to doszczególnić pytając “masz na myśli tą z Ewą?”. Gdy ktoś odpowie “tak”, to od razu przypomną Ci się wszystkie rzeczy powiązane z tą randką, tym zbiorem ‘komórek’ definiującym to konkretne spotkanie.
Gdy pozwolimy myślom płynąć czy myślimy tylko o jednej rzeczy? Nie. Biegamy po skojarzeniach. Wszystko wydaje się chaotyczne, ale tak naprawdę kolejność rzeczy o których myślimy jest taka a nie inna właśnie dlatego, że w ten sposób układają się nasze skojarzenia. Czerwona podwiązka naszej dziewczyny ze studniówki kojarzy się z czerwonym samochodem który widzieliśmy kilka dni temu, który kojarzy się z wakacjami z rodziną, które kojarzą się z morzem, które kojarzy się z naszym pierwszym rejsem statkiem, który kojarzy się z burzą, która kojarzy się z kubkiem gorącej herbaty gdy wróciliśmy zmoczeni deszczem po spacerze z naszą trzecią dziewczyną, która to kojarzy się z zapachem poziomek, które kojarzą się ze spacerami w lesie, który kojarzy się z dziadkiem, który był leśnikiem.. itd. itp. Wszystko się ze sobą kojarzy, choć może nie w tak oczywisty sposób jak powyżej, to jednak gdy uświadomimy sobie ten fakt, o wiele łatwiej będzie nam znaleźć powiązania w tym jak płyną nasze myśli.
Zauważ, że między podwiązką a samochodem jest tylko jedna część wspólna – czerwień. Między wakacjami a samochodem częścią wspólną jest samochód. Wakacje, mimo, że odbywały się i w górach i nad morzem, to właśnie morze/woda jest aktualnie silniejsze/a i prowadzi do rejsu. Czemu akurat wybieramy jedno wspomnienie a nie drugie? Wg mnie właśnie dlatego, że przez ostatni czas używane było częściej. Gdyby to góry były aktualnie “silniejsze” to może przypomniały by o nartach, śniegu i ostatniej wigilii. Czyli liczy się i częstość i natężenie i rozłożenie w czasie tego o czym i jak myślimy.
Nasz mózg to taki system tagów łączących się z tagami, które łączą się z tagami, a one z kolejnymi itd. A każdy z tych tagów, oprócz tego, że jest słowem, ma też swoje znaczenie. Zapewne przez to, że łączy się z innymi tagami, które mu to znaczenie nadają. W naszej głowie jest worek słów, które łączone są innymi słowami. Gdy o czymś myślimy, to łączą się jeszcze mocniej. I im więcej myślimy, tym mocniej. Jeżeli nie używamy, to z czasem, zanikają i sprawiają, że o wiele trudniej przywołać pamięć. W końcu, gdy coś straci wszystkie inne połączenia, zanika. Odrywa się od systemu pamięci i.. czeka na nadpisanie czymś innym. Nie wiem tylko, czy po takich połączeniach zostaje jakiś ślad i czy można je odtworzyć. Czy może gdy wiedza wypadnie poza obieg i jedyne co ją czeka to nadpisanie inną?
Nasza pamięć nie jest idealna. Godzimy się z tym, choć nie łatwo jest z tym żyć. Ciekawe jest to, że wymagamy pamięci idealnej od komputerów. Pewnie dlatego, że są one szansą na stworzenie protezy naszej własnej pamięci.
Teraz, coraz łatwiej i więcej informacji możemy gromadzić. A przez jej natłok coraz trudniej jest nam w niej szukać. Zresztą takie szukanie nie jest idealne, bo nie jest naturalne. Czemu więc nie stworzyć, przy pomocy technologii, kopii tego, jak działa nasza pamięć? W końcu nie może to być aż tak trudne, skoro mamy to w głowach. A używanie powinno być wręcz naturalne.
Widać po nas, że mózg przekłada moc obliczeniową ponad przestrzeń dyskową. Wiele rzeczy sobie dopowiadamy. Skąd wiem, że było ciepło gdy widziałem tamtą śliczną dziewczynę w metrze? Ano nie dlatego, że pamiętam, tylko dlatego, że miała na sobie sukienkę – więc musiało być ciepło, inaczej odmroziła by sobie to i owo. Z tego też wychodzi wiele problemów – bo często dopowiadamy sobie źle. Czyli tworzymy kłamstwa w które mocno wierzymy – bo przecież “pamiętamy”.
A czy Ty pamiętasz, że parę akapitów wyżej pisałem o ślicznej dziewczynie którą widziałem w metrze?
Dziś historia z życia wzięta, oparta na faktach wręcz nadto autentycznych. A właściwie.. to “wczoraj”, bo zdarzyło się to wczoraj.
Pracuję trzy kilometry od miejsca w którym mieszkam. Przejście tego dystansu zajmuje mi od 24 do 32 minut. W zależności od nastroju, pogody, siły, chęci i innych pierdół które składają się na dany dzień. Na wczorajszy dzień składał się głównie deszcz. Zresztą, szum wody spadającej z nieba towarzyszy nam ostatnio odkąd obudzimy się rano, do późnych godzin wieczorno-nocnych gdy w końcu zasypiamy. To, że leje, każdy widzi. A to, że niweluje to naszą chęć na wyściubianie nosa za drzwi chyba każdy czuje.
Tak więc wczorajszego poranka otworzyłem oczy, podniosłem się z wyra i zobaczyłem za oknem.. Szaro, Buro i Ponuro w gościnnych występach. Innymi trzema słowy “siąpi jak cholera”. You know the drill.
Rozleniwiony tym cudownym widokiem stwierdziłem, że pojadę do pracy taksówką. Tak, w takie dni mogę robić za “burżuja”.
Zadzwoniłem po taksówkę, oporządziłem się, wsiadłem do taksówki.. po 20 minutach i 300 przejechanych metrach podziękowałem taksówkarzowi i wróciłem do domu. Co tu robić, co tu robić. Pora była już późna, już się spóźniłem, dokładać do tego pól godziny na dojście do pracy – ouch. Stwierdziłem więc, że, aby nie przedłużać spóźnienia niebotycznie, zaoszczędzę czas pedałując na rowerze. Póki słońce świeciło póty na owym popylałem prawię codziennie, bo jednak wolę jechać 8-10 minut – zawsze można pospać sobie kwadrans dłużej. A kwadrans to dużo czasu. Szczególnie rano.
Tak czy siak, wszedłem do mieszkania, patrze za okno – objawienie! Nie pada. No to szybko kurtka na plecy, szalik, rękawiczki, rower, winda, schody, drzwi.. leje. Stwierdziłem “pierdziele”, uzbroiłem się, opatuliłem, włączyłem oświetlenie rowerowe, odblaski założyłem i długa. Czy pisałem już, że rower nie ma błotników? Ale nie takie rzeczy się robiło. Co prawda czułem się, jak bym jechał w basenie – ciekawe uczucie muszę powiedzieć – ale co tam, w pracy kurtka na wieszak, bluza na wieszak, gorąca herbatka, zmienić spodnie.. zaraz.. czy ja wziąłem spodnie? Nope. Super. Za późno było, by wracać się i po nie. Gdybym wrócił to bym już nie wyszedł, nie ma bata. W końcu co za dużo to niezdrowo – uznałbym to za znak z góry ( albo skądś ) i podziękował za dalsze namaczanie się. Jak już wolę to robić w wannie – gdzie jest _CIEPŁO_.
Dojechałem do biura. Kurtka na wieszak, bluza na wieszak, gorąca herbatka, włosy wysuszyć. No, i tia.. fajnie się pracowało w mokrych spodniach.. ;-)
Nie zmienia to faktu, że mam silne postanowienie dalej jeździć do pracy na rowerze. Nawet mimo tego, że tylko wczoraj próbowało zabić mnie koło trzech osób. Na drodze. Bo na rowerzyście łatwo pierwszeństwo wymusić.
Ba, zamierzam jeździć na rowerze w zimie. A jako, że aktualnie kończy się rowerowy sezon to zamierzam również zakupić sobie rower, bo póki co jeżdżę na pożyczonym. Taki będę.
Morał z tego taki, żeby nie dawać się przyrodzie i pogodzie. Że kwadrans to dużo czasu, szczególnie rano. Że jeżdżenie w deszczu nie jest takie złe na jakie wygląda ( gdy ma się spodnie na zmianę ). No i te całe błotniki – słyszałem, że całkiem spoko wynalazek.
No i ok, wracałem z rowerem w bagażniku samochodu kumpla.. ale to to ciiiiiii.. ;-)
Parę dni siedzenia w domu i chorowania plus miałem sporo pracy z WordPress’em w ostatnim czasie i stwierdziłem, że i o mojego bloga przydało by się zadbać.
Kto czyta jakoś dłużej ( a właściwie czytuje jak się coś pojawiało ;-) ), zauważy z pewnością, że zaszło tu trochę zmian. Ale tylko część z nich widać.
Po pierwsze stwierdziłem, że przydało by się zrobić upgrade do najnowszej wersji. Trochę się bałem zmiany z 2.7.x na 3.0.1 ale.. poszło automagicznie bez żadnego stękania.
Rozochocony tym faktem zacząłem instalować pluginy do wordpressa które, po części miałem okazję testować dość niedawno.
Po pierwsze, jakieś pół roku temu zaktywowałem się na facebooku. Co za tym idzie, chciałem mieć wszędobylskiego “Like’a” oraz najchętniej komentarze z FaceBook’a automatycznie dodające się do komentarzy pod moimi postami na blogu. Niestety ostatniego punktu nie udało mi się spełnić – albo nie ma takiego plugina albo nie potrafię go znaleźć, albo ktoś go właśnie pisze, albo jest to niemożliwe do wykonania. Ostatniego punktu do świadomości nie przyjmę – bo jestem w stanie wymyślić ze trzy sposoby na zrobienie takiego ściągania ( może kiedyś sam napiszę taki “bajer” ).
Jeżeli ktoś wie lepiej ode mnie – tzn.wie jak sprawić, żeby komentarze zamieszczone pod opublikowanym przez nas na faceeboku linkiem do wpisu na blogu pojawiały się też na blogu to niech da znać w komentarzach pod tym wpisem plz!
A propos komentarzy, jak widać zmieniły się nie do poznania – za sprawą Disqus‘a. Poznałem ten system gdy zapoznawałem się z możliwościami Tumblr‘a i bardzo mi się spodobał. Jego konkurentem był Intense Debate. Wygrał Disqus. Czemu?
Obie te usługi przenoszą obsługę komentarzy na serwer usługodawcy. Ma to swoje plusy w postaci odciążenia mojego serwera, lepszej obsłudze nadchodzącego spamu.. ale największy ich plus to integracja z Facebookiem, Twitterem, Yahoo, możliwość logowania się komentujących za pomocą Facebook Connect, OpenID, Yahoo i Twittera no i wiązanie komentarzy z różnych portali/usług z komentarzami na blogu.
Wygrał Disqus przez większą liczbę tego typu połączeń, ciekawszy design i lepszą obsługę techniczną – widać, że coś się tam dzieje, a to rodzi nadzieje na przyszłość – a oto plugin.
A propos cache’a – dodałem sobie plugin p.t. WP-SuperCache. Nie wymaga nic więcej niż systemu plików, a wyniki ma całkiem znośne. Mój blog, przy oglądalności rzędu 1000 odsłon i 500 odwiedzin miesięcznie i tak dużo nie wymaga. Ale jak można niskim nakładem pracy odciążyć serwer, to czemu by tego nie zrobić?
MicroKid’s Related Posts – do wiązania różnych postów ze sobą. W niektórych notkach dodałem już takie relacje, bardzo przydatna sprawa – w Google Analytics już widzę, że ma to wpływ na oglądalność starych notek. Znów bardzo niski nakład pracy, a zysk spory – bo leci recykling starych wpisów no i obraz tworzony przed czytającym jest pełniejszy. No i nie ma takiego “ok, przeczytałem, to co zrobić teraz? a pójdę sobie..”.
WordPress 3
To zasługuje na zupełnie osobny akapit.
Po pierwsze upgrade z 2.x.x do 3.x.x był bezbolesny. Klik i po sprawie. Na nic nie przydały się backupy.
Jest wreszcie na czasie z obecnymi trendami – można stworzyć Custom Post Types – czyli nowe typy wpisów, które wyświetlają się w określony sposób, mają dodatkowe funkcje, pola itp. itd. Czyli wreszcie można sprawić, żeby była osobny sposób wpisywania cytatów, osobny wrzucania obrazków, inny kodu a inny tutoriali. Jeszcze nie dodawałem nowych typów u siebie, ale całkiem możliwe, że i na to przyjdzie czas.
Zmienił się sposób zarządzania menu. Można w nie wrzucać wiele rzeczy na raz – różne typy postów ( strona to też post ), używać na zasadzie widgetów.
Rzecz której nie będę używał póki co, ale z pewnością się przyda wielu firmom i ludziom tworzącym blogi specjalistyczne – jedna instalacja WordPress’a może teraz obsługiwać wiele instancji bloga. Więc zarządza się core’owym kodem w jednym miejscu i na nim stoi wiele wiele różnych blogów.
Do tego dochodzi garść zmian w wyglądzie panelu admina i zmiana głównego theme’a na twentyten.
Wszystko to ładnie się komponuje i zasługuje na 3.0 w numerze wersji.