Do subskrybentów: nowy adres feeda RSS

Wszystkich subskrybujących mój blog przez czytnik RSS informuję, że zmienił się adres kanału. Teraz jest to:

http://feeds.feedburner.com/Muzungupl

Tak więc bardzo proszę o poświęcenie tych dosłownie dziesięciu/dwudziestu najbliższych sekund i zaktualizowanie adresu w czytniku na nowy, wyżej wymieniony. Z góry dziękuję 🙂

…a tych, którzy jeszcze nie czytają mnie przez RSS zaprasza do zrobienia tego 🙂

0

Kartofilia?

Jakie macie dziwne zainteresowania? Zbieracie może coś, czego nie zbiera nikt inny? A może są jakieś przedmioty fetyszyzujące Was, które wśród innych osób nie wzbudzają żadnych inny emocji?

Mój bowiem wzrok od zawsze przyciągają wszelkie rodzaju mapy, atlasy, plany i globusy. Znajomym zawsze mówię, że jeśli nie wiedzą co mi kupić, niech kupią właśnie atlas. W internecie czy na ulicy zawsze na chwilę dłużej zatrzymam się by obejrzeć wszelkiego rodzaju plany, nawet jeśli jest to po prostu rozkład metra. A gdy gdzieś przyjadę i mam zamiar zostać dłużej niż dobę przeważnie od razu kupuję plan tego miasta  czy miasteczka. (Przyznam też, że dość szybko uczę się go na pamięć i przynajmniej po starówce potrafię się poruszać bez kolejnego zaglądania w mapę, nawet jeśli jest miasto tak duże jak na przykład Praga).

Mam też jako taki zbiorek własnoręcznie kupionych atlasów czy też darmowych mini planów, przeważnie  do dostania w hotelach czy na dworcach kolejowych w informacji turystycznej. Mam też kilka fajnych wojskowych map okolic Białegostoku, a nawet osiedla, na którym się wychowałem w skali pozwalającej dostrzec mój własny blok (plan kupiony w czasach sprzed internetu, teraz w epoce Google Maps nie robi to pewnie już takiego wrażenia). Oczywiście nie muszę chyba dodawać, że czytanie map i planów nie jest dla mnie żadnym problemem 🙂

Kilka tygodni temu postanowiłem w swoim zboczeniu pójść o krok dalej. Jedni zbierają stare obrazy, inni stare czajniki, zegary, radia, książki. Może by tak też mieć jakieś hobby i dlaczego nie miałoby ono polegać na zbieraniu starych map?

Zacząłem się więc interesować (na razie oczywiście jako żółtodziób) antykwaryczną kartografią. Na razie dowiedziałem się, że hobby to wcale nie musi być tańsze niż na przykład kolekcjonowanie starych obrazów i zarazem może być dobrym sposobem na inwestowanie pieniędzy. Na razie mapki z XIV wieku, których cena często przekracza 10 tysięcy złotych jedynie sobie pooglądałem, ale kto wie. Może kiedyś.

Tymczasem kupiłem już kilka o wiele tańszych (bo po góra kilkadziesiąt złotych) na Allegro. Oczywiście swój wzrok skupiłem na początku na Afryce środkowej i wschodniej, tak aby załapała się na mapach także Rwanda 🙂  Kupiłem chyba za dużo, bo aż cztery mapy, ale powodem tego jest fakt, że mało kto interesuje się tym miejscem, a tym bardziej tym miejscem przedstawionym na starych mapach, więc z czterech aukcji, w których licytowałem najniższą kwotę, wszystkie wygrałem 🙂

Oto jedna z map.

Afryka WschodniaOczywiście widać, że powyższe to tak naprawdę nie mapa, a karty z atlasu (numery stron w  rogach) i trochę czuję się jak wandal: sprzedawca bowiem sprzedawał tak na pojedyncze karty cały atlas z początku XX wieku. Ale wylicytowana cena (5 złotych) oraz fakt, że atlas  nie był zszywany sprawiły, że zdecydowałem się na zakup. Mam też dwie mapki tego samego miejsca z końca XIX wieku i te akurat mapy kosztowały więcej i faktycznie są mapami.

Prawda, że wygląda to ładnie? Kolorowany miedzioryt. Tu akurat wiele miejsc jest już podpisanych, ale te plany z XIX wieku wyglądają niczym prace pierwszych kolonizatorów: wybrzeże dobrze opisane, ale interior ledwo co. Im bardziej w ląd tym mniej informacji, a położenie jezior raczej jest odległe od rzeczywistego. Rwanda to właściwie tylko nazwa, zaznaczony jeden wulkan i byle jak naniesione jezioro Kivu. Od razu przychodzi do wyobraźni obraz tamtych czasów, jak pierwsi odkrywcy wdzierali się w nieznane.

Mam taki pomysł. Na największej ścianie mojego dużego pokoju farbą w odcieniu o jeden ton ciemniejszym lub jaśniejszym zrobię zarys lądów. I będę kupował stare mapy z różnych stron świata, oprawiał w ramki i wieszał na tej ścianie. Oczywiście z tych czterech w Rwandy wybiorę jedną, jakąś mniejszą (ta powyżej pokazana ma wymiary prawie pół metra na pół metra). Póki co wszystkie cztery stoją zwinięte w tubie.

A Wy jakie macie nietypowe zainteresowania?

P.S. Gdyby ktoś chciał pooglądać więcej starych map, w tym i starożytnych polecam antykwariat pod tym adresem. A jeśli ktoś chce zobaczyć jeszcze większego mapowego świra niż ja, to polecam blog Strange Maps.

1

Jestem łosiem parkingowym

To jest moja odpowiedź na wielce zabawny artykulik na Joemonsterze jak to można “zemścić się” na tych, którzy “nie umieją” parkować. Zresztą Joemonster nie jest pierwszy, który tak podchodzi do sprawy.

Otóż chciałem publicznie oświadczyć, że zdarzyło się wiele razy, że inni widzieli mój samochód zaparkowany podobnie do tego:

źródło: internet

źródło: internet

Wychodzi więc zatem, że jestem łosiem parkingowym. Ba, nawet raz mi jakiś odważny i zabawny sąsiad włożył za wycieraczkę kartkę z napisem mniej więcej (bo już nie pamiętam): “Naucz się parkować debilu”. Szkoda, że tacy bohaterowie nie  potrafią się podpisać, bo bym poszedł pewnie porozmawiać.

Zatem publicznie opiszę jak zostaje się łosiem parkingowym. Ja sobie odreaguje, a może przynajmniej część z osób, które to przeczyta uniknie zrobienia z siebie debila wkładając za czyjąś wycieraczkę podobną kartkę do tej, jaką ja znalazłem.

Otóż łosiem zostaje się tak:

  1. Wracasz samochodem z pracy. Tak się składa, że zawsze jak jeździłem do pracy to wyjeżdżałem najpóźniej z wszystkich moich sąsiadów i najczęściej najpóźniej wracałem, więc zastaję cały parking zastawiony samochodami. Jest tylko jedno wolne miejsce. Niestety wszystkie samochody są tak ustawione, że owo wolne miejsce wypada dokładnie nad linią rozdzielającą miejsca parkingowe. Najwidoczniej albo ktoś już wcześniej zaparkował nieprawidłowo i wszyscy inni do niego doparkowali nieprawidłowo, albo (co wydaje mi się bardziej prawdopodobne) dostało ci się miejsce na linii, bo każdy kolejny samochód doparkowywał z delikatnym przesunięciem względem prawidłowego parkowania. Jak masz w rząd ustawionych 10 samochodów na parkingu i każdy nie chcąc obić drzwiami samochodu obok zostawił o 10 centymetrów więcej miejsca niż powinien, tobie się trafia miejsce parkingowe przesunięte o metr. Siłą rzeczy parkujesz na linii.
  2. Oczywiście zabawny sąsiad  znalazł by w mojej sytuacji sposób aby nie  zaparkować na tym jedynym miejscu. Schował by swój samochód do teczki i zabrał do domu, sprzedał, rozpłakałby się, zaparkowałby na trawniku… cokolwiek. Ja jednak jestem z definicji łosiem parkingowym, więc nie zabieram samochodu do domu, ale – już trudno –  parkuję na tym jedynym wolnym miejscu wiedząc, że parkuję nad linią.
  3. Następnego dnia rano mój samochód na parkingu jest już sam (jak wspomniałem najpóźniej z sąsiadów wychodziłem do pracy), wygląda jakbym faktycznie specjalnie zaparkował nad linią jak ostatni kretyn, za wycieraczką mam karteczkę, że jestem debilem wsadzoną przez kogoś, kto nie ma odwagi podpisać się pod takim stwierdzeniem. Szkoda, bo bym mu w powyższych trzech punktach wyjaśnił kto tak naprawdę tutaj nie pomyślał.
0

Zrób sobie własny cache w WordPressie

Pluginów do cache’owania stron stworzonych w WordPress jest wiele. I całe szczęście, bo niestety są sytuacje, w których WordPress ma spore problemy z prędkością. Niestety jak do tej pory nie udało mi się znaleźć rozwiązania idealnego. Dlatego też chcę przedstawić własne rozwiązanie, pomagające przyspieszyć generowanie stron unikając zbytniego mielenia funkcjami php i odpytywania bazy danych.

Podstawowym problemem wszystkich pluginów jest fakt, że cache’owania jest fakt, że strony są przechowywane w całości. Plugin raz na jakiś czas generuje całe strony i dopiero po określonym odstępie czasu generowanie się powtarza. To sprawia sporo problemów z choćby obsługą ciasteczek: nie można rozpoznawać użytkownika po ciasteczku i wysyłać mu spersonalizowanej strony, bo WordPress z takim pluginem do wszystkich wysyła takie same strony.

Oczywiście są metody na obejście tego, jednak każda ma jakieś wady. Można w ustawieniach pluginu zarządać aby nie cache’ował poszczególnych stron, nie działał gdy użytkownik jest zalogowany, można też w WP Super Cache użyć odpowiednich hacków. Jednak zawsze oznacza to całkowite wyłączenie cache’owania. Cała strona jest cache’owana lub niecache’owana.

A co jeśli by podejść do zagadnienia pregenerowania zawartości nieco inaczej? Czy na pewno musimy pregenerować całe strony od <html> do </html> ?

Odpowiedź brzmi: oczywiście nie. Skoro szablony i tak mamy rozbite na najczęściej 5 plików – header.php, index.php, sidebar.php, footer.php i style.css, index.php włącza w siebie pozostałe pliki wcześniej je generując (za wyjątkiem oczywiście pliku stylów, ten jest statyczny), czy na pewno na przykład header.php musi być generowany za każdym razem? Nawet jeśli musi (bo na przykład ma odwołania do plików JS zależnych od zawartości konkretnej strony): czy każdy fragment takiego pliku musi być generowany za każdym razem? Jestem niemal pewien, że obecny w chyba każdym pliku nagłówka kod bloginfo(‘charset’) generuje zawsze to samo od powstania blogu, aż do jego “śmierci”.

Można też znaleźć i dłuższe, bardziej złożone fragmenty kodu php, który tak naprawdę generuje zawsze to samo, a przynajmniej nic nie stoi na przeszkodzie aby wygenerowana zawartość odświeżała się powiedzmy raz na godzinę. Czy masz w sidebarze swojego bloga jakiś widget wstawiający zawsze te same reklamy? Dlaczego więc WP miałby przy każdej odsłonie strony odpytywać bazę danych co ma do tego widgetu wstawić?

Mam nadzieję, że już rozumiecie na czym polega problem. A rozwiązaniem jest: cache’owanie fragmentów strony, a nie całości.

Jak to zrobić?

1.

Do swojego pliku functions.php w katalogu skórki dodaj następujący kod:

function mincache($whatto, $howlong = '15', $work = TRUE) {
if ($whatto == '') {
exit ('Please specify name of cached code');
}

if ($howlong == '') $howlong = '15';

$folder = trim(parse_url(get_bloginfo('template_directory'), PHP_URL_PATH), '/');
$cachefile = $folder.'/mincache/'.$whatto.'-cached.html';
$cachetime = $howlong * 60;

if ($work == TRUE && file_exists($cachefile) && time() - $cachetime < filemtime($cachefile)) {
    include($cachefile);
    echo "\n";

}

else {
$includedFile = 'inc.'.$whatto.'.php';
ob_start();

include_once($includedFile);

$fp = fopen($cachefile, 'w');
fwrite($fp, ob_get_contents());
fclose($fp);
ob_end_flush(); 
}

}

2.

W katalogu skórki utwórz katalog o nazwie mincache i nadaj mu uprawnienia do odczytu i zapisu.

3.

Kod, jaki chcesz aby był cache’owany wytnij z pliku php i wklej do nowego pliku i nazwie stworzonej według struktury inc.nazwa.php. Pod nazwa wpisz co chcesz.

4.

W miejsce skąd wyciąłeś ów kod wklej:

mincache('nazwa')

I to wszystko. Teraz zawartość przeniesionego kodu do pliku inc.*.php będzie generowana tylko raz na 15 minut.

* * *

Nieco więcej o stworzonej właśnie funkcji mincache():

mincache($whatto, $howlong, $work)

Jak widać funkcja może przyjmować trzy parametry:

