Zaloguj się

Jog Jajcusia

xmpp:jajcus@jajcus.net

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 jabber.bnet.pl, a potem łączy się z 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.

4 komentarze do wpisu „ Coś nie tak z resolverem...”


Plugin świra

Właśnie napisałem plugin Joggera dla swojego CJC. Oczywiście jeszcze można wiele w nim zrobić, ale już powinno dać się wysyłać wiadomości. A nawet nie tylko. Dla każdej wiadomości można wybrać poziom, a przed wysłaniem jest walidowana wybranym DTD (domyślnie XHTML Strict). A więc koniec wpisów psujących joggera! :-) Oczywiście edycja odbywa się w edytorze wybranym przez użytkownika (domyślnie $EDITOR lub vi, jak to w UNIXach). To będzie pierwsza wiadomość wysłana z tego plugina na prawdziwego joggera, więc ciekawe czy i jak dojdzie.

W przedostatnim wpisie pisałem o planowanym przejściu na ejabberd. W kolejnym krótko napisałem, że się udało. Krótko, bo było za wcześnie aby mówić o wielkim sukcesie no i dlatego, że nie miałem plugina w CJC. Z dokładną oceną chciałem trochę poczekać i już chyba nadszedł odpowiedni czas.

A więc z nowego serwerka jestem bardzo zadowolony. Większość użytkowników chyba nawet nie zauważyła zmiany. Niektórzy wręcz założyli, że skoro dalej wszystko działa, to znaczy, że wróciłem do starego. Po prostu działa. Rozczarował mnie nieco interfejs administratora — zarówno z WWW jak i z tkabbera. Okazało się, że nie da się przez to zakładać użytkowników. Trzeba z shella za pomocą ejabberdctl albo pozwolić userom samym się rejestrować, a tego nie chcę.

A co do tytułu wpisu... Dzisiaj byłem u psychiatry. Dostałem receptę. To już chyba jestem oficjalnie świrem ;-). Prawdopodobnie ta wizyta to tylko pieniądze wyrzucone w błoto, ale spróbować zawsze warto.

5 komentarzy do wpisu „ Plugin świra”


Powydawałem trochę...

Powydawałem trochę oprogramowania. Hurtem: PyXMPP 0.5 CJC 0.5 JJIGW 0.2. Jeszcze do napisania anonsy na główną stronę JabberStudio, ale na razie mi się nie chce ich pisać. Pewnie zaraz się okaże, że w każdym z tych programów jest jakiś krytyczny błąd, z jakim nie powinno się wydawać. Trudno, kolejny rilis pewnie i tak za jakieś dwa miesiące lub pół roku, bo wcześniej nie będzie mi się chciało.

W PyXMPP i CJC główną nowością jest obsługa rozmów grupowych, w JJIGW poprawa stabilności i obsługa wielu sieci IRC. We wszystkich poprawiona masa błędów i wprowadzonych nieco nowych.

