Rewolucja w kompie

Niedawno pojawiło się nowe XFCE: 4.4.
Najpierw chciałem to w pracy sobie zainstalować, ale okazało się, że ani tego
nie ma w PLD Ac, ani nie da się w tym Ac zainstalować. Instalacji Th wolałem
nie ryzykować na maszynie która służy mi do pracy… co innego w domu, tam
ostatnio używam jedynie CJC i Firefoksa. Uznałem, że dwie aplikacje jakoś do
działania doprowadzę.

Upgrade nie był prosty. Masy rzeczy w repo Th brakuje. Wiele zależności
jest zepsutych. Cała masa pakietów zbudowanych w Ac wymaga X11-*, albo
XFree86-*, których w Th już nie ma (wystarczyłyby zależności od libX*, które
pociągnęłyby odpowiednie pakiety xorg-*). Dodatkowo, żeby nie było za prosto,
mam u siebie pomieszane pakiety 32- i 64-bitowe. Ale jakoś się udało…

Pierwsze co chciałem odpalić, to Xy. W końcu dla nowego XFCE jest ta cała
szopka… Poprzednio używałem 64-bitowego X-serwera i zamkniętych sterowników
ATI. Otwarte nie dawały akceleracji, a zamknięte nie działały, gdy X-serwer był
32-bitowy (generalnie większość systemu mam 32-bitowe), a kernel 64-bitowy (bo
tylko taki pozwala mi odpalać binarki i 32- i 64-bitowe). Teraz chciałem
spróbować z serwerem 32-bitowym i sterownikami Open Source, w końcu między X.org
7.0, a 7.2 coś mogło się zmienić…

Jedno się nie zmieniło – sterownik z X.org wciąż nie rozpoznaje mojej
karty (ATI Technologies Inc RV370 secondary [Sapphire X550 Silent]) i obsługuję
ją dopiero po dodaniu do xorg.conf: ChipId 0x5b60. Akceleracja 3D też nie
ruszyła, chociaż sterownik DRM w kernelu się załadował i kartę poprawnie
wykrył… logi sugerowały, że znowu może być coś z tymi bitami… Zainstalowałem
więc 64-bitowy X-serwer z 64-bitowymi sterownikami. DRI ruszyło. Rozszerzenie
„Composite” też. Mogłem podziwiać piękną przezroczystość w XFCE. Najpierw
działało to strasznie wolno, ale po poprawieniu paru opcji da się tego używać.
Jednak z OpenGL coś wciąż było nie tak… mimo że glxinfo pokazywało, że
wszystko jest OK i nawet Direct rendering: yes. To glxgears nie działało.
Znaczy się działało, ale nic nie wyświetlało. Podobnie wszystkie inne aplikacje
3D…

Spróbowałem więc zamkniętych sterowników… musiałem przebudować, bo w Th
były stare, niekompatybilne z nowymi Xami. Nowe się zbudowały, nawet działały,
ale bez akceleracji 3D. Linker dynamiczny nie mógł znaleźć jakiegoś symbolu od
DRI w modułach X-serwera… pewnie te zamknięte binarki nie są zgodne z naszym
buildem X.org… no cóż, tym razem lepiej wypadły sterowniki otwarte.

Wróciłem do otwartych sterowników i spróbowałem jeszcze czegoś:
zainstalowałem 64-bitowe glxgears… i ruszyło. Czyli tym razem, pod 64-bitowym
kernelem, nie tylko X-serwer musi być 64-bitowy, ale i wszystkie aplikacje
OpenGL. Przykre… ale chwilowo mogę z tym żyć. Ostatnio i tak wiele takich
aplikacji nie używam. Właściwie, to tylko StepManię.

