Archiwalia dla 05.2005

Gadżety

Geek to człowiek, który żyje swoim hobby. Jedną z cech geeków jest kolekcjonowanie dziwnych (przynajmniej z pozoru) rzeczy. Niektórzy kolekcjonują znaczki, inni karty sieciowe na chipsecie RTL8139, a jeszcze inni kobiety.

Ja kolekcjonuję dziwne części codziennej garderoby. Do niedawna można było mnie poznać po chuście zawiązanej na głowie, smyczy PLD Linux Distribution i nieśmiertelnikach:

Nieśmiertelniki

Dla ciekawych, napis głosi, co następuje:

PATRYS

OJCIEC DYREKTOR

MSR CREW

Od niedawna, bo od soboty, do kompletu dołączyły stylowe okulary, używane niegdyś przez szwajcarskie wojska śnieżne:

Gogle

Wyglądam teraz jeszcze bardziej dziwnie, a staruszki z litością ustępują mi miejsca w środkach miejskiej komunikacji zbiorowej. Mimo wszystko, nie lubię wyglądać jak typowy geek, mój obecny image odpowiada mi znacznie bardziej, a i płeć przeciwna lgnie chętniej niż do przepoconego komputerowca. Efekt końcowy na załączonym obrazku:

Patrys w komplecie

O dobrych intencjach i kiepskim designie

Wielu ludziom wydaje się, że jeśli potrafią narysować fajny splash albo zbudować dynamiczne menu w JS, to są guru webdesignu. Błąd. Design to także projektowanie struktury dokumentu, semantyczne opisywanie danych, bo to właśnie dane stanowią podstawową część serwisu, a nie grafika i layout, przynajmniej w teorii.

XHTML rozpoczął wielką rewolucję w dziedzinie aplikacji i serwisów webowych. Z jednej strony wniósł wiele dobrego, bo ludzie zaczęli interesować się składnią, a nie tylko wyglądem stron. Z drugiej zaś strony zmienił stare złe nawyki w jeszcze gorsze nowe. Dla sporej liczby osób poprawna konstrukcja serwisu to ikonka walidatora u dołu strony. Jest to wierutną bzdurą, bo walidacja z założenia jest narzędziem, a nie celem samym w sobie. Ma pomóc w odnajdywaniu błędów składniowych w serwisie, a nie definiować składnię jako taką. Jeśli zamianę tabeli na setkę absolutnie pozycjonowanych bądź precyzyjnie floatowanych divów można nazwać celem samym w sobie, to dla mnie to jest sport, a nie webdevelopment. div, podobnie jak span jest elementem przezroczystym z punktu widzenia semantycznego. Syntaktycznie jest jak najbardziej poprawny i walidator nie powie o nim złego słowa, ale z punktu widzenia struktury dokumentu nie niesie ze sobą absolutnie żadnego znaczenia.

I co z tego? - ktoś zapyta. Choćby to, że strona nadaje się do oglądania tylko tak długo, jak długo skojarzony jest z nią arkusz CSS. Proponuję obejrzeć wynik swojej pracy w przeglądarce tekstowej. Nikt nie używa przeglądarek tekstowych! Używa. Najlepszym przykładem jest wyszukiwarka Google. Roboty sieciowe i ich automatyka nie mają oczu, nie docenią wspaniale rozplanowanych boksów, idealnie wykadrowanego zdjęcia w tle, nie zwrócą uwagi na wyróżnienie tytułów za pomocą zgrabnych ikonek. Zobaczą długi listing tekstu, który po obraniu z wszelakiej maści divów posiada tyle informacji o strukturze, co dokument z notatnika.

Skutki? Niska pozycja w wyszukiwarkach, a na tym chyba wszystkim zależy najbardziej. Żyjemy w czasach, kiedy komputer stał się dla wielu ludzi podstawowym narzędziem pracy. Potrafią efektywnie wyszukiwać interesujące ich informacje w sieci. Pod jednym warunkiem, że informacje te chcą dać się znaleźć. Nie oszukujmy się, możesz wydrukować setki ulotek, rozesłać ogłoszenia, wywiesić plakaty. Większość odwiedzających trafi na twoje strony za pośrednictwem wyszukiwarek i odnośników z innych serwisów. Stąd potrzeba semantycznego opisu dokumentu, stosowania różnych poziomów nagłówków, opisywania paragrafów tekstu, walidacji kodu.

