ChangeBlog  •  Archiwum  •  Kategorie  •  Artykuły  •  Galeria  •  Czytelnicy  •  Rupieciarnia
RSS wpisów  |  RSS komentarzy
Miesiąc 2005/02, 6 wpisów
Nowy HBS, fotosy mojego miasta,

Punkt pierwszy: aktualizacja Hierophanta. Nowy pythonowy skrypt generujący zależności (nie działa dokładnie tak jak stary, więc momentami może wyszukiwać nieco więcej zależności), Void dorzucił też mały patch związany z dociąganiem plików z sieci. Nic wielkiego, ale po wstępnych testach chcę dać innym możliwość przetestowania nowego generatora zależności. A, w katalogu contrib/ jest skrypt orphseek.sh - prościutki skrypt któremu podaje się jako argument pojedynczy katalog ("/usr/lib", "." itp.), a on skanuje zawartość i podaje nazwy obiektów które nie należą do żadnego zarejestrowanego pakietu. Czyli innymi słowy wyszukuje sierotki. Po jego użyciu zdecydowałem się na spakietowanie u siebie fontów, danych quake2, doom1/doom2 itp. Wywaliłem też jakieś bezpańskie pliki z /usr/include... Dobre przy czyszczeniu systemu. Oczywiście nowy Hiero do pobrania z Rupieciarni. A to bezpośredni link do paczki źródłowej.

Punkt drugi: jakiś czas temu poproszony byłem o próbkę "zwykłych" zdjęć ze swojego aparatu, więc wziąłem parę widoczków Zielonej Góry strzelonych jakoś jesienią. Leżało to "skrycie" na Repo, ale sobie przypomniałem o tym "tymczasowo udostępnionym folderze" i chcę go skasować, ale zanim to zrobię dam oficjalny link do tych paru fotek Zielonej Góry. Fotki pstrykane z marszu, zgrabiałymi łapkami, w niezbyt przyjemny jesienny dzień. W naturalnej rozdzielczości mojego aparatu, bez obróbki gimpem. Pierwsza to kranik na deptaku, druga to ludzie przekładający dach przy deptaku (na jakiejś dwu czy trzypiętrowej kamienicy), trzecia to fragment Ratusza (a w zasadzie front Bachusa - takiej restauracji w piwnicach Ratusza), czwarta to już "pod Filarami" - taki krótki kawałek przy którym jest apteka, kawiarnia, bukiniści itp. A filary to widać na zdjęciu. Piąta to zdewastowany obiekt Polskiej Wełny (ten co to latami nie mógł zostać sprzedany mimo starań syndyka, bo Polska Wełna to zabytek i konserwator zabytków narzuca inwestorom swoje reguły gry, więc mało kto chciał to kupić), ostatnia fotka to fragment ul. Kupieckiej (tak, ona jest w większości wybrukowana i zamknięta dla aut - styka się z deptakiem). W sumie to mam takich fotek więcej, może wrzucę je kiedyś. Ale kogo obchodzi jak wygląda miasto z którego pochodzę? :(

Punkt trzeci: backup muszę zrobić (dlatego porządkowałem drzewko katalogów). Więc kończę i biorę się za backupowanie :)

Piętnuję kierowców i ReiserFS4

