Google Talk

[08:04] Resolving 'talk.google.com'...
[08:04] Connecting to 216.239.37.125:5222...
[08:04] Connected to 216.239.37.125:5222.
[08:04] Doing TLS handshake with gmail.com.
[08:04] Encrypted connection to gmail.com established using cipher EDH-RSA-DES-CBC3-SHA.
[08:04] Binding to resource CJC...
[08:04] Authorized as jajcus@gmail.com/CJCE5DFD7C2.
[08:04] Got roster
[08:06] Peer certificate saved to: /home/users/jacek/.cjc/known_certs/talk.google.com.der

Wczoraj wieczorem jeszcze nie wpuszczał, a nawet hackowałem CJC myśląc, że
to różnice w implementacji protokołu. Ale widać jak mieli dzisiaj odpalić, to
odpalili dzisiaj. Połączyło się bez żadnego hackowania. Niestety, komunikacja
z innymi serwerami nie działa. Mam nadzieję, że to przejściowe.

W każdym razie Jabberowy serwer Google działa i to najwyraźniej w miarę
zgodnie z XMPP 1.0 (StartTLS, SASL).

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.
:-)

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.

Afrykański jellonek?

Odezwał się do mnie ktoś o JIDzie 2782630xxxx@mxit.co.za/clockspeed
(xxxx to też cyfry):

[Sat Jun 25 11:48:34 2005] <2782630xxxx> Hi
[Sat Jun 25 11:48:42 2005] <2782630xxxx> Hi
[Sat Jun 25 11:50:34 2005] <jajcus> Hello
[Sat Jun 25 11:50:41 2005] <jajcus> strange JID...
[Sat Jun 25 11:55:17 2005] <2782630xxxx> My name is Tommie.
[Sat Jun 25 11:55:39 2005] <jajcus> And how can I hel you, Tommie?
[Sat Jun 25 12:22:00 2005] <2782630xxxx> What PC-game do you like most?
[Sat Jun 25 14:35:40 2005] <jajcus> Crossfire?
[Sat Jun 25 14:37:25 2005] <2782630xxxx> My is Half-Life2.

Czyżby nasze WP Kontakt i Hapi zyskiwały konkurencję w Afryce? ;-)
W każdym razie ten afrykański komunikator wymaga jeszcze dopracowania —
z każdą wiadomością wysyła inne <thread/>, przez co u mnie otwiera się
za każdym razem nowe okienko (podobną przypadłość miał/ma zdaje się
Neos), a do tego nawet na /version nie odpowiada, więc nie wiem
co to.

Pogoda w rosterze…

  • [away] Uff, jak gorąco!
  • [xa] @home - uff jak gorąco
  • [away] pzebrzydle lato, dajcie mi zime, albo chociaz deszczowa jesien
  • [away] prażę się
  • [online] ... 303.15 K indoors ... uff ... hot ...

Tylko jeden się wybija:

  • [xa] Siedzę na balkonie, na słoneczku. W domu jakoś chłodno.

A ja w pewnej chwili stwierdziłem, że mam ochotę sobie puścić chłodną muzykę…
Puściłem cacy cacy fleischmaschine Świetlików. To jest chłodne?

Jabber? Nie dla idiotów!

Okazuje się, że już twórcy pierwszych implementacji Jabbera zdawali sobie
sprawę z uciążliwości różnych idiotów w sieciach IM i starali się temu
odpowiednio zaradzić. Dzisiaj Jabber Council opublikowało specyfikację tego
protokołu: JEP-148: Instant
Messaging Intelligence Quotient (IM IQ)
. Szkoda, że się nie przyjął,
oszczędził by nam wielu niepotrzebnych rozmów i pozycji w rosterach…

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.

pub-sub

Ostatnio na Joggerze dużo się pisze o RSS, jak to wygodnie przeglądać w
ten sposób newsy z różnych źródeł. Ale to przecież dalekie od ideału… Po
pierwsze i tak trzeba znać źródła informacji którą się chce uzyskać, po drugie
oprogramowanie musi co chwilę sprawdzać, czy nowa informacja się pojawiła.
Pojawia się więc myśl, że fajnie by było jakbyśmy byli informowani jak
oczekiwana przez nas informacja się gdzieś pojawi.

Właśnie podczas czytania jednego z takich wpisów o RSS przypomniałem sobie
o pubsub. I mam na myśli właściwie dwie rzeczy. Jedna to protokół
pubsub
rozszerzenie XMPP rozwijane przez JSF (możliwe, że opowiem o tym na
najbliższych Pingwinariach), drugie to PubSub.com serwis pozwalający subskrybować
informacje jakie nas interesują, niezależnie od źródła. Zresztą, PubSub.com wykorzystuje technologię pubsub dla XMPP.

Jak sobie przypomniałem, że coś takiego istnieje, to postanowiłem
spróbować. Okazało się to prostrze niż mogłem przypuszczać. Po prostu
wystarczy wejść na stronę PubSub.com
i wpisać swoje zapytanie (podobnie jak do wyszukiwarki internetowej), a
następnie już tylko czekać aż pojawią się (np. w postaci feedu RSS, albo po
prostu strony HTML) pierwsze informacje do niego pasujące. Można też założyć
sobie konto — wtedy nad swoimi subskrypcjami ma się większą kontrolę,
a ich lista nie jest związana z jedną przeglądarką. Można też zainstalować
sobie PubSub sidebar for Firefox (dla IE też jest), który
będzie pokazywał interesujące nas informacje na bierząco. I tu pojawia się
XMPP (rdzeń współczesnego protokołu Jabbera) — ten sidebar to nic
innego, jak prosty klient XMPP z obsługą
pubsub.

Dla siebie stworzyłem zapytania o Pythona, XMPP/Jabbera i o siebie (żebym
od razu wiedział, jak ktoś mnie w sieci obsmarowuje 😉 ). Na temat pythona
dostaję całą masę wiadomości i już trafiłem na jeden ciekawy artykuł:
Python
optimization tips
. O Jabberze jest nieco mniej (między innymi, że jakiś
serwis uznał XMPP za słowo dnia). Pozostałe zapytania nie
pokazały na razie nic. W każdym razie serwis wydaje się interesujący. Nie mogę
się tylko doczekać kiedy mój klient Jabbera będzie umiał pubsub (wiem, wtedy gdy
sobie to napiszę), a PubSub.com udostępni
swoje usługi dla serwerów z zewnątrz (teraz, zdaje się, jest tylko dostęp
z klientów podłączonych bezpośrednio do ich serwera).