Hi, this is your host Michał Rudnicki short "stronger", and Ye are visiting my jagged border of life and work. Have a nice read, and please feel free to drop me a line or twelve.
Since this is a tri-lingual blog you may find it useful to filter it out by: english | polish | php-ish

Prawo (ale nasze) i sprawiedliwość (ale społeczna)

26 Sep 2005

PS: notka zawiera wulgaryzmy. Nie chcesz - nie czytaj. To wolny kraj. Jeszcze..

No proszę. Taki krótki tytuł i nie dość, że mamy sprzeczność to jeszcze oksymoron. Sprzeczność, bo "nasze prawo" to żadna sprawiedliwość, a "sprawiedliwość społeczna" to nie manifestacja stosowania prawa a popisówki dla tępych wyborców. Niniejszym dedykuję wyniki wyborów do parlamentu naszemu przygłupiemu narodkowi, który nie dość że ciemny to jeszcze leniwy.

Zwycięstwo brzydkich kaczek i ich endeckiej chołoty było dla mnie jak strzał w pysk. Od odzyskania niepodległości w 1989r oczekuję na normalny, prorynkowy rząd bez ambicji interwencjonistycznych, który spełniłby moje jako wyborcy skromne potrzeby: wypchał się z tym całym prorodzinnym, narodowym, chrześcijańskim, socjalnym pierdoleniem i zapewnił po prostu święty spokój. To były pierwsze wybory, w których całkiem sensowna formacja miała szansę na utworzenie sprawnego rządu. Głupie kaczki musiały jednak wszystko spieprzyć. Prosty ludek przestraszył się, że mu parówki zaczną znikać z lodówek i albo poszedł stawiać krzyżyki przy PiSie, albo na wybory w ogóle nie poszedł - co w sumie na jedno wyszło. A kaczki za to obiecały po stówę na łeb każdego biednego dziecka, więc tępa biedota łyknęła przynętę jak młode rybki, co to je się spowrotem do bajora wrzuca, bo niewymiarowe i niepotrzebne. Ważąc, że obecnie mnożą się tylko biedni albo yuppies to PiS chce zafundować nam wylęgarnie biedoty. Pytanie tylko po co: że niby więcej młodych będzie ZUS płacić, co odwlecze (jakże oczekiwany!) krach tej chorej instytucji? Nie sądzę: biedne dzieci dorastają i stają się biednymi dorosłymi ze swoimi biednymi dziećmi. O wyrywających się z kręgów nędzy słyszy się raczej jako o wyjątkach, beneficjentów świadczeń ZUSowskich zatem przybywa - nie mam złudzeń co do tego mechanizmu. Brzydkie kaczki wodolubne też nie krępują się otwarcie przyznać, że na paradę równości uruchomiłyby armatki wodne gdyby mogły. Niebezpieczne pojeby - chyba zapomnieli kto i na kogo brał armatki wodne. Drżyjcie geje, lesbijki i wszyscy wy nieczyści, którzy żyjecie w wolnych związkach, bo zaraz wam wpiszemy do konstytucji żeście kryminaliści tacy sami jak pedofile! Gdyby wprowadzili ten zapis to już teraz ogłaszam, że zmywam się z tego smutnego kraju i proszę o azyl polityczny. Choćby w Republice Vanatau.

I to tyle, jeśli chodzi o normalny rząd, na który na prawdę poraz pierwszy od 16 lat była spora szansa. Przysłowiowy chuj tak zwane bąbki strzelił, choinki nie będzie - będzie kaczy dołek i komisje d/s prawa i sprawiedliwości, agencje antykorupcyjne i ich odpowiedniki z prefiksem "Wewnętrzne-", sztuki z próbami renacjonalizacji i sądy 24-godzinne, w których rozstrzygać będą lokalny szeryf i wspomniana już sprawiedliwość społeczna. Na koniec to, co p. powiedziała na rysujące się 4 lata w polsce kaczyńskich, nie bez trwogi i dramatu w głosie: "a my tu sobie właśnie kupiliśmy mieszkanie... co my robimy?!?"

Digg del.icio.us StumbleUpon Wykop Reddit Folksr

5 comments | permalink | trackback | rss

Call it what you want to call it, I'm a fuckin apt-o-holic

21 Sep 2005

Po kilku próbach zakończonych niepowodzeniem a to z powodu błędów pakietów a to z powodu narowów Xów wreszcie z sukcesem przesiadłem się na maszynie w pracy na Ubuntu BreezyBadger. Pomimo, że wydanie wersji stabilnej wymaga zamknięcia jeszcze kilku bugów/fetaurerequestów to wrażenia z odświeżonego GNOME są jak najbardziej pozytywne. Przede wszystkim: prędkość. G2.12 na prawdę przyspieszyło. Ekran powitalny głoszący, że siędzę oto przed linuksem dla zwykłych ludzi znika zaraz po pokazaniu zastępowany natychmiastowo działającym środowiskiem. Gnome-panel nie muli się już przy doczytywaniu ikon w menu (i nie pada na pysk z wzorcową regularnością tyknięć rezonatora kwarcowego), nautilus znacznie sprawniej generuje podgląd miniatur i nie "zapomina" zawartości okien ze zdalnymi zasobami. Podobają mi się również usprawnienia w postaci instalatora aplikacji (wreszcie coś, czego da się używać, pomijając apt-a oczywiście) jak i aktualizatora (bardzo przyjemny). Różnicy pomiędzy monolitycznym x.org a jego modularną wersją nie zauważyłem - może tyćkę szybciej startują, ale może to być też sprawka GDMa. Ogólnie - bardzo bezproblemowa przesiadka. Jedyna niepożądana zmiana to spowolnienie ruchu kursora myszy, ale od tego się nie umiera. Z rzeczy, które nadal nie działają - Totem i jego plugin dla Firefoksa.

Update 1127310274: Taaak, to bardzo uwalniające:
$ sudo apt-get upgrade -u
Reading package lists... Done
Building dependency tree... Done
0 aktualizowanych, 0 nowo instalowanych, 0 usuwanych i 0 nieaktualizowanych.
Nałóg to nic dobrego ;-)

Digg del.icio.us StumbleUpon Wykop Reddit Folksr

2 comments | permalink | trackback | rss

placeholder

12 Sep 2005

Tak dawno się tu nie popisywałem, że aż trudno mi rozpocząć.

Remont nowej jamy w toku, postępuje w tępie pijanego ślimaka. Do końca września powinno udać się już spać w gołych ścianach, może i nawet z ciepłą wodą. O ile jakaś biurwa nie rzuci kolejnych kłód pod nogi typu pozwolenie na remont wykonany za własne pieniądze (autentyk). W pracy znów się zatkałem. Tym razem na dynamicznych tabelach (czyli jak zrobić w tabeli dowolną ilość pól dowolnego typu, tj. reinventing the BeFS). Wydajność Postgresa w takich zastosowania jest zadawalająca dla 10000 rekordów i 1000 wartości w 10 dynamicznych polach, ale przy podwojeniu dowolnej z wartości drastycznie spada. Maszyna to clickety click ooops, cat: /proc/cpuinfo: Brak dostępu, jakiś Xeon chyba. Problemem jak zwykle jest miszmasz obytrzech warstw aplikacji - tak to jest robić software gdy nie ma czasu na projekt i przewidywanie zmian.

No to wyczerpałem wszystkie tematy z osobistej toplisty.. taki jakiś kurwa płytki jestem. Po optymiźmie pozostało tylko puste pojęcie, po paznokciach - wspomnienie i ból opuszków. Może przynajmniej schudnę. I tylko p. nadal blisko i dobrze. Bez niej byłoby ciężko i bezcelowo (byćmoże biegałbym na jakiejś parszywej budowie w Irlandii czy innej NZelandii). No i wyniki w nerdquizie niezłe.