$whatto – nazwa fragmentu kodu który ma być szukany w pliku inc.*.php. Musi więc istnieć plik inc.{$whatto}.php, parametr ten jest bowiem obowiązkowy (inaczej funkcja nie będzie wiedziała co cache’uje.

$howlong – jak długie powinny być odstępy między kolejnymi generowaniami kodu statycznego, w minutach. Domyślnie: 15 minut.

$work – wartość logiczna true/false czy ma próbować pobrać kod z pliku statycznego (true, domyślnie ustawione) czy też za każdym razem generować go od nowa (false). Parametr ten dodałem abyście mogli w czasie prac nad stroną chwilowo wyłączać działanie cache (wartość FALSE).

* * *

I na koniec jeszcze raz konkretny przykład. Załóżmy, że chcemy aby sidebar generował się jedynie raz na pół godziny.

Wykonaj punkty 1 – 2 opisane powyżej.

Otwórz plik sidebar.php, wytnij jego całą zawartość i zastąp:

<?php mincache('sidebar', '30') ?>

Utwórz plik inc.sidebar.php w katalogu skórki i wklej do niego całą zawartość wyciętą przed chwilą z sidebar.php.

I to wszystko. Od teraz sidebar będzie się generował jedynie raz na pół godziny, co na pewno skróci czas ładowania strony.

0

Umarł WordPress, narodził się Drupal?

Nie, nie 🙂 Na pewno nie umarł 🙂 Nie po to poświęciłem cały rok na dogłębne poznawanie WordPressa abym teraz o nim zapomniał. WordPress znam już bardzo dobrze, tak dobrze, że kilka tygodni temu zacząłem się zastanawiać czy mógłbym go poznać bliżej. Doszedłem do wniosku, że w sferze tworzenia skórek, pisania pluginów wiem lub potrafię wygooglać już wszystko. Kolejny krok to zaangażowanie się w prace nad plikami rdzenia wordpressa, a to mnie z praktycznych powodów nie interesuje. Zatem z zawodowego punktu widzenia “wiem” już wszystko, co jest mi potrzebne do tworzenia strona na WordPressie.

Co więc dalej? Jeśli chodzi o WordPressa, nadal będę wszem i wobec krzyczał, że jeśli ktoś potrzebuje jakiejś z nim związanej pomocy, niech nie waha się do mnie pisać na maila. W wolnych chwilach będę rozwijał WP Sprzedawcę, myślę też nad stworzeniem alternatywnego panelu administracyjnego dla WordPressa. WordPress jest już dość dojrzały, jeśli chodzi o zastosowania jako CMS, ale kuleje jego Kokpit, który dla zwykłego użytkownika jest zwyczajnie trudny. Jeśli klient nigdy dotąd nie używał WP do skończonej pracy muszę dołączać obrazkowy tutorial jak się w nim poruszać.

Dlatego myślę nad stworzeniem czegoś co miałoby zastąpić katalog /wp-admin (a właściwie byłby to kolejny katalog dogrywany do WordPressa) zawierającego w sobie uproszczoną wersję Kokpitu. Fajnie jakby w ogóle to nie przypominało Kokpitu, a było stroną z aktualnie używaną skórką, tyle, że  z jakimś menu na górze, a każdy element strony można by kliknąć i edytować on the fly. Co o tym myślicie?

* * *

Ale nie samym WordPressem człowiek żyje. Postanowiłem też przyjrzeć się bliżej jakiemuś CMSowi z prawdziwego zdarzenia. Obecnie chyba najpopularniejszy to Joomla, jednak tak często widzę w sieci jego krytykę, że nawet nie chcę się za niego brać.

Coraz częściej do moich uszu zaczęła dochodzić nazwa Drupal. A to ktoś gdzieś napisał (chyba na flakerze), że WordPress w końcu ma coś, co Drupal ma od dawna i bardzo tego w WP brakowało. Ostatecznie do mojej wizyty na stronie Drupala przyczyniła się publikacja jakichś wyników konkursu na najbardziej innowacyjne strony zeszłego roku i większość z nich – choć w ogóle do siebie nie były podobne – działała właśnie na Drupalu.

I rzeczywście. Kończę już czytać jego dokumentacje i były momenty gdy szczęka mi opadała. Nie bez powodu Drupala nazywa się nie tylko Content Management System, ale także CM Framework. Jakiż on jest elastyczny i modularny. Zupełnie inna filozofia niż WordPress, dająca możliwość tworzenia stron bardzo interreagujących z użytkownikiem. Nie mogę się doczekać kiedy pierwszy raz użyję Drupala przy pracy 🙂

* * *

Tak więc rok 2009 należał do WordPressa. Rok 2010 będzie należał do… nadal WordPressa, bo na pewno stworzę jeszcze wiele stron opartych o niego i do Drupala, któremu poświęcę cały rok na naukę (tak jak to zrobiłem z WordPressem rok temu).

0

Noworoczne postanowienia

W tym roku postanowiłem sobie, że zacznę palić. Mam już prawie trzydzieści lat, a w końcu kiedyś zacząć trzeba.

Nie to żebym nigdy wcześniej nie próbował. Zdarzało mi się na jakiejś imprezie przy piwku pociągnąć jednego macha. Ale żeby tak na stałe to nigdy. Wiele razy już sobie wmawiałem że zacznę, w końcu tyle osób pali, więc to musi być fajne. Ten cudowny zapach od takiego palacza, tylko zapach z popielniczki jest w stanie mu dorównać. Te ciągłe zastanawianie się w sklepie: napój gazowany lepszej jakości i mięso bez wody w środku, czy jednak nie przesadzać i za oszczędzone pieniądze kupić jeszcze paczkę fajek? Te integracyjne spotkania ze współpracownikami na świeżym, mroźnym powietrzu, w deszczu, śniegu i przy szczękaniu zębami. To jest życie! I ja też postanowiłem w nim uczestniczyć.

Nie było łatwo. Znajomi i przyjaciele w sylwestra wychodzili z leśniczówki, stawali w śniegu i puszczali z ust na przemian to parę to dymek. Gdy do nich dołączałem czułem się jednak jakiś wyobcowany. Uznali, że sobie żartuję, a ja naprawdę chciałem być taki jak oni. Młodzi, zabawni, z płucami czarnymi jak oczy cyganki.

W końcu jeden taki się zlitował i poczestował szlugiem (przy okazji dowiedziałem się, że szlug się mówi tylko w więzieniu). To była miłość od pierwszego zaciągnięcia (nie do jednego takiego, a do owego szluga). Pamiętam to jakby to było góra 3 dni temu (bo szczerze mówiąc było to trzy dni temu): Pal Mall w takim ładnym jaskrawo pomarańczowym opakowaniu. Postanowiłem wtedy, że to będą moje ulubione papierosy.

Chwilę później dowiedziałem się ile kosztuje paczka fajek i całe postanowienie noworoczne diabli wzięli. Aż tak bardzo na głowę nie upadłem.

* * *

Na szczęście gdy już wróciłem do domu trafiłem na super stronkę, która uratowała mnie od braku jakiegokolwiek postanowienia noworocznego: Generator postanowień noworocznych. Poklikałem sobie kilka razy i szczerze mówiąc fajne są te postanowienia, ale jedno przypadło mi bardzo do gustu: “Każdego dnia spróbuję coś nowego”. Naprawdę super i postaram się to realizować.

Czasem tak mam, że któregoś dnia po prostu zauważam, że w życiu nie dzieje się nic nowego, że nic mnie już nie zachwyca. Po prostu się budzisz rano, wydaje ci się, ze coś robisz cały dzień, jesz i znów idziesz spać. I tak dzień w dzień.

Nie mówię tu o szukaniu wielkich nowych wrażeń. Tak naprawdę oczekuję każdego dnia czegoś małego (choć prawdę mówiąc mój wyjazd do Afryki był właśnie między innymi z tego właśnie powodu, by zobaczyć coś nowego). Każdego dnia można doznać jakiegoś nowego uczucia. Raz będzie to potrącenie samochodem, raz próba wyprasowania na sobie ubrania (nie róbcie tego w domu), raz połknięcie kostek lodu z drinka (tego też nie róbcie, bo chyba, że też potrzebujecie nowych wrażeń).

Dlatego postanowiłem sobie, że każdego dnia zrobię coś nowego. I relację z tych wyczynów, które mogę opisać, bo nie są zbyt intymne lub prywatne będę zdawał na tym blogu. Zobaczymy na ile mi starczy zapału (czy zdrowia), ale póki co mam ochotę to robić.

Tak więc w piątek wypaliłem całego papierosa. I styka. To gówno strasznie śmierdzi, drapie w gardło i kaszlać się chce. Na dodatek chyba nie umiem się zaciągać.

W sobotę poszedłem na sanki pierwszy raz w życiu jako dorosły. Przy okazji dowiedziałem się, że mam problemy z zakręcaniem nimi przed odśnieżonymi przeszkodami. Ale żyję i wcale tak mocno nie bolało.

W niedzielę [wycięto z uwagi na zastrzeżenie powyżej odnośnie pisania o prywatnych rzeczach] 😉

Dziś kupiłem sobie jogurt. Nie pijam jogurtów w ogóle, wymyśliłem sobie jako dziecko, że jestem do nich uprzedzony. Dziś wypiłem brzoskwiniowy, na wszelki wypadek kupiłem mikrokubeczek. Tańsze to od fajek, ale jakoś nie zachwycił mnie. Rozczarował też nie, ale fanem nie zostanę.

Jutro coś się też wymyśli.

0

Szybkie sprawozdanie ze spamowania Was

W ostatnich dniach dwa razy jawnie podałem na swoim blogu linki afiliacyjne. Raz prosząc abyście z nich skorzystali, raz tylko dlatego, że link miałem (ale z usług serwisu, do którego prowadził nie byłem zadowolony).

Pierwszy link był do serwisu Vkontakte.ru czyli takiego niby facebooka, ale o rosyjskich korzeniach. Efekt całkiem przyjemny. Zarejestrowało się póki co z mojego polecenia  9 osób, przez co jestem 14. na liście osób, które mogą wygrać iPoda. Niestety moja pozycja spada z dnia na dzień, więc bardzo proszę wszystkich, którzy jeszcze się nie zarejestrowali o zrobienie tego. Oto link ponownie 🙂 Jeśli naprawdę nie chcecie mieć kont w serwisach społecznościowych, nic nie stoi na przeszkodzie by po 10. stycznia takie konto skasować 🙂

Drugi link był do serwisu Shipo.pl, czyli do gry w statki. Jak wspomniałem, nie byłem wtedy zadowolony z tego serwisu, gdyż –  krótko mówiąc – trzeba było wydawać tam realne pieniądze aby ich nie przegrać z innymi. Bez kupowania dodatków do gry, gra stawała się z góry spisana na przegraną.

Na szczęście autorzy serwisu poszli po rozum do głowy i w dzień po moim wpisie (przypadek? 😉 ) obok “wysp” do gry z dodatkami, pojawiły się wyspy, na których dodatków używać nie możemy, czyli gramy w prawdziwą grę w okręty (no… prawie prawdziwą, bo jest jedno spore niedociągnięcie, ale o nim później).

Gra mnie zatem na powrót wciągnęła. Nie jestem ani dobry ani zły (mam obecnie ciut więcej pieniędzy niż wpłaciłem, ale wygrywam mniej więcej tak samo często jak przegrywam) ale fajnie jest sobie pograć. I tu pojawia się problem, z którego powodu jeszcze raz poproszę Was o dołączenie do graczy w Shipo.pl: Tam nie ma z kim grać. W ciągu dnia jeszcze się znajdzie parę osób korzystających z serwisu, ale wieczorem, a zwłaszcza w nocy – serwis  jest pusty. Ja tymczasem dzień staram się poświęcać na pracę, wszelkie rozrywki schodzą na wieczór i noc. Tymczasem wtedy właśnie jest już na Shipo pusto.

Zatem zapraszam innych do gry i rozreklamujcie serwis wśród swoich znajomych 🙂 Wiem, że przynajmniej jedna z czytających mojego bloga osób się wciągnęła, bo grała już ze mną tam i się do tego przyznała na wewnętrznym czacie 🙂

* * *

A jakie jest owo niedociągnięcie w Shipo o którym wyżej wspomniałem i które sprawia, że gra bywa niewyrównana? Chodzi tutaj o sposób liczenia czasu. Ustawiając nową grę ustalamy o ile chcemy grać (od 1zł do 5zł dla początkujących graczy) i ile czasu ma gra trwać (od 5 minut do 25, przy czym każdy z graczy ma zawsze maksymalnie chyba 20 sekund na ruch). Błędem jest tutaj fakt, że obaj graczy korzystają ze wspólnej puli czasu (to znaczy, że powolny gracz zabiera czas nie tylko sobie, ale także przeciwnikowi, bowiem to obaj gracze mają 5 minut na grę, a nie każdy z graczy po 5 minut).

Oczywiście już znaleźli się oszuści wykorzystujący to i zabierający zabawę nieświadomym początkującym graczom. Mechanizm oszustwa jest prosty:

– Oszust zakłada grę 5-minutową, przeważnie o niskie stawki (1-2 złote)

– Jako, że on założył grę, ma prawo do pierwszego ruchu

– Gdy zjawi się nowicjusz i dołączy do gry, oszust strzela. Statystycznie ma spore szanse na trafienie statku przeciwnika, bo osoba początkująca jeszcze nie umie ukrywać statków.

– I teraz wystarczy, że zestrzeli początkującemu kilka statków (lub jeden czteromasztowiec), zaczyna się szopka. Od tej pory oszust już nie strzela tak szybko. Wykorzystuje całe swoje 20 sekund na wykonanie każdego strzału. Nowicjusz oczywiście strzela jak najszybciej i na oślep, bo chce dogonić oszusta (jeśli do końca czasu gry nie zostaną zbite wszystkie statki jednego z graczy, wygrywa ten, kto wykonał więcej strzałów celnych; przypominam, że oszust ma przewagę czterech trafień)

W takiej sytuacji nowicjusz niemal na 100% przegra i straci pieniądze. Załóżmy, że do końca gry nadal pozostają cztery minuty. Oszust zbił cztery maszty, nowicjusz żadnego. Oszust strzela raz na 20 sekund, nowicjusz raz na sekundę. Oznacza to, że do końca gry każdy odda po 11-12 strzałów. Aż co czwarty strzał nowicjusza musi być celny aby dogonić oszusta i także mieć 4 maszty zbite i 100% strzałów oszusta musi być ślepych. Rachunek jest prosty.

Już wysłałem do autorów Shipo.pl maila z unaocznieniem tego problemu, ale na razie nie ma żadnej reakcji. Najlepszym rozwiązaniem byłoby wprowadzenie oddzielnego liczenia czasu dla każdego z zawodników (jak ktoś gra powoli, zabiera sobie czas tylko z własnej puli, a czas na ruchy przeciwnika jest bez zmian). Mam nadzieję, że zreflektują się i wprowadzą także taką zmianę.

A póki co rada jest prosta: nie grajcie z osobami, które ustawiły krótki czas gry (ja sam ustawiam 18 a nawet 25 minut, bo i tak gra kończy się zawsze wcześniej).

0

Coś się zmieniło

Opowiem Wam taką krótką historię:

Na sylwestrze 2009/2010 zjawia się sporo osób, a wśród nich trzy mają ze sobą laptopy. Przypadek, bo nikt się nie umawiał, kto ma wziąć komputer z muzyką, więc tak wyszło.

Ale ja nie o tym. Najciekawsze jest, że na dwóch z trzech laptopów jest Ubuntu 9.10, trzeci to Mac, ale właściciel Maka świetnie sobie radzi na pozostałych laptopach bo jego poprzednim systemem było BSD. Żaden z trzech właścicieli laptopów nie jest informatykiem.

Jeszcze parę lat temu byłoby to nie do pomyślenia. Jak ktoś mnie odwiedzał w domu, musiałem tłumaczyć czym jest ten Linux i dlaczego to nie jest Windows. A teraz…

Coś się naprawdę już chyba zmieniło 🙂

0

Kto chce mi sprawić spóźniony prezent na gwiazdkę? ;)