A w pracy dzisiaj robię za tragarza... :-(

4 komentarze do wpisu „Powydawałem trochę...”


JJ i CIA

Napisali o mojej twórczości w Jabber Journal, ale moja wrodzona skromność nie pozwala mi się tym chwalić. Więc się nie pochwalę :-P

Aby moja sława nie zanikła postanowiłem też zadbać o regularne donosy do CIA. Niestety na JabberStudio nie mam dostępu do /CVSROOT/ i nie mogę bezpośrednio instalować commit-skryptów. Mam jednak możliwość skierowania informacji od commita na dowolny JID lub adres e-mail i z tej właśnie możliwości skorzystałem. Musiałem tylko napisać skrypt do konwersji wiadomości z JS na XML zrozumiały dla CIA - niecała godzinka roboty. Od dziś więc notowane będą moje commity nie tylko do PLD, ale także do: PyXMPP, CJC, JJIGW i Transportu GG.

2 komentarze do wpisu „JJ i CIA”


Obfalkać drzwi...

Gdy wychodziliśmy z Krysią na spacerek kichnąłem. Tak porządnie i w kierunku drzwi sąsiadów. Krysię bardzo to rozśmieszyło. Zażartowałem, że obsmarkałem drzwi sąsiadów. Śmiała się jeszcze bardziej, powtarzając obfalkał drzwi. Później jej przeszło.

Gdy wracaliśmy, piętro pod naszymi drzwiami Krysia pociągnęła mnie w kierunku drzwi, mówiąc: obfalkać drzwi!, ja na to nie obsmarkam drzwi sąsiadom, ona: dzidzia obfalka!. Podeszła do drzwi i dmuchnęła nosem. Była bardzo z siebie zadowolona.

A za chwilkę zabieram się za optymalizacją PyXMPP. Teraz w CJC jak napisze /chat ktos@ i nacisnę dwa razy TAB, to ponad minutę muszę czekać aż dostanę dwa pasujące JIDy do wyboru. Tak raczej być nie może. Myślę, że cache JID-ów i wyników stringprep pomoże. Wcześniej muszę jednak z JID-ów zrobić obiekty immutable i nie wiem czy dużo nie będę musiał poprawiać (API się zmieni odrobinkę).

4 komentarze do wpisu „Obfalkać drzwi...”


Porządki w kodzie i na Joggerze

Wywaliłem z PyXMPP wsparcie dla Pythona 2.2 i spróbowałem użyć modułu datetime do obsługi timestampów. Okazało się, że jednak nie rozwiązuje on moich problemów. Zapewnia interfejs do zamiany czasu pomiędzy lokalnym a UTC, ale... tylko wtedy jak mu się poda klasy reprezentujące odpowiednie strefy czasowe. A Python w module datetime udostępnia jedynie abstrakcyjną klasę bazową. Resztę trzeba sobie napisać. UTC to nie problem, ale przecież nie będę pisał klas opisujących strefy czasowe wszystkich potencjalnych użytkowników CJC! Jest gdzieś w sieci moduł zawierający gotowe klasy, ale ja nie chcę dodawać kolejnej zależności, szczególnie, że przecież w systemie już jest informacja o strefie czasowej użytkownika.

Zajrzałem do dokumentacji glibc, żeby zobaczyć jak się to w C robi. Jest tam nawet potrzebna mi funkcja, nazywa się timegm, ale:

*Portability note:* `mktime' is essentially universally available. `timegm' is rather rare. For the most portable conversion from a UTC broken-down time to a simple time, set the `TZ' environment variable to UTC, call `mktime', then set `TZ' back.

Fajnie, że podali przenośny sposób, ale zastosowanie jego w aplikacji wielowątkowej to byłaby zbrodnia. A więc sposobu praktycznie nie ma. Jednak nie będę przecież użytkownikom pokazywał czasu UTC, więc zacząłem kombinować i nawet coś wykombinowałem: zamiana czasu UTC na lokalny medodą kolejnych przybliżeń. Z moich testów — z czasem letnim i zimowym z różnymi ustawieniami zmiennej $TZ — wynika że to nawet działa :-). Ciekawe jak bardzo przekombinowałem.

Dzisiaj, nie mając wiele do roboty w pracy, urządziłem bug fixing day dla CJC. Poprawiłem już dwa błędy zgłoszone na JS oraz kilka zgłoszonych przez Jabbera. Poczekam jeszcze na jakieś bugreporty i może zrobię kolejne wydanie PyXMPP i CJC. MUC jeszcze dość niekompletny, ale używalny, a wydać warto chociażby z powodu błędów poprawionych w stosunku do 0.4.

Oprócz porządków w kodzie zrobiłem też porządki na Joggerze. Uzupełniłem polecane Jogi o nowe pozycje i atrybuty title na linkach. Usunąłem też linki erotycznie, ale nie dlatego że nagle sporządniałem — po prostu nie chciało mi się ich uaktualniać. Poprawiłem jeszcze ostatnią notkę — zamieniłem - na w kilku miejscach. Od dziś postaram się trzymać zasad typografii. Z poprawianiem starszych notek byłoby za dużo roboty.

Dodaj komentarz do wpisu „Porządki w kodzie i na Joggerze”



Jesteście obserwowani...