Zaloguj się

Jog Jajcusia

xmpp:jajcus@jajcus.net

Mój jest ten kawałek Internetu…

…złe emocje i brudne buty proszę więc zostawić przed drzwiami.

Jabber GG Transport 2.0.6

Jak obiecałem tak zrobiłem. Transport GG w wersji 2.0.6 jest już dostępny. Najważniejsze zmiany to:

  • Poprawiony błąd który powodował wywrotkę transportu po otrzymaniu wiadomości od niezarejestrowanego użytkownika (zdalny DoS).
  • Poprawiona obsługa zmian obecności - teraz jggtrans powinien prawidłowo obsługiwać wiele sesji Jabbera jednego użytkownika.
  • Usprawniona obsługa statusów niedostępnych kontaktów - powinny być one widoczne w większości klientów.
  • Polecenie import roster zostało oznaczone jako "nie zalecane", a w formularzu rejestracyjnym można wybrać pobranie listy kontaktów analogiczne do działania komendy get roster.
  • Anulowanie subskrypcji transportu na obecność użytkownika (wywalenie transportu z rostera, lub zmiana subskrypcji na "to" lub "none") nie powoduje wyrejestrowania użytkownika z transportu - pozwala to na uniknięcie automatycznego logowania do transportu.

Wygląda na to że wersja ta działa stabilnie, a przynajmniej stabilniej od poprzedniej. Uaktualnienie raczej zalecane, ale oczywiście "NO WARRANTY". ;-)

3 komentarze do wpisu „Jabber GG Transport 2.0.6”


Hacker kontra inżynier-profesjonalista.

Mimo, że jogger nie służy do dyskusji dołącze się do wątku zgody i mmazura. Zgadzam się z mmazurem. Dodałbym jeszcze coś - ja nie umiałbym pisać programu od razu według założeń jak ma wyglądać produkt końcowy. Po prostu tego na początku nie wiem. Oczywiście jest założony jakiś konkretny cel, ale można by go osiągnąć na setki sposobów. Jak w parę godzin zrobię jakoś działającą prowizorkę, to wiem co w niej jest nie tak, co należy zmienić, co dodać i z czego zrezygnować. Czasem wiąże się to z pisaniem od nowa (nie jest to dużo, jak już się wie jak), czasem wystarczy ulepszyć prowizorkę, a czasami się ją po prostu porzuca - gdy okazuje się że projekt mnie przerasta, albo uznam go za za mało ambitny czy użyteczny. To jest wolność jaką daje mi hobbystyczne programowanie Open Source - mogę robić to co sprawia mi satysfakcję, a z innych projektów zrezygnować. Dlatego też w pracy wolę być administratorem, a nie programistą - daje mi to czas na programowanie jakie lubię.

Z zaczynaniem od prowizorki wiąże się jeszcze coś - nie zaczynam "oficjalnie" projektu (np. przez założenie go na JabberStudio), póki nie mam jeszcze jakoś działającego kodu, który nadaje się do dalszego rozwoju. Oczywiście czasem okazuje się że poszedłem błędną ścieżką i w pewnym momencie programu nie da się dalej rozwijać z powodu błędnych założeń - tak jest np. z moim apingerem. Używają tego chyba setki ludzi na całym świecie, dostaję ileś majli w sprawie jego błędów i ograniczeń, ale żeby to poprawić musiałbym napisać to od początku. Nie chce mi się - bo u mnie działa. Smutne, ale tak wyglądają ograniczenia Open Source. A co do samych ograniczeń tego projektu - wynikały one głównie z tego, że miał być to program bardzo prosty, a urósł do czegoś poważniejszego - pierwotne założenia zostały osiągnięte, ale jak program się rozwijał, to oczekiwania rosły. Nie wyobrażam sobie jednak, żebym miał coś zaczynać tworzyć zakładając od razu wielki projekt - tworzenia dużych projektów nawet się nie podejmuje. Linus też nie zaczynał pracy nad Linuksem z myślą o stworzeniu w pełni funkcjonalnego i bardzo popularnego systemu operacyjnego na wiele platform sprzętowych. Pierwotne założenia nie dość że różniły się od tego czym Linux jest dzisiaj, ale w wielu miejscach były z tym sprzeczne. Ale przecież jeden człowiek nigdy by nie zaczął pracy nad tak wielkim projektem.