Wiele nie trzeba 🙂 Co prawda prezentem będzie iPod nano, ale nikt z Was za niego nie zapłaci ani grosza. Wystarczy, że korzystając z tego odnośnika założycie sobie konto w serwisie VKontakte.ru.

Ja mam tam konto już od kilku miesięcy. Nigdy raczej nie  biorę udziału w tego typu zabawach więc średnio chętnie wysłałem wczoraj swoim znajomym link do rejestracji. I aż się zdziwiłem, bo dziś jestem na trzecim miejscu, zatem łapię się na iPoda (wygrywa go 30 osób z Polski, które zaproszą najwięcej znajomych do korzystania z tego serwisu). Dlatego też mobilizuję się teraz jeszcze bardziej i zamieszczam ten wpis na blogu 🙂

A co to takiego te w VKontakte? To taki rosyjski odpowiednik Facebooka, nieco bardziej rozbudowany niż Nasza-Klasa. Pierwotnie był to serwis stworzony dla ludzi z Rosji, ale już całkiem nieźle  rozprzestrzenił się po byłych republikach radzieckich, a obecnie stara się właśnie zaatakować Europę Środkową. Dlatego też przetłumaczono go już na wiele języków, w tym i Polski.

Mi to jest bardzo na rękę, jak pisałem konto mam już od kilku miesięcy. Zarejestrowałem się, bo mam kilku znajomych za wschodnią granicą, ale kontakty do nich już są niestety potracone (znajomi sprzed epoki internetu szybszego niż modemowy). Mam więc nadzieję, że dzięki w VKontakte kontakt między nami znów się nawiąże 🙂

Tak więc zapraszam do rejestracji. To nic nie kosztuje, a ja być może dostanę imperialistyczną zabawkę od rosyjskiego niedźwiedzia 😉

Aby Wasza rejestracja została zaliczona na moje konto musicie przynajmniej:

  • zarejestrować się przed 9 stycznia, godz 21.00 (więc szybciutko, szybciutko…)
  • podać prawdziwe imię i nazwisko, szkołę w jakiej się uczyliście, dodać zdjęcie do profilu i podać nr telefonu zaczynający się na +48.

Chyba nie jest to trudne? 🙂

A znajomym którzy się już zarejestrowali bardzo dziękuję!

0

Gra w statki “na pieniądze”

Na Demotywatorach trafiłem dziś na odnośnik do gry w statki przez przeglądarkę shipo.pl. Fajnie, bo w święta aż się chce byle jak pozabijać czas, a po drugie nie będę może zbyt skromny, ale w statki idzie mi całkiem dobrze 🙂 Wiem jak rozstawić statki aby ryzyko trafienia było mniejsze, wiem jak strzelać by prawdopodobieństwo trafienia było większe.

Co więcej shipo.pl oferuje możliwość grania na pieniądze. Na starcie dostajemy 10 złotych, niestety od razu chce przestrzec, że te 10 złotych nie ma nic wspólnego z prawdziwymi pieniędzmi. Pieniądze są kompletnie wirtualne i służą nam jedynie do spróbowania zabawy. Nie możemy ich wypłacić, a gdy dojdziemy w grach do 20 złotych na koncie, zabawa się kończy. Albo zrezygnujemy z serwisu, albo wpłacimy realną kasę i zaczniemy już grać naprawdę. Od tej pory wszystko co zarobimy jest już nasze (choć przy wypłacie zostanie potrącony procent dla twórców serwisu).

Gra niestety ma bardzo wiele wad, od technicznych po merytoryczne.

Po pierwsze nie działa w Chrome. Musiałem specjalnie dla niech odpalić Firefoksa (co ciekawe przez cały czas grania Firefox zżera 100% procesora).

Po drugie gra ma wady sama  sobie. Czasem coś nie działa, czasem nawet gra sama się przyznaje, że wystąpił błąd i prosi o opuszczenie gry i zaczęcie od nowa. Niestety opuszczenie gry oznacza poddanie się i automatycznie pieniądze o jakie właśnie gramy przegrywamy. Niby jest w rogu znaczek beta, ale serwis, który pobiera od nas pieniądze, powinien też ponosić odpowiedzialność za ich utratę z winy błędnie działającego kodu. Za takie coś autorom strony należy się co najmniej kara chłosty (czy nawiązując do panującej tam terminologii – kara przeciągnięcia pod kilem).

Pomijając błedy techniczne, owa gra w statki… z grą w statki nie ma więcej wspólnego niż wygląd planszy 10 na 10. Każdy za wpłacone na konto shipo.pl pieniądze może dokupić usprawnienia. Można podglądać plansze przeciwnika, można wykonywać 5 strzałów w jednej rundzie, można strzelać pociskami, które za jednym razem trafiają w np w 9 pól lub ustawić, że jeden strzał niszczy cały statek, niezależnie od jego wielkości.

Oczywiście dodatków kupować nie trzeba, ale jak się trafi na innego gracza z dodatkami nie mamy praktycznie szans na zwycięstwo. Szybko wyliczyłem, że za około 2 złote można kupić dodatków, które w pierwszej rundzie strzałów pozwolą nam zaatakować lub podejrzeć co najmniej 28 pól. Czyli już na starcie bombardujemy w ten czy inny sposób aż jedną czwartą planszy przeciwnika. Akurat w płatnej wersji gry nie zdarzyło mi się zagrać z nikim, kto by nie korzystał z tych dodatków, zatem oczywiście przegrałem wszystkie walki (aż do momentu gdy sam kupiłem dodatki).

Kupowanie dodatków z kolei zmusza gracza do grania o wyższe stawki. Nie lubię za bardzo hazardu. Zawsze gram o maksymalnie 1-2 złote, bo bardziej od zarobku liczy mi się zabawa. Jednak jeśli aby wygrać w jedną grę musimy zainwestować 2-3 złote, szybko przy mojej strategii pójdziemy z torbami. 😉

* * *

Wpis ten zawiera linki referencyjne do shipo.pl – podaje je tylko dlatego, że mogę podać, ale nie liczę na wielkie korzyści z tego. Grę raczej nie polecam. Jeśli chcecie, zarejestrujcie i się pograjcie w wersję bezpłatną. Wersję płatną polecam tylko miłośnikom hazardu, a nie miłośnikom gry w statki.

Tak btw, czy ktoś zna inną, ale prawdziwą grę w statki przez przeglądarkę? Na kurniku nie ma, a na wp.pl nie chcę nawet próbować (bo jeśli dobrze pamiętam ichnie gry działają dzięki ActiveX – a może coś się zmieniło?). Nie musi być na pieniądze 🙂

0

Google małpuje moje pomysły na prezenty ;)

Czy ktoś tu jeszcze pamięta akcję sprzed sześciu lat (Jezu, jaki ja jestem stary) pt. “Mozilla na Święta”? Tak, to ja ją wymyśliłem. Polegało to na tym, że przygotowaliśmy obrazy płyt z Mozillą, Firebirdem i Thunderbirdem które można było sobie wypalić z zamiarem wręczenia komuś jako prezent.

Teraz czasy są inne, programy mniejsze  i internet szybszy, więc ludzie już nie wypalają sobie 30MB na płycie, a po prostu ściągają trzy razy mniej i 20 razy szybciej. Dlatego też akcja by już nie miała większego sensu.

Jednak Google właśnie robi coś bardzo podobnego, co wtedy zrobiliśmy my: przygotowano stronę, na której można zapakować Chrome w paczkę z kokardką i wysłać mailem znajomemu. Tutaj jest wszystko na ten temat.

Ciekawe czy ktoś tam w google przypomniał sobie o nas i czy jeśli przypomniał, przyznał się przed przełożonym, że pomysł wziął “z internetu”? 🙂

P.S. Wesołych Świąt 🙂

0

Zaawansowana zabawa z szablonami podstron w WordPressie

Ten wpis jest kolejnym moim chwaleniem się jaką stronę wykonałem na bazie WordPressa, a zarazem chcę tutaj pokazać jak bardzo można zmodyfikować WordPressa (na pierwszy rzut oka nie widać, że to właśnie WordPress) i pokazać praktyczne zastosowanie dziedziczenia szablonów. Powiem szczerze, że jestem dumny z tego, co mi tutaj wyszło 🙂

Tutaj czyli na stronie Młodzi Twórcy wykonanej dla Urzędu Miejskiego w Białymstoku. Białystok ma program stypendialny dla ludzi uzdolnionych w różnych dziedzinach (ma zapewne jak i inne miasta, ale tylko Białystok jak widać chce się tym chwalić). Program działa już od jakiegoś czasu, ale teraz przyszła pora na stworzenie dla niego strony internetowej. I tutaj pojawiam się ja (jako podwykonawca dla  Man With The Plan).

Powyżej obrazek przedstawiający stronę główną. Wszystkie zrzuty ekranu w tym wpisie są klikalne więc jeśli chcecie, śmiało przechodźcie aby zobaczyć jak to wygląda u Was 🙂

Jak widać nie ma tutaj typowo blogowego układu. Mnie to nie dziwi, bo WordPress coraz bardziej staje się zwykłym CMSem zdolnym do tworzenia każdego rodzaju stron (choć blogi się w nim robi najłatwiej). Mechanizm bloga wykorzystałem tutaj w dziale Aktualności. Reszta to coś, co w panelu administracyjnym WordPressa nazywa się po prostu Strony.

Ale jakie strony! Poklikajcie na odnośniki w górnym panelu, a przekonacie się, że praktycznie każda z nich wygląda inaczej. Było to nie lada wyzwaniem ale się udało. Inny układ  kolumn na poszczególnych podstronach, co innego w sidebarach w zależności  od tego na jakiej stronie się właśnie znajdujemy, “podświetlenie” dla pozycji w górnym menu nie tylko gdy jesteśmy na tej właśnie stronie, ale także na stronie potomnej danej podstrony.

Nie było to łatwe, bo musiałem zrobić to jak najbardziej user friendly. Założyliśmy, że osoby w urzędzie nie znają WordPressa, więc sztuczki z Custom Fields, zastosowanie widget logic, custom themes trzeba unikać jak najbardziej. Osoba dodająca treści ma po prostu dodać kolejną stronę, określić, że jest ona “dzieckiem” takiej czy innej strony, a WordPress i jego funkcje same mają rozpoznać jaką właśnie stronę internauta chce wyświetlić i pokazać ją jak na obrazku powyżej (tak, to jest zwykła strona w WordPressie, stworzona we wbudwanym w nim edytorze stron; to ja, a nie osoba wprowadzająca tekst zadbałem by nagłówki miały inny wygląd, by każdy akapit był właściwie oddzielnym divem, a zawarty w nim odnośnik do pliku stał się przyciskiem wyrównanym do prawej) lub na przykład jak ta strona:

Jak widać wyżej mamy trzy sekcje: opis stypendysty, jego (czy w tym wypadku – jej) program stypendium i jego/jej zdjęcia. Tu także całość została zrobiona tak, aby pracownik urzędu nie musiał niczym się martwić: musi jedynie dodać treść, dodać zdjęcia (działa także dodawanie filmów), a to ja musiałem rozpoznać gdzie zaczyna się program stypendium czy właśnie zdjęcia lub filmy (i sprawić by miały inne tło). Co więcej powstały strony grupujące: gdy pracownik urzędu doda stronę konkretnego stypendysty, automatycznie pojawi się ona na stronie ich grupującej rocznikami:

Udało się? Przy “odrobinie” znajomości WordPressa i  umiejętności pisania dla niego funkcji, zabawy w dziedziczenie tematów graficznych, efekt jest chyba całkiem niezły, nie prawda? 😉

* * *

A może Ty też chcesz mieć taką stronę, szukasz kogoś kto zajmie się Twoim blogiem, albo znasz kogoś z takimi potrzebami? Zajrzyj na stronę O mnie i odezwij się do mnie w jeden z podanych tam sposobów, a na pewno uda nam sie razem wyczarować coś fajnego 🙂

0

Gandalf mówi o Firefoksie

Bardzo dobry wywiad ze Zbyszkiem Branieckim (aka Gandalfem) o Firefoksie. Długi, ale polecam przeczytanie całości.

Mi się czytało bardzo przyjemnie. Przypomniały mi się stare dobre czasy i jak widać większość ideałów, pomysłów na Firefoksa nie umarła, choć jakiś czas temu uważałem co innego 😉

…choć ja już i tak zostanę na razie przy Chrome. Przynajmniej do czasu, aż ten będzie szybszy od Firefoksa, a tutaj niestety różnica jest drastyczni widoczna. 🙁

0

Nieco o malarii

Temperatura za oknem spadła poniżej zera – czas więc napisać co nieco na jakiś abstrakcyjny temat. Takim tematem na pewno jest Afryka, afrykański upał i malaria, o której wspominałem już dwa tygodnie temu 🙂