Digg del.icio.us StumbleUpon Wykop Reddit Folksr

add coment | permalink | trackback | rss

I have only one *Etchin’* desire / Let me stand next to your fire! I have only one *Etchin’* desire / Let me stand next to your fire!

07 Jun 2005

Debian GNU/Linux Sarge oficjalnie wydany. Następca będzie nosił imię Etch. Wreszcie, bo mój serw domagał się security updates, które mógłbym zostawić w cronie z opcją -qqy. A do GNOMEPlanet dołączyła pierwsza kobieta, Hannah. Całkiem ładna, mimo że z kraju wolno^W^Wusiech, gdzie o ładną twarz dość trudno.

Czy wspominałem już, że przy okazji zabawy z Ubuntu Breezy i GRUBem posłałem w piach kolejną partycję? Tym razem w pracy. Admin tutejszych maszynek nieomal zabił mnie śmiechem ;-)

Digg del.icio.us StumbleUpon Wykop Reddit Folksr

10 comments | permalink | trackback | rss

Tresura w stylu sowieckim i paragraf 22

27 May 2005

Pierdoły związane z powszechnym obowiązkiem wojskowym zagnały mnie dzisiaj do Częstochowy. Oczywiście poza grupką cywili i bandą mundurowych większość poważanych przeze mnie osób w najlepszym przypadku obdarowuje tą instytucję żałująco-drwiącym uśmieszkiem. Jeśli o mnie samego chodzi, to gdyby nastała wojna, byłbym pierwszy, który wyrzuci kałacha w krzak i (zależnie czy npel nadchodzi z zachodu czy wschodu) bezwarunkowo podda się jako jeniec lub da nogę z prędkością nadświetlną krzywiąc przy tym czasoprzestrzeń i ulegając skróceniu Lorentzowskiemu. Anyways, przyjechałem do hometown, gdzie zauważyłem, że zapowiadana od dawna akcja okazywania biletu przy wsiadaniu do pojazdu jest (o zgrozo) realizowana. Proszę nie regulować oczu, to na prawdę tak wygląda. Pasażer wsiada do pojazdu przednimi drzwiami trzymając w zębach bilet, czy to miesięczny, dzienny czy czysty, nieskasowany bilet jednorazowego przejazdu. Kierowca łaskawie kiwa głową pozwalając przejść do dalszej części pojazdu oraz skasować bilet. Bilet można skasować tylko w jednym kasowniku, tuż przy kierowcy, bo pozostałe zostały zdemontowane w celu zachęcenia podróżnych do wsiadania pierwszymi drzwiami licząc od czoła pojazdu - otwieranymi z resztą do połowy, by święte stopy kierowcy nie stąpały po tej samej podłodze, co nieczysty tłum. Co więcej, na przystanku otwierane są tylko te drzwi, chyba że podróżny z wnętrza życzy sobie wysiąść, o czym musi zawiadomić kierującego, wciskając przycisk umiejscowiony nad drzwiami, czyli tam, gdzie jeszcze całkiem niedawno jako mały szczeniaczek nie sięgałem. Nieświadom owych kretyńskich obyczajów wszedłem do pojazdu wyposażony w bilet całodniowy i zostałem zhaltowany przez gburowatego drivera. Na jego warknięcie o bilet i pospieszenie mojego ociągania odpowiedziałem panu kierowcy, żeby sobie pobiegał i podałem powód nieposłuszeństwa. Tłum napierał, więc poszedłem dalej nie zważając na monity kierownika pojazdu.

Kiedy dotarłem do WKU próbowałem otrzymać audiencję u jego wyrozumiałości Komendanta. Skierowano mnie wpierw do jego osobistego firewalla, pana Marka. Pan Marek nie znalazł zrozumienia, że ja nie stąd, że praca, że dziś-i-tylko-dziś. Mimo uslinych prób i podchodów o wywiedzenie się co takiego robi jego łaskawość Komendant, że mnie nie przyjmie, nie udało mi się przeforsować swojej sprawy. Na pytanie do pana firewalla do kogo mogę się odwołać o jego decyzji usłyszałem odpowiedź, że do pana Komendanta. Sytuacja jak w pysk strzelił z Hellera.

Mam dziś dobry dzień na ukierunkowaną nienawiść, więc poużywam sobie jeszcze troszkę. Np. Częstochowscy tramwajarze - co za cioty. Wleką się przeraźliwie pokonując dystans dzienic Północ - Raków (ok. 9km) w 40 minut. Dostojnie toczące się tramwaje zatrzymują się na zielonych światłach, gdy motorniczy stwierdzają, że za chwile i tak będzie czerwone, więc lepiej poczekać.
Lecimy dalej: biurwy z wydziału spraw obywatelskich w magistracie, a w szczególności taka jedna nazwiskiem Hutna, która 1. kłamie, 2. odmawia dostępu do informacji jawnej, 3. utrudnia uzyskanie wnioskowanych dokumentów.
Next, księża oraz architekci pracujący na ich zlecenie. Nie dość, że kościołów w tym żałosnym miasteczku więcej niż stacji benzynowych, to jeszcze wszystkie wielkie i szkaradne. Dokumentacja fotograficzna na poparcie tej tezy - w fazie alpha.
Prezydent miasta Tadeusz Wrona - jebany purysta, sumienie narodu, dewota z typowo obłudno-lewicowym rodowodem. Skutecznie likwiduje miejsca rozrywek i zamyka ulubione knajpy, przez co lokalizacje typu śmietnik, piaskownica, klatka schodowa, gmach stołówki studenckiej zyskują na atrakcyjności w oczach amatorów mało ambitnych alkoholi.
Aaach, jak mi się przypomni to obsmaruję jeszcze kogoś. Na razie to tyle.

---

Mimo że słońce dopiero w zenicie, to atrakcji aż nadto. Szkoda, że nie mam netu w domu, przez co nie odpisuję Jajcusiowi skandalicznie długo. Oj boli. Może wkrótce dopadnie mnie przeprowadzka do _własnej_ jamy, a wtedy.. nareszcie!

Digg del.icio.us StumbleUpon Wykop Reddit Folksr

3 comments | permalink | trackback | rss

Behind jaggi lines, pt. II

16 May 2005

Pisałem kiedyś w niezbyt przychylnych (a może zbyt nieprzychylnych) słowach o PHP5. Z instalacją nowego systemu pociągnąłem sobie deby z tą wersją interpretera spoza distro. Krótka chwila na wybadanie nowych (nowych dla PHP oczywiście) cech języka pozwoliła nabyć pierwszego wrażenia: nareeeszcieeee. A zaraz potem i drugiego: czemu tylko tyle?. Jednym słowem, krok we właściwym kierunku, ale bardzo mały.

Najpierw to, czego brak wołał o pomstę do nieba: specyfikator static. Obsługa statycznych składowych jest troszkę pokręcona, ale daje się przyzwyczaić. Po prostu trzeba pamiętać, żeby zamiast $this->zmienna stosować self::$zmienna. A minor catastrophy. Wreszcie można stosować porządny singleton zamiast piekielnych sztuczek z serializowaniem zmiennych składowych do sesji i odserializowywaniem ich za każdym wywołaniem konstruktora.

Wyjątki. Nie ma co wiele gadać, potrzebne były.

Iteratory. Fajna rzecz. Gdy tylko w pracy przesiądziemy się na piątkę, natychmiast wyposarzę swoje klasy drzew w ten przyjemny ficzer.

Type hinting, czyli function doSomething(ClassName object). !!! !!! - Tyle mogę tylko powiedzieć. Szkoda, że w tak wąskim zakresie - określać można tylko klasy, skalary i tablice można radośnie mieszać dalej, a wiadomo, że kto miesza ten rzyga. Jest to kolejny kroczek do silnego typowania, lub (co w sumie nawet by mnie zadowoliło) typowania na żądanie.