A może ktoś zna jakiś duży projekt Open Source, który odniósł sukces, a prowadzony był "profesjonalnie" (według definicji zgody)?

Starczy tego, teraz czas zająć się obiecanym wydaniem nowego transportu GG...

Dodaj komentarz do wpisu „Hacker kontra inżynier-profesjonalista.”


Życie na zwolnieniu lekarskim

Jakoś dochodzę do siebie po środowej operacji. Wczoraj byłem w Bytomiu na kontroli i dowiedziałem się, że wyjątkowo mało spuchłem jak na taki zabieg. A żona i tak twierdzi że wyglądam "jak pół chomika". Po kontroli wpadłem do firmy oddać L4 i zrobiłem przy okazji parę pilnych rzeczy, z którymi beze mnie by sobie nie poradzili. Problemem oczywiście wciąż było (i nadal jest) jedzenie - obiad jadłem z 5 razy dłużej niż zwykle, a po nim byłem potwornie zmęczony i obolały. W nocy, jakby jeden chory w rodzinie to było mało, Krysia dostała gorączki (38.4) i zamiast spać była pełna energii. Musiałem się ewakuować do drugiego pokoju na podłogę. Czasem jakoś znosiłem jak łaziła mi po twarzy, ale teraz to było wykluczone.

Dzisiaj obudziłem się bardziej obolały niż wczoraj. Do pracy ani nigdzie indziej nie musiałem iść, więc żeby się czymś zająć zabrałem się za Transport GG. Postanowiłem wreszcie poprawić parę błędów o które userzy mnie od jakiegoś czasu męczą. Ale mogłem spokojnie to olać, bo najwyraźniej nikomu bardzo na tych poprawkach nie zależało - nikt nie zgłosił żadnego z tych błędów na JabberStudio. Przy okazji znalazłem buga, który pozwala na bardzo prosty zdalny DoS - wywalenie transportu jedną wiadomością. Oprócz tego poprawiłem obsługę statusów opisowych niedostępnych użytkowników (przy okazji okazało się, że wina, przynajmniej u mnie, jest w połowie po stronie jggtrans, a w połowie po stronie tkabbera - w obu podobno poprawione), obsługę zmian dostępności (brana pod uwagę jest tylko dostępność zasobu o największym priorytecie) i chyba jeszcze jakieś drobiazgi. U siebie już to zainstalowałem, jak nic się nie wysypie to prawdopodobnie jutro będzie release wersji 2.0.6.

3 komentarze do wpisu „Życie na zwolnieniu lekarskim”


Koszmar

(co bardziej wrażliwi niech lepiej ominą ten wpis)

Właśnie wróciłem ze Specjalistycznej Przychodni Stomatologicznej w Bytomiu. W pokiereszowanych ustach mam jakiś zakrawiony wacik, którego boję się wyjąc, pluje krwią i ze strachem czekam na moment w którym znieczulenie przestanie działać. Ale zacznijmy od początku...

Dzisiaj rano tam pojechałem na zabieg, na który zapisałem się jakieś dwa i pół miesiąca temu. Już wtedy mnie ostrzeżono, że mimo że jestem zapisany na 9:30, to mogę czekać do południa, albo i dłużej. Dlatego wziąłem sobie od żony książkę do czytania w autobusie i na miejscu. Przeczytałem prawie całą, gdy o 12:15 zaproszono mnie na salę operacyjną. Pani poradziła zdjąć koszulkę, bo będzie mi za ciepło i dała fartuszek "żeby mnie nie ubrudzić jak będzie trzeba kość piłować". Pocieszające. Potem doktor się upewnił, że chodzi o lewą ósemkę, przy okazji się dowiedziałem, że prawa kwalifikuje się na taki sam zabieg...