Wbrew pozorom jednak pisanie w środku zimy o podróżach (i związanych z nimi problemach) do ciepłych krajów nie jest wcale takie od rzeczy. Każdy moment roku jest dobry na wypad do Afryki czy w inne okolice okołorównikowe. Tak, wiem, że ciężko to sobie teraz wyobrazić, ale naprawde choć u nas w Polsce jest tak zimno, że niedługo połowa z nas będzie chodzić w dwóch parach skarpet (na koniec tygodnia zapowiadane jest minu dwadzieścia) ludzie na równiku mimo, że jest grudzień nie mają zbyt wielkiego pojęcia co to znaczy mróz, śnieg czy poranne skrobanie szyb w samochodach 🙂

Moim zdaniem właśnie zimą wypad do Afryki jest najbardziej uzasadniony (szczerze dziwi mnie to, że właśnie latem większość z nas patrząc na oferty turystyczne zastanawia się czy z polskiego upału uciec w upał tunezyjski lub tanzański). Ale ja nie o tym. Miałem zamiar przestrzegać wyjeżdżających przed potencjalnymi chorobami. Nawet jeśli mało kto teraz wybiera się do Afryki, wpis ten na pewno spokojnie doczeka sobie lata i wtedy zostanie przeczytany przez nieco więcej osób. 🙂

* * *

Przeglądam na GoldenLine fora podróżnicze, przeglądam w usenecie grupę pl.rec.turystyka.tramping i często zdarzają się pytania o malarię, jaki lek brać. Odpowiedź jaka najczęściej pada ściśle wynika z doświadczeń odpowiadającego: brał lek XYZ, przeżył więc na pewno lek ten jest najlepszy.

Jak się łatwo domyśleć, to że dana osoba brała jakiś lek i nie zachorowała wcale nie oznacza, że i w naszym przypadku lek ten także zadziała. Trzeba tutaj uważać z tego typu poradami z co najmniej dwóch powodów:

Po pierwsze można w ogóle nie brać żadnego leku i nie zachorować. Nie oznacza to jednak, że malaria w miejscu gdzie pojechaliśmy nie występuje, a znaczy po prostu że mieliśmy szczęście. Tak samo jest w przypadku źle dobranego leku. Możemy nieświadomie wybrać lek nie działający i mieć szczęście i nie zachorować. Jeśli jednak spotkamy na swojej drodze nieodpowiedniego komara, bardzo szybko internetowa porada okaże się niewiel warta.

Druga sprawa o której wiele osób zapomina, lub zwyczajnie nie wie: świat tropikalny jest podzielony na cztery strefy malaryczne, a podział ten jest związany z wykształconą przez zarodźca malarią na konkretne składniki leków. Zarodziec malarii w Meksyku na pewno będzie odporny na leki jakie są polecane do Afryki czy Azji. Dlatego też nie warto wierzyć w internecie w porady “byłem na równiku i lek XYZ zapewnił mi odporność przez wiele miesięcy”. Jak wiadomo równik ma ponad 40 tysięcy kilometrów długości.

* * *

Może więc się warto zaszczepić przeciw malarii? Tu akurat odpowiedź jest prosta: nie. Nie, bo szczepinki nie ma, niestety.

Nie zapomnijcie jednak o szczepieniach przeciw innym chorobom. Lista jest długa, a na jej czele wirusowe zapalenie wątroby (WZW) typu A oraz B. Do tego dochodzą inne szczepienia jak dur brzuszny czy tężec. Nazwy tych szczepień na pewno brzmią dla Was choć trochę znajomo. Owszem, bo wszyscy byliśmy na te choroby szczepieni we wczesnym dzieciństwie, jednak trzeba pamiętać, że szczepienia te nie dały nam dożywotniej odporności. Większość z Was jest już znów podatna na zarażenie tężcem przy skaleczeniu, jednak nie zaraż się bo ten patogen jest obecnie dość rzadki w Polsce. Jednak nie w Afryce. Przypomina mi się tutaj rwandyjski przepis zakazujący pod groźbą mandatu chodzenia boso. Wprowadzono go właśnie z uwagi na tężec. Rwandy nie stać na szczepienia, więc ryzyko zachorowania wśród mieszkańców na tą chorobę jest bardzo wysokie. Stosuje się więc profilaktykę zastępczą.

* * *

Wracając do malarii, gdzie szukać porad i pomocy? Zdecydowanie nie na forach intenetowych i zdecydowanie w gabinetach lekarskich. Ludzie odpowiadający na forach nie zdają sobie sprawy z odpowiedzialności jaka na nich spoczywa. Z lekarzem jest inaczej.

Dobrym kompromisem jest strona internetowa www.malaria.com.pl czy Centrum Informacji Medycyny Podróży. Jest tam całkiem sporo informacji o tej chorobie, fajna mapka z zaznaczonymi strefami malarycznymi, ale przede wszystkim przydatna wyszukiwarka przychodni, w których można dowiedzieć się więcej o tej chorobie i zdobyć receptę na leki przeciwmalaryczne.

Ponadto: zabierzcie ze sobą repelenty przeciw komarom. Osobiście polecam marki BROS z uwagi na cenę (około 6 złotych, co jest niczym w porównaniu z reklamowanymi Raidami itp) i na zawarty w nich związek DEET uznawany za najskuteczniejszy odstraszacz komarów (co potwierdzam). Raczej unikajcie preparatów opartych na ziołach.

Poza tym zadbajcie o moskitierę, jeśli nie nad łożkiem (która jest nieźle wkurzająca nad ranem, gdy opada nam na głowę i budzi przed czasem) to przynajmniej w oknie. W pokoju w którym zamieszkacie sprawdźcie od razu jakość moskitiery w oknie. Na 100% będzie dziurawa, więc warto mieć ze sobą zwykłą taśmę klejącą by pozaklejać owe dziury 🙂

I na koniec: nie panikować. Jak ugryzie Was komar (a ugryzie na pewno) nie oznacza to jeszcze końca świata. Statystycznie jeden na 300 komarów roznosi malarię (to się jednak różni w zależności od regionu świata), więc strach jednak ma trochę większe oczy niż powinien.

* * *

A już na zupełny koniec polecam się ubezpieczyć. Trochę to kosztuję, ale byłoby zupełną głupotą nie zrobienie tego. Wypadk się zdarzają, szczególnie w podróży.

Przypomina mi się tutaj historia sprzed roku opisana na wspomnianej wyżej grupie dyskusyjnej. Turysta który wyjechał do Turcji nie pomyślał o ubezpieczeniu. Niby nie jest to tak daleko, podróż nie miała trwać długo więc można sobie odpuścić. Pech jednak sprawił, że turysta uległ poparzeniom od kuchenki gazowej. To sprawiło, że wylądował w szpitalu płacąc kilkaset złotych za dzień pobytu. Jakby tego było mało, poparzenia okazały się tak duże, ze odpadał zwykły powrót i trzeba było wynająć śmigłowiec Lotniczego Pogotowia Ratunkowego. W przypadku interwencji LPR poza granicami kraju to poszkodowany (lub ubezpieczyciel) otrzymuje rachunek, a w tym wypadku wyniósł on ponad… 30 tysięcy złotych.

* * *

To tyle na razie o malarii. Podobny wpis zamieszczę jeszcze na starym blogu Konrad Jest w Rwandzie, bo choć nie prowadzę go już aktywnie to widzę w statystykach, że wciąż wiele osób trafia na niego z google pytając o malarię. Jeśli ktoś z Was ma jakieś pytania, śmiało zamieszczajcie je w komentarzach. Ale nie pytajcie który środek leczniczy wybrać – nie mam odwagi decydować o Waszym życiu 🙂

0

Na imię mi Earl

Podróże kształcą. Nawet jeśli nie wydarza się nic specjalnego, nawet nie wydarza się nic przeciętnego, tak jak w czasie ostatniej wyprawy, to zawsze człowiek gdzieś coś podpatrzy.

Od Wojtka znajomych z Warszawy podpatrzyłem, że fajnie jest czasem zapalić jakieś świeczki w domu. Nakupiłem właśnie sporo podgrzewaczy, wyciągnąłem stare świeczniki i voil?. W sumie po co palić światło elektryczne, jak takie też nieźle doświetla pokój wieczorem.

Inna rzecz jaką u nich podpatrzyłem to prosta potrawka, ale smaczna i można się nieźle najeść. Kupujemy ser fetowy (ja kupiłem fetvitę z mlekovity, ale uprzedzam, że jest strasznie słony. wszystkie fety takie są?), kupujemy pomidor. Kroimy pomidor w plasterki i pomiędzy nie nakładamy sera. Całość posypujemy bazylią i podjadamy sobie na kolację. Bardzo dobre.

U Łukasza w Żywcu podpatrzyłem (właściwie to Łukasz sam pokazał) nowy fajny serial. My Name Is Earl czyli Na Imię Mi Earl. Leci co niedzielę na dwójce o bajecznej porze (pierwsza w nocy), ale czekać nie wiem czy warto. Jak ktoś nie śpi to ok. Jednak puszczają tylko jeden odcinek, a każdy nie jest dłuższy niż mniej więcej 20 minut. Serial na necie dość ciężko znaleźć, jeszcze trudniej napisy, ale jak ktoś chce to potrafi 😉 Polecam.

O co chodzi w serialu? Mnie przede wszystkim przekonała obsada, którą częściowo już znam z serialu Drew Carrey Show (strasznie żałuję, że nie ma go już w żadnej stacji), ale i pomysł na komediowy serial jest super. Earl to taki byle jaki gostek. Czasem coś ukradnie, czasem napadnie na jakiś sklep. To znaczy Earl był taki do momentu kiedy spotkał karmę. Zrozumiał, że jego życie jest do dupy, bo jest ono karą za wszystkie jego złe uczynki. Od tej pory (i tu mniej więcej zaczyna się serial) Earl postanawia naprawić wszystko, co do tej pory w życiu zepsuł. Robi listę, a każdy odcinek serialu opowiada o tym, jak Earl wykreśla z niej kolejny punkt naprawiając szkodę jaką uczynił wcześniej.

Szkody jakie naprawia są raczej banalne w ogóle, ale w szczególe dość sprytnie wymyślone. Nie będę opisywał, obejrzyjcie.

Fajne jest też w sumie nietypowe zakończenie, bo w przeciwieństwie do innych sitcomów tutaj każdy odcinek kończy się szczęśliwie. Karma triumfuje i wszystko jest ok.

Ja już obejrzałem pierwszy sezon (co nie trwa długo, zważywszy, że ma on odcinków 24, a jak wspomniałem każdy z nich nie trwa więcej niż 20 minut)

0

Nie tylko Polańskiemu można więcej

Dziś u Szymona Majewskiego była kupa śmiechu z tego, że goszczący u niego Piotr Fronczewski kiedyś wpadł w ręce milicji gdyż wsiadł po pijaku za kierownicę. Puenta była jednak o wiele bardziej śmieszna (sądząc po spazmach Majewskiego), bo Fronczewski, choć zabrali mu z tej okazji prawo jazdy nie zrobił sobie z tego nic i – jak sam przyznał – nadal jeździł samochodem, tyle, że bez papierów.

Fakt, że opowieść o jeździe po pijaku była tylko wstępem i zakończeniem opowieści o tym jak to Fronczewski nie dał się złamać bezpiece. Jednak śmiech Majewskiego, siedzącej obok Muchy i tłumu widzów wygląda bardzo niesmacznie, zwłaszcza, że w dwie godziny wcześniej Fakty biły brawo, że facet który po pijaku rozwalił dwoje dzieci pójdzie siedzieć i biły na alarm, że sąd nie zdecydował się w innej sprawie na areszt faceta złapanego na jeździe na podwójnym gazie.

Nie mam nic przeciwko piętnowaniu pijaków na drodze (wręcz przeciwnie). Ale żarty Majewskiemu dziś nie wyszły jak rzadko. Choć zawsze Fronczewskiego można przecież usprawiedliwić jak innego znanego nam Polaka z kina: że ma wiele zasług dla kinematografii, że to było 30 lat temu i że to przez otoczenie (bo przecież sam chyba nie pił). Oko więc należy przymknąć, a piętnować tylko pospół.

0

Po bombardowaniu

Mniej więcej niedawno wróciłem z podróży na południe (niestety jedynie na południe kraju). Poprzedni wpis o niespaniu pisałem starając się nie zasnąć czekając na wyjazd. Czułem, że wpis zrobi nieco zamieszania, ale (być może na szczęście) całe ono mnie ominęło.

Ktoś wpis dodał na Wykop (ten ktoś pisał też do mnie na maila, nie odpowiedziałem więc niech będzie, że teraz jakby odpowiadam), a ja przemiszczając się pomiędzy kolejnymi miastami i miasteczkami obserwowałem raz na jakiś czas jak moją skrzynkę zalewa fala informacji o nowych komentarzach, masa prywatnych listów, w których przeważnie pisaliście, że też się obudziliście; podglądałem też wykopy na Wykopie i tamtejsze komentarze.

Na całość nie jestem w stanie odpowidzieć, więc teraz tylko punkt po punkcie porusze kilka spraw.

Za wykopanie tekstu dziękuję, jeszcze bardziej dziękuję za wsystkei komentarze. Już jakiś czas temu uznałem, że nie piszę nic aż tak ciekawego by spamować tym Wykop, więc bardzo mnie cieszy, że sami tak uznaliście 😉 Kolejny ciekawy wpis już za kilka miesięcy, więc zostańcie tu na dłuzej 😉

Na komentarze nie jestem w stanie odpowiedzieć (w rozsądnym czasie). Komuś się wpis nie podobał: spoko. Ktoś powątpiewa w jego szczerość, też spoko. Zostawie to bez komentarza, bo naprawdę nie chcę tutaj nic zmieniać 🙂 Teraz muszę jak najszybciej brać się znów do roboty i nadrabiać wordpressowe zaległości.

Sam wyjazd niestety bez większych rewelacji. Na Zakopane już niedługo nie będę mógł patrzeć. Byłem tak tak wiele razy; kiedyś to nawet liczyłem ale poddałem się gdzieś koło trzynastego, czternastego wyjazdu wiele lat temu. Jak na złość trafiliśmy tam teraz w dniu pochmurnym więc nawet widok gór nie potrafił nam zrekompensować 10 godzin za kierownicą, tylko po to, by posiedzieć godzinę w szpitalu. Dlatego też staram się by teraz wypad do Zakopanego był tylko dodatkiem do wypadu prawdziwego. Teraz zwiedziliśmy kilka miejsc w Polsce południowej i po trasie. Niestety lekarz powiedział, że w maju przyszłego roku znów musze drałować do Zakopanego. Właśnie sprawdziłem, że z perspektywy Białegostoku Budapeszt wcale nie jest tak daleko od naszych Tatr, więc kto wie. W Budapeszcie jeszcze nie byłem (a z kolei Słowacja jakoś w ogóle mnie nie pociąga).

