Monthly Archive for 11.2005

Jedna miłość

Jeszcze dziś nad ranem miałem okazję uczestniczyć w największym festiwalu muzyki reggae i pochodnych - One Love Sound Fest. Wrażenia bardzo mieszane.

Część artystyczna bez zarzutów (wręcz genialnie!). Stage of Unity, jako gospodarze, porządnie rozruszali widownię, tym samym otwierając muzyczną część One Love. Z niecierpliwością czekałem na wejście swojego faworyta - Irie Mafia. Panowie z Węgier bez trudu sprawili, że ludzie zaczęli skakać - zdecydowanie polecam. Potem wystąpiła jedyna tego wieczoru kapela dubowa - Wszystkie Wschody Słońca. Muzyka nieco monotonna, ale pełna energii. Oczywiście, z Irie Mafią nie mieli się co mierzyć ;). Zaraz po nich scenę przejęli trzej rasta z Natural Dread Killaz - zespołu bardzo młodego nawet jak na polskie realia, ale bez problemu rozpoznawanego także poza granicami Wrocławia. Zaserwowali nam potężną dawkę pozytywnych emocji, bujali tłumem, a jako zespół o korzeniach hiphopowych, nie mogli obyć się bez ponarzekania na policję ;). Koncert Indios Bravos odpuściłem sobie planowo i z wolałem czas ten spędzić na świeżym powietrzu - nie mam nic do zarzucenia Gutkowi i jego kolegom, ale z powodu swojej popularności zwyczajnie spowszednieli. Po zakończeniu ich występu, nie trzeba było nam dwa razy powtarzać, żeby wracać pod scenę - oto na scenę weszła gwiazda wieczoru - Abassi All Stars. Wystarczyło pierwszych kilka taktów muzyki, żeby pierwsze rzędy ludzi zamieniły się w młyn znany z najmroczniejszych koncertów bogów metalu. Zdecydowanie warto było czekać do wczesnych godzin rannych, by zobaczyć choćby tylko ten występ. Ból w nogach i brak tlenu nie były żadnym usprawiedliwieniem - bawili się wszyscy. Zmęczenie dało się za to zauważyć po zakończeniu występu - sala szybko opustoszała i na ostatni koncert - czeskiego Hypnotix - czekały już tylko nieliczne grupki niedobitków. Ze względu na problemy transportowe, sami opuściliśmy budynek i udaliśmy się w poszukiwaniu środków komunikacji miejskiej.

Od strony organizacyjnej było tragicznie. Toalety umieszczono przy samych szatniach, na końcu korytarza o szerokości dwóch metrów. Proponuję wyobrazić sobie dwa tysiące osób, tłoczące się w kilkudziesięciometrowym korytarzu. Wycieczka do toalety zabierała jakieś 40 minut. Do szatni dłużej, gdyż trzeba było dopchać się najpierw do toalet na końcu korytarza, a następnie tam zawrócić i ustawić się w powrotnej kolejce do szatni - zawrócić w tłumie nie było szans.

Mimo wszystko, kto nie był, niech żałuje.

Frappr!

Jako, że Frappr! robi się coraz bardziej popularny, dzisiaj zbudowałem w wolnej chwili mapę osób związanych z PLD. Wszystkich chętnych zapraszam do rejestracji.

Strip #021: O jabłuszkach

Tym razem na zamówienie Majqi.

Tutaj w graficznych przeglądarkach wyświetla się komiks

Strip #020: Prawdziwy cyber seks

Dzisiejszy komiks jest sponsorowany przez wpół do drugiej w nocy i brak kawy.

Tutaj w graficznych przeglądarkach wyświetla się komiks

Planet PLD i FTP Traffic

Wszystkich czytelników Planety PLD przepraszam za chwilowy burdel, jaki powstał dziś na planecie - poprawiłem wszystkie błędy w składni generowanego RSS i Planeta wciągnęła wpisy jako zmienione (zmieniły się GUID). Nie powinno się powtórzyć w przyszłości.

Strip #019: Życie informatyka jest smutne

Z góry przepraszam wszystkich, którzy nie zrozumnieją dzisiejszego odcinka, ale jest chyba najbardziej hermetycznym ze wszystkich dotychczasowych. Co smutniejsze, poniższa rozmowa miała miejsce w rzeczywistości.

