Dawno mnie tu nie było…

Miałem tyle różnej roboty, że nawet nie miałem kiedy na Joggera pisać.
Robota to: prace nad systemem zarządzania użytkownikami w firmie (tu jest
jeszcze masa rzeczy do zrobienia :(), portowanie PLD na AMD64
(na szczęście to nie tylko ja robię, ale właściwie cały team PLD – jednak
w lutym firmowy serwer z dwoma opteronami musi ruszyć „w produkcji”), inne
rzeczy „firmowe”, prace nad CJC i PyXMPP, poprawki w transporcie GG (do tego
jakoś szczególnie nie mogę się zabrać) itp. itd. Ale dobrze by też było
przynajmniej wieczory i część weekendów rodzince poświęcić…

No cóż. Roboty kupa, a ja jeszcze sobie kolejną znajdują (przyjemniej jest
zająć się czymś nowym niż kontynuować to co już się nudzi..). W sobotę
w PyXMPP dodałem obsługę komponentów jabberd, a w niedzilę w oparciu o to –
bramkę do IRCa. I ta bramka działa – przynajmniej podstawowa funkcjonalność,
bo wciąż bardzo wiele brakuje (i tym samym moja lista TODO znowu się
wydłuża).

Wczoraj przy okazji pisania tej bramki nieźle się zdenerwowałem… Już
zaczynało działać – docierały do mnie teksty z kanału #pld. Robota szła
nieźle… i okazało się że w firmie router brzegowy leży. Robotę musiałem
przerwać i jechać do Zabrza rebootować maszynę. Wrrr… Stracony czas
nadrobiłem wieczorem – nad JJIGW (tak się moje najnowsze dzieło nazywa)
siedziałem do północy.

Co zrobić z idiotami…

… którzy do wyszukiwania bibliotek przez skrypt configure używają
testów na istnienie pliku …./lib/lib$name.so?????

Wieszać, wystrzelać, potopić, podusić?

Przecież skrypt configure powinien sprawdzać czy linker potrafi znaleźć
odpowiednią bibliotekę, a nie czy jakiś plik jest na dysku. I chyba
nawet w dokumentacji autoconf jest to jasno powiedziane… A taki np.
PHP pełen jest takich kwiatków 😦 . I portowanie PLD na AMD64 to głównie poprawianie takich idiotyzmów.

Ale uparłem się i przeniosę swoją ulubioną dystrybucję na tę platformę. A co się będzie mój serwerek z dwoma Opteronami marnował… 🙂

Jesień Linuksowa

Siedzę sobie w Ustroniu na Jesieni Linuksowej. Dzisiejsze wykłady skończyły się już dawno temu – teraz jest część rozrywkowa. Antylopy GNU z ogniska jednak nie będzie, ale i tak jest fajnie. Grupka pingwiniarzy bawi się w „kalambury” itp, a inna (w tym ja) dorwała się do internetu. 9 laptopów na jedną komórkę z GPRS, ale jak już ruszyło (przez pierwsze 2h prób było jakieś 99% strat) jest nieźle :).

No to byłoby na tyle. Nie piszę więcej, bo nawet nie wiem czy z mojego CJC uda się to wysłać 🙂

Kontrola wersji i „myśl techniczna”, ech…

Przedwczoraj szef do mnie dzwonił z pytaniem jak załatwić sprawę
uprawnień różnych programistów w naszej firmie do kodu źródłowego, żeby
każdy widział swoją część, nie miał dostępu do pozostałych, a wszystko
działało razem. Wytłumaczyłem, że jeśli ten kod jest w PHP i ma działać
razem na serwerze, to w 100% nie da się zabezpieczyć przed tym, aby ktoś
sobie cudze źródła np. wyświetlił na stronie WWW. Zaproponowałem
natomiast użycie jakiegoś systemu kontroli wersji, który zapewnił by
kontrolę dostępu podczas tworzenia kodu i dokumentował ew. próby
nadużyć w kodzie służących dostępowi do „zakazanych” części. Miałem tę
sprawę obadać.

Najpierw przyjrzałem się dostępnym narzędziom. Wstępnie ograniczyłem
się do CVS, arch i Subversion. CVS odpadł, bo przestarzały i ma różne
głupie ograniczenia. Arch, bo nie chodzi pod Windows, a nasi programiści
(nie wiedzieć czemu ;-)) używają Windows. Subversion
z dostępem przez WebDAV wydał się najodpowiedniejszy. Problemem było
wymaganie apache-2.0, ale zainstalowałem sobie wszystko co trzeba
w chroot i ładnie chodzi.