Potem był Żywiec. Drugi raz w moim życiu. Kompletnie pusty. Ani turystów, ani autochtonów. Wszyscy młodzi ludzie wyjechali na studia, więc knajpy wieczorami puste.

Potem był Cieszyn, też drugi raz w życiu i drugi raz w życiu na kilka godzin. Polski Cieszyn nadal ładniejszy niż Czeski Cieszyn, ale ten drugi za to nadrabiał festynem zorganizowanym na rynku 😉

Że potem była Warszawa, już Wam nie wspomnę. Zamiast tego napiszę jako ciekawostkę, że gdy mnie nie było, Was z kolei na blogu było w liczbie 20 tysięcy wizyt. Były jakieś poważniejsze problemy z dostępem do strony?

0

Obudziłem się w trakcie operacji

To jest wpis pisany na zamówienie, to jest wpis który próbuję już napisać po raz drugi i mam nadzieję, że tym razem mi się uda. To jest wpis, który jednak chcę napisać.

Chcę go napisać z co najmniej dwóch powodów. Po pierwsze nic ciekawego się u mnie nie dzieje, więc chociaż sobie powspominam. Po drugie jakiś czas temu czytałem na (chyba) Onecie artykuł w którym lekarze twierdzili, że w czasie operacji nie można się obudzić. No więc niech moja relacja będzie dowodem na to, że jednak można.

W dodatku można obudzić się dwa razy na dwóch różnych operacjach. (Może gdzieś dają za to jakąś nagrodę?)

Pierwszy raz obudziłem się czternaście i pół roku temu.

Dokładnie 2 czerwca 1995 roku, gdzieś w godzinach przedpołudniowych, zdecydowanie przed zaplanowanym przez lekarzy końcem operacji. Jeśli dobrze pamiętam powinien to był być piątek, bo dzień wcześniej był czwartek, dzień dziecka, jeździłem jako pasażer mini kolejki wynajętej dla będących wtedy w szpitalu dzieci, zrobiłem na sali gimnastycznej mój pierwszy w życiu przewrót w powietrzu (to znaczy taki zupełnie w powietrzu: odbijamy się nogami, robimy fikołek bez podparcia się rękoma i lądujemy znów na nogach) i po chwilowej radości, że w końcu mi się udało przyszła świadomość, że zapewne nigdy już więcej tego nie powtórzę.

Tego dnia wykonałem więc jeszcze kilkadziesiąt takich przewrotów, cały czas pamiętając, że od jutra mój kręgosłup nie będzie się tak zginał jak zgina się jeszcze dziś.

Przygotowań do operacji opisywał nie będę, bo każdy kto ją miał wie jak jest. Myju, myju, zastrzyk głupiego jasia, jazda na salę operacyjną, maska tlenowa na twarz, lekarz anestozjolog prosi abyś policzył od dziesięciu do zera i gdzieś między tymi liczbami odlatujesz. Następne co pamiętasz to pobudka. W zdecydowanej większości wypadków jest tylko jedna pobudka.

Wiecie jak to jest zaliczyć zgona na imprezie? Nieprawda, nie wiecie. Nikt nie wie, bo jedyne co z tego się pamięta to poranne przebudzenie. Nie wiesz gdzie jesteś, zanim otworzysz oczy starasz się zrozumieć co to są za głosy nad Tobą i powoli wszystko sobie przypominasz. Co do samego zaliczenia zgona jedynie konkludujesz w ułamku sekundy, że taki fakt miał miejsce i tyle. Na przemian starasz sobie przypomnieć ostatnie rzeczy jakie robiłeś i wsłuchujesz się w jakieś głosy koło ciebie. Dziewczyny rozmawiają o ostatnim kolokwium, ktoś z tyłu pyta czy ktoś jeszcze chce herbate, ktoś inny pyta czy ktoś nie widział jego lewego buta. Wolisz jeszcze oczu nie otwierać, ból głowy jest niemiłosierny.

Podobnie wygląda pobudka po każdej operacji. Nie wiesz gdzie jesteś, nie wiesz co się stało, ale ułamek sekundy później przypominasz sobie że ostatnie co pamiętasz to jak cię usypiali, w kolejny ułamek sekundy później lekarz mówi ci, że właśnie miałeś operacje i że wszystko jest w porządku i żebyś się obudził. I tyle. Zamiast piekielnego bólu głowy odczuwasz ból jakiego nie da się opisać w miejscu mniej więcej gdzie cię kroili.

Ze mną było prawie identycznie. Obudziły mnie rozmowy jakichś ludzi (właściwie to obudził mnie huk jakiegoś dziwnego stukania), przez chwilę nie otwierając oczu nie mogłem skapować gdzie jestem i dlaczego właśnie spałem, zupełnie jak po zaliczonym zgonie (tyle, że wtedy jako dziecko oczywiście jeszcze nie wiedziałem jak to jest spić się tak, że nie pamięta się co się piło i dlaczego tak dużo i jak dużo i dlaczego do cholery budzę się w damskim swetrze, na który jeszcze mam nałożoną moją koszulkę). Jednak tak samo jak po zaliczonym zgonie w chwilę później zacząłem sobie wszystko przypominać. Maska tlenowa, dziesięć, dziewięć, osiem, siedem,… power off. Kurcze, naprawdę nie udało mi się doliczyć do końca?

OK. Zatem pamiętam, że mnie usypiali, że miałem operację, w między czasie słucham bezwiednie głosów dookoła, jeszcze nie otworzyłem oczu, czuję że leżę raczej twarzą w dół niż twarzą do góry, w głowie krąży mi pewnie jeszcze mnóstwo prochów którymi mnie nawalili, bo gdyby nagle ktoś krzyknął, że Konrad masz się w dwie sekundy zerwać na równe nogi! od tego zależy twoje życie! dostaniesz miliard złotych jeśli to zrobisz! – olałbym to kompletnie. Ja tu sobie jeszcze trochę poleżę. Nigdzie się nie spieszy. Są jakieś głosy, jest ciemno bo mam zakmnięte oczy, coś stuka jak cholera, taki metaliczny dźwięk, ale mam to wszystko kompletnie gdzieś. Jestem kwiatem lotosu po środka oceanu spokoju. I nagle:

Kurwa mać! Operacja jeszcze trwa! Te głosy to lekarze, dopiero teraz słysze poza stukaniem ciche “pik, pik” takiej maszyny do pokazywania pulsu! Wsłuchuję się w głosy lekarzy: dużo nie mówią. Raz na kilka sekund jednowyrazowo wydają polecenia. Proszą o jakieś instrumenty, proszą o jakąś czynność.

I te durne stukanie. Przy każdym uderzeniu kołysze się całe moje ciało, czuję to w moim błędniku. Nie czuję zupełnie żadnego bólu, prawdę mówiąc nie czuję w ogóle mojego ciała. Jest tylko mój mózg ułożony w przestrzeni płatem czołowym w kierunku podłogi i przyklejone do niego uszy. Uczy słyszą pikanie, glosy lekarzy i metaliczne stukanie. Podczas każdego stuknięcia mój mózg chwieje się nieco na boki. Stukanie jakby młotkiem w metalowe dłuto. Metal o metal.

Już rozumiem co się dzieje i nie podoba mi się. To znaczy chyba rozumiem, ale nic innego nie przychodzi mi do głowy. Stukanie na sto procent ma ścisły związek ze stojącymi zapewne nade mną lekarzami i na pewno ostatnim uderzanym elementem w tej metalowej koładce jest mój zakrwawiony kręgosłup, wystający z krateru rozcięcia biegnącego przez całą długość pleców. Lekarz uderza młotkiem w oparte na moim kręgosłupie dłuto, a ja przy każdym takim uderzeniu cały się chwieję. Kurwa, nic nie czuję, ale sama świadomość sprawia, że przechodzą mi ciarki po plecach. Oczywiście ciarki przechodzą w przenośni, bo choć to niewiarygodne, naprawdę nie czuję nic poza kołysaniem. Świadomość jest jednak cholernie nieprzyjemna. Coś mniej więcej jak wtedy, kiedy siedzisz na fotelu dentystycznym w znieczuleniu miejscowym, a lekarz stomatolog mówi ci, że właśnie rozwierca kanał nerwowy twojego zęba. Nie czujesz nic, ale ta myśl o rozszarpywanym właśnie włóknie nerwu…

Muszę więc dać jakoś znać lekarzom, że ja się właśnie obudziłem. To znaczy nie wiem czy musze, ale chyba tak. Bo to przecież chyba nienormalne.

Próba otworzenia oczu kończy się zupełnym fiaskiem. Wygląda na to, że nie mam żadnej kontroli nad powiekami.

Poruszę więc palcem u ręki. Okazuje się że jednak nie jestem samym mózgiem. Gdy zaczynam myśleć o ręce, o palcu zaczynam być świadomy, że gdzieś ona jest i gdzieś są owe jej palce. Nie wiem dokładnie gdzie, czy obok, czy pode mną, czy przysunięta od ciała czy też wyprostowana w ramieniu, wskazująca na drzwi operacyjnej sali, ale wraca świadomość jej istnienia. Trzeba więc poruszyć choć jednym palcem i zacząć nim kiwać tak długo, aż ktoś to zauważy (ale co wtedy?).

…i to jest mniej więcej tak. Wybierz jakiś przedmiot znajdujący się obok ciebie. Myszkę komputerową, długopis, popielniczkę. Spójrz na ten przedmiot i przesuń go wzrokiem. Śmiało, naprawdę spróbuj to zrobić.

Nie udało się? Oczywiście, że się nie udało, ale właśnie poczułeś dokładnie to samo, co wtedy poczuł mój mózg. Byłeś świadomy, że popielniczka jest obok ciebie, spróbowałeś przesunąć ją wzrokiem i poczułeś z tego powodu irytację. Ja poczułem dokładnie to samo, jeśli chodzi o mój palec u ręki.

(Podejrzewam, że tak samo czuł się ów człowiek, który obudził się niedawno po 24-letniej śpiączce, mówił, że słyszał glosy lekarzy, próbowal im dać znać, że jest świadomy wszystkiego co go otacza, krzyczał wewnątrz siebie z całej siły płuc. Ciarki mi przechodzą po plecach, bo chyba wiem jak się czuł. Z tym że ja czułem to tylko przez kilka minut, on natomiast przez kilka tysięcy dni)

Nie mogę więc dać lekarzom znać, że się obudziłem, nie potrafię otworzyć oczu, nie mogę poruszyć palcem, a z głosów lekarzy wynika, że operacja wcale nie dobiega do końca. Jestem więc zupełnie bezradny i jedno co mogę robić to… nic nie robić. Szczęście, że nic nie czuję.

Będą jaja, jak się w końcu obudzę – w sensie, obudzę tak jak każdy pacjent obudzić się powinien – i opowiem innym dzieciakom o swoim przeżyciu. Nikt mi kurka pieczona nie uwierzy.

Właśnie: nikt mi nie uwierzy. Muszę mieć jakiś dowód na to, że się obudziłem i od razu przychodzi mi do głowy dowód oczywisty. Czuję bujanie, słyszę metaliczne stuki w czasie każdego bujnięcia i słyszę rozmowę lekarzy. Trzeba zapamiętać fragment takiej rozmowy. Używają bardzo trudnych słów, więc zapamiętam choć jedno.

OK, mam. To na pewno nazwa jakiegoś przyrządu. Lekarz kogoś o niego poprosił. Nazwa jest skomplikowana, więc muszę ją dobrze zapamiętać. Z niczym mi się nie kojarzy więc będę ją sobie po prostu powtarzać w głowie, a na pewno mi zostanie.

Powtarzam nazwę. Powtarzam nazwę. Powtarzam nazwę. Powtarzam nazwę.

I nagle nie wiem o co chodzi, ale ktoś drze się jak dowódca oddziału w czasie bombardowania bazy. Tyle, że nie krzyczy rozkazu do ewakuacji, a zamiast tego wywrzaskuje moje imie i każe mi poruszyć palcami u nóg. Próbuję nimi poruszyć, ale jest to tak jakbym przesuwał popielniczkę siłą woli, jednak po chwili się udaje. Czuję to, a bombardowany dowódca się uspokaja. Po chwili wrzeszczy, że zaraz zrobią mi zdjęcie rentgenowskie; czuję jak ludzie podnoszą mnie za kończyny, wrzeszczę z bólu (Tak mi się przynajmniej wydaje, że wrzeszczę, bo raczej był to byle jaki charkot z rozepchanego przez tracheotomiczną rurkę gardła), ląduję na plecach, słyszę jak wszyscy wychodzą i zostaję zupełnie sam.

Zatem dałem się nabrać kolejny raz na numer z odliczaniem i w dodatku nabrałem siebie sam. Powtarzając nazwę uśpiłem się po raz kolejny. Kolejna mantra, ale (cholera!) nie pamiętam co to było za słowo… No fak.

No nic. Zaraz, chyba mi właśnie robią zdjęcie rentgenowskie, skoro wszyscy sobie poszli i słyszę nad sobą charakterystyczny szczęk aparatu do prześwietleń? Chyba powinienem więc wstrzymać na chwilę oddech, by zdjęcie nie było poruszone? Wstrzymuję odde…

Budzę się na oddziale. Za jakiś czas opowiem wszystkim o tym, że się obudziłem w czasie operacji. Dzieciaki będą mnie słuchać z fascynacją, lekarze nie powiedzą nic na ten temat. Za czternaście lat przed kolejną operacją w rozmowie z anestozjologiem zażartuję, że tym razem proszę o mocniejsze uśpienie, bo poprzednim razem się obudziłem. Anestozjolog nie odpowie nic na ten temat, a mnie po raz kolejny obudzi w czasie operacji odgłos metalicznnego stukania. Tym razem jednak będę wiedział już nieco więcej, nie będę próbował niczym ruszyć, będę sobie tak leżał totalnie nawalony tymi wszystkimi prochami i czekał aż znów zasnę.

