Zaloguj się

Jog Jajcusia

xmpp:jajcus@jajcus.net

Committed revision 666.

Mam dosyć sztywnego trzymania się niektórych zasad dobrego stylu programowania. Pisząc CJC starałem się w ogóle nie używać zmiennych globalnych, bo przecież każdy wie, że tak trzeba. No i dało się, jednak z tak zrobionego kodu nie byłem zadowolony. Mam tam takie trzy obiekty, właściwie singletony, do których dostęp potrzebny był w bardzo wielu miejscach. No i dostęp ten odbywał się właściwie na dwa sposoby: albo referencja do takiego obiektu była przekazywana w konstruktorze i potem zapisywana w atrybucie obiektu który tego potrzebował, albo dostęp odbywał się przez inne obiekty (np.: self.plugin.app.screen) – jedno i drugie nie wyglądały najlepiej. Standardowym, Javowe, rozwiązanie, w postaci statycznej metody zwracającej instancję singletona, niespecjalnie mi pasowało – to takie niepythonowe odwoływać się do klasy, gdy tylko jej instancja jest potrzebna. Do tego to więcej pisania by było, a przecież miałem API uprościć.

W końcu zdecydowałem się na rozwiązanie proste i skuteczne – zrobiłem moduł cjc_globals z trzema zmiennymi globalnymi. I wszystko byłoby dobrze, gdyby nie komunikat przy commicie, wyraźnie sugerujący, że za moją decyzją stoi Zło: Committed revision 666. ;-)

6 komentarzy do wpisu „ Committed revision 666.


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

7 komentarzy do wpisu „ Okularków nie będzie, przenosiny w pełni”


Migracja

Wynoszę się z firmy, w której stoi mój dotychczasowy serwer Jabbera. Chcąc się od niej całkiem uniezależnić zmuszony byłem zmienić i JIDa. Od kilku dni więc szykowałem swój nowy serwerek, a od wczoraj zacząłem uzupełniać CJC o funkcje ułatwiające migrację.

Nowe ficzery to polecenia:

/export_roster
Eksportuje roster do pliku XML.
/import_roster
Importuje roster z pliku XML – dodaje do rostera wpisy z pliku, których w rosterze jeszcze nie było i wysyła prośby o subskrypcję dla wpisów które w pliku mają subskrypcję to lub both.
/multi_message
Wysyła wiadomość jednocześnie do wielu użytkowników z rostera, wybranych filtrem podobnym do tego używanego przez /list

Dzisiaj wypróbowałem nowe funkcje w warunkach bojowych. Wyeksportowałem roster na starym koncie, wysłałem wiadomość o zmianie JIDa do wszystkich kontaktów z subskrypcją from lub both i zaimportowałem roster na nowym koncie. W ciągu pierwszej minuty od tej operacji dostałem około 50 próśb o autoryzację – nigdy wcześniej nie widziałem tylu otwartych zakładek w CJC %-).

W samą migrację nie chciałem mieszać transportów i botów, więc wcześniej zrobiłem z tym porządki – wywaliłem transport ICQ, przeniosłem ręcznie te kilka kontaktów na GG, zmieniłem JIDa w Joggerze. Tylko jeden bot się odezwał na to moje /multi_message, ale chyba nic nie narozrabiałem. W ogóle cała ta migracja przeszła coś naspodziewanie gładko... zobaczymy co będzie dalej.

Jak jeszcze będzie mi się chciało, to zrobię sobie jeszcze małego bocika, który będzie zalogowany na stare konto i będzie mi forwardował wiadomości na nowe. Jak nie, to będę co jakiś czas logował się ręcznie i patrzył co się tam dzieje. Dorobienie obsługi wielu kont do CJC, to byłoby stanowczo za dużo roboty.

5 komentarzy do wpisu „ Migracja”


Nowy Jogger – nowy szablon

Zmienił się engine Joggera, czas na zmiany na własnym Joggerze. Już sam miałem trochę dosyć tego ciemnoniebieskiego czegoś. A, że bardzo mi się podoba domyślna skórka Zope3 – rotterdam, to sobie ją pożyczyłem.

Dodałem tylko prosty, dwukolumnowy layout, powiększyłem <h1/> i zamieniłem wszelkie microsoftowe czcionki na bardziej wolne zamienniki. Postawiłem też na prostotę – wywaliłem z szablonu wszystko co zbędne (chociaż parę rzeczy jeszcze pewnie wróci). Mnie się efekt podoba. Żonie też. Chyba więc nie jest źle. :-)

P.S. przy okazji sprawdzam, czy plugin jogger w CJC działa z Jogger 2...

Update: usunąłem ze stylu konkretne nazwy fontów, każdy będzie widział to co ma w przeglądarce/systemie skonfigurowane.

13 komentarzy do wpisu „ Nowy Jogger – nowy szablon”


Ufff... CJC 1.0.0 i PyXMPP 1.0.0 już są.

Ufff... wydałem CJC 1.0.0 i PyXMPP 1.0.0. Nie znoszę wydawać nowych wersji! Nie dość, że wypada najpierw wszystko doprowadzić do porządku, to jeszcze trzeba się wysilić na jakieś announcement do JabberStudio itp. A jeszcze JabberStudio jest spieprzone i np. nie przyjmuje wersji 1.0.0, więc nowe pliki oznaczone są jako wersja 0.1. pyxmpp-1.0.0.tar.gz jest w serwisie umieszczony dwa razy — myślałem, że się po prostu pomyliłem i jak go wpiszę od nowa (edycja poprzedniego wpisu nie pomagała), to zadziała. Nie zadziałało, a już wydanego pliku skasować nie można... super. I jeszcze mnie czeka jakieś ogłoszenie na listy... wrrr... Wręcz się kodować odechciewa.

Numer wersji 1.0.0 nie oznacza wcale, że to nagle jakieś super stabilne oprogramowanie. Po prostu uznałem, że nie będę latami ciągnął numeracji ułamkowej. Poprzednie wersje (0.5) zostały wydane ponad rok temu, mają straszne braki i nie działają z nowym Pythonem i libxml2. Ale ludzi wciąż to ściągali, bo nowszego oficjalnego wydania nie było. No to już jest. Pewnie od jutra (dzisiaj nie, bo dzisiaj miałbym jeszcze czas coś poprawić) sypną się bugreporty... pewnie pełno jest paskudnych błędów, które tylko u mnie jakimś trafem się nie objawiły. Poprawi się w wersji 1.0.1... tylko kiedy będę miał czas ją wydać? Na Wielkanoc? ;-)

Ech... coś niezbyt optymistycznie mi to ogłoszenie wyszło...

5 komentarzy do wpisu „ Ufff... CJC 1.0.0 i PyXMPP 1.0.0 już są.”


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

38 komentarzy do wpisu „ Google Talk”



Jesteście obserwowani...