Sam przerzuciłem do Subversion z CVS swoje projekty, przez
głupotę/niedopatrzenie tracąc jeden z ostatnich – rozpoczęty server DHCP
korzystający z bazy SQL – dzisiaj musiałem to pisać od nowa. Ale
Subversion mi się podoba, dużo bardziej niż CVS. A podstawową obsługa
praktycznie się nie różni.

Dzisiaj szef mnie wezwał do siebie w sprawie tych praw dostępu. Był
tam już szef działu oprogramowania, dość pozytywnie (a przynajmniej
neutralnie) nastawiony do mojej propozycji. Okazało się, że „nie ma sensu
takiej kobyły do tego zaprzęgać” i wszystko zostanie załatwione prawami
dostępu do plików na serwerze i skryptami – całe szczęście że nie ja
będę tego pilnował. I w sumie przekonywanie kogokolwiek więcej do tego
subversion mi odpada. Tylko szkoda że wczoraj tyle się z tym męczyłem,
gdy miałem lepsze rzeczy do roboty.

Podczas tej dyskusji szef twierdził, że ten kod źródłowy powinien
być najbardziej chroniony ze wszystkiego w naszej firmie. Chciał kupić
jakiś moduł do szyfrowania kodu PHP (żeby nikt od nas nie podejrzał,
a jakby co to można by go sprzedawać), wspominał nawet o odłączaniu
stacji dysków i Internetu programistom. Powtarzał, że tu nie ma miejsca
na żadne zaufanie itd. Chyba nawet Microsoft tak nie boi się o swoje
kody źródłowe, bo w końcu udostępnia je na zewnątrz (oczywiście tylko
wybranym i na diabelskich zasadach) Gdy użył stwierdzenia „myśl
techniczna”, to we mnie się gotowało. Sam mam zupełnie inne spojrzenie
na to jak powinno być tworzone i udostępniane oprogramowanie,
szczególnie dla instytucji publicznych (a o takim była mowa).
Zastanawiałem się co ja właściwie robię w tej firmie. Nie próbowałem
wyjaśniać moich poglądów, bo wyszedł bym tylko na fanatyka, a z powodu
mojego słabego rozeznania z biznesem i prawem może także na głupka. Na
szczęście nie jestem programistą, ale administratorem i mogę uznać, że
sprawa mnie nie dotyczy. Ale fajnie by było pracować gdzieś gdzie Wolne
Oprogramowanie i Open Source to rzecz naturalna nie tylko w sensie brania ale
także dawania.

Telewizja, telewizja…

Ostatnio tu wiele nie pisałem, bo zawalony jestem różną robotą (może jeszcze
o tym napiszę). Dzisiaj też tylko dwie ciekawostki, rodem z TV:

Wczoraj TVP pokazała swój nowy serial („jedyny w swoim rodzaju” itp.).
Oczywiście żadna rewelacja, a ta nowatorska idea żałosna (audiotele
„czy śmierć XXX była przypadkowa?”). Ale ja nie o tym…

Oglądając takie głupoty w telewizji hobbystycznie zaglądam w monitory. Tym
razem zauważyłem dwie ciekawe rzeczy:

  • Jedna firma produkująca monitory chyba zapłaciła producentom serialu za
    reklamę – bo monitor pokazywali tak, że ekran gry był od góry odcięty, ale napis na obudowie
    monitora ukazany bardzo wyraźnie.
  • Linda siedział przed monitorem na którym wyświetlone był coś, co nie
    wyglądało jak Windows. Wpisywał jakiś tekst do edytora co wyglądał jak VIM (np.
    „~” zamiast nieistniejących linii). Pewnie dlatego musiał zginąć już
    w pierwszym odcinku :-)

Druga „ciekawostka” dotyczy dzisiejszego Teleexpresu i informacji
o najnowszym „superkomputerze” (klastrze) w TASK. Powiedzieli że oparty jest
o procesory Intel Itanium 2, ale już nie wspomnieli jaki system operacyjny na
tym chodzi. Wraz z ostatnimi informacjami TVP sugerującymi że wszędzie używa się
Windows daje to dość ciekawy obraz rzeczywistości…

Ktoś se robi jaja, ja se robie jaja…