Druga po divitis ciężka choroba współczesnego internetu to classitis, jak żartobliwie określa się prewencyjne uklasowienie każdego możliwego elementu na stronie. Klasy z definicji są kaskadowe, co oznacza dziedziczenie i propagację. Trzeba o tym pamiętać, żeby więcej nie tworzyć kwiatków w stylu:

<img class="img_no_frame" src="..." alt="" />

A zapewniam, że jest to przykład z życia wzięty. Jeśli większość elementów danego typu ma na stronie te same cechy, to należy je zdefiniować jako podstawowe cechy danego elementu, a klasami opisywać jedynie wyjątki:

img
{
	border: 0;
}
.miniaturka
{
	border: 1px solid #f00;
}

Klasy posiadają też selektory, które służą do kontekstowego wybierania elementów, do których odnoszą się reguły CSS. Stąd zamiast pisać:

<div id="menu">
	<a class="menu_link" href="...">strona 1</a> |
	<a class="menu_link" href="...">strona 2</a> |
	<a class="menu_link" href="...">strona 3</a>
</div>
#menu
{
	...
}
.menu_link
{
	color: #00f;
}

Lepiej napisać:

<div id="menu">
	<a href="...">strona 1</a> |
	<a href="...">strona 2</a> |
	<a href="...">strona 3</a>
</div>
#menu
{
	...
}
#menu a
{
	color: #00f;
}

Od razu robi się prościej i przejrzyściej. Należy tylko pamiętać o tym, że w kodzie jednego dokumentu nie mają prawa znaleźć się dwa elementy o takiej samej wartości atrybutu id.

Kolejna sprawa odnosi się do nazewnictwa klas. Grzechem powszednim jest nazywanie klas white_11, td_top_red, czy red_underline. Wiąże się to z podejściem do kodu z perspektywy programów WYSIWYG, gdzie część prezentacyjna (wygląd) wymusza część strukturalną (kod). Powinno być dokładnie na odwrót, wygląd powinien być tylko dodatkiem do struktury, a klasy styli powinny mieć nazwy funkcjonalne. Jeśli postanowisz zmienić layout strony, klasa godzina_wyslania_posta pozostanie godziną wysłania posta, natomiast white_11 może wyglądać nieco głupio, kiedy w rzeczywistości napisy będą miały czcionkę rozmiaru 25px i staną się czerwone.

HTML i tag <fixme>

Jeśli pracujesz w większym zespole i jesteś programistą albo nad szablonami HTML pracuje więcej niż jedna osoba, prawdopodobnie często stajesz przed problemem zasygnalizowania, że trzeba zmienić coś, co nie leży w twoich kompetencjach albo najzwyczajniej w świecie nie masz na to czasu.

Popularnym rozwiązaniem jest zwykły komentarz w stylu C/C++, który ma przypominać o konieczności naniesienia poprawek przed oddaniem serwisu klientowi. Czy poniższy kod wygląda znajomo?

<!-- #FIXME: IE needs special treating here,
	padding is wrong -->

Zaletą jest możliwość łatwego wychwycenia wszystkich pozostałych problemów za pomocą zwykłego wywołania polecenia grep na katalogu z szablonami. Problem pojawia się w sytuacji, kiedy o kometarzach zapomnisz i, spiesząc się z oddaniem serwisu, pozostawisz je bez zmian. Pomijając fakt kompromitacji przed ludźmi oglądającymi twój kod (z premedytacją nie usunąłeś usterki, o której musiałeś przecież wiedzieć), istnieje ryzyko, że część użytkowników będzie miała problemy z poruszaniem się po witrynie (w końcu coś nie zostało poprawione).

Rozwiązanie? Semantycznie opisać takie miejsca za pomocą tagów <fixme>. Przykład?

<p>Lorem ipsum baby <fixme>wymusić
	na kliencie podesłanie tekstu
	powitalnego</fixme>.</p>

Dobrze byłoby też, żeby rzeczy do zrobienia wyróżniały się jakoś w tekście, w tym celu deklarujemy dwie dodatkowe regułki w CSS:

fixme
{
	font-weight: normal;
}
fixme:before
{
	content: "#FIXME: ";
	font-weight: bold;
}

Efekt wygląda tak:

Lorem ipsum baby #FIXME: wymusić na kliencie podesłanie tekstu powitalnego.

