Okularków nie będzie, przenosiny w pełni

Dzisiaj wybrałem się do okulisty (przy optyku) w celu dobrania okularów.
Ten mnie zbadał, próbował dobrać odpowiednie szkła… i właściwie nic to nie
dawało. Na siłę okularów sprawiał sobie nie będę – to by mi mogło
bardziej zaszkodzić niż pomóc. To co zaobserwowałem u okulistki podczas badań
kontrolnych najprawdopodobniej było tylko złudzeniem spowodowanym
powiększającym działaniem szkieł. Dzisiaj więc zamiast recepty na okulary
odebrałem receptę na krople do oczu. Zresztą podobne to tych co już mam –
do Starazolinu, który wychwalałem już w zeszłym roku.

W związku ze zmianą pracy (do nowej już w czwartek) przenoszę różne
rzeczy. Listy dyskusyjne moich projektów (CJC, PyXMPP, Transport GG)
przeniosłem na swój własny serwerek (lists.jajcus.net), a z rozpędu zabrałem
się za przenoszenie do siebie reszty tych projektów z JabberStudio (które najwyraźniej
umiera). To ostatnie jeszcze trochę potrwa, bo to większa robota, ale pewnie
w tym tygodniu skończę – wtedy dam znać co i jak, a przede wszystkim,
gdzie.

Dzisiaj walczyłem jeszcze z dwie godziny z przenoszeniem kontaktów ze
starego telefonu komórkowego (firmowego) na mój własny, prywatny. Ta marna
namiastka IrDA/OBEX w moim Samsungu nie ułatwiała sprawy, ale stary laptop
z IRDA, Multisync, trochę Pythona, trochę ręcznego grzebania w plikach
wizytówek (bez tego, przy próbie importu czterech z moich kontaktów telefon
się po prostu rebootował) i jakoś się udało. BTW: jak ktoś ma mój stary numer,
a chciałby aktualny, to niech się do mnie zgłosi.

Z przenosin czeka mnie jeszcze wyniesienie swoich fizycznych zabawek (talerz,
słuchawki, puszka na herbatę, kalendarz z gołymi babami itp.) ze starej roboty
i zaniesienie sprzętu (komputer, monitor, telefony) do nowej. Z mniej
materialnych rzeczy – posprzątanie po sobie na serwerach w starej firmie
(wszelkie konta, aliasy, skrypty itp. zabawki) i podczepienie się do nowej
(też se będę musiał jakiegoś majla założyć). System niby sobie już na nowym
kompie zainstalowałem, ale nie pamiętam w jakim jest stanie… więc może
jeszcze to mi trochę czasu zająć… a pracodawca pewnie będzie chciał już
pierwszego dnia widzieć wyniki… ;-)

Reklamy

Hmmm… używają tego JJIGW… i to gdzie!

Thanks so much for your excellent jjigw project. We’re using it
internally here at VMware to bridge our IRC servers with the new
Jabber servers, and for the most part it works flawlessly.

Miło takie rzeczy czytać, nawet jeśli reszta maila to bugreport ze
zgłoszeniem jakiegoś paskudnego, trudnego do zdebugowania, błędu.
:-)

Opieka nad projektem…

Jakiś czas temu dostałem łatę na JJIGW dodającą obsługę
subskrypcji obecności użytkowników IRCa. Rzecz fajna, przydatna, aczkolwiek
z powodu specyfiki IRCa (zmieniające się nicki), ciężka do zaimplementowania.

Dzisiaj wreszcie znalazłem czas, żeby przejrzeć tego patcha. I nie
spodobał mi się. Parę rzeczy psuł (łamiąc specyfikację XMPP i MUC), parę innych robił nia tak jakbym
chciał. Ale zawierał też pewne poprawki mojego kodu. Najbardziej dokuczyły mi:
brak dokumentacji dodanego kodu i coding style. Ale tego nie
śmiałem się za bardzo czepiać — mój kod JJIGW sam
z siebie jest kompletnie pozbawiony dokumentacji, a i śliczny nie jest.