Poza tym drobnostki, jak zabronienie operacji przypisania do $this w konstruktorze, czy sensowniejsze zachowanie przy rzutowaniu stringów na tablice, metoda __toString. Smaczne, ale zdecydowanie drugoplanowe.

A teraz, gdy już pierwszy głód został zaspokojony pora wysunąć dalsze żądania:

  1. Dalsze postępy w silnym typowaniu. Od zmiennych składowych po typy zwracane z metod.
  2. Przeciążanie metod. No comments, jak ostatnio sprawdzałem to mieliśmy XXI wiek.
  3. ... i operatorów. Jak C++ nie lubię, to nie gniewałbym się z tego zapożyczenia.
  4. Może pierdoła, ale zwłaszcza gdy nie widać dobrze hierarchii klas przydałoby się obowiązkowe słowo kluczowe override przy przeciążaniu metod wirtualnych.
  5. Kontener/komponenty sesyjne. Taaa, i co k* jeszcze ;-).

Digg del.icio.us StumbleUpon Wykop Reddit Folksr

3 comments | permalink | trackback | rss

(Dzień świstaka)**2

06 May 2005

3 w zabrzu i dwie w Katowicach. Kawiarenki internetowe. Szukam jakiejś normalnej, gdzie obsługa miałaby 1. pojęcie co do niej powiadam, 2. nie bała się podłączyć dysku pomimo, że od razu zaznaczam, że mogę dopłacić, 3. pozwoliła zabootować z tegoć dysku. To chyba nie są szczególnie wygórowane wymagania (dodam, że czniam tzw. średnią społeczeństwa). Wreszcie się udało. Nawet idzie, choć to nie to co w pracy.. 700-800kBps.

Ogólnie jestem cholernym i pieprzonym farciarzem. Jestem też absolutnym optymistą tak samo cholernym i niemniej pieprzonym jak farciarzem :-) Myślę, że to się może nakręcać jak dodatni feedback. Tym większy twist of luck im radośniej podchodzę do rzeczy. Tym większy optymizm im więcej mam szczęścia. Jest jednak jedna sprawa, w której zawszę wtopię: bezpieczeństwo danych. Już dawno przekręcił mi się licznik padów dysków, rozsypek tablicy partycji, zaników zasilania lub kernel oopsów podczas bardzo-ważnej-a-najlepiej-atomowej operacji dyskowej. Zawiodła mnie już każda procedura backupu, każdy producent dysków twardych, każdy system plików, do wczoraj bronił się jeszcze XFS. Niestety xfs_repair powiedział, że tego przypadku nie obsługujemy i /usr poszło w piach.

Po to mi właśnie kafe internetowa, by odtworzyć system. Takie to uroki komutacji w miejscu, w którym się mieszka (znakomicie poza tym). Pozostanę dalej przy XFS, ale jako distro dałem próbę (ang. to give a try ;-) Ubuntu. Następny crash przytrafi się pewnie za jakieś 4 miesiące - taka średnia wychodzi z ostatnich 10 lat. Wtedy może zainstaluję coś, co działa natywnie na NTFS ;-D

Update (1115643941, tj. 09.05.2k5): Podejrzenie pada na kernel a konkretnie na jego subsystem IDE i kontroler PIIX lub obsługę XFS. Każda następna instalacja na tym filesystemie skutkuje w pełni powtarzalnym panikiem. To samo miałem w pracy, gdy przygotowywałem sobie stanowisko, jednak po 3 (4?) latach od instalacji na domowym sprzęcie tego się po prostu spodziewać nie było można. Pora zerknąć w changelogi kernela.

Digg del.icio.us StumbleUpon Wykop Reddit Folksr

add coment | permalink | trackback | rss

Quick and dirty guide to SWT applet.

22 Apr 2005

Napiszę to tu, bo może ktoś będzie jeszcze potrzebował i ma lepsze rzeczy do roboty niż wyważanie otwartych drzwi. Po poierwsze, jeśli już konieczni musisz zamieścić część logiki w aplecie to lepiej od razu połóż się na torach i poczekaj odpowiednio długo. Po drugie, zapomnij o SWT osadzonym wewnątrz kanwy AWT. Po trzecie, skoro kuż robisz aplet i używasz SWT to warto zadbać o krosplatformowość.

  1. Stwórz applet. Nie masz szans (przynajmniej na razie) na osadzenie go w oknie AWT, więc będzie to pływające, standalone okienko. Nie szkodzi. Zrób z niego jar-a i wrzuć na serw. Możesz również potrzebować podpisać aplet certyfikatem. Opisy tej czynności wręcz zaśmiecają sieć, więc nie będę dublował.
  2. Stwórz kod HTML. Kod powinien wyglądać mniej więcej tak:
    if (stristr($_SERVER['HTTP_USER_AGENT'], 'Windows'))
            $libs = 'windows/swt.jar';
    if (stristr($_SERVER['HTTP_USER_AGENT'], 'Linux'))
            $libs = 'linux/swt.jar, linux/swt-pi.jar';
    
    $out = '<applet codebase="." code="SuperSWTApplet.class" ';
    $out.= 'archive="SuperSWTApplet.jar, '.$libs.'" name="SuperSWTApplet">';
    $out.= '</applet>';
    print($out);
    
  3. SWT po stronie serwera Utwórz katalogi linux i windows tam, gdzie wskazuje codebase. Wrzuć do nich jar-y SWT. Dla Windy będzie to tylko swt.jar, Linux z GTK potrzebuje jeszcze swt-pi.jar. UWAGA: te pliki różnią się dla każdej architektury, więc nie pomieszaj ich.
  4. SWT u klienta Zainstaluj na kliencie biblioteki współdzielone SWT. W Linuksie wszystkie pliki .so powinny wylądować np. w /usr/lib albo w katalogach maszyny wirtualnej, w Windows i tak jest burdel, więc nic się nie stanie jak kolejne .dll-ki wylądują w %SystemRoot%\system32. Możesz potrzebować zmiany polityki bezpieczeństwa VM, więc zapisz w homedirze usera plik .java.policy, a w nim:
    grant "adres.serwera.z.apletem" {
      permission java.security.AllPermission;
    };
    
    Pamiętaj by później zmienić ten plik i dać apletowi mniejsze uprawnienia. You've been warned.

Mimo że działa to aplety jako część core logic to nienajlepszy pomysł. Unikaj. A gdy zmuszają - krzycz! Masz do tego prawo!

---

Kupię mieszkanie M-2 lub M-3 na Śląsku w okolicy Katowic, Zabrza lub Gliwic, ew. gdzieś pomiędzy. Może być do remontu lub z piecami.

Digg del.icio.us StumbleUpon Wykop Reddit Folksr

add coment | permalink | trackback | rss

$tempus->fugit

31 Mar 2005

1. Ambitny plan nie pisania na joga już nigdy-nigdy nie wypalił, bo zostałem właśnie obdarowany mikrosekundą wolnego czasu. Wreszcie udało mi się wysmażyć w PHP+JS porządne drzewko potrafiące chować w sobie dane z wielu tabel, przemieszczać gałęzie, przeszukiwać własnymi klasami dopasowującymi i dobrze oddzielające wygląd od danych. Ba, nawet ze strategią wyboru renderera. Cool. Najbardziej chyba udały mi się te szukacze: $suchen = $tree->findItem(new ClassNameMatcher('EmployeeTreeItem'));. Tydzień czasu. Dobrze odnieść jakiś sukces po tygodniu zmarnowanym na zmuszenie do działania SWT3 pod Debianem. Ach ja naiwny, przecież...
Eclipse robi mi dzień. Nie jeden. Ten kombajn jest fenomenalny. Szkoda tylko, że na 460MB i dwóch Celeronach 433 czka i kaszle nieprzyjemnie. Za to Monodevelop ostatnio rozczarowuje. Może mam coś niezainstalowane, ale co zacznę pisać to zaliczam pad.