[MASKOTEK] Orbital - Lush. Fajny. Jak zresztą cały Orbital. Ale ja nie o tym miałem... Uch, znowu zapomniałem co miałem napisać. Dobra, to zacznę niechronologicznie. Parę dni temu prawie rozjechał mnie samochód. Była ślizgawka, szedłem sobie grzecznie uliczkami osiedlowymi gdzieś przy Budziszyńskiej chyba, miałem przechodzić przez jezdnię, ale widzę że coś jedzie... a że to było przy samym zakręcie i widziałem samochód od frontu, to nie mogłem oszacować jego prędkości i wolałem nie ryzykować wpychania się pod koła. No więc widzę jak sobie tak dosyć szybko jedzie nieduże czerwone autko... dojeżdża do mojej pozycji... i nie wyrabia zakrętu. Tzn. zignorowało zakręt i pojechało sobie dalej. A w zasadzie to poślizgało się, bo kierowca co prawda skręcił kołami, ale samochodzik to zignorował. No i bez redukowania prędkości doślizgał się do mnie (na jakieś pół metra ode mnie), wskoczył prawym przednim kołem na chodnik, lewym przednim już nie dał rady, zaklinowało się przy krawężniku i go obróciło. Tylne prawe jeszcze wskoczyło na chodnik, ale tylne lewe już nie. Obracając się tak przyrąbał nim w krawężnik, że dziwne że go sobie nie urwał. W środku był jakiś młody chłopak i dziewucha, on wyglądał na mocno przestraszonego a ona na zszokowaną kompletnie. Korzystając z okazji że autko się nie rusza poszedłem dalej swoją drogą. Swoją drogą co za palant pruje tak po osiedlowych uliczkach? W zimie, gdy droga śliska a ludzie nogi łamią na chodnikach? Wioząc swoją siostrę/dziewczynę/żonę na dodatek? To trzeba mieć naprawdę w głowie narąbane. Piętnuję nieodpowiedzialnych młodych kierowców bez grosza wyobraźni czy umiejętności prowadzenia auta. Więcej nawet, jestem za odstrzałem. Państwo powinno każdemu pieszemu obywatelowi wydać obrzyna i przydział kilkunastu naboi na miesiąc. Żeby móc się bronić przed matołkami za kierownicami. Ile razy taki świr mnie już o-mało-co-a-by-potrącił na przejściu... Gdybym miał Ustawowego Obrzyna to mógłbym go szybko wyciągać zza pazuchy i strzelać do kierowcy przez tylną szybę jego oddalającego się auta... A prywatny majątek kierowcy by można skonfiskować i przeznaczyć na budowę porządnych dróg... Np. w zeszłym tygodni odstrzeliłbym takiego palanta który na al. Wojska Polskiego wsiadł na ogon "erce" na sygnale. Ot, spryciarz. Wszyscy zjeżdżają na bok żeby auto przepuścić, a on się przepycha i gdy tylko karetka go minęła wsiada jej na ogon. Jemu również życzę rozgrzanego pręta w... (...)

Czytaj dalej...
Zoptymalizowałem wykrywanie zależności w HBS

Void wziął się za dalsze pythonizowanie Hierophanta (na celownik wziął /etc/hbs/{prep,post}) - wiele to tam nie wywalczy, ale po spythonizowaniu będę mógł trochę ulepszyć automatykę tych sekcji. A w następnym kroku da się może wchłonąć te mechanizmy całkiem w główny skrypt HBS i trochę uprościć jego integrację z resztą, choć to by wymagało nielichych przeróbek.

Ja wziąłem się za skrypt generujący listy PROVIDES/REQUIRES. To był brzydki "legacy code" którego tak naprawdę nie rozumiałem, pisany w mieszance shella i awka i przeportowany prawie żywcem z RPM-a. Jego spythonizowanie chodziło za mną od dawna. Ale ostatecznie napisałem pythonową wersję /etc/hbs/deps... Wyszła przeszło dwa razy dłuższa niż oryginał, ale to mnie nie martwi specjalnie. Ważniejsza jest wydajność:

[j:0 c:0]/home/grzegorz/projekty/PORT> time ./old_deps
./old_deps  25.72s user 4.86s system 98% cpu 31.007 total

[j:0 c:0]/home/grzegorz/projekty/PORT> time ./old_deps
./old_deps  25.47s user 4.79s system 99% cpu 30.398 total

[j:0 c:0]/home/grzegorz/projekty/PORT> time ./deps.py 
./deps.py  0.87s user 0.11s system 99% cpu 0.991 total

[j:0 c:0]/home/grzegorz/projekty/PORT> time ./deps.py
./deps.py  0.86s user 0.11s system 99% cpu 0.975 total