Napisałem swoje uwagi do autora patcha. W sumie, nawet jakby nie chciał
tego poprawić, to bym patcha nałożył. Ręcznie, w większości po swojemu, ale
dodałbym te zmiany. Jednak gotowy kod, to zawsze coś. Szkoda, że rzadko dostaję
gotowe ulepszenia do moich projektów. No, ale cóż. Sam sobie też jestem winien
— komu się chce grzebać w zawiłym i nieudokumentowanym kodzie? Z drugiej
strony, jakbym się uparł, żeby wszystko udokumentować, to ten kod by pewnie
w ogóle nie powstał — zabawa mogłaby przestać być zabawna. Dobrze, że
przynajmniej API PyXMPP jakoś
udokumentowałem.

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… :-(

Nie-jellonek

Dostałem prośbę o autoryzację z jakiegoś konta na WP. Pomyślałem: jellonek 🙂.
Okazał się, że jednak nie. Chodziło o moją bramkę do IRC’a
(ircnet.jabber.bnet.pl), która podobno nie
jest dostępna z jabber.wp.pl.
To możliwe, bo ostatnio wywaliłem rekordy SRV
_jabber._tcp dla wszystkich swoich usług
Jabberowych z DNS (zostawiłem _xmpp-server._tcp).
Głupio trzymać dwa rodzaje rekordów do tego samego, gdy stary
jest już obsolete, a można przy okazji zmotywować
administratorów innych serwerów do uaktualnienia konfiguracji
według najnowszych standardów. Nawet nie pomyślałem, że dotknie
to użytkowników serwera WP. Zgłosiłem problem gdzie trzeba (tak
myślę) — zobaczymy co z tego wyniknie.

Wracając do naszego nie-jellonka, czy właściwie
nie-jellonki. Rozmowa się rozwinęła i nawet dostałem
linka do jej stronki. Okazuje się, że to całkiem ładna
dziewczyna (są tam zdjęcia), a z rozmowy wynika, że też całkiem
sympatyczna i inteligentna. Do tego Linuksiara.
Wiedziałem. Wiedziałem, że Open Source to może
być sposób na panienki ;-).

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.

Co by tu…

Ostatni tydzień upłynął pod znakiem Crossfire.
Pisałem już że to niebezpieczny pożeracz czasu? No to piszę.
Czas na grę został zabrany na niekorzyść telewizji oraz snu.
Czasami wyglądało to tak, jakbym się z żoną prześcigał kto później
w nocy wymięknie. Żona wygrywała, ale to pewnie dlatego, że ona nie musi
o 6:20 wstawać do roboty.

W weekend w Gliwicach była Grająca Starówka – kilka różnych
koncertów w małych uliczkach w okolicach Rynku. Wybraliśmy się tam
z Krysią i w sobotę i w niedzielę. W sobotę wracaliśmy wcześniej –
odprowadziłem dziewczyny kawałek w kierunku domu, a sam poszedłem na
GNU/Browarek (w moim przypadku GNU/Kola). W niedzielę, też długo
nie siedzieliśmy, bo Krysia zaczęła marudzić. Powodem złego humorku był
chyba balonik, który jej mama kupiła. Krysia ostatnio zwykle dostawała
baloniki napełnione powietrzem, a teraz dostała latający. Niestety nie
doceniła. Szczególnie nie podobało jej się, że balonik został do niej
przywiązany. Za którąś zmianą miejsca zaczepienia stwierdziła Bim
bam! Bim bam!
(po polsku: kur.., kur…!) i wydawało się,
że się z sytuacją pogodziła. Jednak nie do końca i trzeba było wracać.
Dopiero w połowie drogi do domu przypomniała sobie, że Gra! i że
chciałaby jednak jeszcze posłuchać, ale było już za późno.

Mimo wszystko udało mi się znaleźć też odrobinkę czasu na moje
programiki. Przepisałem od nowa obsługę rostera w PyXMPP. Zmieniłem przy
tym API (a najlepsze, że nawet je udokumentowałem), ale stare było
niewygodne, a poza tym stary kod był wolny i zupełnie niezgodny ze
standardem jeśli chodzi o traktowanie znaków Unicode (zupełnie olewał
profile stringprep). Nowy kod w CJC niczego nie popsuł, a nawet naprawił
parę błędów.

Miałem też problemy z JJIGW, które od czasu do czasu zżerało 100% CPU na
serwerze. Postanowiłem to zbadać Pythonowym profilerem. Okazało się to
niełatwe. Profiler sam z siebie olewa wątki poza głównym. Dokumentacja
i Google nie wiele mówią na ten temat, ale jakoś udało mi się odpalić
tego profilera także dla innych wątków z zapisywaniem statystyk do
innego pliku dla każdego wątku. Znowu się potwierdziło że wątki
w Pythonie są mocno niedopracowane.

Wczoraj natomiast zacząłem implementować klienta MUC w PyXMPP. Jak
dobrze pójdzie, to niedługo będzie można używać CJC wraz z JJIGW
oraz innymi implementacjami MUC i będę mógł porzucić tkabbera.