2. Time swims, jak mawiają ziomale królowej (a propos, if (isset($god)) { $god->save(&$queen); }. Save as JPEG. O jezu, od pehapu usmażył mi się mózg.
Odkąd się przeprowadziłem czuję po sobie jakby upłynęło 150 lat. Odświeżająca wizyta w $HOMETOWN pozwoliła jednak zauważyć, że to tylko pozory, a co ważniejsze mając porównanie z kumplami ze studiów zauważam Istnienie Braku(TM) regresji w rozwoju takoż emocjonalnym jak i zawodowym. Jestem bardzo zadowolony z tego, że udało mi się wyrwać z tej lokalnej kotłowaniny, klepaniu się po plecach i mówieniu, że dobrze jest lekko nie ma. No cóż, w końcu oni w większości poszli na informatyke bo mieli komputer. Kurtyna.
Obiecany sobie minireportaż (reportaż od reportage ;-) fotograficzny p.t. Najbrzydsze kościoły Częstochowy odsuwa się conajmniej na miesiąc. Nie mam po prostu na niego tempusu.

3. Czas dla pakietów z domowego Debiana experimental zaczął się kończyć jakiś miesiąc temu, gdy te z sid-a, którego mam w pracy zaczęły przeganiać świeżością. Noszenie pakietów na cyfraku to straszna mordęga, bo się zależności nie trzymają i muszę dociągać via 33600kbps albo pisać na kartce co dociągnąć nazajutrz. W domu na półmegabicie tepsianego deesela (który to półmegabit wpuszczony do sieci blokowej pozwala płacić moje rachunki pewnej aroganckiej firmie) poszło prawie 550 mega. Instalacja przebiegła arcysprawnie - nie popsuł się żaden konfig, żadna usługa nie przestała działać. Szkoda tylko, że na Gnome 2.10 się nie załapałem.

4. Wkrótce wykopią nas z mieszkania jego źli-właściciele-ze-zjebanym-światopoglądem protezujący rzeczywistość pożyczkami od firm typu krzak. Chcielibyśmy zamieszkać gdzieś w okolicy - na Burowcu, w Szopienicach. Oczywiście rozważamy cały pas rozciągający się wzdłuż <nadużycie słowne>infrastruktury</nadużycie słowne> kolejowej od Katowic po Gliwice. Na Burowcu mieszka się znakomicie - jest cicho, mało betonu, ludzie albo nieobecni albo nieszkodliwie pijani. Trochę szpeci widok blok "rotacyjny", nazwany tak od roli jaką pełnił: za komuny była to przechowalnia dla młodych małżeństw, które gdy tylko dostały przydział na "własne" em trzy opuszczali rotacyjny, w efekcie nikt nie poczuwał się do niego jak do własności, o którą się dba, bo przecież "na chwilę" i "nie warto". Blok zeszpetniał do tego stopnia, że otrząsa mnie gdy widzę jego częściowo obdartą z płyt azbestowych elewację.
Podwórze też nie lepsze. Wyparował śnieg, więc wyszły wszystkie możliwe paskudztwa - począwszy od papierka po cukierków aż po ogródki działkowe, które powinny być równane z ziemią. Nic mnie tak nie drażni jak ogródki działkowe. Jeszcze te ogradzane podwójnym płotem, albo z drzewami obijanymi blachą falistą (autentyk), albo z rabatkami ogrodzonymi malowanymi na biało krawężnikami (i o szerokości tychże). SYF!

5.
In the north sky time flies faster than morning
The cold of the dawn it meant nothing to us
You were keeping your best situation
An answer to Yes

- Dawno nie słuchałem. Nic dziwnego - jestem terroryzowany! Każda sekunda muzyki Yes-ów powoduje godzinny kontratak mojej dziewczyny w postaci Pixies, Fugazi czy innego neopunkrocka. Blee. Trzy akordy, darcie mordy.

6. PHPTK to chyba nigdy światła dziennego nie ujrzy. Zerkając to w Fowlera to w Core j2ee Patterns przekombinowałem go do tego stopnia, że nie ma już the right way, a są zamiast tego the possible way. Może w innym języku programowania/środowisku uruchomieniowym byłoby to słuszne, ale nie w PHP, gdzie programy złożone z tysięcy klas tworzy się średnio wygodnie (pozostają jednak zadziwiająco wydajne). Może kiedyś. Kiedy będę miał mityczne Więcej Czasu(TM).

.. a taki kontrolny wpis sobie popełniłem...

Digg del.icio.us StumbleUpon Wykop Reddit Folksr

3 comments | permalink | trackback | rss

26 Jan 2005

Na własne życzenie firmy Microsoft liczba ataków DDoS na nią samą znacząco wzrośnie z powodu czyhającej tuż za horyzontem plagi przejętych, niezaktualizowanych komputerów. Życzę miłego życia.

Digg del.icio.us StumbleUpon Wykop Reddit Folksr

2 comments | permalink | trackback | rss

26 Jan 2005

79% Tylko dlatego, że nie przechowuję w mieszkaniu w miejscach losowych odpadków organicznych, które kiedyś były jedzeniem?? Nerdzizm jest przereklamowany.

Digg del.icio.us StumbleUpon Wykop Reddit Folksr

add coment | permalink | trackback | rss

18 Jan 2005

I'm above, claiming unconditional love. Tak mógłbym nazwać swój frejmłork, ale jest trochę długie i nie wygodne. Bieżąca nazwa ma natomiast cząstkę PHP, więc nie nadaje się z przyczyn licencyjnych. Anyways, jest to zapowiedź biblioteki widgetów sterowanych wyłącznie zdarzeniowo dla PHP. Powstał z potrzeby chwili (trwającej od listopada) w odpowiedzi na brak odpowiednich narzędzi do obsługi prezentacji (PHPGTK wykluczam jako bibliotekę client-side). rwf jest ciężkie jak każdy MVC, Prado zupełnie nieodpowiada specyfice pewnego zadania, ponadto jest zorientowane layoutowo/markupowo, wprowadza nawet na ten cel własny język opisu. Potrzebna była czysto obiektowa biblioteka reagująca na zdarzenia (paradoksem jest, że choć sam protoków HTTP jest wybitnie zdarzeniowy, to brak gotowych do powszechnego stosowania silników eventowych dla PHP). Nie było, więc zacząłem pisać.

Program napisany w wykorzystaniem PHPTK (nazwa do zmiany) wyglądać może tak. A tak działa. Fakt, że nie ma tego jeszcz zbyt wiele i może nie robię dobrze ogłaszając i deklarując coś już teraz, ale zaczynam spowalniać a wydaje mi się, że biblioteka może okazać się przydatna.

Na razie bez pozostałych źródeł ani tutoriali. Może ktoś podeśle jakieś cenne uwagi..

Digg del.icio.us StumbleUpon Wykop Reddit Folksr

3 comments | permalink | trackback | rss

17 Jan 2005

Lawrence dobrze mówi. Zabrałem się kiedyś nawet za społeczne tłumaczenie Free Culture, ale brakło mi zapału.

CC notice wstawiam do stopki w komentatorze, by nikt nie miał wątpliwości na co się decyduje.

Digg del.icio.us StumbleUpon Wykop Reddit Folksr

add coment | permalink | trackback | rss

Panel

13 Jan 2005

Pozwolę sobie olać ciurkiem cipłym, pienistym, koherentnym wypowiedzi niejakiego Gatesa na temat mojego bycia lub nie komunistą. Nic się koleś nie uczy, od lat bredzi to samo i sprawia wrażenie człowieka z wizją. Od lat nie można się dowiedzieć co to za wizja i czemu znów rewolucyjna.

Bohaterem dzisiejszych utyskiwań własnych jest Panel, ale nie ten z urządzeń technicznych, a z aplikacji przeróżnych, w których to jest nadużywany: panel sterowania, panel administratora, panel moderatora, panel edycji, panel siaki i owaki. Życzę mu śmierci, a koderom tworzącym soft obudowany panelami żeby skozieli. Panel obsysa. Owszem, czasami rzeczywiście zachodzi potrzeba mieć zgromadzone pod ręką różne wichajstry (i.e. panel sterowania czy konfiguracyjny), ale w ogólności panel to głupia rzecz.

Na pierwszy ogień leci panel edycji. Najgłupszy z najgłupszych. Szalenie wprost niewygodny. Widziałem wiele paneli edycji (najczęściej webowych), do których najpierw trzeba wejść, przedostać się przez zduplikowaną w nim strukturę edytowanego dokumentu lub hierarchię serwisu i dopiero wówczas edytować. U podstaw takiego podejścia leży idiotyczne założenie, że edycja to strrrrasznie skomplikowana sprawa i wymaga całkowicie oddielnego interfejsu, sposobu obsługi i modułu (moduł to kolejne nadużywane słowo, ale o tym może kiedyś).

Panel moderatora. Powstrzymuję się od przeklinań i wyzwisk. Bo taki panel to conajwyżej męskie przedłużenie kodera. Po co moderatorowi panel? Po cholerę, skoro na takim panelu jest zazwyczaj tylko [Zatwierdź] i [Odrzuć] oraz ewentualnie [x] Zastosuj w przyszłości bez pytania. W bardziej rozbudowanych wersjach rodzaje filtru (czytaj: mało skomplikowany zestaw checkboksów).

Panel administratora. Tu sprawa nie jest tak oczywista, bo każdy przecież chyba widzi, że przydało mu się nie raz, nie dwa to, co ma w Panelu Sterowania. A jednak i tu istnieje zróżnicowanie, bo bywają panele lepsze i gorsze. Te gorsze zawierają (znów aplikacje webowe) 3 opcje na krzyż (no, powiedzmy że 4, żeby ów krzyż było łatwiej ułożyć ;-) i konsumują całą podstronę oraz dodatkowe kliknięcia i szykane związane z logowaniem.

O właśnie, panel logowania. Potrzeba prawdziwej hiperinteligencji by wymyśleć coś, co nie zmieściłoby się w jednym wierszu gdzieś w nagłówku strony a służyło do przedstawienia się aplikacji. O ile formularz zakładania konta może być niezłą szykaną, to login dialog to zazwyczaj dwie dziury i submit!

Nie twierdzę, że panel jest z gruntu wyklęty a jego stosowanie powinno grozić ucięciem palców. Po prostu panel to narzędzie dalece ponad potrzeby przeciętnych zastosowań. Sam wielokrotnie popełniałem błędy nadgorliwego pchania rozmaitych pchełek do paneli, które miały nadać im dostojność i właściwą rangę. W myśl zasady, którą odczuwałem a nazwał ją z imienia mój obecny szeryf "aplikacja jest gotowa wtedy, gdy nie można z niej już nic usunąć" panel taki w efekcie wylatywał precz.
Zwykle bajdurząc tutaj różne opowieści staram się wieść od problemu do rozwiązania, tym razem musiałem (i chciałem) się powstrzymać. Chciałem uczynić z tego wpisu swego rodzaju panel i tak jak on dzieli prezentację i działania oddzielić probley od ich rozwiązań. Nie wiem czy mi się udało, bo trochę (ładne mi k. trochę!) przejąłem się rolą.

Uwaga, nadchodzi panel rozwiązań problemów z panelem.

Panel edycji, do którego dostęp to czasami powtórna podróż przez hierarchię dokumentu lub przynajmniej user-experience typu "o, a gdzie ja jestem? to jakaś inna strona?". Panel edycji zastępuję możliwością bezpośredniego przejści w tryb edycji wprost z prezentowanego dokumentu. Skoro system umożliwia edycję, to ma ona być integralną i naturalną możliwością systemu a nie wymagać przemierzania setek podstron. Przecież edycja pliku tekstowego od jego oglądania różni się w zasadzie tylko tym, że podczas oglądania nie piszemy :-) Kluczowe jest tu działanie w kontekście dokumentu. Jest kontekst widoku i kontekst edycji. Ot, cała magia. Jak się postarać to można od biedy wcisnąć kontekst potwierdzania-różnych-niebezpiecznych-działań typu kasowanie czy zmiana nazwy. Z resztą, kto korzystał z menu kontekstowego ten wie, że jest wygodne. Web po prawdzie nie ma klasycznego menu kontekstowego, ale można dostępne aspekty przedstawić userowi po prostu na stronie.