Tutaj w graficznych przeglądarkach wyświetla się komiks

Nie każcie mi czytać bzdur

Różne programy mają masę problemów z interfejsem, ale te bolesne i podstawowe powtarzają się nader często. To samo tyczy się też po części serwisów WWW i aplikacji internetowych.

Przede wszystkim, nikt nie chce być informowany o wszystkim. Jasne, nie mam nic przeciwko komunikatom lecącym na konsolę - są bardzo pomocne, kiedy coś przestaje działać, ale - do jasnej cholery - nie chcę widzieć okna dialogowego z informacją, że program chce pisać pod adresem 0xDEADBEEF i przyciskiem Ok, mam to gdzieś. Jest tylko jedna rzecz, która mogłaby mi bardziej zepsuć przyjemność z używania aplikacji - pytanie mnie o zgodę przy każdej takiej czynności. Jeśli programu mają używać ludzie, to niech autor przyjmie sensowne wartości domyślne. Zwykłego użytkownika nie obchodzi, jak program działa i do czego próbuje uzyskać dostęp, nie bawi go zabawa z certyfikatami SSL i ma generalnie w dużym poważaniu wszystko, co nie jest oczekiwanym efektem końcowym.

Jeśli nagrywam płytę, to nie chcę wiedzieć, że jakiś bufor się napełnił. Jeśli słucham muzyki, to nie interesuje mnie pomyślne odnalezienie tagów z danymi autora i tytułem piosenki. Podobnie, jak jadąc samochodem nie chcę być informowany o pomyślnej zmianie biegów. Jasne, powiadom mnie o czymś, co trwa niesamowicie długo (dla typowego użytkownika niesamowicie oznacza wszystko powyżej kilku sekund), ale zrób to w tym samym oknie, które pokazuje pasek postępu operacji (albo throbber, ale o tym napiszę kiedy indziej).

Jeżeli masz jednak bardzo dobry powód, by pokazać mi wyskakujące okienko, to - u licha - nie czyń go modalnym. Wyobraź sobie, że jedziesz sobie właśnie rowerem, kiedy to na środku ulicy wyskakuje ci okienko z informacją o tym, że przejechany dystans sugeruje wizytę w przeglądzie. Zasłania kierownicę i blokuje hamulce. Nadjeżdżająca z naprzeciwka ciężarówka z pewnością mobilizuje cię do dokładnego zapoznania się z komunikatem przed jego zamknięciem.

Tu pojawia się inna kwestia - skoro pokazujesz mi tyle wyskakujących komunikatów, że na ich zamykaniu spędzam niemal tyle czasu, co na właściwej pracy, to jak u licha wyłowię spośród nich te ważne? Czytanie wszystkich nie wchodzi w grę, a autorzy uwielbiają wręcz nadawać przyciskom wiele mówiące etykiety: OK i Anuluj. Widać umieszczenie tam napisów Zapisz i Porzuć zmiany wymaga nieprzebranych lat studiów w dziedzinie HCI.

Update: zapomniałbym o moim ulubieńcu. Pochodzenia już sobie nie przypomnę, ale któryś program obdarzył mnie takim oto komunikatem: Czy jesteś pewien, że nie chcesz zapisać zmian? Ok; Anuluj.

Trzy kroki do szybszego bootowania PLD

Przyglądałem się ostatnio projektom implementującym alternatywy dla naszych rc-scripts i nasunęło mi się kilka pomysłów, które można ułożyć w logiczne etapy. Szczegóły poniżej.

Równoległe uruchamianie procesów

Pierwszym krokiem powinno być nauczenie naszych skryptów startowych bootowania równocześnie wszystkich procesów o równym priorytecie. Przez priorytet rozumiem kolejność bootowania, którą obsługuje chkconfig (na tej podstawie nazywa symlinki w odpowiednich poziomach init).

Najprościej rzecz ujmując, powinien uruchomić dla każdego z nich proces w tle i przed przejściem do procesów z wyższymi priorytetami poczekać, aż każdy z procesów potomnych się zakończy.