Pewnie zastanawiasz się teraz, co na to powie validator? Oczywiście zaprotestuje, że nic nie wie o istnieniu elementu fixme. Nic dziwnego, bo wymyśliłem go dziś rano. W protestach validatora leży cały urok naszego nowego elementu - praktycznie każdy serwis zanim trafi do klienta, poddawany jest testom walidacyjnym. Już nigdy nie złapiesz się za głowę oglądając własny kod źródłowy i znajdując tam tuzin porzuconych i zapomnianych komentarzy.

Zemsta Lucasa

Nie dało się tego uniknąć. Świadom porażki Epizodu Pierwszego i Ataku Klonów, mimo wszystko, wybrałem się do kina z Jarvisem na Zemstę Sithów. Teraz już wiem, czemu niektórzy w mowie potocznej odnoszą się do tego filmu per zemsta shitów. Pan Lucas nie zawiódł swoich nowych, nastoletnich fanów sagi i zgotował im kolejny odcinek teleranka.

Recenzja będzie odrobinę chaotyczna, film jest tak wielopłaszczyznowy, że trudno analizować go chronologicznie, zacznę może od metafory. Na statku Hrabiego Dooku Anakin (a może Ani? Ale czy Ani jest cały?) musiał wycinać dziurę w suficie windy, bo nie było klapy. W kinie klapa była, film jest tragiczny.

Stary George nie oszczędzał na efektach specjalnych. Od pierwszej minuty filmu do samych napisów końcowych towarzyszy nam w 90% grafika komputerowa. Pozostałe 10% to coś pomiędzy Tajemnicami piasków a Niewolnicą Izaurą - kino familijne o nieprzeciętnej mimice i ogólnie grze aktorskiej. Na pochwałę zasługują przede wszystkim bardzo sugestywne monologi, pełne bólu i cierpnienia (ze strony widzów głównie) - np. Obi-Wan Cannot-Be, który ogląda hologram Anakina mordującego dzieci w Świątyni Jedi. Minę ma niczym typowy polski widz, doświadczający właśnie reklam na Polsacie, toteż po chwili (około 3 sekundy później) uznaje nie mogę już na to patrzeć i sprzęt wyłącza. Sam przyszły Vader scenę tę przeżył znacznie bardziej dramatycznie, pojechał zobaczyć się z żoną i już samo spojrzenie w jego oczy powiedziało jej wszystko o tej straszliwej zbrodni: (cytując kumpla Jarvisa) kochanie, wybiłem do nogi lokalne przedszkole, będziemy musieli zapisać dzieciaka do jakiegoś innego.

Temat masowych mordów nie jest w Polsce zbyt lekkim do dyskusji, toteż zajmijmy się czymś przyjemnym, np. droidami bzykaczami, czyż sama nazwa nie jest wspaniała? Takie zwykłe kosmiczne kleszcze, a jak wiadomo na kleszcze najskuteczniejszą bronią jest R2. Nasz śmietnikopodobny kolega zyskał kilka nowych umiejętności, niestety zatracił je już w 19 lat później, kiedy to toczy się akcja Gwiezdnych Wojen. Jakież to zdolności? Przede wszystkim uniezależnił się od dźwigów dokowych. Bez problemu sam wskakuje i wyskakuje ze swojego slotu w myśliwcach. Dorósł też płciowo, o czym upewnił nas pokazując dwóm strażnikom siusiaka i oblewając ich olejem. Po co zapytacie? Otóż planował właśnie podpalic ich za pomocą swoich silników odrzutowych. Taka mała konserwa, a funkcji ma jak szwajcarski scyzoryk, pomyśleć, że inne astrodroidy większość swego życia przegniły w statkach kosmicznych.

Również nasz stary znajomy, Yoda, nie próżnował od czasu Ataku. Po powrocie z sanatorium w Ciechocinku, był nie do poznania. Mało kto wie, że w uzdrowisku dochrapał się pozycji rozgrywającego w lokalnej drużynie koszykarskiej. Upust swym talentom dał w scenie rodem z polskich stadionów, kiedy to w sali obrad Senatu Republiki zły Pan Sith wyrywał ławeczki z trybun i ciskał nimi w tego biednego, zgrzybiałego, poruszającego się o lasce, trzymetrowymi susami, staruszka.