Panel moderatora wywalamy zastępując go zwykłym raportem, lub jak powyżej, opatrując widzane przez niego postingi dodatkowymi działaniami. Takie proste, a tak trudno niektórym zjarzyć. Osobiście wolałbym nawet powiadamianie i podejmowanie decyzji o moderacji via komunikator.

Panel administratora w aplikacjach webowych to najczęściej definicja praw dostępu. I teraz pytanie bez punktów w konkursie bez nagród: jak ten biedny administrator ma nadać prawa dostępu gdy jest na siłe odrywany od przedmiotu tych praw (np. podstrony) i wtłaczany na jakiś panel, na którym rojno od różnych innych wcale-nie-oczekiwanych przeszkadzajek? Znów rozwiązaniem jest kontekst. Działania administracyjne z wewnątrz sprawy, a nie jak Bonaparte stojąc na wzgórzu i udająć że się widzi pełny obraz sytuacji.

Panel logowania pominę litościwie milczeniem.

..chyba będzie ciąg dalszy..

Digg del.icio.us StumbleUpon Wykop Reddit Folksr

add coment | permalink | trackback | rss

Ona jest urocza

03 Jan 2005

Pod kawałkiem kodu (nośnik: papier) zawierającym m.in.
$f = new TableForm(...);
znalazłem wykonany uroczym, delikatnym pismem dopisek
$f = old RowSpan ;-)

[Nespa]?

Digg del.icio.us StumbleUpon Wykop Reddit Folksr

add coment | permalink | trackback | rss

03 Jan 2005

Wczoraj, po nadłuższej jak dotąd przewie odpaliłem BeOSa. Skamlałem przez pół godziny jak szczenię, z żalu, że poległ w walce o enduserskie biurko. Po przełączeniu do GNOME stwierdziłem, że środowisko mam niewygodne i wcale niewycyzelowane a raczej połatane, żeby mi się choć trochę wygodniej pracowało. Lekkości, prostoty i skuteczności BeOSa spodziewam się w GNOME w okolicach pochodu pierwszomajowego 2011.

User experience. Ciekawa sprawa. Ten system nie ma nawet okna potwierdzenia wyłączenia komputera. Bardzo słusznie moim zdaniem. To miłe, że projektanci nie traktują usera a priori jak debila. Nienawidzę okien pytających czy miałem na myśli dokładnie to, co zrobiłem. W dodatku te monity są całkowicie mylące: klikam X (uniwersalny-symbol-zamykania-oknaTM) a jedna czy druga durna aplikacja pyta mnie nie czy zamknąć, a czy zapisać niezapisany dokument. Chcę zamknąć, więc niech spyta mnie (jeśli już koniecznie musi) czy chcę zamknąć bez zapisania. Z Windows pamiętam jak przez mgłę jeszcze straszniejsze szykany: domyślnie przeciągnięcie do kosza wywołuje monit o potwierdzenie mimo że w koszu te pliki i tak siedzą i czekają na ostateczne usunięcie. Odwiodłem dziś szeryfa działu od pomysłu pododawania gdzie-się-tylko-da okien potwierdzających rozmaite poczynania usera. Każdy średniointeligentny homosapiens powinien to docenić.