To zacznę od siebie – w zeszłym tygodniu zainstalowałem sobie
jabberd-2.0b1 na jabber.bnet.pl. Fajny nowy serwerek Jabbera,
obsługujący XMPP w tym autentykację SASL, szyfrowanie StartTLS,
privacy-lists. W ogóle super… tylko że beta. Więc się sypał na okrągło
trochę błędów znalazłem, część poprawiłem, wszystkie zgłosiłem na
JabberStudio (poprawione wraz z patchami). Teraz działa już nieco
lepiej, ale do stabilności jabberd-1.4.x (który swoją drogą był niezłym
i przestarzałym bublem) wciąż mu daleko. :-(. Podziwiam
cierpliwość swoich userów :-).

tkabber-0.9.5beta miał błąd w obsłudze SASL, więc go musiałem sobie
poprawić (zgłosiłem oczywiście też alekseyowi), mając już serwer
obsługujący StartTLS dodałem też tego obsługę do PyXMPP i CJC (trzeba
jeszcze dokończyć weryfikację certyfikatu i obsługę błędów).

Tydzień temu kupiłem (na koszt firmy) kartę muzyczną do mojej stacji
roboczej w pracy. Nie miałem głośniczków, więc do testów pożyczyłem
słuchawki od kumpla – karta działała. Dzisiaj wreszcie skombinowałem
głośniczki. Próbuję coś zagrać… i cisza. :-( Kombinowałem
ze sterownikami – nic, podłączyłem te same słuchawki co poprzednio
– nic, zmieniłem slot PCI – nic. W końcu sprawdziłem jeszcze na
komputerze kolegi (z Windows) – też cisza. To fajnie się tym dźwiękiem
pobawiłem… Na szczęście kumpel miał dzisiaj przy sobie inną kartę
– podobno zepsutą, która „charczy”. Ale zawsze lepsze „charczenie” niż
PC-speaker.

Od piątku mamy problemy z łączami międzynarodowymi. Podobno to przez
atak DDOS na operatora który daje nam łącza – nie mogli się doprosić
o przyblokowanie tego u operatora który daje im łącza międzynarodowe.
Dzisiaj pingi wróciły do normy, nam wszystko działa pięknie, ale klienci
dzwonią że u nich nie. Okazało się, że z naszego routera łączność
w świat jest, ale już od klientów nie. Później okazało się, że gdzieś
w Świecie walnięty jest routing na 1/8 naszej przestrzeni adresowej
– akurat ten zakres adresów który przydzielony jest klientom sieci
osiedlowych… Albo jakiś admin machnął się przy konfiguracji routerka,
albo jakiś chakier bawi się czyimś routerkiem. W każdym razie na szybkie
rozwiązanie problemu podobno nawet nie mam co liczyć :-( .
Ale jak to przetłumaczyć klientom???? :-(

Nowy transport GG

From: Jacek Konieczny <jajcus@bnet.pl>
To: jggtrans@lists.bnet.pl
Subject: OGŁOSZENIE: Jabber GG Transport w wersji 2.0.7 jest

Witam wszystkich (trzech) czytelników listy :-)

Mam przyjemność was powiadomić, że właśnie wydałem nową wersję
transportu. Najważniejsze zmiany od wersji 2.0.6 to:

* Usunięty błąd powodujący pad transportu gdy próbował z niego korzystać
ktoś z pustym zasobem

* Usunięty błąd powodujący pad transportu podczas próby odczytania
wersji klienta GG przez niezarejestrowanego użytkownika

* Usunięty inny pad transportu, związany ze zmianą statusu użytkownika

* Gdy połączenie transportu z serwerem GG ulegnie zerwaniu wszyscy
użytkownicy GG zostają oznaczeni jako niedostępni

* Gdy włączona zostaje niewidzialność poprzez niewidzialność Jabberową
transport nie robi się niewidzialny - jest widoczny jako "away", a nie
"offline"

* Poprawiona obsługa wiadomości wielolinijkowych

Dla pewności podaję sumę MD5 (był ostatnio włam na JabberStudio
i teoretycznie ktoś mógłby się bawić plikami):

1064637800b0cde435cebc31d27ecc88 jabber-gg-transport-2.0.7.tar.gz

Pozdrowienia,

Jacek

Enemies of Carlotta

…to programik którym ostatnio się bawiłem. I nie jest to żadna gra,
tylko… program zarządzający listami dyskusyjnymi. Żona prowadzi listę
swojej byłej klasy z liceum, kiedyś było to na ezmlm, ale zmieniłem
qmaila na postfixa i z ezmlm trzeba było się pożegnać. Przerobiłem to na
zwykłego aliasa z listą adresów w pliku. Działało to wystarczająco
dobrze, ale ostatnio na listę zaczęło przychodzić kupę wirusów i spamu
z adresów spoza listy. Trzeba było więc zainstalować nowy program do
obsługi list. Exmlm odpadał. Mailman mnie wkurza (po co wymaga jakiegoś
hasła? chyba tylko po to, by utrudnić wypisywanie się z listy),
majordomo i jemu podobne też (interfejs w postaci komend w temacie lub
treści majla wydaje mi się przestarzały). Kiedyś widziałem
enemies-of-carlotta na freshmeat a teraz miałem okazję wypróbować.
I działa 🙂 Miałem tylko drobne problemy związane z gadatliwością
enemies-of-carlotta gdy nie poda się opcji „–quiet”.
Postfix nie lubi takich gaduł i poczta nie dochodziła do wszystkich.
Dodanie „–quiet” od razu pomogło.

No to Iwona ma swoją listę, ale co, ja jestem gorszy? Założyłem więc
listy dyskusyjne dla moich projektów Jabberowych:
jggtrans@lists.bnet.pl, cjc@lists.bnet.pl i pyxmpp@lists.bnet.pl. Takie
listy powinny mieć też archiwa, więc pobawiłem się MHonArc i zrobiłem
coś takiego: http://lists.bnet.pl/ . Oczywiście na razie archiwa są
praktycznie puste.

Organizatorzy Jesieni Linuxowej (właściwie jeden z nich) upominali
się o mój wykład. No to przygotowałem streszczenie (strasznie trudno mi
było się za to zabrać). Gdy pierwszy raz wysłałem z mojego kompa w pracy
odbiło się od MXa linux.org.pl, bo się moje HELO („serwis2.beta”) nie
spodobało. Już miałem ich opieprzać, ale przeczytałem RFC i okazało się,
że mogło się nie podobać (ale mam wrażenie, że kiedyś w jakimś RFC
czytałem coś innego). Streszczenie wysłałem z innego serwera (z
właściwym HELO), ale na swoim komputerku zmusiłem postfixa do wysyłania
innego HELO (nazwa istniejąca w DNS, ale nie będąca adresem tego
komputera), więc nie powinienem mieć więcej takich niespodzianek.

Podczas mojego urlopu (BTW już wróciłem) smoku poprawił kilka błędów
w transporcie GG. Po powrocie poprawiłem kilka innych. Lada dzień więc
można się spodziewać wydania nowej wersji.

No chyba tyle na dziś. Zdaje się że jeszcze coś chciałem napisać, ale
już zapomniałem co.

Dalej na wakacjach…

…ale niestety tylko do piątku. 😦 Ostatnio pogoda zupełnie się popsuła i od ostatniego wpisu chyba ani razu nie plażowaliśmy. Grzybów też ciągle nie ma (pierwszy raz spotkałem się z czymś takim, że w środku sezonu w lesie nie ma _żadnego_ jadalnego grzybów, a znalezienie niejadalnego to też wielka sztuka). Żadnej ryby też nie złowiłem… Ale i tak nie chcę wracać.

Rozpoczęło się głosowanie do Jabber Council. 9 kadydatów i 5 miejsc. Ciekawe jak mi pójdzie. Żadne pytania od wyborców do mnie nie dotarły (po to przyszedłem do kawiarenki, aby odpowiedzieć na ewentualne pytania) – widać większość jest pewna mojego skreślenia (albo wybrania). Wszystko okaże się 17-tego września.

Teraz trochę uzupełnienia poprzedniego wpisu – to co chciałem już wtedy napisać, ale zapomniałem.

Zachęcony komentarzami na Joggerze postanowiłem przeczytać coś Pratchetta (dobrze to piszę? pewnie nie). Kupiłem więc jedną książkę, potem drugą… i trzecią. Zdążyłbym na tym urlopie przeczytać jeszcze z dwie, ale to byłaby rozpusta. Iwonie też się podoba, więc przynajmniej nie będzie miała nic przeciwko takim wydatkom w przeszłości 🙂

Gdy jeszcze była pogoda i się plażowaliśmy żona była jedyną kobietą na plaży (przynajmniej w obrębie kilkuset metrów) opalającą się topless – trochę z powodów praktycznych – dzidziuś i tak by ciągle swoją „spiżarnię” wyciągał. Poprzednio, gdy byliśmy nad morzem więcej osób się tak opalało. Ciekawe czy to czasy się zmieniły, czy ta Pogorzelica to takie nieprzyzwoicie przyzwoite miejsce. Ale nawet nikt się nie burzył z tego powodu.