W tym samym czasie, nasz dzielny druh, Ani z Zielonego Wzgórza, toczył bój na śmierć i życie ze swym uprzednim mentorem, Kenobim. Było gorąco! Niemal żałowałem, że na seans nie przybyłem w okularach przeciwsłonecznych. Lawa tu, lawa tam, płomienie na pierwszym planie. Wszystko się wali, syczy i pali. Pan zła i ciemności, zaślepiony gniewem, nie zauważył nawet iż stracił rękę i dwie nogi. Nie robiło to wielkiej różnicy, jako że pozostała ręka była metalową pamiątką po spotkaniu z Dooku. Nie robiło różnicy też o tyle, że chwilę później spłonął żywcem (jako, że Tyskie do Lucasa na czas nie dojechało).

Czemu był zły, zapytacie? Podobno przeżywał wewnętrzną walkę uczuć, ponoć targały nim sprzeczne wartości, że to niby wybierał między życiem żony a drogą światłości? Bzdura, biedny Ani nie był kochany w domu i, jak każdy nastolatek, postanowił się zbuntować. Mamo, a oni mi nie dali tytułu mistrza! - Przyłącz się do Ciemnej Strony! - Nie! - No przyłącz się, będziesz miał dłuższego. - Nie! - No chodź… - No dobra.. Ostateczną decyzję podjął jednak podczas pełnej grozy i napięcia sceny To on jest zdrajcą! - Nie, to on! - Nie to on. - On. - To on, na syfa dziesięć. - Pobite gary… aaaaaaa! (i tu defenestrował). Wróćmy jednak do naszego konającego, przypalonego, beznogiego i bezrękiego kolegi.

Typowy Kowalski miałby trudności z odnalezieniem się w podobnej sytuacji. Nie co dzień bowiem człowiek budzi się z takim kacem, a tu ni ręki ni nogi, a na dodatek jeziora lawy ogniste. Dzielny, świeżo upieczony (dosłownie) Sith, nie poddał się jednak i walczył do końca, jedyną pozostałą mu kończyną jął czołgać się w stronę wyjścia, niczym czołga się do wyjścia widz pod koniec drugiej godziny tego filmu. Na szczęście Imperator wpadł w porę i zabrał go do siebie na kurację. A był to zabieg długi i niezwykle skomplikowany. W ciągu przeszło pięciu minut, cztery automaty - specjalnie wypożyczone przez Sithów z zakładów montażowych Forda - przykręciły Vaderowi nowe nóżki, które to przypadkiem właśnie w jego rozmiarze ostały się na magazynie. Do tego nowa rączka i wdzianko od Versace. Ach, jeszcze kask na magnesiki i voila. Moon power make-up, chciałoby się rzec. Jeszcze tylko ryk rannego bawołu, postrzelonego z procy wykałaczką, na wieść o śmierci połowicy i można opanować galaktykę.

Ciekawa bardzo jest również scena na Kashyyyk. Nikt właściwie nie wie, po co ona jest, ale to właśnie nastrój tajemniczości przesądził o sukcesie oryginalnej trylogii. Ah, zapomniałbym że tak się miło złożyło, że spośród milionów Wookiee, akurat Chewbacca mieszkał przy samym lotnisku, cóż za zbieg okoliczności.

Żeby do końca nie narzekać, wspomnę jeszcze o przepięknych scenach walki, których nagrania dłużyły się do tego stopnia, że kamerzysta przez większość czasu starał się zobaczyć, która jest godzina, przybliżając obraz nadgarstka raz jednego, raz drugiego z bohaterów starcia.

Jeśli jeszcze ktoś nie zauważył, to film mi się nie podobał. Szkoda wydawać 15 PLN na bilet do kina. Chyba, że ktoś jest fanem serii i, jak ja, musi się o tym przekonać na własnej skórze. Nie polecam, chyba że TVP1 puści go kiedyś za darmo w ramach kina familijnego po Teleranku

O autorze

Może to późno, żeby się przedstawiać, bo tego jogga prowadzę już ponad rok. Nie wiem, czy kogokolwiek to interesuje, ale sam lubię czytać takie notki. Jeśli się kogoś śledzi (online, naturalnie) przez dłuższy czas, to czasem miło zdać sobie sprawę, że za kodem HTML stoi też człowiek.

Zdjęcie Patrysa.