<mode style="za-komuny-to-było-lepiej"> W epoce DOS-a łupanego userzy wydawali się jakoś bardziej zorientowani i chętni do eksploracji programów. Może przez to, że interfejs znakowy dawał mniejszą dowolność (nawet CDNowi nie udało się wystarczająco zamotać swoich programów - wypieprzają mi one wskazówkę brzydotometru na czerwoną część skali). Z drugiej jednak strony nie było na ówczesny soft sposobu innego niż po prostu sobie z nim poradzić: zakuć instrukcję, dojść własnymi sposobami lub wymienić się doświadczeniami. Ale ale. Nie ma co płakać. Ci co znają, to znają wcale-nie-dowcipy o pracownikach sekretariatów miałczących przy każdej okazji, że im coś tam wyskoczyło i nie wiedzą co zrobić. Trudno, takie czasy. Byle trzymać się z daleka od helpdesku. </mode>

Wracając do mojej pasji, choroby, kompulsji i manii, BeOSa określiłbym krótką frazą: just an operating system, no shit included (czemu ja nie pracuję w reklamie?!). Cieszę się, że dziewczynie się spodobał. Jej zdanie, zwłaszcza w sprawie interfejsu traktuję na prawdę poważnie.

Digg del.icio.us StumbleUpon Wykop Reddit Folksr

4 comments | permalink | trackback | rss

30 Dec 2004

Czasu pisać nie mam. Netu też nie mam. Komutacja obsysa.

Digg del.icio.us StumbleUpon Wykop Reddit Folksr

add coment | permalink | trackback | rss

Jedna mała podłość w imię lepszego świata

15 Dec 2004

Czytam sobie właśnie doniesienia z Security Focus (nie czytuję regularnie). Temat leży mi jak mało który: gggadu-gggadu. Szczególnie hmm.. użytecznym bugiem wydaje mi się punkt 3: (...) because there is directory traversal error you can get any file, ie. '..\Ja\config.dat' where the password is stored. User is NOT notified about that by gadu-gadu application. Fajne, nej?

Tak też sobie kombinuję jak tu wykorzenić to zło wcielone z sieci a samego Foltyna (nawet mu fotkę w Polityce ostatniej zamieszczono, btw. co za marny artykuł...) w skarpetkach na mróz posłać. I wychodzi mi, że walka na wirusy samoeksploitujące klienty na niewiele się zda i lepiej posłać w piach samą sieć atakiem typu DDoS.

Kradzież tożsamości to wspaniała sprawa z uwagi choćby tylko na listę kontaktów. Gdyby przeprowadzić kaskadowy atak kradzieży tożsamości na kontakty z jednej tylko listy możnabyłoby uzyskać dostęp do kolejnych ofiar. Oczywiście takie rekurencyjne działanie nie kończy się nigdy (bo po co dbać o pamiętanie czy kontakt został już złupiony - w końcu chcę wyrządzać zł^W^Wnaprawiać świat a nie budować samosynchronizujący się system wymiany komunikatów) nawet po opierdoleniu z identity wszystkich ludz^H^H^H^Hnumerów. To nie wszystko. Gdyby w czasie ataku logować się na sukcesywnie kradzione konta i dodawać do listy kontaktów wszystkie uprzednio poznane konta (i vice-versa, na kontach dodawanych do listy też dodawać kontakt, któremu właśnie przybywa znajomych) możnabyłoby zbudować niekończące się listy obserwowanych numerów, których przepchnięcie przez sieć trwałoby dłuuuugie minuty! Och, ach! Cóż za wspaniała wizja, gdy Kasia i Basia wracając ze szkoły włączają Internet a klient gggadu-gggadu zaprasza je do rozmowy z całym światem! (jeśli uprzednio serwery sieci gg nie zawalą się pod obciążeniem ruchu).

Taka właśnie psota mi przyszła do głowy. To pewnie mój sposób na wyładowanie nerwów po spaleniu się prawie wszystkiego co się tylko spalić da w serwerze, z zasilaczem włącznie. No, dysk ocalał na szczęście.

To co, kto się podejmuje?

Digg del.icio.us StumbleUpon Wykop Reddit Folksr

add coment | permalink | trackback | rss

mixed $some_var;

09 Dec 2004

A jednak nie jestem za zamordziem silnych typów. Tak też sobie doszedłem do wniosku próbując przenieść (czego to się dla sportu/z nudów nie robi w przerwie w pracy) kawałek kodu z PHP4 na C#, potem Javę (lub raczej moje chwiejne kroczki w Javie). Kawałek ów zakładał wykorzystanie wzorca strategii do walidacji identyfikatora (be it NIP, PESEL, nr buta czy książeczki WR). Generalnie, chodzi o działanie na stringach, a gdy te staną się już liczbami, działanie na liczbach. O ile sztuczka ta w PHP wykonywalna jest za strzeleniem z palców, to w językach z silną kontrolą typów nie jest już tak łatwo.

Pamiętam jak będąc małym szczeniaczkiem nabyłem książkę wydawnictwa BUM Ogólne struktury danych, w której autorka (Agnieszka, nazwiska nie pomnę) rzeźbi przez 50 stron metody porównujące liczby dla różnych typów. A było to wszystko dla Pascala, więc i typów niemało (byte shortint word integer longint real comp(?) char string datetime i co tam jeszcze się plątało).
Dla mnie? Absurd. Już lepsze byłoby zastosowanie makra preprocesora C. A najwygodniej byłoby mieć w swoim $FAVOURITE_LANG konstrukcję pozwalającą na opuszczenie kontroli typów. Tak jest. Właśnie w ten sposób - co nie jest dozwolone jest zabronione, chcesz się wyluzować od silnych typów to weź to powiedz (czyli zupełnie inaczej aniżeli w PHP, nad czym bardzo boleję). W ten sposób do porównania integera z realem pani Agnieszce nie byłaby potrzebna żadna dodatkowa metoda, a przez co książka ta (bardzo dobrze wyjaśniająca ideę stosu i kolejki dla nie-assemblerowców) byłaby dużo chudsza, jeśli w ogóle byłoby ją po co wydawać.

Jeszcze jedno przypomniało mi się w kontekście Pascala i książki pani Agnieszki. Typy proceduralne/funkcyjne. Świetna rzecz.
Type TCompareFunc = function (arg1, arg2 : Integer) : Shortint
Daleko bardziej intuicyjne niż wskaźniki do funkcji w C. Też bardzo mi brak tego w PHP - do znudzenia będę płakał nad przekazywaniem funkcji przez literał w tym chorym skarłowaciałym języczku programowanka.

Z Pascala wiele już nie pamiętam i wypadłem z wprawy w wykorzystywaniu tych skrawków możliwości, jakie dawał, ale wydaje mi się, że 36 × 1015 funkcji porównujących można byłoby zastąpić prostym trikiem z jawnym rzutowaniem argumentów przekazanych jako Pointer na konkretny typ. Jako hardkorowego fanatyka Pascala te piekielne oszustwa rodem z C przerażały.

Hmm, chyba znalazłem źródło swojego pragnienia silnych typów ;-)

Digg del.icio.us StumbleUpon Wykop Reddit Folksr

6 comments | permalink | trackback | rss

Succesfully MOVed!

02 Dec 2004

Jestem przeprowadzony. Udało się.