Do wyświetlania efektów działania procesów potomnych potrzebny byłby jakiś wrapper, który buforowałby wyjście z procesu tak długo, aż ten się zakończy bądź sforkuje w tło, a następnie wyświetlał całość (w przeciwnym wypadku wyniki działania poszczególnych initskryptów mieszałyby się między sobą).

Oznaczenie zależności pomiędzy procesami

Następnie konieczne byłoby wprowadzenie wzajemnych zależności pomiędzy initskryptami. Wystarczyłoby wprowadzić dwa dodatkowe słowa kluczowe do komentarzy w nagłówku plików: before: i after:, które oznaczałyby, że dany skrypt powinien zostać wykonany odpowiednio przed lub po innym skrypcie. W ten sposób na przykład dostarczany przez pakiet apache skrypt httpd mógłby otrzymać:

# after: mysql network pgsql

Oznaczałoby to, że powinien zostać wykonany dopiero po każdym z wymienionych tam skryptów (jeśli dany skrypt w ogóle istnieje i jest przypisany do aktualnego poziomu init - w przeciwnym wypadku powinien zostać zignorowany).

Nowy chkconfig

Ostatnim etapem byłoby napisanie nowego programu chkconfig, który zamiast wpisanych na sztywno w skrypty priorytetów, uwzględniałby wprowadzone w poprzednim kroku zależności. Na tej podstawie procesy byłyby sortowane i przyznawane byłyby im priorytety i stosowne linki dla poziomów uruchomienia.

Opcjonalnie, można napisać zupełnie niezależny od chkconfig program, który będzie tylko aktualizował priorytety w nagłówkach plików startowych usług. Efekt końcowy będzie ten sam (choć kontrowersyjna może być modyfikacja samych skryptów - rpm będzie je traktował tak, jakby zostały zmienione przez użytkownika).

Procesy wzajemnie niezależne otrzymywałyby ten sam priorytet, przez co uruchamiane byłyby jednocześnie. Zniknęłyby sytuacje, gdzie jeden skrypt czeka na zakończenie innego, zupełnie z nim nie powiązanego. Powinno to zaowocować sporym przyspieszeniem całości procesu podnoszenia systemu.

Think future, think AJAX

Masa ludzi odkrywa ostatnimi czasy nowe możliwości współczesnych przeglądarek, największą popularnością wśród technologii opartych o JavaScript cieszy się zaś AJAX. Wynalazek potężny, a im potężniejszy, tym bardziej podatny na nadużycia. O ile pierwsze masowo wykorzystujące AJAX serwisy robiły to z całkiem uzasadnionych powodów (Google Maps i GMail są wszak aplikacjami, a nie serwisami informacyjnymi), o tyle coraz częściej widzę strony, gdzie AJAX został użyty, bo to AJAX. Jest fajny, jest modny, wszędzie da się wcisnąć. Żeby pokazać, jak absurdalne są niektóre pomysły, przygotowałem własne, najgłupsze na świecie zastosowanie technologii AJAX. Na szczęście na taki pomysł nikt jeszcze nie wpadł (a przynajmniej nic mi o tym nie wiadomo).

PLD FTP Traffic

Dzięki uprzejmej zgodzie Łukasza Jernasia, do którego należy maszyna zasilająca Planetę PLD, od dzisiaj dostępna jest nowa usługa - kanał RSS dla ruchu FTP.

Feed jest uaktualniany dwa razy dziennie i podłączyłem go na dobry początek do Planety. Skrypt obsługujący generowanie feedu napisałem przez 10 minut w bashu, więc zobaczymy, jak dobrze będzie się spisywał. Czekam na uwagi i zapraszam do subskrypcji. Przypominam, że kanał jest aktualizowany co 12 godzin, więc odświeżanie go co 2 minuty mija się z celem - szanujcie łącze Łukasza.

Przy okazji Planety - jeśli ktoś z deweloperów PLD prowadzi bloga, a nie jest tam syndykowany, to proszę się zgłaszać do mnie. Jestem opiekunem serwisu i chętnie podłączę.

Jeden z nas jest teraz w wyjątkowo trudnej sytuacji życiowej, Mariusz, jesteśmy z tobą.