Imponujące :) Każdy skrypt pracował oczywiście na tych samych danych wejściowych. Przeanalizowałem działanie rpm-owego oryginału i znalazłem sporo miejsc w których dało się coś zoptymalizować. Ogólnie obciążenie procesora spadło przez to o całą masę procentów. A dokładniej to o 96,8%. Nie znaczy to że generowanie zależności będzie od tej pory trwało taki ułamek czasu, bo wąskim gardłem jest tu nadal I/O dysku (choć i tak odwołania do dysku zredukowałem do drobnego ułamka koszmaru jaki wyprawiały stare skrypty), więc przyspieszenie powinno być "zauważalne jak cholera". Aha, w szybkim teście na /usr/lib nowa wersja wyłapała o parę zależności więcej niż oryginał. Teraz muszę porobić jeszcze parę "regression tests", każę mu generować listy dla każdego pakietu jaki mam teraz zainstalowany i porównam je z oryginałami, choć nie sądzę by mi się jakieś usterki przemknęły...

O, Void podesłał mi właśnie pythonową wersję procedury PREP. Na razie odłożę na bok, bo tego się nie da tak po prostu podmienić jeszcze...

Sprostowanie: Można by odnieść wrażenie, że we wczorajszej mojej wypowiedzi Void został przedstawiony w złym świetle. Ze względu na tendencyjny i wyrwany z kontekstu cytat można go było odebrać jako programistę olewającego użytkowników. To oczywiście nie jest prawdą, przepraszam jeśli ktoś tak odczytał ten tekst, nie było to moją intencją. Void jest oczywiście programistą bardzo wyczulonym na potrzeby użytkowników i nigdy by nie odpuścił żadnemu odkrytemu błędowi.
Oświadczenie to napisałem w pełni zdrowia psychicznego, z własnej nieprzymuszonej woli.
Hoppke.

Nowe zakupy, nowe obserwacje

[CITY WEBCAM] Tym razem zdjęcie jest pożyczone :) To webcam zamontowany za szybą któregoś z pokoików w Zielonej Górze. Powinien udostępniać nowe zdjęcie co dwie sekundy, więc w chwili gdy czytasz te słowa Zielona Góra pewnie wygląda właśnie tak jak to zdjęcie. Tylko że jest mniej rozmyta (mogliby na tym webcamie ostrość lepiej ustawić albo co...)

Następny punkt dzisiaj - moja klawiatura. Sprawuje się bardzo dobrze. Przyzwyczaiłem się już do ułożenia klawiszy, do niskiego entera, także wyżej położony Home/End nie sprawiają mi problemów. Zacząłem używać tego wypustka na "F" do rozpoznawania położenia klawiszy (wcześniej macałem raczej za krawędzią tyldy, teraz się okazało - złapałem swoje palce na głaskaniu plastiku obudowy w tamtych rejonach :) Doceniam wykończenie klawiszy - jest naprawdę porządne, a na dodatek nie-gładkie. Tzn. to nie jest błyszczący, gładki jak lustro lany plastik. Ma nieco chropowatą fakturę. Jakoś przyjemniej się go muska opuszkami, no i nie widać na nim odcisków palców i "nie brudzi się" tak jak gładkie klawisze. Klawiszy multimedialnych nie wykorzystuję - po pierwsze jeszcze ich nie obindowałem (jedynie play/pause podpiąłem pod xmms), po drugie nie jestem do nich nawykły jeszcze.

Dzisiaj wreszcie sprawdziłem czy stary, zdezelowany mikrofon jeszcze działa... działa, ale szumi okropnie. Może da się jednak użyć do nagrania kiedyś jakiejś burzy... albo deszczu. Uwielbiam muzykę deszczu. A dzisiaj sobie na próbę nagrywałem moje stukanie w klawiaturę. Używałem audacity do nagrania i usunięcia szumu (niestety deformuje to nieco dźwięk). Potem podbiłem głośność (ale nie przez normalizację, więc znowu zakłóciłem balans dźwięku - ale bez tego nie było słychać w ogóle części naciśnięć klawiszy). A potem zakodowałem do Ogg Vorbis, ze średnią bitrate == 32kbps. W rezultacie zachowało to może 70% oryginalnego dźwięku klawiszy (z tych 30% jakieś 25 zeżarł fatalny mikrofon). Do nagrania próbek głosu nie mogę tego jednak użyć, to by nie miało już sensu. A dla ciekawskich to ta próbka z mojej klawiatury (440KB, 85 sekund). Aha, nagranie zostało wykonane w tempie 1:1 - mówię to, bo już mi Enleth zwracał uwagę na nieco "dziwne" brzmienie momentami. Faktycznie, gdy pisałem to jakoś nie zwróciłem na to uwagi. (...)