chora kaczka Zabawa w Tarota dała efekt całkowicie przewidywalny, czyli losowy. Mieszkamy razem w wynajmowanej jamie pod Katowicami właściwymi. Mieszkanie jest stare i bezlitośnie ponaznaczane zębem czasu. Wspomnienia i przedmioty należące do trupów zamykamy szczelnie wpokoju z zagruzowanym przewodem kominowym, do którego bez wyraźnej potrzeby lepiej nie zaglądać. Drugi piec jest i ma się dobrze, a my przy nim. Nabyliśmy wyngiel drogą zakupu od jegomościa, który z całą pewnościę wszedł w jego posiadanie innym trybem. Odkuliśmy 27-mio letni brud i wynieśli niektóre absurdalne przedmioty - enerdowskie kubki-reklamówki, wczesnopowojenną kolekcję krawatów, figurki czekoladowe wykonane przez zLSDowanego cukiernika, butelki po odczynnikach chemicznych, moskitiery rodem z peegieeru (zadziwiające jak silny jest pęd homosapiensów do gromadzenia przedmiotów). Mamy szaloną łazieneczkę i uroczy pokój z niesamowitym słońcem przez większość dnia (tak twierdzi moja dziewczyna, ja wstaję przed wschodem, wracam po). Mamy chuderlawą lampę (handcrafted) i ładnie zrobione okna. Jest bardzo stara, ładna szafa. Rolety bambusowe tańsze i lepiej wykonane od tych z Ikei można dostać w Castoramie.

Jest bardzo dobrze.

Praca. Przede wszystkim jest. Po drugie: jest ciekawa. Wreszcie mogę docenić całą brzydotę PHP oraz pomysłowość niektórych develi na to jak w trzech krótkich krokach rozsadzić pracę zespołu przekazując obiekty/metody/cokolwiek przez literał, bądź jak położyć refaktoring na długie godziny korzystając z hacków w stylu $$_POST['object']->$$_POST['event'](&$_POST). Kiedy tworzę coś from the groun up - jest bardzo przyjemnie. Tu diagram, tam javadoc, później kod i na koniec dnia rogal na twarzy obwieszczający światu koderski orgazm. Jednak gdy po kilku godzinach zastanawiania się czemu wychodzą bzdury skoro wszystko jest dobrze dochodzi się w stopiędziesiątym dziedziczeniu, że anonimowy devel zapomniał wstawić & to.. z resztą kto wie, ten wie jak to jest.

Mam na uwadze taki jeden project. Sprytny sprzęg do ożenienia www z jabberem. Na razie brak czasu i całkowite odcięcie od netu, ale gdy będzie chwilka to może nawet nauczę się Pythona (w wersji Iron oczywiście) albo znajdę jakąś klasę dla dotnetu.

Mmm. Skończyła mi się przerwa. Pora wracać do Quanty (a taki ładny Gnomowy desktop miał być..) i Firefoksa.

Digg del.icio.us StumbleUpon Wykop Reddit Folksr

gee, one comment! | permalink | trackback | rss

Szukam mieszkania do wynajęcia

13 Nov 2004

Poszukuję mieszkania do wynajęcia w okolicy od Katowic do Gliwic z dobrym dojazdem KZK GOP lub PKP do Katowic i Zabrza. 2 pokoje lub duża kawalerka w stanie dobrym lub umiarkowanym, najchętniej nieumeblowane. Namiary na dobrą agencję mile widziane.

Będę^WBędziemy wdzięczni za informacje.

Digg del.icio.us StumbleUpon Wykop Reddit Folksr

add coment | permalink | trackback | rss

convertfs

25 Oct 2004

Zachciałomisię. I mam za swoje. Po weekendzie pełnym emocji i uroków takie głupoty czasami strzelają do głowy. 29G muzyki poszło w piach gdy kernel stwierdził, że on panic i połowa procesów zwisła na I/O.

Mogłem wybrać XFS...

Hansie Reiserze, jeszcze mnie popamiętasz! ;-)

Digg del.icio.us StumbleUpon Wykop Reddit Folksr

add coment | permalink | trackback | rss

Psota, figiel, igraszka

21 Oct 2004

Uwaga na lisy

Click and... where's my Firefox?!

Digg del.icio.us StumbleUpon Wykop Reddit Folksr

6 comments | permalink | trackback | rss

What would you choose (if you could)?

14 Oct 2004

Popełniłem instalację OpenOffice.org Milestone680 1.9.56. Pamiętając, że 1.9.54 nie chciało się uruchamiać po zalienizowaniu rpmów na deby i dysponując wolną partycją (po odkryciu partimage) zainstalowałem na potrzeby eksperymentu Windows XP. (Kamera, niskie ujęcie, mrok, zaczyna padać deszcz. Na twarze bohaterów wkracza niepewność a nawet trwoga). Instalacja szła jak po grudzie choć sprzęt wcale nienajgorszy. Ale ale. Mniejsza o Windows. Nic się tam nie poprawiło, dalej jest to strata czasu i nerwów. I jeszcze lilo zadeptuje, nie nauczyło się kultury chamidło.

Ale ale ale. OpenOffice.org, po lekturze wywiadów z dowódcą zespołu developerów OOo Louisem Suarez-Pottsem w ostatnim Linux+ i na NewsForge, stałej obserwacji Planet OpenOffice.org i sporadycznym zerkaniu na Development timetable dojrzał w moich oczach do próbnej instalacji. Przebiegła ona szybko i bezboleśnie, po czym odpaliłem rzeźbiony wczoraj do późna arkusz. Oczom moim objawiła się przedstawiona poniżej kupa.

OpenOffice
(click to enlarge)

Doznałem ciężkiego porażenia funkcji motorycznych (zaatakowało mi móżdżek) i nie byłem w stanie przeprowadzić testu, który sobie zaplanowałem. Z pozytywnych wrażeń utkwiło mi jedynie, że OOo2 jest wyraźnie szybszy od 1.1. Ale może wcale tak nie jest, tylko wdrukowałem sobie, żeby nie obnażyć prawdy "OOo nie ma żadnych pozytywnych cech". Nie wiem.

A teraz konkurs bez nagród. Po lewej stronie przedstawiono waniliową niemalże instalkę Windows XP. Po stronie prawej widzimy system Debian GNU/Linux z GNOME 2.8 podkręcony thematem Industrial. Który obrazek bardziej Ci się podoba: lewy czy prawy? Esemes z odpowiedzią wyślij pod numer.

Windows XP Linux, GNOME

Cholera, ależ jestem zniesmaczony. C, c, c. Do tego stopnia, że mbr próbowałem naprawiać podając do lilo jako plik konfiguracyjny /etc/fstab. Eeeeh..

Digg del.icio.us StumbleUpon Wykop Reddit Folksr

add coment | permalink | trackback | rss

13 Oct 2004

Co jakiś czas przychodzi na pcoa jakiś fanatyk z poczuciem misji i prawi, że żeby Linux wyszedł z niszy i stał się realną alternatywą dla systemów Microsoftu musi to a tamto. Otóż nic nie musi. To Microsoft musi. Bo podlega zwykłym prawom rynku. Linux nic nie musi bo nie ma najmniejszej szansy, że cały ten panie panie Linux zbankrutuje.

Ostatnio na topie jest temat ABI, którego marudy z pcoa uczepiły się jak Gocławski Jankowskiego. Pomimo ich kwękań i stękań nic takiego jak utrata przez Linuksa udziału w rynku nie następuje. Wręcz przeciwnie. Powolny marsz naprzód pozwala trwale zdobywać kolejne pola zastosowań bez adresowania kompromisów. Dzięki nieugiętej postawie dzużyny z lkml mamy takie spektakularne wydarzenia jak pojawienie się AIX-a po premierze Linuksa na architekturę POWER5.

Ciekawi mnie kiedy nVidii znudzi się utrzymywanie binarnych sterowników dla różnej (i rosnącej ostatnio) liczby architektur. Efektem kompromisu, którym byłaby stabilizacja ABI byłoby, że taki przykładowy użytkownik Macintosha mógłby sobie swojego GeForce'a conajwyżej na rurkę nawinąć.

Jak to dobrze mieć Matroksa.

Digg del.icio.us StumbleUpon Wykop Reddit Folksr

add coment | permalink | trackback | rss

12 Oct 2004

To już ta pora roku. Sońce jest tak nisko, że wchodząc na ścianę bloku rzuca na ekran wąziutki strumień światła. A już po chwili go nie ma..

Digg del.icio.us StumbleUpon Wykop Reddit Folksr