Dzisiaj więc postanowiłem sobie skompilować StepManię na 64-bity. Środowisko
do budowania zrobiłem sobie w chroocie z czystym 64-bitowym Th. Zainstalowałem
co StepMania potrzebowała i zacząłem budowanie. Od razu się wykrzaczyło… SM
jest w C++, a C++ ma to do siebie, że kod napisany dla starszego kompilatora
często nie da się skompilować nowszym. W PLD Th mamy GCC 4.2 i to GCC kodu
StepManii nie polubiło. Jednak potrzebnych poprawek nie było dużo i większość
z nich była nawet dla mnie (nie znającego i nie lubiącego C++) oczywista.
W końcu się skompilowało. I nawet dało się uruchomić.

Skompilowana przez mnie StepMania działała, ale tak jakby nie do końca. Nie
dało się wejść do ustawień gry, a rozpoczętej gry nie dało się wygrać. Jak się
poprawnie przeszło którąś piosenkę, to maszyna puszczała ją od początku.
Można by się było zajechać ;-). Podczas kompilacji widziałem
warningi dotyczące, między innymi, strict aliasing rules, więc
postanowiłem spróbować kompilacji z innymi opcjami. Okazało się, że skrypt
configure StepManii na sztywno ma wpisane -O3. To już mogło sprawiać
problemy. Zmieniłem na -O2 i dodałem -fno-strict-aliasing i całość
skompilowałem od nowa. Podczas kompilacji ćwiczyłem sobie na tej niedorobionej
binarce – ciekawie się gra, gdy komputer się czasem zagapi i nie
zauważy
, że się strzałkę wcisnęło na czas. ;-)

Po kilkunastu minutach miałem nową 64-bitową binarkę gotową. I tym razem
działa dobrze. To sobie jeszcze kiedyś poskaczę. :-)

W kolejce czeka zbudowanie GComprisa dla
Krysi, bo stare wyleciało razem z Ac (w Th tego brak).

Wkurza mnie ten Firefox…

Niedługo po wydaniu Firefoksa 2.0 zainstalowałem go sobie na komputerze w
pracy. I tylko tam, bo szybko się okazało, że jest z nim poważny problem:
wiesza się losowo co jakiś czas, nawet kilkanaście razy dziennie. Okropnie to
wkurzające. Gdyby nie to, że Fx 2.0 ma parę fajnych ficzerów (szczególnie
sprawdzanie pisowni) i że downgrade nie sprowadza się tylko do „upgrade
–downgrade mozilla-firefox” w Poldku, to już bym dawno to wywalił. Nie
wywaliłem, ale i w domu sobie tego nie zainstalowałem. A w pracy się ciągle
wkurzam…

Ale nie to jest najbardziej wkurzające, że jest błąd. W każdym programie
zdarzają się błędy ale, że nie można go normalnie zgłosić (jak już pisałem: twórcy
Firefoksa nie chcą moich bug-reportów
), ani normalnie zobaczyć co się z
błędem dzieje (nie ma zgłoszeń błędów w konkretnym wydaniu, a więc nie można
sobie zobaczyć listy błedów w Firefoksie 2.0, a w tej całej masie zgłoszeń z
całej historii Mozilli ciężko znaleźć właściwe). Wiem tylko, że nie jestem
sam, wystarczy w Google wpisać: firefox 2.0 random freeze, żeby się
przekonać, że nie mnie jednego Fx 2.0 wkurza… Niestety, nie znalazłem nic na
temat przyczyn błędu, jakiś workaroundów, czy planów jego naprawy (to wszystko
IMHO powinno być z bugzilli).

Czy naprawdę mam jakieś dziwne wymagania co do systemu zgłaszania błędów?
Dla mnie to naturalne, że jednym z celów istnienia takich systemów jest
inwentaryzacja błędów w konkretnych wydaniach. Tak, żeby użytkownik mógł
sprawdzić co w konkretnej wersji siedzi, czy jego problemy zostały zauważone,
czy może się spodziewać naprawy. A tu nic… Nie działa ci oficjalne wydanie i
chcesz zgłosić problem? To ściągnij nightly-build i debuguj… Nie chcesz, bo
jesteś tylko zwykłym użytkownikiem? To mamy Cię w nosie…