Oto więc i podstawowy zestaw danych:

  • oficjalnie: Patryk Zawadzki
  • nieoficjalnie: Patrys
  • urodzony 13. listopada 1982
  • wzrost: 183 cm
  • waga: niewiele ponad 70 kg
  • aktualnie pracuję jako webdeveloper dla Internet Center Polska
  • od wojska ratuje mnie WSIZ Copernicus
  • z zamiłowania alkoholik
  • stanu wolnego

Czemu nie ukrywam nazwiska? Cóż to za ukrywanie, kiedy sprawdzić może mnie każdy. Nieformalnie nikt nie mówi do mnie ani po imieniu, ani po nazwisku. Patrys (bez kreseczki nad s). Tak nazywają mnie znajomi, współpracownicy i rodzina, tak się też przedstawiam.

Komputerami zajmuję się od dziecka. Pierwsze próby programowania swojego Atari przeprowadzałem jeszcze przed ukończeniem nauczania początkowego. Poważniej programowaniem zająłem się już na Amidze 500. Ponad dziesięć lat temu okiełznałem także PC.

Jestem geekiem. Uwielbiam komputery, potrafię z nimi rozmawiać i zmusić je do wykonywania różnych sztuczek. Stąd też moje zainteresowanie programowaniem i Linuksem.

Jestem deweloperem PLD Linux Distribution.

Jestem deweloperem na rzecz PLD. Zaczęło się w styczniu 2004. Chętnie odpowiem na pytania dotyczące tej dystrybucji. Wcześniej używałem Slackware i Debiana, jednak ten pierwszy jest nierealny w utrzymaniu na serwerze, a ten drugi przegrywa z kretesem w starciu z poldkiem.

Używam Gnome. Do przeglądania WWW wykorzystuję Firefoksa. Pocztę czytam w Evolution i tam też zarządzam swoim kalendarzem. Książką adresową nie muszę zarządzać, bo kontaktów nie ma w niej zbyt wiele.

Uwielbiam piwo.

Prywatnie jestem aspołeczny. Nie lubię ludzi. Najlepiej czuję się w nocy, wtedy wylegamy na ulicę, raczyć się piwem na ławce. Nie boję się innych, jestem antisocial. Mimo to, mam na swoim rosterze (w Psi Gajimie) kilkaset kontaktów. Drugim wyjątkiem są koncerty i imprezy (w Liverpoolu), ale o tym później.

W związkach jestem tragiczny. Nie kupuję kwiatów, nie prawię komplementów. Jestem nudny, jak flaki z olejem. W końcu jestem geekiem.

Nie umiem tańczyć. Moje ruchy lepsze są tylko nieco od mężczyzny rażonego paralizatorem. Nie lubię tańczyć. Mimo to, są osoby z którymi przetańczyć mogę całą noc, z ogromną radością. Zwłaszcza w okolicznościach oferowanych przez wspomniany Liverpool.

Jestem chaotyczny i bardzo sobie chaos cenię. Nie planuję rzeczy z dużym wyprzedzeniem, większość czasu zagospodarowuję spontanicznie. Na piwo umawiam się na ogół pięć minut przed wyjściem z domu. Zapytany, co będę robił jutro, często nie potrafię odpowiedzieć. Czasem tak skonstruowane zarządzanie czasem jest przyczyną spóźnienia.

Na dokładkę palę, piję, a czasem nawet przeklinam. Tak właściwie, to czasem tego nie robię. Więcej grzechów nie pamiętam…

Usability w PLD

Ponieważ używam i instaluję PLD na desktopach, zależy mi na jego używalności dla zwykłego użytkownika. Niestety, w PLD domyślnie dołączane są pliki .desktop dla aplikacji przeznaczonych stricte dla konsoli. Dlatego w menu pojawiają się śmieci typu bc, dc, elinks, ftp, lftp, links, lynx, mc, czy ncftp. Dla mnie (i dla wielu użytkowników/deweloperów) nie mają żadnego zastosowania. Kiedy chcę z nich skorzystać, włączam sobie terminal.

Radą na to jest opcja ukrywania ich w menu. Dlatego z pakietu gnome-menus wydzieliłem podpakiet gnome-menus-filter-default, zachowujący dotychczasowy układ menu i utworzyłem alternatywny, gnome-menus-filter-noconsole. Ten ostatni usuwa z menu wszystkie programy oznaczone jako ConsoleOnly. Tu pojawia się kolejny problem, większość wcale nie jest w ten sposób opisana. Do poprawki pójdzie kilka albo kilkanaście speców.