add coment | permalink | trackback | rss

clear LDA #0; blink INA; STA 710; wait LDX 20; CPX 20; BEQ wait; CMP #$ff; BEQ clear; JMP blink

07 Oct 2004

Callum McKenzie zrobił porównanie wydajności procesorów w operacjach niskopoziomowych. Wynik każdego z testów odniósł do czasu wykonania operacji zwiększania zmiennej o 1. Rezultaty są wielce zaskakujące, pokazują jak dalece nieudaną konstrukcją jest Pentium 4, jak wiele można jeszcze poprawić w PPC970, jaka żywa moc drzemie^H^Hała w Alfie (Rest in peace).

Ach, wzruszyłem się. Siedzę w połowie notki i myślę jakby tu nawiązać do starego dobrego 6502. To była maszyna! Niemalże czysty RISC. 3 rejestry procesora (akumulator + 2 indeksy), czas wykonania rozkazu 2 do 3 cykli (dla rozkazów indeksowanych, pośrednich i skoków względnych), 256 pseudo-rejestrów w przestrzeni adresowej od 0x100 do 0x1ff. Brak operacji mnożenia, ha! (moja kochana dziewczyna pewnie będzie się śmiać, że zamiłowanie do takich crippled kadłubków zostało mi do dziś, stąd kupione przez Allegro notebooki bez dysków twardych i baterii ;-)

A tam. 6502, M68k i HC11 ROX! Z80 i IA32 sux!

Digg del.icio.us StumbleUpon Wykop Reddit Folksr

add coment | permalink | trackback | rss

What Pre-85 Video Game Character Am I?

07 Oct 2004

Ja też tam byłam, sama sobie zrobiiiii-łam.

Gauntlet Adventurer I strive to improve my living conditions by hoarding gold, food, and sometimes keys and potions. I love adventure, fighting, and particularly winning - especially when there's a prize at stake. I occasionally get lost inside buildings and can't find the exit. I need food badly.

(If you were not a Gauntlet Adventurer you would be Mr Do)

Mr Do I am sedentary by nature, enjoying passive entertainment, eating when the mood takes me, and playing with my food. I try to avoid conflict, but when I'm angered, I can be a devil - if you force me to fight, I will crush you. With apples.

Digg del.icio.us StumbleUpon Wykop Reddit Folksr

add coment | permalink | trackback | rss

PHP na maturze

30 Sep 2004

Na dzieńdobry link do źródła. A teraz mięso, czyli dlaczego PHP nie powinien znaleźć się na maturze.

  1. Nie jest językiem ogólnego przeznaczenia. Można krzyczeć ile sił, że w PHP da się pisać aplikacje działające standalone. Ba, sam nawet miałem randez-vous z PHPGTK, jednak nie ma to wielkiego sensu. Ten język utrudnia do bólu pisanie takich aplikacji. Sama struktura rich-aplikacji jest znacząco odmienna od struktury web-aplikacji. Aplikacja webowa jest jednoprzebiegowa, punkt wejścia, punkty wyjścia i pośrodku cały pasztet: od uwierzytelniania, autoryzacji, badania stanu sesji, przez otwarcie połączeń z db, synchronizacja cache, powoływanie instancji silnika szablonów, wreszcie core logic. Tak się nie pisze aplikacji client-side. W porównaniu z elegancją GTK# PHP to zezowaty bękart bez jednej nogi.
  2. Nie jest językiem do nauki algorytmów. Wprowadza za duże zamieszanie. Wszystko to, co można osiągnąć w PHP da się bez problemu zrobić w C++, a że przy okazji delikwent zapozna się ze sposobem radzenia ze stringami, wyjdzie mu tylko na zdrowie. Wiedzy o zarządzaniu pamięcią nigdy za wiele.
  3. Nie jest językiem do budowania skutecznych algorytmów. Trudno, ale niestety szybkość implementacji ma się zazwyczaj ortogonalnie do szybkości wykonania. Produkując skuteczny algorytm należy wiedzieć ile czasu zajmie wykonanie danego etapu, jaka jest jego złożoność obliczeniowa, co należy zbuforować, a czego buforować się nie opłaci. W PHP takie rozważania to ruletka. Każda kolejna wersja interpretera może robić z kodem cuda na kiju i szukaj wiatru w polu gdy nagle wyskakuje timeout wykonania. Szczególnie niepewne jest w PHP zarządzanie obiektami i tablicami. Przy przejściu z wersji 3 na 4 i 4 na 5 obszar ten stał się grzęzawiskiem wciągających nierozważnych wyrobników kodu. Ponadto przy optymalizacji algorytmu nie można pozwolić sobie na zwalenie brudnej roboty na śmieciarkę, lepiej nawet nie mieć jej do dyspozycji. Zwłaszcza, że pehapowa śmieciarka raczej "działa" niż działa, pozwalając na alokację gigantycznych ilości pamięci.
  4. Wyrabia fatalne nawyki. PHP jest beztypowy. Obrzydliwie beztypowy i niekonsekwentny. Oczywiście istnieją takie króliczki jak is_integer, is_array, is_[...], ale nawet jawne przypisanie $a=0 spowoduje pozytywne rozpatrzenie warunku if($a==NULL). Stąd protezy w postaci === i !==, które nie pozwalają nawet na zastosowanie logiki trójstanowej (tylko od razu wielostanową). PHP nie wymaga inicjalizacji zmiennych, co prowadzi do trudnych w wychwyceniu błędów związanych właśnie z porównaniami (nie każdy jest na tyle karny, by stosować if($a===0) zamiast if(!$a)). PHP pozwala zapomnieć o wartościach początkowych zmiennych. To błąd. Wiele razy zdarzyło mi się odwołać do tablicy jak do zmiennej skalarnej. Język o silnej kontroli typów w migł by to wychwycił, a tak? grzebanina z var_dump tablicy, której pola referują do obiektów i innych śmieci wypluwających debug na 15 ekranów. Wszystkie te "udogodnienia" PHP sprawiają, że jest on po prawdzie potężnym narzędziem, ale początkujący programista z łatwością może postrzelić się w nogę (i w dodatku nie dowiedzieć się o tym). Ten język wręcz zachęca do dziadostwa w kodzie i bez twardej szkoły jaką daje C nie sądzę, by osoba (przeważnie) tak słabo doświadczona jak maturzysta mogła sobie poradzić z ujeżdżaniem tego mustanga. A raczej konia pociągowego, sądząc po prędkości działania.

Z powodów powyższych lepiej dla samych maturzystów byłoby, gdyby męczyli się z jakimiś klasycznymi językami, które uczą dyscypliny i niedpouszczają stosowania różnych kukieł zależnych od implementacji interpretera. PHP dopiero niedawno zaczął nadawać się do czegokolwiek ponad endżin forum czy maszynkę do liczenia głosów. Skończyły się harce z włączonym by default register_globals i pclp zalała fala postów od dłubaczy. Ostatnio, z wprowadzeniem nowej semantyki operatora przypisania w stosunku do obiektów przybyło kolejnych wyjątków, sytuacji szczególnych i niekonsekwencji, jakby FALSE==NULL==0==0.0==''==array() nie wystarczyło. Do starego, strukturalnego śmiecia doszły interfejsy, iteratory, autoloadery i inne bajery. Nie, ten język nie nadaje się do ogólnego sprawdzianu umiejętności. Jest zbyt zbyt wyspecjalizowany i pełen ciemnych zakamarków. Lubię ten język, bardzo nawet, ale dla maturzysty zdecydowanie nie.

Digg del.icio.us StumbleUpon Wykop Reddit Folksr

5 comments | permalink | trackback | rss

29 Sep 2004

Obroża przeciwpchłowe dla kotów pachną jak niebieskie tiktaki.

Digg del.icio.us StumbleUpon Wykop Reddit Folksr

add coment | permalink | trackback | rss