I tak leżąc po raz kolejny będę lekko przysypiał i budził się znów i znów przyspiał i w końcu zaskoczy mnie uczucie mrowienia w palcach, co będzie znaczyło, że ja jednak zaczynam czuć moje ciało, ale zanim wpadnę w panikę usłyszę kobiecy głos mówiący abym się obudził, poczuję poklepywanie po policzkach, mówiący że właśnie miałem operację i żebym się obudził, i żebym poruszył palcami u nóg. Poruszę tymi cholernymi palcami, ale choć będę chciał powiedzieć, że nie śpię już od jakiegoś czasu, to nie będę dał rady tego zrobić. I potem znów zasnę i obudzę się na oddziale.

I tak w kółko. Mam nadzieję, że nie będę miał już nigdy więcej operacji.

0

Malaria już mi nie grozi (raczej)

Wiecie, że to już ponad rok od kiedy wróciłem w Rwandy? Wiem, że nie wiecie, to znaczy teraz jak to napisałem pewnie  sobie przypomnieliście, że faktycznie rok temu mniej więcej płakałem na poprzednim blogu  jaka to Polska jest zimna, ludzie nieludzcy a problemy zachodniego świata abstrakcyjne.

Ja jednak sobie dokładnie wszystko liczę i wszystko dobrze pamiętam. To 13 listopada rok temu zakończył się mój pobyt w Rwandzie.

To z kolei oznacza, że jestem teoretycznie wolny od malarii. Wspominałem już o tym wiele razy w czasie pobytu w Afryce, ale nie wszyscy wiedzą, że malaria może się objawić jeszcze przez rok po zarażeniu. Tak więc jeśli ktoś z Was w te wakacje odwiedzał Egipt, Indie czy inne kraje tropikalne i jeśli właśnie odczuwa dreszcze, ma poty i wysoką gorączkę (lub któryś z innych objawów, więcej informacji znajdziecie na przykład tutaj), to wcale nie musi oznaczać, że złapał świńską grypę 😉 To może wciąż być pamiątka z wakacji.

No ale dla mnie to już nie grozi. Teoretycznie, bo podejrzewam, że zarodźce malarii raczej luźno podchodzą do naszego ludzkiego kalendarza i wyciągają kopyt (czy może lepiej: nie wyciągają witek) w równe 365 dni po wprowadzeniu się do naszego organizmu. Póki co czuje się jednak dobrze, malarii już się nie boję, grypy zresztą także 🙂

* * *

Co jeszcze u mnie?

Nadal większość czasu spędzam na robieniu stron internetowych. Wpadam niestety w lekką panikę, bo kończą mi się stałe zlecenia i od połowy grudnia prawdopodobnie nie będę miał już co robić. Jeśli ktoś z Was więc szuka pomocy z WordPressem lub ogólnie tworzeniem stron, zapraszam do działu kontakt 😉

W tym tygodniu trochę pozwiedzam. Jutro mam kontrolę pooperacyjną w Zakopanem, ale jako, że już po prostu nie znoszę tego miasta i nie mógłbym tak po prostu przejechać całą Polskę, posiedzieć w szpitalnej poczekalni, dać się obmacać i znów przejechać całą Polskę, jadę (a właściwie jedziemy) na mini urlop. W Zakopanem spędzimy tylko kilka godzin, a zaraz potem jedziemy dalej do Łukasza do Żywca na kilka dni. Na pewno będzie fajnie 😉

0

WWF używa WordPressa, musicie mi wierzyć na słowo

Dziś rano w telewizorni widziałem reklamę społecznej akcji ratowania fok szarych organizowaną przez WWF Polska. Może więc się kolejny raz pochwalę zrobioną już jakiś czas temu stroną. Choć “pochwalę” to za duże słowo, bo nic Wam raczej pokazać nie mogę 🙂 Musicie mi wierzyć na słowo, że to co tu piszę, to prawda.

Blog wolontariuszy WWF, tak wyglądał projekt graficzny

Blog wolontariuszy WWF, tak wyglądał projekt graficzny

Jakoś we wrześniu ktoś szukał kogoś, kto by znał się co nieco na WordPressie, więc się zgłosiłem. Okazało się, że trzeba uruchomić blog towarzyszący społecznej akcji ratowania fok w Polsce. Coś w rodzaju małego serwisu społecznościowego, w której osoby biorące udział w ratowaniu fok będą mogli się zarejestrować, blogować (stąd więc od razu przyszedł pomysł WordPressa), dodać swoje zdjęcia z pracy i wrzucić filmy. Napisać kilka słów o sobie, zaznaczyć swoją pozycję na mapie Google Maps tak aby, gdy ktoś szuka pomocy przy fokach w okolicy Helu mógł szybko odnaleźć patrolowiczów w pobliżu.

Strona jest już wykonana, działa od dawna (i z tego co widzę działa bez zarzutu, bo nikt nie zgłasza mi żadnych problemów). Niestety linka do strony podawać nie będę, bo tylko zalogowani ludzie w WWF mogą ją zobaczyć. Ale i tak się chwalę 😉

Powyżej znajduje się design na bazie jakiego miałem wykonać stronę. Praca na początku była prosta: pociąć wszystko do HTML zgodnego z jak największą ilością przeglądarek, zrobić z tego szablon do WordPressa. Potem zaczęły się schody.

Zleceniodawca wymagał bardzo precyzyjnego dopasowania się do zaleceń. Wskutek tego najpierw sporo czasu spędziłem na poszukiwaniu odpowiednich pluginów, by ostatecznie przegonać się, że każdemu coś brakuje lub robi to w nie taki sposób, jak było to opisane w zleceniu. I wtedy rozpisałem się podczas pisania kodu nowych pluginów, ściśle dopasowanych do wymagań. (Pamiętacie moje wpisy dotyczące publikacji nowych wtyczek i tutoriale jak wtyczki się pisze? To wtedy mniej więcej robiłem tą stronę).

Pluginów napisanych było kilka. Wspomnę o dwóch.

Jeden z nich to Youtube Add Video, który zamieściłem publicznie w internecie, tak by i inni mogli z niego skorzystać i przy okazji opisałem jak powstawał. W dostępnych pluginach brakowało możliwości określenia kto dodał film (nic dziwnego, przeważnie blog prowadzi jedna osoba, a tutaj WordPress działał niemal jako platforma blogowa) i możliwości wyciągnięcia informacji o ostatnio dodanym filmie i umieszczenia jej w sidebarze. Napisanie takiego pluginu okazało się wykonalne 🙂

Drugi plugin aż szkoda, że nie udostępniłem go nigdzie bo jestem z niego dumny (teraz nie mam już niestety dostępu do jego kodu). Plugin bazował na Google Maps API  i pozwałał:

  • wyświetlić mapę w sidebarze
  • pokazać zaznaczonych na niej wszystkich wolontariuszy lub konkretnego (jeśli akurat przeglądaliśmy stronę użytkownika)
  • w panelu administracyjnym pozwalał użytkownikowi dodać swoją pozycję na mapie.

Plugin działa wyśmienicie, a przynajmniej działał w momencie oddawania strony zleceniodawcy 😉 Ale jak wspomniałem, żadnych reklamacji nie dostałem.

* * *

Było jeszcze kilka innych wtyczek, ale zdecydowanie mniejszych i mniej ciekawych. Z projektu jestem dość zadowolony bo rozruszał mnie po długien przerwie, od czasu gdy wykonałem stronę WildPoland. Obecnie  zleceń mam całkiem sporo, w poprzednim tygodniu kilku osobom musiałem odmówić podjęcia się zadania, bo zwyczajnie nie wyrabiałem się w 24 godzinach na dobę 🙂 I teraz gdy to piszę, jestem właśnie w czasie krótkiej przerwy w programowaniu kolejnego wordpressowego wdrożenia.

Nie zmienia to faktu, że jeśli ktoś z Was właśnie potrzebuje uruchomić jakąś stronę i wierzy, że WordPress jako CMS sprawdzi się tutaj bardzo dobrze (w tym tygodniu to właśnie WordPress zwyciężył w konkursie na najlepszy system CMS open source), może śmiało do mnie pisać. Obecnie wykonywane przeze mnie zadania prędzej czy później będą musiały się skończyć i chętnie podejmę się kolejnych wyzwań. 🙂

0

Wróciłem do Afryki!

Takim czymś to aż grzech się nie pochwalić 🙂 Co prawda osobiście, własnym ciałem w Afryce się (jeszcze) nie znalazłem ale z dumą mogę powiedzieć, że stworzyłem świetną (świetną, bo moją) stronę (ba! portal) dla okołoafrykańskiej organizacji.

afrix

Jakoś pod koniec września zapytano mnie, czy podjąłbym się karkołomnego wyzwania stworzenia strony integrującej mniejszości narodowe (głównie Afrykańczyków) zamieszkujące Europę z Europejczykami. Nic wielkiego: strona w kilku wersjach językowych, z opcją logowania, każdy może sobie założyć konto, każdy może na stronie prowadzić swojego bloga, opisać siebie w swoim profilu, może dodać zdjęcia, dodać filmy, ogłoszenia, pisać na forum, ustawić jakby status (gdy byłem o to poproszony śledzik jeszcze nie istniał więc tak tego nie nazwano)… Do tego mechanizm wysyłania wewnętrznych wiadomości, komunikator między użytkownikami (tym bardziej nikt nie słyszał jeszcze o NKtalk, więc i tego tak nie nazwano), możliwość ustawiania poziomu dostępu do danych w profilu (na poziomie całego profilu, jak i na poziomie poszczególnych danych). Możliwość pokazania się na mapie, możliwość dodawania się do znajomych, możliwość wyszukiwania się po kraju zamieszkania, pochodzenia, płci… Możliwość, możliwość, …

Zapytałem: “Czyli chcecie abym zrobił taką jakby kolejną Naszą Klasę, tylko że dla Afrykańczyków i to zrobił to w pojedynke?”

Dostałem odpowiedź: “Tak. I masz na to 30 dni czasu”

Już miałem odmówić, ale pomyślałem o racie za samochód, racie za pralkę i kredycie hipotecznym. Jako, że nie spłacam żadnych rat i tym bardziej hipoteki nie mam, argumenty te do mnie trafiły i nadl nie byłem zdecydowany. Tak naprawdę nie wiem o czym bardziej pomyślałem: o możliwości aby kolejny raz zrobić coś dla Afryki, o niemożliwym wyzwaniu stojącym przede mną (prawdę mówiąc im zadanie które staje przede mną brzmi bardziej niewykonalnie, tym większa jest szansa, że za nie się wezmę), czy o tej kupie szmalu jaką mi za to obiecano 😉

W każdym bądź razie, Proszę Państwa – oto Afrix!

Nie wszystko tam jeszcze działa z rzeczy założonych (ale zdecydowana większość już tak), serwis ma błędy (jeśli ktoś zauważy jakieś niedziałające linki czy inne bugi, napiszcie o tym do mnie w prywatnej wiadomości na Afriksie) ale jeśli uznać przyklejony do logo serwisu napis “beta” stwierdzam, że dzieło jest już zdatne do użytku. Zapraszam do oglądania, testowania i przede wszystkim zakładania tam sobie kont. Celem jest integracja nas – Europejczyków – z Afrykańczykami. Już niedługo serwis będzie poszukiwał wolontariuszy do pracy przy tematach integracyjnych, mam nadzieję, że pozwoli także nawiązać mnóstwo znajomości międzynarodowych 🙂

* * *

A jak się tworzy taki serwis w tak krótkim czasie? Co prawda termin został przekroczony, bo całość miało ruszyć 4 października, a ruszyło w ostatni czwartek, ale udało się dzięki wykorzystaniu już dostepnego oprogramowania.  Pierwsze założenie było, że wszystko ruszy na BuddyPressie czyli społecznościowej wersji WordPressa, jednak niestety ta ma zbyt mało funkcji i po przeczytaniu dziesiątków listów na tamtejszym forum, niektóre rzeczy jak na razie są nie do ruszenia. Zdecydowaliśmy się na płatny SocialEngine. Mateusz Kasprzak zajął się projektowaniem designu, ja natomiast w między czasie wnikał w zawiłości nowego dla mnie silnika i sposobu działania szablonów smarty (które do tej pory znałem tylko w teorii). Czasu tego miałem całkiem sporo, bo projektowanie zeszło do 20. któregoś października 🙂 Po zaprojektowaniu całość przerobiłem na szablon smarty i… przerobiłem jeszcze raz. Pierwszy design nie spodobał się konsultowanym Afrykańczykom. Podobno był “za mało w stylu nigeryjskiego reggae” (jeśli ktoś nie wie co to jest – my też wtedy nie wiedzieliśmy – to niech zajrzy na stronę: to jest podobno nigeryjskie raggae 🙂 ).

Potem była chwila luzu, gdy wydawało mi się, że wszystko jest już dopięte na ostatni guzik, a przynajmniej nikt nie ma żadnych większych zastrzeżeń. Okazało się jednak, że ciężkie testy serwis zaczął przechodzić w przeddzień oficjalnego otwarcia (oficjalnego, bo brali w nim udział ważne osobistości media) i wtedy zostałem zasypany toną listów na skrzynkę 🙂 W ostatnią środę i czwartek pracowałem od 8 rano do północy. Ale udało się.

Teraz pozostało dodać kilka rzeczy których jeszcze nie ma, a fajnie by były i naprawiać na bieżąco wykrywane błędy. Ostatecznie po całej przeprawie z SocialEngine mogę stwierdzić, że fakt iż obecna jego wersja to 3.x jest jedynie zabiegiem marketingowym. 🙁 Mnóstwo błędów, braku konsekwencji w tworzeniu i kompletny brak dokumentacji (społeczność programistów wokoło SE jest nastawiona na pomoc, ale jedynie za opłatą, zatem próżno szukać rozwiązań problemów czy porad po internecie; można je kupić jedynie w postaci pluginów czy usług) . Mimo wszystko, a może właśnie dlatego, jestem dumny, że to ma jakieś ręce i nogi 🙂

