Staczam się… ;-)
Chyba się staczam… ostatnio zarywam noce kodując w… PHP. ;-)
Wszystko dlatego, że postanowiłem u siebie postawić
system śledzenia błędów dla PLD. Stary był brzydki i
niezbyt wygodny, a przez ostatnie tygodnie nie działał w ogóle — zbytnio
obciążał maszynę na której był postawiony, a poprawiać go nie było komu.
Dyskusja na temat alternatywy powracała już kilka razy na listy zwykle bez
efektu. Jednak pewną tendencję w dyskusjach można było zauważyć — nowy
system powinien być opary o jakieś gotowe rozwiązanie, najlepiej żeby to była
Bugzilla, Mantis lub Flyspray. Bugzilla mi się nie podoba (stanowczo za dużo
kontrolek w formularzach), poza tym wydaje się na tyle skomplikowana, że jej
dostosowanie do naszych potrzeb mogłoby okazać się trudne i długotrwałem.
Mantisa nie znam, a Flyspray, znany
z Buggera po prostu mi się podoba,
a skoro ja użyczam sprzętu i chcę sie tym zająć, to moje zdanie może być
decydujące. :-)
Tak po prostu postawić Flyspray’a to byłoby za mało. On powstał dla
zupełnie innych projektów niż PLD. Np. pole system operacyjny
nie ma
u nas sensu, zamiast tego ważniejsza jest architektura. Poza tym w błędzie
najistotniejszy jest pakiet którego dotyczy i jego wersja. Nie chciałem dla
każdego pakietu robić osobnego projektu (osobne projekty są dla poszczególnych
linii dystrybucji (Ra, Ac, Th) i innych projektów związanych z PLD (ten BTS,
LiveCD, RescueCD)), więc wykorzystałem obecne już pole kategoria
.
Trzeba było przy tym mocno zmienić interfejs, gdyż pole wyboru pakietu
zawierające listę wszystkich pakietów (tysiące!) to byłoby nieużywalne.
Podobnie z wersjami, które w oryginalnym Flyspray są określane per-projekt,
a u nas muszą być per-pakiet. To wszystko udało się właściwie zrobić.
Udało mi się też przenieść bazę pluskiew ze starego systemu.
Poza zmianami przystosowawczymi
wprowadziłem też inne ulepszenia.
Np. język interfejsu jest konfigurowalny per-użytkownik, a domyślnie brany
z ustawień przeglądarki. Poza tym włączyłem serwowanie stron jak
application/xhtml+xml dla przeglądarek które to akceptują. To
zresztą uziemiło system na jakiś czas, bo się okazało, że XHTML to strony
generowane przez Flyspraya mają tylko w DOCTYPE. No na głównej stronie nie
było źle, nie walidowała się jedynie z powodu pustego <optgroup/>.
Niestety większość pozostałych stron nie była nawet well-formed XML
przez co przestała się w ogóle wyświetlać. Wczoraj udało mi się większość
z tego poprawić, więc już się wyświetla w przeglądarkach obsługujących XML,
ale raczej Valid XHTML Strict
to w większości nie jest.
No i dzisiaj wreszcie udało mi się uruchomić narzędzie, które w poprawianiu
tego XHTMLa może mi pomóc:
HTML Validator dla Mozilli. Polecam! Niestety to rozszerzenie w postaci
gotowej do zainstalowania dostępne jest jest jedynie dla Windowsów.
W Linuksowym Firefoksie instaluje się bez zająknięcia, ale po prostu nie
działa. Okazało się, że w środku siedzi binarka nstidy.dll,
nstidy.so trzeba sobie samemu skompilować (źródła rozszerzenia są
dostępne). Do kompilacji teoretycznie potrzebne są źródła Mozilli, ale nie
uśmiechało mi się ich instalowanie i kompilowanie, więc jakoś poradziłem sobie
bez tego — w końcu hacker jestem! ;-)
Poza BTSem podłubałem trochę w automatyce builderów (małe zlecenie do
Havnera). To już była czysta przyjemność, bo automatyka jest w Pythonie.
:-) Niestety okazało się, że przy okazji coś po psułem
i w niedzielę w nocy, zamiast iść spać musiałem poprawiać…
Nowy ejabberd
Niedawno wyszedł Ejabberd
0.7.5. Czekałem na niego, bo miał mieć StartTLS i ulepszony interfejs
administracyjny. Wczoraj zainstalowałem go na jabber.bnet.pl.
Przy okazji wyszły błędy (dotyczące AMD64, którego akurat używam na tym
serwerze) w paczce dla PLD.
I rzeczywiście, na stronie
administracyjnej pojawiła się opcja dodawania userów, a przy połączeniu
możliwość użycia StartTLS. To ostatnie objawiło się w CJC pięknym tracebackiem
i komunikatem błędu, że zły XML przyszedł. Na konsoli XML śmieci. Oczywiście
coś spieprzyłem przy ostatnim oczyszczaniu kodu
. Nie miałem StartTLS na
serwerze, to nie zauważyłem.
Dzisiaj w pracy poprawiłem, wspomniane błędy w paczce ejabberd, a także
problemy w budowie erlanga na builderach. W oficjalnym Ac oba pakiety powinny
się niedługo pojawić. Wieczorem poprawiłem też obsługę StartTLS w PyXMPP i CJC
(oba trzeba było poprawić) i już mogę się cieszyć szyfrowanymi połączeniami z
serwerem. I to na normalnym porcie! :-)
Co było jak mnie nie było – wersja oficjalna ;-)
W piątek Pojechałem do Ustronia na Jesień Linuksową. Z domu wyszedłem
o 13:10, ale z Gliwic wyjechałem o 14:10, bo najpierw stałem na stacji w
kolejce po gaz, a potem się głupio władowałem w korek na Portowej. Do Ustronia
dojechałem bez problemu (dziwne, bo wcześniej tam nie jeździłem, a wybrałem
sobie trasę drogami, których prawie na mapach nie widać). Niestety,
zapomniałem przed wyjazdem sprawdzić gdzie to właściwie mam dotrzeć. Myślałem,
że może jakoś na pamięć trafię, ale się nie udało. Zadzwoniłem do żony, która
robiła za komputerowy system nawigacji i przeczytała mi przez telefon mapę z
Internetu. Niewiele to dało, poza tym że poznałem nazwę ośrodka i ulicy.
Zrobiłem kółko po Ustroniu, aż w końcu zapytałem jakiś ludzi o ul. Wczasową i
ośrodek Wiecha. Nie wiedzieli, odesłali mnie na rynek do planu miasta. Na
planie centrum takiej ulicy nie było, ale na mapie okolicy też nazwy ulic były
podane. Więc udało mi się ośrodek zlokalizować, a potem nawet dojechać. To
dziwne, bo chyba nigdzie nie widziałem gorzej oznaczonych ulic. Zamiast
tabliczki przy każdym wjeździe, widocznej z każdej strony, to ulice miały
najwyżej jedną, zwykle niewidoczną i to tylko pryz niektórych skrzyżowaniach.
Dojeżdżając pod ośrodek wymęczyłem samochodzik na tamtejszych drogach (na
niektóre podjazdy dwójka okazywała się za wysokim biegiem, ale jakoś autko
sobie radziło).
Już w piątek było parę fajnych wykładów i pół nocy przegadane o
okołolinuksowych pierdołach. W sobotę też prelekcje. We wszystkich nie dało
rady uczestniczyć, mimo że część wypadła z agendy. Większość z tych, których
wysłuchałem podobała mi się. Wieczorem było ognisko, przy którym mieliśmy
dodatkową atrakcję na gapę
. Jakaś konkurencyjna
impreza w
ośrodku obok miała w programie pokaz sztucznych ogni. Imponujący. Takiego
łomotu to nawet na Sylwestra nigdy nie widziałem. Po ognisku (czy raczej w
trakcie, bo tam jeszcze się coś tliło i ktoś przy tym siedział) oczywiście
tradycyjne Karaoke, a więc stado wyjących pingwinów. Część tej atrakcji
mnie ominęła, bo odwoziłem dziewczynę smoka do centrum — ciekawe
przeżycie: jazda nocą i we mgle tymi krętymi stromymi ulicami. Po powrocie do
ośrodka miałem zamiar wysłać ten wpis (jego pierwotną wersję) na Joggera, ale
ten odmówił współpracy. Byłem zły.
W niedzielę o mało nie zaspaliśmy na śniadanie. Po śniadaniu wysłuchałem
dwóch wykładów i nie wytrzymałem — musiałem dać upust mojemu grzybowemu
maniactwu i przed obiadem poszedłem jeszcze na godzinkę do lasu. Las może nie
typowo grzybowy, bo głównie bukowo-świerkowy i do tego strasznie
krzywy
, ale w jednym miejscu znalazłem kilka ładnych prawdziwków i
kozaków. I tak planowałem zajrzeć do lasu (ale już nizinnego) w drodze
powrotnej, ale skoro tam też był las…
Do domu zbierałem się zaraz po obiedzie. Odwiozłem smoka do centrum, i
wziąłem jednego pasażera do Gliwic. Po drodze zajrzeliśmy jeszcze do lasu pod
Żorami, ale wysypu grzybów nie stwierdziliśmy (jeden malutki podgrzybek), mimo
że samochodów pod lasem cała masa. No cóż, tamtego lasu nie znam, może grzyby
były, a ja po prostu nie wiedziałem gdzie szukać. Do domu (właściwie to do
teściów, gdzie żona rodzinka czekała) dotarłem około 16:30.
Nie tak całkiem leniuchuję…
Postanowiłem przenieść listy dyskusyjne moich projektów z Enemies of
Carlotta na mailmana. To pierwsze nie bardzo się
rozwija, a i możliwości ma skromne, a z mailmanem i tak się muszę męczyć przy
innych listach (przy okazji się przekonałem, że od strony administratora jest
nieco przyjemniejszy). No i nawet listy działają. Udało się to nawet pogodzić
z moją SQLową bazą użytkowników synchronizowaną na zapasowym MX. Jednak
stwierdzam, że mailman to gniot, szczególnie ten z paczki PLD
(której jednak nie chciało mi się poprawiać). A już zupełnie obsługa
wirtualnych domen dla postfixa (tak jak on to robi, to te domeny są średnio
wirtualne, bo listy zaśmiecają przestrzeń nazw systemowych użytkowników).
Ale przejście się chyba opłacało. Listy jak już ruszyły to działają, a archiwa
wyglądają lepiej.
Jakiś czas temu jeden z Release Managerów
PLD prosił mnie, abym
dorobił ACLe na branche do automatyki builderów. Wczoraj więc się za to
zabrałem: cvs up, poprawka, login na src-builder (najważniejszy z
builderów), cvs up i sprawdzam jak to działa… W tym czasie inny
developer PLD mnie informuje, że jak robię te poprawki na HEAD, to to się na
nic nie zda, bo to co jest na HEAD i tak się na buildery nie nadaje, bo ów
developer coś tam samemu psocił. No fajnie, ale przecież właśnie to na głównym
builderze zainstalowałem…
Na szczęście psuja zostawił taga na ostatniej działającej wersji
automatyki. Z taga zrobiłem brancha, przeniosłem tam swoje poprawki i z tego
brancha zrobiłem cvs up na builderze. Jeszcze parę poprawek do
mojej poprawki i ACLe na branche działają :-). Mogłem wreszcie
pójść spać (0:30).
W przedpoprzednim wpisie, tam gdzie wspominałem o RFC 3920, 3921, 3922 i
3923, wspominałem, że dodam odwołania do tych RFC do dokumentacji PyXMPP.
Jednak dopiero przed chwilą mi się to udało, przez te zabawy z automatyką
builderów i listami dyskusyjnymi. Ale za to dopisałem też odwołania do
wszelkich innych implementowanych RFC i JEPów. Będzie łatwiej znaleźć
odpowiedni dokument jak będzie trzeba coś sprawdzić.
A jutro jadę na Jesień Linuksową
:-).
Choroba się przenosi na kolejne pokolenie…
Krysia od czasu, do czasu się dorywa do dużego komputera. Słychać
wtedy:
— cieba odpalić dżabela!
— odpalam dżabela!
— jeszcze tylko napisie komentarz!
— zepsułam dżabela!
— piszę komentarz!
Czasem za ciągnie któregoś rodzica do dużego komputera lub laptopa i:
— tu dżabeluj!
Dziecko ma też swój putel
— starą klawiaturę leżącą na stole.
Tam też dżabeluje
czasem. Ostatnio robiła porządki w zabawkach i na
dnie chomika
znalazła myszkę. Chyba nie potrafiła tego nazwać, ale jej
powiedziałem, że to myszka
(i nic więcej). Dziecię zaraz to wzięło i
wdrapało się na swoje krzesełko przy stole:
— dzidzia podłączy myśkę tu do putela!
Hip, hip, hurra! XMPP to już Proposed Standard
!
A więc protokół Jabbera, a dokładniej jego unowocześniona wersja, został
oficjalnie zatwierdzony przez IESG i zyskał miano proponowanego
. Jest teraz dostępny w postaci dokumentów RFC o numerkach:
standardu
3920,
3921,
3922
i 3923. :-)
Ja z tej okazji postaram się dzisiaj uzupełnić dokumentację PyXMPP o odwołania
do odpowiednich fragmentów tych dokumentów.
Wrrr… i akurat teraz Jogger nie działa 😦
Rozpowszechnianie standardów…
Już pisałem o tym, że do generowania dokumentacji do PyXMPP używam
Epydoc. Bardzo ładnie wyciąga
dokumentację z kodu, ale… zajrzałem wczoraj do wygenerowanego HTMLa.
Najpierw miła niespodzianka, DOCTYPE XHTML 1.0 Transitional
. Jednak
radość znikła gdy zapuściłem na tym
. Nawet xmllint --valid
--nooutwell-formed
to nie było.
nie lepiej. Ani o XHTML, ani HTML. Gdy zajrzałem do środkaxmllint
--html
moje obawy się potwierdziły — koszmarek. Wstyd mi by było to na stronie
projektu publikować.
Wczoraj więc wypełniłem bugreporta na SourceForge, a
dzisiaj w tym podłubałem i conieco porawiłem. Już się waliduje, niestety nie
jako XHTML Strict
, bo to ramek używa. Ale i tak usunąłem wszystkie
<center/>,
<font/>,
<b/>,
<i/>, itp.,
zamieniając na coś odpowiedniejszego i dodając odpowiedni styl. Poprawiłem
też funkcję kolorującą regexpy (w dokumentacji pyxmpp.jid wrzucała znak bajt 0
do wyniku) oraz obcinającą za długie fragmenty HTMLu (żeby zamykała tagi).
Patcha dołączyłem do bugreportu i opisałem na liście dyskusyjnej. Zobaczymy co
z tego wyniknie ;-). Mam nadzięję, że patch nie zostanie olany.
Coś nie tak z resolverem…
Już jakiś czas temu ktoś miał problemy z CJC, które nie łączyło się z tym co
trzeba, czy nie mogło znaleźć serwera. Pomyślałem, że to mój resolver nawala,
ale user który to zgłosił stwierdził, że miał bzdury w swojej konfiguracji
(/etc/resolv.conf).
Dzisiaj dwóch (a może jeden wczoraj, nie pamiętam) użytkowników zgłosiło mi,
że CJC zwraca błąd, że serwer odrzucił połączenie. Poprosiłem o logi i w
jednym z tych logów jak byk było, że CJC szuka
, a potem łączy się zjabber.bnet.pl
209.73.243.23, który to adres IP nie ma nic z
jabber.bnet.pl wspólnego. Drugi user w logach nie miał nic na ten
temat (nie wiem czemu), ale zaczęło mu działać dopiero po podaniu adresu IP
serwera w konfiguracji CJC.
Czyli jakiś błąd ewidentnie jest, ale ja nie wiem jak go szukać. Bo oczywiście
u mnie działa.
Dymy — część 4 i ostatnia (miejmy nadzieję)
Autko już stoi pod blokiem. Okazało się, że strzelił trójnik doprowadzający
płyn do parownika gazu. Był plastikowy, teraz założyli mi metalowy —
powinien wytrzymać dłużej. Dzisiaj kumpel mi mówił, że też kiedyś coś takie
miał, więc widać w Uno na gazie tak bywa. Przy okazji trzeba było spuścić
stary płyn i na nowo napełnić instalację.
Okazało się też, że przez roztargnienie zapewniłem mechanikom dodatkowy
kłopot. Zostawiłem im kluczyki, ale zapomniałem powiedzieć jak się immobilizer
wyłącza… Na szczęście jakoś sobie poradzili (kontaktując się z żoną).
Razem kosztowało nas to 80zł. Nie jest źle, o ile podobnie niespodzianki
nie będą się zdarzać częściej.
