Transport GG przeniesiony, PyXMPP właściwie też. No i sprzęt do
nowego biura też przeniesiony… ale komp się po podłączeniu nie uruchamia.
Szykuje się ciekawy pierwszy dzień w nowej pracy…
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… ;-)
Transport GG, wersja 2.2.1
Tak jak się spodziewałem, zaraz po wydaniu wersji 2.2.0 w transporcie
znalazła się cała masa błędów. Niektóre naprawdę przykre. Część z nich udało
mi się w ciągu tego tygodnia znaleźć i poprawić, pozostałe są wciąż dla mnie
tajemnicą. Niestety, w najbliższym czasie nie będę miał możliwości dalszego
debugowania transportu, więc dzisiaj wydaję to, co zrobiłem do tej pory.
Wersję 2.2.1
można już ściągnąć ze stron JabberStudio. Ewentualne bugreporty proszę
też tam zgłaszać, a mnie przysyłać najlepiej gotowe patche.
Wreszcie jest nowy transport GG
Od jakiegoś czasu do źródeł transportu GG włączona jest biblioteka libgadu
(na dostępnych pakietach z libgadu nie można polegać). W libgadu ostatnio
znaleziono poważne błędy, więc trzeba było ją uaktualnić. Przy tej okazji
zajrzałem do kodu transportu GG… i wreszcie się porządnie za niego zabrałem,
co w rezultacie dało dzisiejsze
wydanie wersji 2.2.0.
Od wersji 2.1.0 zmieniło się wiele. Większość jeszcze w lutym. Najważniejsze
zmiany to:
- Wspomniane już włączenie libgadu do źródeł transportu.
- Ignorowanie wybranych numerków.
- Ustawianie osobnych statusów dla GG, można też ustawić specjalny status
używany podczas niedostępności i niewidzialności. - Wywalenie całkiem zmiany haseł. Stary kod i tak nie działał z nowym
protokołem (wymagającym czytania kodów z obrazków), a nowy protokół byłby
dość niepraktyczny w implementacji. - Kupa różnych poprawek.
- I chyba najważniejsze: obsługa subskrypcji obecności per-kontakt. Teraz
powinny działać listy prywatności, ustawianie online/offline dla konkretnych użytkowników,
jednokierunkowe subskrypcje (ja go widzę, a on mnie nie) itp.
Z ostatnim punktem związana jest pewna niedogodność: po upgrade’zie
użytkownicy będą musieli potwierdzić autoryzację
dla każdego swojego
kontaktu z GG. To może być bardzo dużo klikania. Użytkownicy niektórych
serwerów mają już to za sobą, więc dobrze wiedzą o co chodzi.
Z poprawek wspomnieć mogę np. rezygnację z używania
GIOChannel
do czegoś, do czego się zupełnie nie nadają (śledzenie aktywności na sockecie obsługiwanym
przez coś innego niż GLib), czy wywalenie zupełnie niepotrzebnego (a pełnego
błędów) buforowania danych zapisywanych do strumienia XMPP. Ta druga zmiana
podobno spowodowała znacznie zmniejszenie obciążenia w dużych (tysiące zarejestrowanych użytkowników)
instalacjach transportu. A to buforowanie miało niby być optymalizacją… Poza
tym usunąłem ileś memleaków i innych błędów wykrytych przez Valgrinda.
Wersja
z wczorajszego wieczora już podobno całkiem stabilnie działała, a ja mam
nadzieję, że dzisiaj nie tylko poprawiłem kilka kolejnych błędów, ale i nie
wprowadziłem żadnych nowych. Jednak, jak znam życie, to pewnie za chwilę
dostanę parę bugreportów dotyczących jakiś nowych (a może i starych)
i strasznie głupich błędów. Jeśli tak, to postaram się szybko wydać poprawioną
wersję, jeśli nie, to pewnie kolejne wydanie będzie za jakiś rok albo i później.
Rzucam to wszystko…
Zastanowiłem się nad tym co napisał zgoda w komentarzach do
ostatniego wpisu i chyba muszę się z tym zgodzić. Ci wielcy gracze
to nic dobrego, zaraz wszystko zepsują. Teraz Sun zaczyna — psując
wspaniałą ideę tekstowej komunikacji przez jakieś VoIP, videokonferencje itp.
wynalazki w swojej implementacji. Potem będzie Microsoft, skoro jest RFC, to
będą musieli zrobić swoją implementację. W każdym Windows będzie klient
Jabbera, którego nawet moja matka obsłuży. Zdaje się, że Apple już coś takiego
zrobiło (na szczęście u nas Maki nie są zbyt popularne). No i po co to nam? Nie
po to robię trudnego do zainstalowania, brzydkiego klienta CJC, żeby gadać
z ludźmi, co u siebie mają śliczne cukierkowe okienka i, co gorsza, cieszą się
z narzędzia, którego używają! Nie po to robiłem transport GG, żeby przestał
być potrzebny jak ludzie z GG uciekną.
Ostatecznie stwierdzam, że dam sobie z tym spokój. Dość ślęczenia nad
PyXMPP i CJC, wystarczająco czasu na to zmarnowałem. Transport GG też okazał się niewypałem,
zamiast pozwalać ludziom z GG gadać z Jabberowcami, jak już muszą, to
spowodował przejście iluś użytkowników GG na Jabbera — straszne. Tego bloga też zamykam,
przeniosę się gdzieś, gdzie nie ma takich niepotrzebnych bajerów jak dodawanie
notek z jakiegoś komunikatora, czy powiadomienia, co rozpraszają człowieka przy normalnej pracy.
Więcej o tym, czemu XMPP ssie i czemu nie chcę mieć z tym już nic wspólnego
opowiem na Pingwinariach, zamiast wykładu o tym głupim publish-subscribe
— myślę że ludzie będą mi za to wdzięczni.
Jellonkowato…
Ktoś dodał komentarz do mojego dawnego wpisu o serwerze
gier. Komentarz wyglądał tak:
XXXXXXX GG – 23 lutego 2005 18:33:29
Ma ktos Quake 2 jak tak to prosze o kontakt pod nr GG XXXXXXX prosze
No to piszę pod ten numerek, czy gościu nie chce w dziób, bo to nie tablica
ogłoszeń. Ale rozmówca nie wiedział o co chodzi, najwyraźniej nie miał z tym
nic wspólnego. W końcu zgodził się ze mną, że to jakiś idiota napisał, co
nawet swojego numerka nie umie przepisać… ech… Tym razem to chyba ja
wyszedłem na jellonka. ;-)
Transport GG 2.1.0
Po ponad 7 miesiącach wydałem wreszcie nową
wersję Transportu GG. Chyba każdy rozsądny administrator używał wersji z
CVS zamiast ostatniego oficjalnego wydania, jednak kiedyś poprawioną wersję
trzeba było wydać. ;-)
Zmiany od wersji 2.0.9:
- „Konfernecyjne” wiadomości GG są odrzucane.
- Lista użytkowników z serwera GG jest przekazywana (po wydaniu komendy
„get roster” lub przy rejestracji) w „zwykłej” wiadomości, a nie typu „chat”, dzięki
czemu jest to kompatybilne z nowszymi Psi. - Poprawiona została obsługa narodowych znaków w JIDach. Wykorzystana do tego została
biblioteka libidn. - Poprawiona została obsługa znaków spoza Windows-1250 w wiadomościach.
Wcześniej opis stanu był obcinany na takim znaku. - Tryby „niewidzialny” i „tylko dla przyjaciół” są teraz aktywne zaraz po przyjęciu
formularza rejestracyjnego w którym zostały włączone. - Różne inne błędy zostały poprawione.
- System budowania został poprawiony i ulepszony, głównie na potrzeby przejścia z CVS na Subversion.
- Kod został przeportowany na GLib2 — starego gliba już mało kto używa.
- Używany jest teraz zewnętrzny Expat zamiast tego zapluskwionego
(ostatni błąd w jabberd 1.4.x opisywany na bugtraq) który był załączony w źródłach. - Została dołączone holenderskie tłumaczenie.
Mam nadzieję, że za chwile nie wyjdą jakieś nowe poważne błędy…
Pożeracz ramu
Przed chwilą ktoś się mnie spytał, czy to normalne, że transport GG zżera 64MB pamięci
(pole VIRT na topie). No normalne to nie jest, ale sprawdziłem u siebie… odpaliłem top,
dałem
i moim oczom ukazało sięu jabber
913MB w polu VIRT
procesu jggtrans
. Hmmm…
chyba mamy mały wyciek… Tylko kiedy ja to zbadam i poprawię?
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.
Holandia?
Dostałem dzisiaj ciekawego majla:
Hello,
Is there already someone busy with translation your jabber-gg-transport into
dutch? If not, I will translate it. This will take a week, a month,… but it
will not take longer than 2 months normally. 🙂
Włączając mechanizmy gettext do kodu transportu GG nie sądziłem że będą
potrzebne do czegoś więcej niż język polski. Ale jak ktoś chce robić
holenderskie tłumaczenie… niech robi :-)
Prawie skończyłem implementację vCard w PyXMPP. Działa już wczytywanie
Jabberowego vcard-temp
i standardowego formatu MIME directory
(RFC2426/RFC2425) oraz zapisywanie tego drugiego. Trzeba jeszcze przetestować
kompatybilność z innymi implementacjami RFC2426 (jakieś address-booki) oraz
dodać tworzenie XMLowej wizytówki. Wtedy będzie można implementować
/whois
w CJC i w JJIGW.
W domu zacząłem co-nieco sprzątać. Jeśli w weekend (gdy przyjeżdża żona) ma
być czysto, to muszę zacząć już teraz ;-)
.