0

Książkę będę czytał

Dawno chyba nie wybierałem podręcznika tak dokładnie 🙂 Ale inaczej nie  mogłem: podręcznik jest do nauki Java Script – języka do którego podchodziłem już kilka razy, ale nigdy jakoś mi się nie udało. Tym razem więc postanowiłem nie wtopić ą i dość dokładnie obejrzałem dookoła każdą z książek, aż zdecydowałem się na Head First JavaScript.

Od razu wtręt: nikt mi nie płaci za ten tekst ani za promowanie Heliona, książki czy czegokolwiek. Nawet od razu podpowiem, że nie kupiłem jej na Helion, a na Allegro gdzie nowy egzemplarz kupiłem o 30% taniej (książka tania nie jest, więc 30% to całkiem sporo złotówek).

Do zakupu przekonał mnie przykładowy rozdział zamieszczony na stronie Helionu. Przeczytajcie, a chyba sami zrozumiecie dlaczego 🙂 Świetnie napisane, jak dla debila (którym zapewne jestem, skoro od lat nie mogę zrobić w JS nic więcej niż zastosować gotowy skrypt, ewentualnie go przerobić czy skorzystać z któregoś z frameworków… nie, właśnie tak sobie pomyślałem, że może jednak to wcale nie takie debilne), sporo humoru (wciąż tęsknię za chyba już martwą serią książek “…for dummies”) i  niesztampowe podejście do nauczania. Przykładowy rozdział zrozumiałem, więc mam nadzieję, że i reszta okaże się prosta.

Spodziewajcie się zatem tu na moim blogu nieco skaczących literek, zegarka w rogu i wyskakujących alertów z prośbą o wpisanie imienia 😉 Z przyjemnością wpiszę sobie javascript na listę umiejętności 🙂

p.s. fajnie by było jakby pojawiło się też po polsku coś podobnego do Pythona, bo to kolejny język, który próbowałem ugryźć i mi nie wyszło. A może potraficie coś polecić? Ma być prosto i z humorem.

0

To był naprawdę pechowy piątek trzynastego

W piątek trzynastego obudziła mnie na TVN24 informacja o wypadku samolotu w Rwandzie. Nie spodziewałem się jednak, że całe zdarzenie miało dalszą, równie pechową historię.

Fajnie, że telewizja w końcu coś powiedziała o Rwandzie (choć z drugiej strony chyba niezależnie od opisywanego miejsca, gdy rozbija się samolot zawsze o tym mówią). Nie miałem jednak złudzeń i wiedziałem, że raczej za kilka dni nie usłyszymy wyjaśnień co było nagrane na czarnej skrzynce i jaki był faktyczny powód rozbicia się samolotu. Chyba za mało ofiar na to, by wygryźć trochę antenowego czasu dla tego zdarzenia, więc media nadal będą się trzęść ze strachu przed grypą.

Samolot się rozbił zaraz po starcie – to wiemy z TV. Pilot zgłosił awarię zaraz po oderwaniu się od pasa startowego i usiłował od razu wylądować. Całość telewizyjnej relacji skończyła się na tym, że samolot nie wyhamował przed terminalem i wbił się budynek na wysokości loży dla VIPów. Wielu rannych, w tym piloci i jeden martwy pasażer. Czarna skrzynka i jej zapis ma zdradzić prawdziwy powód awarii.

Postanowiłem więc sam pogooglać nieco o tym zdarzeniu i to co znalazłem to prawdziwy sajgon 🙂 Całkiem spora dawka czarnego humoru, nawet jak na piątek trzynastego.

Otóż karetki oczywiście zabrały rannych do szpitala (King Faisal Hospital, wierni czytelnicy pamiętają zapewne moje relacje z mojego pobytu w tym miejscu). Nie było to łatwe, bo samolot tak niefortunnie  wbił się terminal, że jeden z pilotów był dłuższy czas uwięziony we wraku.

OK, co powiecie na to, że gdy karetka w końcu załadowała owego pilota, po drodze do szpitala potrąciła motocykl? Trzynastkowy pech?

A co powiecie, jak dodam, że owa jedna karetka potrąciła jeszcze jeden motocykl? Mi tutaj przychodzi na myśl rwandyjski ruch na ulicach. Tak, tam naprawdę jadąc motocyklem ma się serce w przełyku.

Uwaga, to jeszcze nie koniec. Nadal ta sama karetka, nadal wioząc tego samego pilota potrąciła jeszcze dwóch pieszych! Tak: suma wszystkich trafień – dwa motocykle i dwóch pieszych. No to już naprawdę nie wiem jak skomentować. 🙂

Niestety cała może zabawna sytuacja skończyła się tragicznie dla jednego z pieszych, który owego piątku nie przeżył. Można go więc chyba doliczyć do liczby ofiar katastrofy lotniczej.

Jesli ktoś nie może uwierzyć w to co opisałem (jak jedna karteka może potrącić w sumie 4 osoby podczas gdy z lotniska do szpitala się jedzie obwodnicą miasta?) tutaj jest oryginalny artykuł.

0

Plugin do WordPressa – dodawanie pustych linii do wpisów

Plugin jest tak mały (plik readme jest dluzszy niż sam kod pluginu), że nie zasługuje na więcej niż kilka zdań.  Zrobiłem go w czasie pracy nad jedną ze stron, a że problem przewija się wiele razy w Google bez rozwiązań, postanowiłem wydać plugin dla wszystkich.

Strona pluginu. Niedługo będzie też na WordPress.org tutaj.

0

Ubuntu 9.10 po 24 godzinach użytkowania

Zawsze sobie powtarzam, że tym razem uda mi się oprzeć chęci zainstalowania nowego wydania linuksa zaraz po jego publikacji. I zawsze przegrywam, bo już po góra kilku dniach wypalam płytkę lub włączam menedżer aktualizacji i… wywalam się wraz z systemem na jakimś jego nowym błędzie, który dopiero przez takie sieroty jak ja zostanie udokumentowany i za kilka tygodni doczeka się poprawki lub opisu w sieci jak z tym problemem sobie poradzić.

Po części było i tym razem tak samo. Identycznie jak w przypadku poprzednich wydań nie wytrzymałem i zaraz ściągnąłem sobie obraz iso dystrybucji. Tyle, że tym razem postanowiłem przechytrzyć bestię i najpierw spróbować instalacji na innym dysku twardym (czego jak czego, ale dysków u mnie ci w domu dostatek, teraz mam ich 5, a bywa więcej).

O dziwo instalacja przebiegła bez najmniejszych problemów. Zdecydowałem się także więc na instalację na dysku, z którego korzystam najczęściej. Chciałem zainstalować na czysto, bo czułem, że obecna instalacja ma w sobie sporo już błędów (między innymi w międzyczasie zmieniłem procesor i płytę główną i choć Ubuntu ruszył po tym zabiegu bez problemu, to czuć było, że nie do końca rozumie się z zastanym sprzętem).

I ta instalacja poszła jak z płatka. Sformatowałem /, zaznaczyłem by nie formatował /home i tyle.

Opisów na sieci nowości w Ubuntu 9.10 jest już mnóstwo, więc ja powtarzać się nie będę (zwłaszcza, że jak zwykle nowość to nowy wygląd graficzny i nowe numerki przy pakietach). Zauważyłem za to dwie ciekawostki:

Podczas drugiej instalacji, tej już na zwykłym dysku tym razem czytałem co mi instalator pisze w czasie kopiowania pakietów. O takie sobie ekrany:

inst

Niby nic niezwykłego, ale zwróciłem uwagę, że podane adresy do stron są podkreślone. A co się stanie jeśli je klikniemy? Przecież to w końcu tylko instalator, czyżby potrafił połączyć się z siecią i jakoś wyświetlić podlinkowaną stronę? W lynx-ie?

Pomyślałem sobie huk: jak coś zwalę zacznę instalację od nowa. I kliknąłem.

I oto po kilkunastosekundowym młuceniu płytą CD ujrzałem okno Firefoksa 🙂

Screenshot

Heh, instalator więc jest już tak naprawdę działającym systemem 🙂 Jak widać można sobie w czasie instalacji poserfować po internecie. Ja wszedłem na flakera, zrobiłem zrzut ekranu (klawisz print screen działa jak się można tego spodziewać), zrzut zapisałem na wirtualnym dysku, jaki instalator tworzy w pamięci RAM, wszedłem na pocztę i wysłałem sobie ten zrzut by móc go Wam właśnie teraz pokazać.

Drugiej ciekawej nowości nie mogę Wam pokazać. Na pewno wiecie, że w Gnome w Ubuntu jak czasem coś klikniemy to system wydaje taki bębenkowy dźwięk. Stuknięcia.

Czy mi się wydaje, a może to już wcześniej było? Otóż dźwięki te są w stereo. Jak klikamy coś po lewej stronie ekranu – słychać to po lewej. Analogicznie po środku i po prawej. Wcześniej albo tak nie było, albo nie zwróciłem uwagi.

Mała rzecz, a cieszy 🙂

Szkoda tylko, że jak zwykle w linuksowym świecie, jeśli ktoś chce rewolucji przychodzących ze zmianą systemu, musi zmienić dystrybucję. Bo nowy Ubuntu to jak dla mnie to samo, co stary Ubuntu (tyle, że działa faktycznie nieco szybciej, ale podejrzewam, że to po prostu poprzedni działał wolno przez problemy ze sprzętem i po drugie teraz na format plików wybrałem nowszy ext4). Żadnych rewolucji nie ma.

A rewolucji mi się chce, więc już się rozglądam za kolejną dystrybucją. Podejrzewam, że kolejne co mnie ucieszy to Google Chrome OS 🙂

0

Tworzenie pluginów do WordPressa – cz. 3 – zabawa z pseudo-cronem i grzebanie w krwistych bebechach

Oook… Powiedzmy, że mam wolną chwilę, więc wrócę do niesłychanie fantastycznego zajęcia, jakim jest uczenie Was jak stać się moją konkurencją i tworzyć bombowe pluginy do WordPressa 😉 Ups, po napisaniu tego zdania nieco przeszła mi ochota na pisanie dalszej części, ale mówi się trudno. Lecimy.

Wszystkim nowicjuszom na naszym kursie przypominam, że jest to już trzecia lekcja. Więc jeśli ktoś wagarował, niech szybko leci najpierw przeczytać notatki z lekcji pierwszej i lekcji drugiej. Niestety znajomość lekcji poprzednich jest raczej bardzo wskazana, gdyż założyłem sobie, że każda kolejna część nie będzie omawiać dokładnie rzeczy już wcześniej omówionych. Założenie chyba logiczne?

Zaczynamy

Co dzisiaj mamy? Może zajmijmy się moim ulubionym darmowym pluginem (bo oczywiście najbardziej ulubiony jest płatny WP Sprzedawca), jakim jest Upgrade Notification by Email. Plugin jest bardzo króciutki ale nie dajcie się zwieść jego mikroskopijnym rozmiarom.

Przede wszystkim jego mikroskopijność to oznaka dość zaawansowanego programowania. W pierwszej wersji plugin był o wiele (wiele) dłuższy. Jednak z biegiem czasu nauczyłem się jak unikać tworzenia funkcji, które robią to samo co już robi jakaś ukryta funkcja WordPressa. I dlatego coś, co wcześniej potrzebowało napisania kilkunastolinijkowej funkcji, teraz zostało zastąpione prze odwołanie się do już istniejących funkcji w silniku tego systemu blogowego.

Założenia

Plugin w założeniach jest bardzo prosty: ma wysyłać na maila informację do administratora strony gdy pojawiła się nowsza wersja WordPressa. Ma tą informację wysyłać tylko i wyłącznie jeśli admin nie dokonał jeszcze aktualizacji. I tyle.

Proste? Proste. Zatem…

Zaczynamy (ponownie)

Czynność jest tutaj tylko jedna: wysłanie maila do administratora, więc i funkcja będzie tylko jedna. Funkcja ta ma się wykonać tylko i wyłącznie, jeśli zainstalowana wersja WordPressa jest starsza niż najnowsza, zatem funkcja na pewno jakoś sprawdzi instrukcją if czy ten warunek jest spełniony.

Pojawia się też kolejna zagadka: kiedy funkcja ma zostać uruchomiona? Do tej pory poznaliśmy dwa sposoby odwoływania się do naszych pluginowych funkcji:

– poprzez hak filtrujący wypluwaną treść
– poprzez hak reagujący na jakąś akcję na blogu

Od razu mówię, że nie zastosujemy tu żadnego z nich. Choć moglibyśmy. Na przykład hakiem filtrującym moglibyśmy w momencie wyświetlania użytkownikowi treści wpisu po kryjomu wywołać naszą funkcję i wysłać adminowi maila z powiadomieniem o konieczności instalacji nowszej wersji. Albo hakiem reagującym na jakąś akcję (na przykład dodanie komentarza do wpisu) zrobić to samo.

Da się, ale ma to w naszym wypadku dość sporą wadę: admin miałby na swojej skrzynce kilkadziesiąt maili (jeśli nie tysiące w przypadku gdy admin administruje popularnym blogiem) z upomnieniem o aktualizacje. Co prawda moglibyśmy dalej się upierać przy taki zastosowaniu, dodając do kodu rodzaj łatki, który by sprawdzał czy admin już dostał maila, ale… ale nie brnijmy w tym kierunku. Po pierwsze, że nie będzie to wydajne (tak czy owak nasza funkcja wywoływała by się setki razy dziennie), a po drugie jest gotowe rozwiązanie w samym wordpressie przygotowane specjalnie na takie okazje, a nazywa się ono

wp-cron

Tak. WordPress ma wbudowany mechanizm pseudo cronu czyli narzędzie do planowania wykonywania funkcji. Dzięki niemu możemy sobie zaplanować by dana funkcja wykonywała się raz na godzinę, raz na dzień itd.

Dobra, koniec z tymi teoretycznymi rozważaniami. Wszystko co chciałem wyjaśnić do tej pory, już wyjaśniłem. Czas zobaczyć kawałek kodu i krok po kroku zobaczyć jak nasz plugin działa.