Następna sprawa to domyślny styl Gnome w PLD, który przypomina bardziej czasy 1.4 niż obecnego 2.10. Jest paskudny i nie nadaje się specjalnie do używania. Jeśli znajdę chwilę, to będę chciał zmienić go na jakiś inny. W rozmowie z Aredridel ustaliliśmy, że warto byłoby zainteresować się nowym ClearLooks albo Milk 2.0.

Na koniec został problem metapakietów. PLD powinno mieć własne, osobne repozytorium metapakietów. Co prawda istnieje spec dla metapackage-gnome ale raz, że jest nieaktualny, a dwa - zawiera programy spoza zestawu Gnome, co nie powinno mieć miejsca. Jeśli nie uda się przeforsować tego do samej dystrybucji, to być może razem z Aredridel poprowadzimy własne repozytorium takich plików. Miejsca nie potrzeba dużo, a życie ułatwia znacznie, zwłaszcza w przypadku Gnome, KDE czy teTeXa.

Kubrick dla Joggera

Dziś, w zasadzie z nudów (człowiek nie ma co robić o wpół do drugiej w nocy), podjąłem trud przeportowania oryginalnego Kubricka (którego własnej wersji używam na tym blogu) na silnik Joggera. Przyczyną było uznanie przeze mnie, że potrzebny jest nowy styl domyślny, atrakcyjniejszy dla oka. Póki co, do pobrania dostępny jest z z mojej strony, a w działaniu zobaczyć można go na tymczasowym blogu.

Jeśli komuś się spodoba, to jest (zgodnie z licencją Kubricka) wolnodostępny. Możecie też namówić Sparrowa, żeby włączył go jako część Joggera. Czekam na komentarze i mam nadzieję, że moja praca na coś się przyda.

Propozycja nie do odrzucenia

Ostatnio zostałem poproszony przez Bad Kitty (a.k.a. Puma) o reinstalację jej Windowsa. Zwykły, prosty Windows 98 SE. Komputer to Celeron 1.2 z 256 MB RAM, więc więcej nie uciągnie (sprawdzone empirycznie). W sobotę zabrałem się więc do roboty i Windows stanął. Niestety, nie miałem ze sobą płyt z Office’em.

Office dowiozłem w niedzielę i, jako lokalny geek numer jeden, zostałem nominowany do jego instalacji. MS Biurowiec już przy starcie poinformował mnie, że musi zaktualizować biblioteki systemu, zanim będzie można skorzystać z dobrodziejstw Pana Spinacza, toteż pozwoliłem mu na upgrade, który to zakończył się (jak wszystko w produktach Redmont z tamtych czasów) prośbą o restart komputera.

Po restarcie dowiedziałem się, że explorer.exe wykonał nieprawidłową operację i zostanie zakończony. To tyle z cyklu i żyli długo i szczęśliwie. Kolejny restart, włożenie płytki z Office, kolejna prośba o aktualizację. Błąd aktualizacji, wybierz opcję napraw produkt. Napraw produkt, błąd instalacji, system Windows musi zostać uruchomiony ponownie. I tak w kółko, z tym, że Explorer wspaniałomyślnie przestał zdychać.

Pojawiła sie koncepcja ponownej instalacji Windows od zera. Tutaj padła propozycja nie do odrzucenia: zainstaluj mi Linuksa. Od niedzieli stoi tam PLD Ac (2.0). Gnome 2.10, Metacity, Nautilus, Firefox, Totem, Beep Media Player, GnuGadu. Dodatkowo serwer SSH i VNC, dla mnie. Szybsze od Windowsa, wygląda podobnie, nie ma wirusów. Nie ma strachu, że siostra coś ściągnie, uruchomi i wszystko padnie. Co ciekawe, pod Linuksem ten sam monitor pracuje bez problemu w wyższej rozdzielczości niż potrafił dać mu Windows (tak, umiem skonfigurować monitor pod Windowsem).

Za system odpowiadam ja. Dziś okazało się, że w niedzielę zapomniałem dokonfigurować polską klawiaturę w Iksach. Z domu wykonałem szybkie logowanie na SSH, zmieniłem jedną linijkę w konfiguracji, poprosiłem o wylogowanie i zdalnie zrestartowałem GDM. Cud, miód i orzeszki, a do tego nie szczypie w oczy.