Czytaj dalej...
Poprawki w HBS

Na razie błyskawiczny update - nowa wersja Hiero (20050207). Void poprawił coś przy ściąganiu źródeł i pakowaniu ich potem w pakiet "*.hbi", a potem wzięliśmy się za naprawianie problemów z symlinkami wyłażącymi w różnych częściach HBS. Od tej pory symlinki do katalogów nie będą już w FILELIST zapisywane jak "prawdziwe" katalogi (tzn. nie będą już dostawały "/" na końcu ścieżki), dzięki temu poprawiło się zdecydowanie działanie hbsinst i hbsremove w sytuacjach gdy te symlinki trzeba usunąć. A ja pogrzebałem jeszcze trochę przy hbshelper i teraz "hieroq -f" też sobie o wiele lepiej radzi w różnych sytuacjach. Dzięki tym wszystkim przeróbkom także tryb weryfikacji pakietów (hieroq -V) odzyskał pełną sprawność. Aha, aby poprawić błąd wprowadzany przez starsze wersje Hierophanta przygotowałem skrypt contrib/symlinks_convert.py. Skanuje on bazę w /var/lib/hbs i konwertuje istniejące wpisy symlinków tak, by i zainstalowane już pakiety mogły w pełni skorzystać z poprawek w narzędziach. Oczywiście przed operacją warto zrobić gdzieś backup /var/lib/hbs, na wszelki wypadek (choć nie przewiduję by coś się mogło popsuć, skrypt jest bardzo prosty i mieści się na jednym ekranie). Have a nice day :)

PS. Nowy Hiero do pobrania oczywiście z Rupieciarni.

Nowa klawiatura, nowa taryfa sieciowa, nowy HBS

Doobra. Znowu się nie wyrabiam z czasem, niestety. Może jutro nadgonię... taki mam zamiar przynajmniej. OK, więc o czym by tu... a, wiem. Hierophant. Nieduży update. Zobaczmy co też się zmieniło... a, część regexpów rozpoznająca źródła itp. jest teraz case-insensitive, to powinno zwiększyć skuteczność automatycznych procedur w niektórych okolicznościach. Void dodał ściąganie patchy z internetu (tzn. teraz można chyba również patche podawać jako URL-e w [files]) i poprawił jakiś błąd z zapętlaniem się HBS-a na symlinkach przy budowaniu pakietu źródłowego. Cthulhu dodał generowanie skryptów postinstalacyjnych dla gnomowych plików *.schemas, a Hoppke po bugreporcie Cthulhu załatał problem ze ścieżkami dłuższymi niż 100 znaków. Ten release nie jest jakimś przełomem, ale to dobrze - to znak, że hbs działa w sumie całkiem poprawnie. Największym kłopotem był ten drobny feler w tarfile.py - ominięcie go wymagału paru minimalnych zmian w kodzie, o wiele mniej inwazyjnych niż początkowo myślałem. Zajęło mi to tyle czasu, bo chciałem mieć pewność że dobrze wszystko zdiagnozowałem i że obrałem właściwą ścieżkę by to załatać. Kiedy Void spythonizuje kompresowanie manuali i stripowanie binarek/generowanie zależności, to kod ulegnie dużo drastyczniejszej rearanżacji. Albo i nie :) No dobra, nowa wersja Hierophanta w Rupieciarni.

Problemy z siecią zażegnane. Przesiadłem się na droższy abonament który zdaje się mieć lepiej dostrojone regułki dzielenia ruchu. Sieć działa o wiele lepiej (60-90KB/s nie jest przeszkodą, przy dobrym partnerze na drugim końcu połączenia i niedużym ruchu w lanie wykręcam i 150KB/s), na dodatek admin poprawił mi regułki firewalla na mniej restryktywne. Ha, znowu mogę słuchać smoothjazz.com :) Ale będę musiał płacić o 10 zł więcej miesięcznie. Trudno, przeżyję to jakoś. Na dodatek admin planuje kupić porządniejsze radio, więc możliwe, że jakość usługi pójdzie jeszcze bardziej w górę. (...)

Czytaj dalej...