Zaloguj się

Jog Jajcusia

xmpp:jajcus@jajcus.net

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.

13 komentarzy do wpisu „ Wreszcie jest nowy transport GG”


Geek kontra zderzak

Dzisiaj znowu dwa razy (raz pod przychodnią, raz pod dworcem PKP) zahaczyłem zderzakiem o krawężnik. Ten drugi raz to był akurat o ten jeden raz za dużo i kawał zderzaka mi się odłamał. Nie mógł tak wisieć (to już będzie zagadka dla mechanika — czy da się to jeszcze poskładać), więc trzeba było coś z tym zrobić. Ale co to dla mnie? ;-) Wyciągnąłem z torby zestaw naprawczy, czyli metrowy patchcord zakończony wtykami RJ-45 (chyba nie krosowany) i przywiązałem to jakoś tak, żeby się trzymało. Jutro tak jeszcze pojadę do pracy, a po południu do mechanika, niech mi przynajmniej powie czy i co będzie trzeba kupić.

15 komentarzy do wpisu „ Geek kontra zderzak”


Nowa zabawka w pracy

Gdzieś w okolicach marca/kwietnia stwierdziliśmy, że jedna z naszych maszyn przestaje się wyrabiać i jak najszybciej trzebaby ją wymienić na mocniejszą. Stara maszyna ma 2 Athlony MP 1800+, więc było wiadomo, że żadna jednoprocesorowa maszyna nie starczy. Dodatkowo potrzebne było coś, co nam się do szafy zmieści. Czyli maksimum 4U i 68cm głębokości. Drugi warunek okazał się praktycznie nie do spełnienia dla nowoczesnych maszyn dwuprocesorowych, więc szafa została powiększona o dupkę, a poszukiwania były kontynuowane po złagodzeniu wymagań. Od początku chciałem coś z procesorami AMD, ale nic ciekawego (o odpowiedniej mocy i nie za drogiego) u typowych producentów serwerowych PeCetów (a więc: IBM, HP (dawniej Compaq) i Dell) nie znalazłem. W końcu mi wyszło, że chcę IBM x336.

Wybór ten został wstępnie zaakceptowany przez szefostwo, bo cena podstawowego zestawu, mimo że duża, była jeszcze znośna. Jednak gdy tylko szef dowiedział ile kosztować to będzie po dokupieniu kolejnego procka i RAMu, to propozycja upadła. Już miałem się zastanawiać nad jakimś składakiem, lub po prostu dużo słabszą maszyną, gdy na newsach przeczytałem o Sun Fire v20z z Opteronami. Że ja wcześniej nie wpadłem na to, żeby na strony Suna zajrzeć. Udało się nawet jakoś znaleźć dystrybutora w Polsce (strony WWW Suna nie ułatwiają znalezienia większości potrzebnych informacji). Dystrybutor za serwer z wszystkim co potrzebujemy (2 procki, 2GB ram, dysk SCSI) zaproponował cenę mniejszą niż ten wyjściowy IBM z jednym prockiem i 1GB ram (i dwoma dyskami, których nie potrzebujemy). Niestety, okazało się, że akurat pieniędzy nie ma... przez jakiś czas słyszałem może w przyszłym tygodniu, aż w końcu zamówienie poszło i w ostatni piątek serwer do nas dotarł.

Już po przejrzeniu instrukcji (właściwie tylko ulotki, bo instukcje były na płytce) dowiedziałem się, że ten serwer oprócz platformy z dwoma Opteronami itd. ma jeszcze Service Processor, czyli Embeded PowerPC z Embeded Linuksem, który kontroluje pracę całej maszyny. Maszyna ma więc 4 porty Ethernet — dwa gigabitowe z platformy i dwa 10/100 (właściwie jeden z dwuportowym HUBem) z SP. Gdy serwer jest wyłączony, to SP pracuje i można się na niego przez SSH zalogować i np. właczyć serwer. Oprócz tego cały BIOS można obsługiwać przez port szeregowy. Tu na prawdę nie było sensu podłączać monitora i klawiatury do serwera, żeby zainstalować system. Ja zainstalowałem PLD z płytki PLD Rescue (wersja AMD64) używając konsoli szeregowej. Ale mógłbym to nawet zrobić przez SSH posiłkując się SP (gdy instalowałem PLD jeszcze SP nie miałem opanowanego ani skonfigurowanego). Wszelkie eksperymenty z serwerem są bardzo proste — będąc fizycznie zdala od maszyny można ją sobie włączać i wyłączać do woli, a konfigurację BIOSu i systemu operacyjnego przeprowadzać przez konsolę szeregową (w razie potrzeby tunelowaną po SSH).

