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…