Bankowanie na wesoło

Dni temu kilkanaście założyłem nowe konto ROR w Banku Zachodnim WBK. Z poprzedniego, w mBanku, z różnych przyczyn musiałem zrezygnować.

Jak to z bankami bywa, na kartę płatniczą przyszło mi trochę poczekać, ale już w tydzień po podpisaniu umowy przyszła do mnie pocztą koperta z kartą, a za nią koperta z PINem do tejże. Pochwyciłem ów kolejny kawałek plastiku w swój portfel i udałem się, zgodnie z zaleceniami, do najbliższego bankomatu, celem aktywowania karty i zmiany swojego kodu. Problemów nie stwierdzono, wobec czego karta została podpisana i trafiła do kieszeni, czekając na swój moment.

Minęło dni kilka, kiedy to wyczerpałem swoje doczesne fundusze gotówkowe i życie (a raczej ZDiK) zmusiło mnie do porozmawiania ze ścianą. Szybka kontrola w domu pokazała czterocyfrowy jeszcze stan konta, pewnym krokiem ruszyłem więc po to, co moje. Tutaj muszę pochwalić bankomaty WBK, mają najwygodniejsze menu ze wszystkich obecnych w Polsce sieci bankomatowych. Szybko wybrałem więc Wypłata » 100 PLN » Bez wydruku. Jeszcze tylko proszę czekać … i… nic.

Nie można zakończyć operacji: brak autoryzacji.

- zawyrokowała ponuro, acz na ładnym tle, maszyna. Drugi bankomat, to samo. Trzeci - nic. Zadzwoniłem więc do banku na infolinię, gdzie przemiła pani wypytała mnie o szczegóły zajścia, a następnie sprawdziła moją historię. Wydało jej się to dziwne, wobec czego poprosiła mnie o cierpliwość i zadzwoniła do informatyka. Ten zdaje się pomógł niewiele, bo tylko rozłożył bezradnie ręcę i zażądał więcej czasu. Polecono mi zaczekać do dnia kolejnego, kiedy to o godzinie 12:00 ktoś się ze mną skontaktuje.

Tak też się stało, dziś w samo południe ta sama pani zadzwoniła do mnie. Sądząc po jej głosie, to jej zdziwienie nie ustępowało mojemu, kiedy to powiedziała mi, że zaszła jakaś pomyłka i wydana mi karta… jest przypisana do cudzego rachunku, na którym akurat saldo jest zerowe, wobec czego nie mogę nic wypłacić.

Kartę pewnie jutro mi wymienią (ewentualnie wyślą mi nową), pieniądze w środku nocy pożyczył mi ojciec, rodzi się tylko jedno pytanie. Skąd mój pech? Czemu musiałem trafić akurat na puste konto? ;)

Oddam projekt w dobre ręce

Niegdyś bardzo blisko związany z Ligą Liero, popełniłem klona tej przewspaniałej gry, który zwał się Wurmz!. Gra cieszyła się sporą popularnością, niestety jej kod nie nadawał się do niczego z paru względów - w połowie napisany był w C, w połowie w C++ (gra w międzyczasie przeszła na C++, ale nie miałem czasu przepisać całości kodu), projekt prowadziłem w strzępach wolnego czasu, więc każda funkcja była zbiorem brzydkich hacków (z braku wolnego liczył się czas realizacji, a nie sposób). Projekt został w końcu zastąpiony przez Gusanos.

Równolegle prowadziłem projekt innego klona Liero, gry opartej na wektorach, z realistyczną fizyką i ładniejszą grafiką. To właśnie tego projektu, Liero Sequel Project, dotyczy ta notka.

Screenshot z gry

Projekt utknął (z braku mojego czasu) na etapie implementacji silnika. Napisałem kompletny system obsługi kolizji (realistyczna fizyka). Wygląda (moim skromnym zdaniem) całkiem nieźle, działa pod Windows i pod Linuksem. Współpracujący ze mną grafik (Dzięcioł / Woodpecker Studios) obiecał zaspokoić każdą zachciankę graficzną. Potrzeba jeszcze przepisać engine odpowiedzialny za particle (gracze, bronie) i napisać engine wykrywania kolizji obiekt/obiekt (obiekty mają okrągłe bounding-boksy, więc nie powinno być to trudne).

Pytanie brzmi: czy są jacyś chętni?