Długo powstrzymywałem się przed tym narzekaniem… ale dzisiaj nie
wytrzymałem, gdy mi się zawiesił dwa razy w ciągu jednej minuty…

Last.fm Client

Wróciłem po urlopie do roboty, chciałem sobie puścić muzyczkę, no to
zajrzałem na Last.FM, co tam nowego.
Okazało się, że wreszcie jest Last.FM Client pod Linuksa. Ściągnąłem,
odpaliłem i wygląda całkiem miło – już na pierwszy rzut oka wydaje się
dużo bogatszy i wygodniejszy od starego Last.FM Playera. Muzyczka gra.
:-) …trzeba zająć się robotą. :-(

Firefox windowsieje?

This address is restricted

This address uses a network port which is normally used for purposes other than
Web browsing. Firefox has canceled the request for your protection.

Teraz będzie przeglądarka mi mówić co jest dla mnie dobre? Gdyby to jeszcze
chodziło o jakieś realne zagrożenie, czy adekwatne do zagrożenia
zabezpieczenie. Jeśli coś mi się ma stać od skierowania przeglądarki na port
„79”, to czemu niby port np. „76” miałby być bezpieczny?

SNMP pod Linuksem…

Mamy w firmie kilkadziesiąt modemów, kilkanaście zarządzalnych switchy,
ileś urządzeń radiowych. To wszystko razem tworzy dość skomplikowaną sieć.
A ja, wraz z kolegami muszę nad tym zapanować. Oczywiście radzimy sobie, ale
bywa to dość upierdliwe. Zwykle konfigurujemy urządzenia i badamy ich stan
przez WWW lub telneta. Oczywiście każde urządzenie ma inny interfejs,
a z każdym z tych interfejsów są jakieś problemy (np. w jednym modemie hasło
zmieniam elinksem, a przepustowość firefoksem, bo pierwsze nie działa
w firefoksie, drugie w elinksie). Sprzętu przybywa, więc zarządzanie nim staje
się coraz większym problemem.

Fajnie by było móc zarządzać wszystkim z jednego miejsca. Można część zadań
zautomatyzować jakimiś skryptami z osobnymi backendami dla każdego typu
urządzenia (tak mam teraz zrobiony backup konfiguracji części urządzeń)
i całością zarządzać w jednym miejscu (własny interfejs WWW), ale tu byłaby
kupa roboty. Taka śmierdząca kupa… więc sobie to daruję, przynajmniej na
większą skalę.

Jest jednak coś co łączy większość naszych urządzeń: SNMP. Prawie wszystkie te urządzenia obsługują
SNMP. Dotychczas używałem tego tylko do monitorowania wykorzystania łącz,
ewentualnie traktowałem jako ficzer, który należy wyłączać ze względów
bezpieczeństwa (niektóre urządzenie po ustawieniu hasła dostępu do WWW
i telneta dalej pozwalały na dostęp r/w przez SNMP z community name
private). Wczoraj, myśląc nad zautomatyzowaniem kolejnego zadania
(przygotowania konfiguracji MRTG dla wszystkich switchy, zsynchronizowanej
z danymi o topologii sieci z bazy danych), zacząłem się zastanawiać, czy nie
można by spróbować tego SNMP jakoś szerzej wykorzystać…

Od razu zaznaczam, że z SNMP jestem dość zielony, co może mieć duży wpływ
na to co napiszę poniżej – jak pisze bzdury, to prosze dać znać.

Wiem, że jest coś takiego jak słynne Open View, którego na oczy nie
widziałem, ale podejrzewam, że byłoby tym czego poszukuję. I to, że na pewno nas
na to nie stać. Postanowiłem poszukać coś tańszego, najlepiej otwartego i za
darmo. Zacząłem oczywiście od tego co widzi poldek…

Poldek, poza narzędziami do monitorowania urządzeń, w sensie rysowania
statystyk (to mi już u mnie MRTG + RRDTool załatwiają), znalazł niewiele. GXSNMP
jest nierozwijany od lat, a gdy go ostatnio oglądawał, to się za bardzo nie
nadawał do użytku. Tym razem sobie go darowałem. Kolejny był Scotty, którym już
też kiedyś się bawiłem. Pamiętam go jako brzydkie, ale działające coś w Tk/Tcl.
Chciałem znowu tego spróbować, ale nawet się nie uruchomiło. Scotty okazał się
niekompatybilny z aktualnym Tcl (używa jakiegoś prywatnego symbolu, którego
w nowej wersji biblioteki brak). Na razie nie chciało mi się z tym dalej
walczyć.

GXSNMP i Scotty to narzędzia nie tylko do zarządzania siecią przez SNMP, ale
też, a może przede wszystkim, do rysowania mapy sieci. Do SNMP poldek pokazał mi
jeszcze Mbrowse – Mbrowse is an SNMP MIB browser based on GTK and
net-snmp
. Pomyślałem, że to może się przydać – pozwoli się dobrać do
konkretnych zmiennych urządzenia. Po zainstalowaniu się nawet uruchomił, pokazał
drzewko MIB… ale nie udało mi się tym odczytać chociażby jednej wartości
z localhost (snmpwalk i snmpget z konsoli działały).
Do kitu.

W PLD nie znalazłem czego szukałem (rzadko to się zarza), to zajrzałem na
Freshmeat. Pierwsze na co tam
trafiłem, to MIB
Views
, firmy Muonics. Oprogramowanie komercyjne, z możliwością darmowego
wypróbowania przez piętnaście minut. Postanowiłem spróbować. Na pierwszy rzut
oka wygląda podobnie do Mbrowse, tyle że dużo ładniej… i działa. Wygląda na
to, że to co ma robić, to robi i robi to dobrze. Interfejs jest ładny
i wygodny (na tyle, na ile mnie się to udało teraz stwierdzić). Jednak raczej
tego nie kupimy – MIB Views nie daje żadnych mechanizmów zarządzania
całą siecią. W danym momencie pracuje się z jednym urządzeniem (agentem
SNMP), a żeby przełączyć się na inne trzeba od nowa podawać jego parametry.
Jeszcze muszę zobaczyć jak to będzie działać z konkretnymi urządzeniami (na
razie bawiłem się w domu, tylko z localhost), ale raczej to sobie darujemy.

Na Freshmeatcie znalazłem też trochę otwartego lub darmowego
oprogramowania. W szczególności zainteresowały mnie dwa Javowe programy: Open
Eyes i NetWhistler. Obydwa służą do
tworzenia mapy sieci i zarządania siecią. Pierwszy ma brzydki i mało
intuicyjny interfejs, nie chciało mi się w to wgłębiać. Drugi wydaje się
całkiem sensowny, ale strasznie długo z nim walczyłem, żeby dodać tam chociaż
jedną maszynę. Okazało sie, że NetWhistler działa tylko uruchomione z roota,
inaczej wali jakimiś mało mówiącymi wyjątkami. To zdaje się być normą
w oprogramowaniu Javowym – oprogramowanie zakłada, że ma dostęp do
wszystkich swoich plików, a instalator NetWhlister upierał się jeszcze, żeby
instalowac z roota. W każdym razie, z roota chodzi i nawet daje się używać,
ale na kolana nie powala. I zakłada, że wszystko jest zorganizowane w ładne
podsieci IP (u nas to bardziej skomplikowane – wiele VLANów, podsieci
w kilku VLANach jednocześnie, adresy oderwane od jakiejkolwiek podsieci)
i bezpośrednio dostępne (u nas wiele sieci jest odizolowanych, nie chciałbym
włączać pomiędzy nimi routingu, żeby wszystko dało się zapingowac z workstacji
adminów). Może warto się tym jeszcze pobawić… a może i nie.

Z oprogramowania na Freshmeat znalezionego pod hasłem SNMP zainteresowało
mnie jeszcze jedno: Internode
Nodemap
. Internode Nodemap to zestaw narzędzi to tworzenia map sieci, ale
nie koncentrujące się na urządzeniach, ale na łączech. Sama mapa nie jest
wyklikiwana, ale wczytywana z plików konfiguracyjnych. Pod każdą mapkę może być
podłożony obrazek jako tło – w ten sposób można np. wrysować swoje łącze
na plan miasta. To mogło by się dobrze u nas sprawdzić, wymagałoby jednak sporo
pracy – wypadałoby zrobić coś co zamieni dane o topologii sieci z naszej
bazy na plik konfiguracyjny dla Internode Nodemap i dołożyć informacje
o geograficznym/fizycznym położeniu urządzeń (czyli zrobić interfejs w którym to
będzie można wyklikać). Możliwy do uzyskania efekt kusi, więc może się tym
zajmiemy.

Wciąż nie jestem w pełni zadowolony z wyniku poszukiwań. To co znalazłem
może i może się do czegoś przydać, ale ciągle to nie jest to.
Nie znalazłem narzędzia, które mógłbym po prostu zainstalować i stosować,
wiedząc, że ułatwi mi pracę i nie musząc dostosowywać tego do naszej sieci, czy
naszej sieci do tego narzędzia. Np. myślałem o czymś, co mogło by bezpiecznie
(wykorzystując SNMPv3) korzystać z SNMP proxy na maszynach z dostępem do
zamknietych sieci. Jednak mało co umie SNMP w wersji 3, a obsługi proxy (czy
raczej kontekstów, bo jak dobrze zrozumiałem, to do tego się to sprowadza) nie
widziałem nigdzie. Liczyłem też na to, że uda się jakoś wykorzystać dane
o topologii sieci z naszej bazy – co do czego i jak jest podłączone.
A może wciąż gdzieś tam jest coś, czego nie znalazłem, a co rozwiązało by
wszelkie moje problemy…

Panorama

Gdy ostatnio
szalałem z aparatem
, to zrobiłem też kilka zdjęć z okna, do
panoramy. Słyszałem kiedyś o jakimś narzędziu do składania panoramy
z takich zdjęć, więc chciałem spróbować.

Spróbowałem dopiero dziś, z nudów, gdy mi Internet padł. W narzędziach
zainstalowanego GIMPa nic odpowiedniego nie znalazłem, więc poszukałem
poldkiem wśród pakietów PLD. Znalazłem Hugina
i autopano-sift.
Żeby to zainstalować musiałem poczekać na powrót sieci, ale, na szczęście, nie
trwało to długo.

Na początku Hugin się sypał, dopiero po uaktualnieniu paru bibliotek
przestał rzucać Segmentation Fault. Pierwsze co mi się rzuciło w oczy, to
przerażająca liczba przycisków i opcji. Niewiele z tego rozumiałem, więc
po prostu klikałem gdzie popadnie. O dziwo, udało mi się w ten sposób uzyskać
jakąś panoramę. W kiepskiej rozdzielczości i z dużą ilością nicości, ale
coś wyszło. Podłubałem jeszcze opcjami które udało mi się zrozumieć,
wygenerowałem coś w dużej rozdzielczości, przyciąłem GIMPem i oto, co mi wyszło:

panorama.jpg

Fajna zabawka z tego Hugina. Od razu widać, że lepszy efekt uzyskało by się
ręcznym, a przede wszystkim stałym ustawieniem ekspozycji (chociaż pewnie
i to można jakoś w Huginie skorygować), bo automat zrobił każde zdjęcie w nieco
innych kolorach i jasności. Ale i tak, efekt ostateczny mnie zaskoczył. Bardzo
pozytywnie.