Zabieg zaczął się od znieczulenia. Zaczęło działać bardzo szybko - widać coś mocniejszego niż używa moja dentystka. W ruch poszedł skalpel - coś mi tam pocięli. Później długo na zmianę było jakieś wiercenie, podważanie i próby wydłubywania. Ząb wyraźnie dawał opór, a chirurga najwyraźniej to też wkurzało. Słyszałem tylko "co za cholerna ósemka", "ten za krótki daj dłuższy", "może coś szerszego", "dawaj korzeniowce", "teraz trzonowce" itd. itp. W tym czasem znęcano się nad moją paszczą. Ząb i bezpośrednie okolice były znieczulone, ale szarpanie szczęką i tak nie jest przyjemne, poza tym asystentka ciągle odciągała mi policzek, a narzędzia zbrodni czasem trafiały na inne nie znieczulone miejsca. Twardzielem nie jestem, więc od pewnego momentu wiłem się, trzęsłem i jęczałem. Za to dostawałem opieprz od chirurga. Dowiedziałem się też, że to wszystko przeze mnie, bo się upierałem na ten termin (co jest oczywiście nieprawdą) i parę innych nieprzyjemnych rzeczy. Minimalna ulga przychodziła tylko pani doktor (asystentka?) przytrzymywała mi głowę dociskając do swoich piersi - przynajmniej można było pomyśleć o czymś innym ;-)

Jak próby podważania i wydłubywania zęba nie dawały rezultatu, to najpierw postanowiono przeciąć zęba. To też nie dało żadnych rezultatów (co okazało się po kolejnych kilkunastu minutach dłubania). Potem piłowano mi kość szczęki. Też okazało się że mam wyjątkowo grubą (i to też pewnie moja wina). W końcu udało się tego zęba wyciągnąć (w kilku kawałka). Jeszcze tylko zszywanie i mogłem na chwiejnych nogach opuścić salę. Wcześniej lekarz powiedział mi co mam łykać i że po L4 mam się zgłosić jutro. Spytałem się czy to konieczne - i znowu pretensje że co ja z Gliwic nie mogę dojechać? Że tam idę na zabieg, a na kontrolę gdzie indziej? itp. Oczywiście kontrola tam ma sens, ale na początku była mowa tylko o L4...

Teraz nie wiem co o tym myśleć. Lekarz nie traktował mnie miło, ale ze strony medycznej raczej nie mam podstaw mu nic zarzucać. Zresztą trochę rozumiem jego zdenerwowanie, szczególnie jak dopisali mu paru dodatkowych pacjentów. No i mój przypadek też był podobno wyjątkowy. I czemu akurat mnie się musiało za to dostać? Mam jeszcze drugą ósemkę do wyrwania i nie wiem czy iść z nią też tam, czy gdzie indziej. W sumie tam tę godzinkę jakoś wytrzymałem i dalej wierzę że trafiłem w ręce fachowców. Gdzie indziej może być przecież gorzej, ale może też być i dużo lepiej. Na razie jednak nigdzie się z tym nie wybieram...

4 komentarze do wpisu „Koszmar”


Kolejny klient Jabbera

Konkurencja nie śpi - w ekg pojawiły się podstawy obsługi Jabbera, więc i ja postanowiłem opublikować swoje wypociny. Ze strony projektu XMPP można ściągnąć snapshot tej biblioteki wraz z konsolowym klientem Jabbera - CJC. Kiedyś będzie to niezależny projekt, ale to dopiero jak PyXMPP się ustabilizuje. Na razie CJC nadaje się jedynie do prostego czatu, ale już daje jakiś pogląd na to, jak ja sobie to wyobrażam. Jak ktoś ma jakieś opinie czy sugestie na ten temat, to proszę dać znać.

A jutro czeka mnie operacyjne usuwanie ósemki (zęba). Mam się tam stawić o 9:30, ale może będę musiał czekać i do 13:00. Nawet nie chcę wiedzieć jak to ma wyglądać i jak długo po tym nie będę mógł jeść.

1 komentarz do wpisu „Kolejny klient Jabbera”


(Nie)zwyczajny dzień admina

Jako admin ostatnio raczej się obijałem. Zajmowałem się jedynie programowaniem Jabbera i ostatnio zacząłem się zastanawiać nad tym, że wszystko działa, nic nie pada i właściwie to nic lepszego do roboty nie mam (poza odebraniem paru telefonów od klientów i wysłaniem do nich serwisu). Dzisiaj miał być kolejny taki dzień - spędzony nad pracami CJC, ale...

