Ktoś se robi jaja, ja se robie jaja…

To zacznę od siebie – w zeszłym tygodniu zainstalowałem sobie
jabberd-2.0b1 na jabber.bnet.pl. Fajny nowy serwerek Jabbera,
obsługujący XMPP w tym autentykację SASL, szyfrowanie StartTLS,
privacy-lists. W ogóle super… tylko że beta. Więc się sypał na okrągło
trochę błędów znalazłem, część poprawiłem, wszystkie zgłosiłem na
JabberStudio (poprawione wraz z patchami). Teraz działa już nieco
lepiej, ale do stabilności jabberd-1.4.x (który swoją drogą był niezłym
i przestarzałym bublem) wciąż mu daleko. :-(. Podziwiam
cierpliwość swoich userów :-).

tkabber-0.9.5beta miał błąd w obsłudze SASL, więc go musiałem sobie
poprawić (zgłosiłem oczywiście też alekseyowi), mając już serwer
obsługujący StartTLS dodałem też tego obsługę do PyXMPP i CJC (trzeba
jeszcze dokończyć weryfikację certyfikatu i obsługę błędów).

Tydzień temu kupiłem (na koszt firmy) kartę muzyczną do mojej stacji
roboczej w pracy. Nie miałem głośniczków, więc do testów pożyczyłem
słuchawki od kumpla – karta działała. Dzisiaj wreszcie skombinowałem
głośniczki. Próbuję coś zagrać… i cisza. :-( Kombinowałem
ze sterownikami – nic, podłączyłem te same słuchawki co poprzednio
– nic, zmieniłem slot PCI – nic. W końcu sprawdziłem jeszcze na
komputerze kolegi (z Windows) – też cisza. To fajnie się tym dźwiękiem
pobawiłem… Na szczęście kumpel miał dzisiaj przy sobie inną kartę
– podobno zepsutą, która „charczy”. Ale zawsze lepsze „charczenie” niż
PC-speaker.

Od piątku mamy problemy z łączami międzynarodowymi. Podobno to przez
atak DDOS na operatora który daje nam łącza – nie mogli się doprosić
o przyblokowanie tego u operatora który daje im łącza międzynarodowe.
Dzisiaj pingi wróciły do normy, nam wszystko działa pięknie, ale klienci
dzwonią że u nich nie. Okazało się, że z naszego routera łączność
w świat jest, ale już od klientów nie. Później okazało się, że gdzieś
w Świecie walnięty jest routing na 1/8 naszej przestrzeni adresowej
– akurat ten zakres adresów który przydzielony jest klientom sieci
osiedlowych… Albo jakiś admin machnął się przy konfiguracji routerka,
albo jakiś chakier bawi się czyimś routerkiem. W każdym razie na szybkie
rozwiązanie problemu podobno nawet nie mam co liczyć :-( .
Ale jak to przetłumaczyć klientom???? :-(

Dalej na wakacjach…

…ale niestety tylko do piątku. 😦 Ostatnio pogoda zupełnie się popsuła i od ostatniego wpisu chyba ani razu nie plażowaliśmy. Grzybów też ciągle nie ma (pierwszy raz spotkałem się z czymś takim, że w środku sezonu w lesie nie ma _żadnego_ jadalnego grzybów, a znalezienie niejadalnego to też wielka sztuka). Żadnej ryby też nie złowiłem… Ale i tak nie chcę wracać.

Rozpoczęło się głosowanie do Jabber Council. 9 kadydatów i 5 miejsc. Ciekawe jak mi pójdzie. Żadne pytania od wyborców do mnie nie dotarły (po to przyszedłem do kawiarenki, aby odpowiedzieć na ewentualne pytania) – widać większość jest pewna mojego skreślenia (albo wybrania). Wszystko okaże się 17-tego września.

Teraz trochę uzupełnienia poprzedniego wpisu – to co chciałem już wtedy napisać, ale zapomniałem.

Zachęcony komentarzami na Joggerze postanowiłem przeczytać coś Pratchetta (dobrze to piszę? pewnie nie). Kupiłem więc jedną książkę, potem drugą… i trzecią. Zdążyłbym na tym urlopie przeczytać jeszcze z dwie, ale to byłaby rozpusta. Iwonie też się podoba, więc przynajmniej nie będzie miała nic przeciwko takim wydatkom w przeszłości 🙂

Gdy jeszcze była pogoda i się plażowaliśmy żona była jedyną kobietą na plaży (przynajmniej w obrębie kilkuset metrów) opalającą się topless – trochę z powodów praktycznych – dzidziuś i tak by ciągle swoją „spiżarnię” wyciągał. Poprzednio, gdy byliśmy nad morzem więcej osób się tak opalało. Ciekawe czy to czasy się zmieniły, czy ta Pogorzelica to takie nieprzyzwoicie przyzwoite miejsce. Ale nawet nikt się nie burzył z tego powodu.

Dawno nie pisałem

Dawno nie pisałem, bo ostatnio każdą wolną chwile przy komputerze spędzałem
ulepszając mojego Konsolowego Klienta Jabbera (CJC). Jest to coraz bardziej
użyteczny programik. Z podstawowych rzeczy brakuje mu teraz chyba jedynie
obsługi subskrypcji obecności i dodawania użytkowników – do zrobienia w ciągu
najbliższych dni. Cały czas szukam chętnego do ulepszenia wyglądu mojego
programiku – ja nawet nie umiem dobrać sensownych kolorków do rostera.

Od pierwszego sierpnia będę pracował w nowej siedzibie firmy 🙂
i od jutra czeka mnie przeprowadzka :-(. Ale może mi się uda uniknąć
najgorszej roboty.

Operator naszego głównego łącza „w świat” w piątek w nocy coś „naprawiał”
i do rana praktycznie nie mieliśmy Internetu. To bardzo duży problem odkąd
prowadzimy Biuletyn Informacji Publicznej dla całego miasta – ta usługa nie może
nie działać. Dlatego zastanawiałem się nad postawieniem BGP (mamy jeszcze jedno
łącze do polpaka). Ale jak dowiedziałem się jakie to koszty (kilka tysięcy zł.
miesięcznie od każdego operatora, nie mówiąc już o routerze który to
pociągnie), to ten pomysł musiałem sobie podarować. Inny pomysł podrzucił szef
– nasze łącze do polpaku słabe i zapchane, ale od bardzo długiego czasu nie
leżało – więc może by tak ruch z tego polpaku wyrzucić na drugie łącze, a polpak
zostawić na BIP. No ale to wiązałoby się z przeadresowaniem dużego kawała sieci
i sporymi zmianami w routingu, a pozatym ruch na głównym łączu wzrósł by o kilka
Mb/s. Jest też pomysł zestawienia nowego polpaka, ale to znowu koszty. Ciekawe
na czym stanie.

Aleksey Shchepin zasugerował, że powinienem zgłosić się do Jabber Council.
Spytałem Petera Saint-Andre co o tym sądzi i też stwierdził że to dobry pomysł.
Naskrobałem więc swój „position paper”, ale jeszcze nie wysłałem (mam czas do
końca miesiąca), bo nie ufam w swój angielski i umiejętności pisania takich
rzeczy. Dam jeszcze komuś do przejrzenia, zrobię ewentualne poprawki i wtedy
wyślę. Byle bym tylko nie przegapił terminu! Może się też okazać, że nie
przyjęli mnie do JSF (powinni zadecydować do 24 lipca, ale jeszcze nie znam
wyników), wtedy problem sam się rozwiąże.

Nie ufajcie swoim rosterom

Dzisiaj znalazłem buga w Psi,tkabberze,Gabberze. Pewnie jest też w większości innych klientów. Jedyny który się oparł atakowi to mój CJC. 😉 Niektórzy już się przekonali jak to działa, a wielu się pewnie dopiero przekona, bo wysłałem właśnie informację (wraz z exploitem) na bugtraq, jadmin i jdev. Ale inaczej nie dotarłbym do autorów wszystkich klientów, więc tak chyba lepiej.

Życzę szybkich poprawek w waszych ulubionych klientach. 🙂

Coś mi ostanio odbiło…

… i postanowiłem napisać własny serwer Jabbera – w pythonie, zgodny ze
specyfikacją XMPP i w ogóle bajerancki. Pewnie i tak nic z tego nie wyniknie. Na razie zacząłem robić moduł do
obsługi strumieni XMPP (jabber.py mnie nie zadowala), oparty o libxml2.
Okazało się, że libxml2 bez poprawek się do tego nie nadaje, ale
przygotowałem odpowiedniego patcha i jest OK. Mam nadzieję że go zaaplikują do
oryginalnych źródeł.

Jednak na razie musiałem sobie pisanie modułu i serwera odpuścić – w końcu
za tydzień będę prowadził wykład i trzeba jakąś prezentację przygotować. Na
razie porobiłem trochę screenshotów (jak ktoś ma jakieś ciekawe screenshoty
klientów jabberowych, to jestem chętny) i walczę z OpenOffice (chyba jednak
LaTeX bardziej mi odpowiada).

Ale przygotowanie prezentacji pewnie też sobie zaraz daruję, żeby dołączyć
do Iwony i Krysi, które pojechały na spacer na działkę 🙂

Z innej beczki: chyba w PLD szykuje się (albo tylko szykował) przewrót.
„Rebelianci” chcieli, żebym ich poparł, ale ja wolę się nie mieszać. Też mnie
kloczek wkurza, ale miejscami rozumiem jego rację, racje „rebeliantów” zresztą
też. Ja tylko chcę mieć działającą dystrybucję, z w miarę aktualnymi zasobami,
a na razie żadna ze stron nie jest w stanie mi tego zagwarantować.

jggtrans ma błędy, PyXML ssie, a ja udzielam wywiadów…

Zaraz po wydaniu transportu GG okazało się, że jednak nie zawsze wysyła
<presence/> poprawnie – tzn. z zasobem „GG”. Przez to czasami kontakty GG
są widoczne podwójnie i nie znikają wtedy kiedy trzeba… Czyli niedługo 2.0.5.

PyXML jest tak wooolneeee, że dzisiaj pół dnia spędziłem na szukaniu
alternatywy, bo z taką szybkością działania jabgraph właściwie traci sens.
Oczywiście niepotrzebnie narobiłem pakietów do PLD z dziwnymi parserami,
bo ta przecież już był libxml2, także w postaci modułu do pythona. Zacząłem
więc przerabiać jabgraph z API DOM na API libxml2 – na razie zrobiłem jedynie
wczytywanie pliku konfiguracyjnego ale już witać dużą poprawę.

Udzieliłem też wywiadu – poważnie to brzmi :). Pytania (z błędami
ortograficznymi) zostały wysłane na listę dyskusyjną i „osoby upoważnione”,
czyli „ważne persony” miały na nie odpowiedzieć. Mnie też przypadł ten zaszczyt,
stąd wzmianka w blogu :). Trzeba przyznać, że same pytania były merytorycznie
OK – jestem ciekaw jak odpowiedzą pozostałe „persony”.

Jeszcze ciekawostka – jak zrobiłem sobie ikonki do transportów w tkabberze.
Umieściłem następujący fragment w ~/.tkabber/config.tcl:

proc postload {} {

	# ... inne ustawienia
    set roster::show_only_online 1
    set roster::show_transport_icons 1
    set roster::show_transport_user_icons 1
    set roster::roster(cached_category_and_subtype,jit.jabber.bnet.pl) {service icq}
    set roster::roster(cached_category_and_subtype,headlines.jabber.bnet.pl) {service rss}
    set roster::roster(cached_category_and_subtype,gg.jabber.bnet.pl) {service x-gadugadu}

    global serviceicon
    set serviceicon(x-gadugadu,available)   [Bitmap::get [pixmap services gg_online.xpm]]
    set serviceicon(x-gadugadu,chat)        [Bitmap::get [pixmap services gg_chat.xpm]]
    set serviceicon(x-gadugadu,away)        [Bitmap::get [pixmap services gg_away.xpm]]
    set serviceicon(x-gadugadu,xa)          [Bitmap::get [pixmap services gg_xa.xpm]]
    set serviceicon(x-gadugadu,dnd)         [Bitmap::get [pixmap services gg_dnd.xpm]]
    set serviceicon(x-gadugadu,unavailable) [Bitmap::get [pixmap services gg_offline.xpm]]
}

Ikonki przerobiłem z pakietu ikonek dla Psi jaki znalazłem w „plikowni”.
IMHO mogłoby to być zrobione lepiej – ale tak też jakoś działa. Może podyskutuję
jeszcze z autorami tkabbera na ten temat.

Jabber GG Transport 2.0.4

Wreszcie udało mi się przywrócić transportowi poprawną stabilność,
poprawić inne znane mi błędy i wydać bestię w wersji 2.0.4.

Podstawowe zmiany:

  • Wszyscy użytkownicy GG widoczni są z zasobem „GG”.
  • Formularze wyszukiwania i rejestracji zostały zmienione tak, by
    były kompatybilne ze wszelkimi implementacjami JEP-4, w szczególności
    z JAJCem (ciekawe czy się udało).
  • Dodana została obsługa Jabberowej niewidzialności. Potrzebne do
    tego jest odpowiednie wsparcie ze strony klienta i czasem wymaga
    gimnastyki od użytkownika. Np. w tkabberze po wybraniu statusu
    „invisible” należy ponownie zalogować się do transportu.
  • Poprawiłem też obsługę statystyk – wszystkie mogą być odczytane
    jednocześnie. Wcześniej problemu nie zauważyłem, bo tkabber zawsze
    czyta pojedynczo, ale jabgraph żąda wszystkich informacji na raz.

Pierwsza z tych zmian powoduje pewne ogłupienie klientów Jabbera
zalogowanych podczas upgrade’u. Niektóre kontakty mogą być widoczne
podwójne, a niektóre jako dostępne, mimo że dostępne nie są. Po
wylogowaniu się z Jabbera (nie transportu) i ponownym zalogowaniu
wszytko powinno wrócić do normy.

Jutro wracam do prac nad jabgraphem. Ale on się straszni muli…
Nawet psyco nie pomaga. Ale trudno, w końcu to tylko taki „proof of
concept”.

Wczoraj…

Mama jest zawalona egzaminami do sprawdzania, więc zamiast obiadu u niej
musieliśmy sami sobie coś zorganizować. Wybraliśmy się więc do pizzerii.
Pizzeria okazała się porządniejszą restauracją i zamiast Pizzy ja
zamówiłem „żeberka na ostro z purée fasolowym”, a żona Lasagne ze
szpinakiem. Dobre było, ale rachunek podano mi z cukierkami – dla
osłody sumy jaka tam widniała. Krysia przez większość naszego obiadu
słodko spała w wózeczku obok stolika.

Potem Iwona z Krysią pojechały do domu, a ja udałem się na wykład
o DNSie zorganizowany przez SLUG. Nie dowiedziałem się
może niczego nowego, ale warto było, chociażby żeby spotkać się
z lokalnym „community”. Wykład był poprowadzony bardzo dobrze, IMHO
wypadł najlepiej z wykładów z serii GNU/Politechnika, na których byłem.
No, może prelegenci się zbytnio rozgadali (trwało to prawie trzy
godziny), ale na ten temat można by mówić i o wiele dłużej.

Jak zwykle na wykładzie rozdano ankiety. Tym razem było tam pytanie
„na jakie jeszcze wykłady się wybierasz?”. Z tego co ludziom zza ramion
podejrzałem, to mało kto wybiera się na mój wykład o Jabberze. Może
i lepiej – kompromitacja będzie mniejsza :). Myślę że zainteresowanie
tematem jest małe, bo mało kto ten temat traktuje poważnie
– większości kojarzy się on z GaduGadu i rozmowami w stylu „Skond
klikasz? Ile masz latek?”. A może rzeczywiście, to nie jest
wystarczająco poważna tematyka, aby wykład o niej prowadzić?

Problemy z browsingiem i nowy jggtrans

Wczoraj dopisałem obsługę JEP-11 (browse) do SMS-transportu. Dzisiaj smoku mi
napisał, że to nie działa. Okazało się, że z Psi rzeczywiście nie bardzo. Ale
Psi obsługuje to browse, tak jak serwer jabbera – wyszło na to że jabberd też
nie obsługuje JEP-11 zgodnie ze specyfikacją. Później sprawdziłem jeszcze swój
transport GG – też niezgodny ze standardem. Zacząłem więc poprawiać…

Patch na jabberd-1.4.x jest dostępny tutaj.
Należy też pamiętać o poprawieniu sekcji <browse/> pliku jabber.xml.

Nowy transport GG (oprócz poprawienia browse ma ulepszoną obsługę proxy)
można znaleźć tam gdzie zwykle.

Co by tu napisać…

W tej chwili mam pół gęby zdrętwiałe – resztki znieczulenia po wizycie u dentystki. Póki mi nie przejdzie, wolę nic nie jeść, bo sobie język i wargi pogryzę.

Wcześniej zaspany siedziałem w pracy. Oprócz standardowego resetowania głupich modemów i odbieranie telefonów od ….. klientów, trochę podziałałem w tematyce Jabbera. Zrobiłem upgrade jabberd na swoim serwerze – teraz zawiera wszystkie moje ostatnie patche. Zainstalowałem też transport SMS – przy okazji znalazłem w nim dwa błędy i pomogłem Smoku (Smokowi?) je poprawić. Zdążyłem się też zdenerwować „internacjonalizacją” perlowego modułu XML:Stream. Na szczęście aktualna wersja ma już normalną obsługę Unicode.

Przedwczoraj (w niedzielę) Bluszcz zwrócił mi uwagę na problem ze zmianą hasła na serwerze Jabbera (jabberd-1.4.x), gdy rejestracja jest zablokowana. Wczoraj prawie cały dzień z tym walczyliśmy (jednym patchem o mało nie „zabiłem” jabberpl.org), ale w końcu udało się znaleźć rozwiązanie.