SP pozwala też przeprowadzać pełne testy diagnostyczne maszyny. Zresztą, przy tych testach dzisiaj wyszły dwie rzeczy. Pierwsza to to, że większość testów nie chciała działać. Wywalały się one z komunikatem Unable to load module, a w jednym przypadku Module has disappeared. Okazało się, że to dlatego, że SP miało firmware w wersji 2.1.0.16, a pliki pomocnicze z płytki, udostępnione mu przez NFS, były dla wersji 2.1.0.8. Ściągnąłem z sieci firmware i pliki pomocnicze w wersji 2.2.0.18 i problem zniknął. Przy okazji zrobiłem upgrade BIOSu (wszystko zdalnie). Drugi problem, to nie działający dysk. Dysk który przyszedł z serwerem albo nie był wykrywany przez BIOS kontrolera, albo zaraz potem odmawiał współpracy. Nie zauważyłem tego od razu, bo system instalowałem na starszym, mniejszym dysku, bo 73GB w tej maszynie nie są nam potrzebne. Ale skoro już dysk przyszedł, to powinien jednak działać. No cóż... sprawdzimy jak działa serwis Suna. IBM ostatnio nie wypadł najlepiej.

5 komentarzy do wpisu „ Nowa zabawka w pracy”


Chyba znowu będą mnie kroić...

Po powrocie z pracy w łazience zaobserwowałem coś interesującego. Mam wyraźny wzgórek łonowy ;-)... ej, coś tu nie gra... tylko z jednej strony... raczej mi się to nie podoba. Poprosiłem żonę o opinię. Obadała i stwierdziła do lekarza!. No to zadzwoniłem, umówiłem się, wziąłem prysznic i pojechałem.

Lekarzowi powiedziałem, że zrobiła mi się taka buła nad lewym jądrem. Wypytał, od kiedy to mam, czy mnie to boli itd. W końcu przyszedł czas na zdjęcie majtek i pokazanie problemu. Lekarz obmacał bułę i ze zdziwieniem stwierdził to wygląda na przepuklinę. Później spytał co to za praca po której mi się to pojawiło. Normalna, praca informatyka. Dzisiaj już zupełnie. Siedziałem osiem godzin na tyłku i bawiłem się nowym serwerem. Co prawda, trzeba było coś w serwerowni poprzestawiać, ale do tego oddelegowałem kolegów (fajnie czasem być kierownikiem działu ;-)). W każdym razie lekarz stwierdził przepuklinę i dał mi skierowanie do chirurga. Zobaczymy co powie chirurg...

11 komentarzy do wpisu „ Chyba znowu będą mnie kroić...”


Z licencji...

Oto co znalazłem w licencji (nawet niespecjalnie długiej i wymyślnej) do firmware i sterowników dla serwera Sun Fire v20z:

You acknowledge that Software is not designed, licensed or intended for use in the design, construction, operation or maintenance of any nuclear facility.

Na tą licencję trzeba się zgodzić, klikając na Accept aby ściągnąć firmware i sterowniki. Żeby było śmieszniej wstęp do tej licencji mówi, że należy ją zaakceptować przed otworzeniem opakowania z oprogramowaniem którego dotyczy. A samo oprogramowanie jest w większości na GPL. Na szczęście to akurat ta licencja na ściąganie uwzględnia. Ale już sam do końca nie wiem, czy jak ściągnę od nich to oprogramowanie (GPL) to mogę przy jego użyciu budować bombę atomową, czy nie... no i jak otworzyć to opakowanie...;-)

2 komentarze do wpisu „ Z licencji...”


Opieka nad projektem...

Jakiś czas temu dostałem łatę na JJIGW dodającą obsługę subskrypcji obecności użytkowników IRCa. Rzecz fajna, przydatna, aczkolwiek z powodu specyfiki IRCa (zmieniające się nicki), ciężka do zaimplementowania.

Dzisiaj wreszcie znalazłem czas, żeby przejrzeć tego patcha. I nie spodobał mi się. Parę rzeczy psuł (łamiąc specyfikację XMPP i MUC), parę innych robił nia tak jakbym chciał. Ale zawierał też pewne poprawki mojego kodu. Najbardziej dokuczyły mi: brak dokumentacji dodanego kodu i coding style. Ale tego nie śmiałem się za bardzo czepiać — mój kod JJIGW sam z siebie jest kompletnie pozbawiony dokumentacji, a i śliczny nie jest.

Napisałem swoje uwagi do autora patcha. W sumie, nawet jakby nie chciał tego poprawić, to bym patcha nałożył. Ręcznie, w większości po swojemu, ale dodałbym te zmiany. Jednak gotowy kod, to zawsze coś. Szkoda, że rzadko dostaję gotowe ulepszenia do moich projektów. No, ale cóż. Sam sobie też jestem winien — komu się chce grzebać w zawiłym i nieudokumentowanym kodzie? Z drugiej strony, jakbym się uparł, żeby wszystko udokumentować, to ten kod by pewnie w ogóle nie powstał — zabawa mogłaby przestać być zabawna. Dobrze, że przynajmniej API PyXMPP jakoś udokumentowałem.

3 komentarze do wpisu „ Opieka nad projektem...”



[szpieg] Jesteście obserwowani...