Jak tylko przyszedłem do pracy szef mnie poinformował, że jakiś klient dzwoni, że mu poczta nie działa. Szybko okazało się, że mnie też nie działa - jak ma działać, jak nasz główny serwer pocztowy padł. O drugiej w nocy postanowił sobie zrobić przerwę. Akurat temu serwerowi taki niewyjaśniony pad zdarzył się chyba pierwszy raz od jakiś dwóch lat. Nie odpowiadał nawet na Magic-SysRq przez konsolę szeregową (później się okazało że to nie serwer, ale nowy minicom, w którym znowu zmieniły się skróty klawiszowe), więc poszedłem do serwerowni (na centralę TPSA), gdzie jeszcze na konsoli widniał piękny Ooops z kernel panikiem. Po restarcie wszystko ruszyło bez problemu, więc mogłem wrócić do pisania CJC...

Okazało się że dzisiaj wreszcie było wszystko gotowe do podłączenia kolejnej sieci (a właściwie podzielenia istniejącej). Kumpel zrobił nowego VLANa i system zawisł (tym razem w innej maszynie). To akurat się zdarzało czasem. Po reboocie VLAN działał już poprawnie, ale dhcpd przywitał nas komunikatem "eth2.60: not found". Wszystko inne widziało ten interfejs. Po chwilach zabawy z ifup/ifdown itp. dhcpd przestał też widzieć "eth2.59", "eth2.58" i "eth2.21", a w końcu zawisła częściowo obsługa sieci. Pomyślałem, że to dobra okazja, żeby wreszcie zrobić upgrade kernela, bo miałem jeszcze jakieś stare 2.4.19. Po restarcie (twardym bo przy tym zwisie nie dało się czysto położyć systemu) musiałem poczekać aż fsck poprawi root filesystem. Na / miałem wciąż ext2 więc uznałem że to też można od razu zmienić na ext3. Poprawiłem fstab, przegenerowałem initrd, ale chyba nie zrobiłem "tune2fs" jak należy i po restarcie system nie umiał zamontować /. Po starcie z zapasowego wpisu w lilo niby system wstał, ale VLANy nie wstawały - pomyślałem, że do nowego kernela potrzeba nowego pakietu vlan. Więc odpalam poldka, a ten mi "poldek.conf: input/output error". Plik niby był w /etc, ale nie można było go nawet skasować, a co dopiero przeczytać. fsck niby coś poprawiał, ale nic nie poprawił. Po którejś próbie straciło się jeszcze /etc/inittab, /etc/rc.d i parę innych, bez śladu nawet w /lost+found. Robiło się wesoło. Jednak się nie poddałem (w końcu gdzieś jeszcze mam backupy) i zrobiłem ten ext3. System nawet z tego wystartował, a kolejny fsck (teraz pracujący na ext3) wywalił błędny poldek.conf, a zgubione pliki wkleił do /lost+found. Wszystko wróciło do normy, upgrade kernela się udał. Nawet VLANy działały jak trzeba (wcześniej nie działały prawdopodobnie do tego, że zmieniła mi się nazwa modułu do sieciówki). Nadszedł czas spróbowania dhcpd...

Jak odpaliłem wcześniej w single, to ruszył. Później w działającym systemie już nie: "eth2.60: not found". Pozostało zajrzeć do źródeł. Szybko znalazłem odpowiednią funkcję w common/discover.c. Okazało się, że dhcpd na listę interfejsów przeznacza bufor o wielkości 2048 bajtów, a przy ponad 50 interfejsach to nie wystarczało. Zmieniłem na 65536, przekompilowałem... i działa :-) Od razu zmianę wrzuciłem do CVS PLD, może jeszcze komuś się przyda.

Ostatecznie byłem z siebie zadowolony, a nawet stwierdziłem że tego mi było trzeba. Czasem lubię sobie poadminować, byle nie za często :-)

8 komentarzy do wpisu „(Nie)zwyczajny dzień admina”