(tradycyjnie pomijam nagłówek pliku plugina – to już poznaliście dawno)

register_activation_hook(__FILE__, 'wpu_my_activation');

function wpu_my_activation() {
wp_schedule_event(time(), 'daily', 'wpu_my_daily_event');
}

add_action('wpu_my_daily_event', 'wpu_do_this_daily');

Część rzeczy już znacie, część dopiero poznacie.

Linijka 28 jest już Wam znana z poprzedniej lekcji: tworzymy tutaj hak, jaki ma się wykonać w czasie instalacji pluginu. Informujemy tutaj aby w czasie instalacji została wykonana funkcja wpu_my_activation().

Owa funkcja znajduje się w linijce 30 i zawiera w sobie dwie funkcje wbudowane w WordPressa.

Pierwsza funkcja – wp_schedule_event() – służy do zanotowania przez WordPress funkcji, jaka ma się wykonywać cyklicznie (to ten właśnie pseudo-cron). Jako pierwszy argument pobiera czas w postaci uniksowego znacznika kiedy rejestrowana funkcja ma zostać wykonana po raz pierwszy (użyłem tu funkcji time() gdyż chciałem aby pierwsze wykonanie wysłania – lub nie wysłania – maila do admina nastąpiło od razu przy instalacji plugina). Drugi argument informuje wordpressa co ile czasu funkcja ma być powtarzana (niestety na razie może przyjmować tylko dwie wartości: daily i hourly). Trzeci argument to nazwa haka jaki ma zostać zarejestrowany.

W linii 34. widzimy dobrze nam znane już add_action(). Tutaj wiąże ono właśnie zarejestrowanego co dobowego haka wpu_my_daily_event z funkcją właściwą wpu_do_this_daily().

Do funkcji jeszcze dojdziemy, zobaczmy co teraz mamy:

register_deactivation_hook(__FILE__, 'wpu_my_deactivation');

function wpu_my_deactivation() {
wp_clear_scheduled_hook('wpu_my_daily_event');
}

Oho, tego chyba jeszcze nie było. Poznaliśmy już rejestrowanie haka aktywacyjnego, który się wykonuje gdy plugin jest aktywowany przez admina, czasem jednak trzeba też wykonać jakieś funkcje podczas odinstalowywania plugina. Służy do tego hak deaktywacyjny register_deactivation_hook, który podobnie do haka aktywacyjnego ma dwie zmienne: nazwę odinstalowywanego pliku z pluginem oraz nazwę funkcji, która ma się wykonać w czasie odinstalowywania.

Akurat tutaj trzeba coś wykonać w czasie deaktywacji plugina. Musimy wyłączyć codzienne zadanie sprawdzania aktualizacji i wysyłania maila. Służy do tego funkcja wp_clear_scheduled_hook() przyjmująca jako argument nazwę haka, który ma przestać działać.

Co by się stało gdybyśmy nie deaktywowali naszego haka? WordPress nadal by miał w swojej bazie zadań polecenie uruchomienia raz na dobę zadania wpu_my_daily_event. Zadanie to znajduje się w naszym pliku z pluginem, a plugin jest przecież odinstalowany… oj byłby problem.

Wyślij w końcu tego maila!

Ok, wszystko jest już porejestrowane i plugin jest już gotowy na ewentualne odrejestrowanie zadania. Czas napisać naszą ostateczną funkcję czyli wpu_do_this_daily()

function wpu_do_this_daily() {
$taken_transient = get_transient('update_core');
$za = $taken_transient->updates;
$zb = $za[0];
$zm = $zb->response;
if ($zm == "upgrade") {
$wpsender = get_option('admin_email');
$forwhom = get_option('admin_email');
$subject = "Your blog " . wp_specialchars( get_option('blogname') ) . " should be upgraded";
$headers = "From: " . wp_specialchars( get_option('blogname') ) . " <$wpsender>\n";
$headers .= "Content-Type: text/html\n";
$headers .= "Content-Transfer-Encoding: 8bit\n";
$mailtext = "The plugin Upgrade Notification by Email noticed that at WordPress server is available newer version of blogging software than this, which is installed at " . wp_specialchars( get_option('blogname') ) . ". Please upgrade it in your admin panel. You have ".$taken_transient->version_checked." and newest is " . $zb->current . ". You can download WordPress directly from " . $zb->package;
wp_mail($forwhom, $subject, $mailtext, $headers);
}
}

?>

Długie? Bywało dłuższe. Zobaczmy, może od końca, co ta funkcja robi.

Wysyłanie maila następuje po pozytywnym wykonaniu instrukcji if w linijce 47. Jeśli if zostanie spełniony (o nim za chwilę), to zostaną przygotowane dane do maila i zostanie wysłany ów mail. Dane do maila to:

Linijka 48.: adres email jaki ma się pojawić w polu ‘From:’ maila. Jest on wyciągany jak widać z mechanizmu opcji wordpressa (czy ja już o tym pisałem? Chyba coś było na ten temat w części drugiej).

Linijka 49.: w podobny sposób pobierany jest adres email pod jaki mail ma zostać wysłany (tak, adres jest ten sam).

Linijka 50. to temat listu, linijki 51-53 to niezbędne nagłówki listu, a linijka 54. to jego treść.

I w linijce 51. mamy wordpressową funkcję do wysyłania maili – wp_mail(). Składnia jej jest taka sama jak wbudowanej w PHP funkcji mail().

Wróćmy do naszego if-a, który ma powstrzymać wordpress przed wysłaniem maila lub kazać go wysłać. If musi sprawdzić czy wersja zainstalowana jest starsza niż aktualnie dostępna na serwerze.

Wcześniej w tym celu napisałem własną funkcję, która pobierała z $wp_version informację o zainstalowanej wersji wordpressa, łączyła się za pomocą curl z serwerem wordpressa, sprawdzała jaka jest nazwa najnowszej wersji pliku z wordpressem, wynajdowała w tej nazwie ciąg zawierający w sumie numer wersji i porównywała ze sobą. Działało to dość dobrze, ale coś mi nie grało.

Po pierwsze WordPress przecież sam w panelu admina wyświetla na górze informację o konieczności aktualizacji, zatem musi mieć gdzieś wbudowaną funkcję robiącą to samo co ja właśnie chcę zrobić. Po drugie takie korzystanie z curl i wyciąganie fragmentów urla może być zawodne, jeśli na przykład zmieni się schemat nazywania pliku z instalką wordpressa.

Oczywiście okazało się, że funkcja sprawdzająca wersję wordpressa faktycznie istnieje i nazywa się dość intuicyjnie bo wp_version_check().

Nie możemy się jednak do niej odwołać bezpośrednio, bo funkcja ta nie zwraca żadnej wartości, a jedynie wywołuje funkcje kolejne (tutaj akurat interesuje nas funkcja tworząca wartość ulotną (ang. transient) o nazwie ‘update_core’). Nie wgłębiajmy się za bardzo w te krwiste bebechy, najważniejsze jest, że musimy:

– pobrać do zmiennej obiektowej wartość przelotną ‘update_core’ za pomocą fukcji get_transient() (linijka 43.)

– z owej zmiennej obiektowej wyciągnąć wartość pola ‘updates’ (linijka 44.)

– i w kolejnych linijkach dojść do tego co odpowiedział serwer na pytanie o konieczność aktualizacji.

I teraz jeśli odpowiedział słowem ‘upgrade’, posłuchajmy go i wyślijmy wyżej opisany list do administratora.

Skomplikowane? Przyznaję, że tak. Na tyle skomplikowane, że nie chcę wnikać dokładnie w powyższy kod. Jak dokładnie przebiegło wyłuskiwanie słowa ‘upgrade’, jakie inne słowa zostałyby wysłuskane, może się przekonać każdy z Was po wnikliwej analizie kodu funkcji wp_version_check(). (przy okazji zwróćcie też uwagę, że w samej treści maila są odwołania do obiektu $zb przechowującego nieco informacji o aktualnej weresji WordPressa)

W każdym razie zapewniam Was, że to działa, o czym każdy może się przekonać pobierając opisany wyżej plugin ze strony WordPressa 🙂

0

Gdy kasa jest ważniejsza od czytelnika

Będzie o Kopalni Wiedzy.

To całkiem dobry serwis z całkiem dobrymi informacjami naukowymi. Co prawda nie idealnymi – raz na jakiś czas zdarzają się tam błędy wynikające chyba z nieodpowiedniego tłumaczenia – ale każdemu może się przecież zdarzyć.

Jakiś czas temu miło zaskoczyła mnie prośba na Kopalni Wiedzy o wyłączenie Adblocka. Była specjalna strona, na której autorzy serwisu pisali uczciwie o co chodzi. Że serwis jest projektem niekomercyjnym i jeśli jakkolwiek się utrzymuje to właśnie dzięki reklamom. Napisano, że fajnie by było gdybym rozważył wyłączenie Adblocka na ich stronie, opisano jak to zrobić (klikamy w strzałkę w dół koło przycisku Adblock i wybieramy na liście “wyłącz blokowanie na [tu adres strony na której właśnie jesteśmy]”). W zamian obiecano,  że reklamy nie będą inwazyjne.

Taki deal mi się podoba. Sam z siebie wyłączam adblock na stronach, które lubię i zwracam uwagę na znajdujące się na nich reklamy. Zwłaszcza na Google Adsense, bo te faktycznie pokazują często linki do treści podobnych, jakie właśnie czytam. Zdecydowałem się zatem na odblokowanie Kopalni Wiedzy.

I co? I czuję się lekko jakby mnie zrobiono w bambuko. Zastanawiam się czy i admini strony czują, że w bambuko robią swoich czytelników. Na Kopalni Wiedzy nie ma już tamtej strony z prośbą o wyłączenie adblocka. Mamy za to latające po całej stronie top-layery, flashowe banery grające muzyczki i inne formy denerwującego spamu.

Ale kaska leci. Szkoda tylko, że serwis stracił twarz.

0

Pamiętanik z Kisangani

No i wyciągam kolejną rzecz polecaną z komentarzy. Paweł wczoraj podesłał link do opisu filmu “Pamiętnik z Kisangani”. Co ciekawe pod linkiem jest nie tylko opis, ale i sam film do pobrania (zgrany z TVP Kultura).

“Pamiętnik z Kisangani” to film dokumentalny, nie do końca mówiący o ludobójstwie w Rwandzie. Raczej o jego następstwach. Grupa dziennikarzy oraz pracowników ONZ i Czerwonego Krzyża w 1997 wjeżdża pociągiem w sam środek kongijskiej dżungli i odnajduje ukrywających się tam uchodźców Hutu z Rwandy. Pokazuje wychodzących z leśnej głuszy ludzi, o których świat już zapomniał. Pokazuje jak przechadzają się wśród martwych ciał.

Pamiętnik z Kisangani

Film mroczny i aż ociekający równikową wilgocią.

0

Wysokie Obcasy napisały o Rwandzie

Kolejny wpis, z kategorii link warty przeczytania, wrzucam, zwłaszcza, że już dwie osoby mi to podesłały 🙂 Dzięki.

Zagłada. Sposób naukowy

0

Windows 7 kontra Ubuntu 9.10 – szybkie porównanie

Porównanie będzie tak szybkie jak to możliwe 🙂 Co więcej wolniejsze być nie może.

Nie może, bo nawet nie mogę wypróbować Windowsa 7. Z dwóch powodów: sprawdziłem jego minimalne wymagania (na stronie Wikipedii, bo strona Microsoftu nie za bardzo chce mnie tam wpuścić jeśli nie korzystam już z ich systemu operacyjnego / lekka paranoja) i według owych minimalnych wymagań mój nowy, miesiąc temu kupiony laptop jest za słaby. Czy oni coś wspominali o tym, że teraz będzie szybciej niż w Viście i system pójdzie nawet na starszych komputerach? Widać kolejny raz marketingowy bełkot.

Drugi powód niemożliwości zrobienia porównania na żywo jest taki, że za Windows 7 trzeba zapłacić, albo go ukraść. Dla samego testu nie będę wywalał kupy kasy.

Zatem owo szybkie porównanie dopiero co wydanego Windowsa 7 z Ubuntu 9.10, który zostanie wydany za kilka dni: wymagania sprzętowe.

  • Windows 7 wymaga procesora minimum 1 GHz, podczas gdy Ubuntu 9.10 wystarczy procesor trzy razy słabszy, bo 300 Mhz. Przypominam, że mówie o systemach nie sprzed lat, a wydanych dopiero co lub które niedugo zostaną wydane. Nówka sztuka Ubuntu spokojnie (no, pewnie nie spokojnie) pójdzie na procesorze, który kupiłem sobie kiedyś w 1999 roku.
  • Windows 7 potrzebuje 1GB ramu (a w przypadku mojego 64-bitowego laptopa o kolejny 1GB więcej) podczas gdy Ubuntu wystarczy cztery razy mniej: 256MB
  • Windows 7 wymaga też cztery razy więcej miejsca na dysku, bo aż 16GB (Ubuntu wystarczy 4GB choć i tak uważam, że to za dużo)

I tyle jeśli chodzi o papkę marketingową pod tytułem Windows 7 jest jeszcze szybszy i ma mniejsze wymagania sprzętowe.

* * *

Podsumujmy premierę:

  • Nie mogę wypróbować Windowsa 7, bo musiałbym za niego zapłacić.
  • Nie mogę wypróbować Windowsa 7, bo mój nowy laptop jest według Microsoft stary
  • Jeśli nie posiadam już jakiegoś Windowsa, Microsoft nie pokaże mi prezentacji na temat Windowsa. Oni się tam już swietnie czują w tym swoim monopolu 😉

* * *

Sorry za tą żółć 🙂 Jak dobrze pamiętacie Ubuntu już się wiele razy ode mnie oberwało. Bo Ubuntu to też masa marketingowego bełkotu, który w zderzeniu z rzeczywistością wypada fatalnie. Tyle, że Ubuntu nie każe mi za wiarę w ten bełkot płacić.

p.s. ów milion razy wymieniony wyżej laptop zdechł i od wczoraj jest gdzieś w Czechach w serwisie 😉 Wiec może faktycznie MS ma rację, że to staroć? 😉

0