PLD RPG

20 IV 2008, 22:06:58

Większość zainteresowanych pewnie już widziała, ale może kogoś ominęło -- PLD RPG/Linux. Autorowi zdecydowanie trzeba pogratulować kreatywności i mieć nadzieję, że to nie ostatni jej przejaw. Właśnie się z paroma deweloperami PLD zastanawiamy, czy by w tym względzie jakoś nie pomóc.

"Na dnie Bałtyku w betonowych butach", 500 słów. Albo "pobity do nieprzytomności przez bandę geeków", wierszem. Ewentualnie "zakopany żywcem w lesie", obrazek, A3, kredkami świecowymi.

Zapewniamy odpowiednie... materiały, gdyby autorowi brakowało natchnienia. Cała przyjemność po naszej stronie.

Co dolega PLD

29 IX 2007, 15:38:57

Mój mail sprzed paru minut.

Ja wiem, że to dziwnie brzmi, ale ja się na PLD wychowałem. Cała moja podstawowa wiedza, doświadczenia, wzięły się z tego projektu. PLD nie ma przed sobą wielkiej przyszłości. Przy pomocy PLD nie da się niczego osiągnąć. Openmoko ma przyszłość. Kernel ma przyszłość. KDE ma przyszłość. Jest wiele opensource'owych projektów z przyszłością. Takich, w których udział miałby dla mnie (znaczy -- mojego CV) wymierne korzyści.

Ale jakoś nie potrafię z tym PLD zerwać.

Lefthand e-Faktura a administratorzy

14 IX 2007, 14:38:17

Nie wiem, śmiać się, płakać? (Dla niewiedzących -- poniższa komenda listuje pliki znajdujące się w paczce rpmowej.)

[root@uslugi ~]# rpm -qlp lefthand-server-1.5.3-2.i386.rpm
/tmp/lefthand-server
/tmp/lefthand-server/buildroot.tar.gz
/tmp/lefthand-server/install.sh
/tmp/lefthand-server/manifest.txt
/tmp/lefthand-server/scripts
/tmp/lefthand-server/scripts/postinstall.sh
/tmp/lefthand-server/scripts/postuninstall.sh
/tmp/lefthand-server/scripts/preinstall.sh
/tmp/lefthand-server/scripts/preuninstall.sh
/tmp/lefthand-server/scripts/rpmfiles.txt
/tmp/lefthand-server/scripts/rpmheader.txt
/tmp/lefthand-server/scripts/tarMainInstall.sh
/tmp/lefthand-server/scripts/tarMainUninstall.sh
/tmp/lefthand-server/scripts/tarinstall.sh
/tmp/lefthand-server/scripts/taruninstall.sh

Ja rozumiem, że firmy idą na łatwiznę, bo pełna obsługa systemów linuksowych jest dosyć upierdliwa. Ale powyższe to tak, jakby ktoś mi pokazał środkowy palec. Mam nadzieję, że to będzie działało z PLD-owym Firebirdem, bo średnio mam ochotę takie gówno sobie wrzucać na serwer.

Update: A te pliki to tak naprawdę domyślny instalator Firebirda ze zmianą w postaci ustawienie hasła administracyjnego na masterkey, zamiast zapytania się o nie. Ciekawym, czy sama binarka bazy to też domyślnie wzięta od upstreamu, czy ich własny build.

Przypowieść o optymalizowaniu benefitów w kontekście

26 VIII 2007, 19:24:23

Dłuższy czas temu napisałem na listy PLD maila prezentującego różne wnioski z lipcowego zlotu, po czym wrzuciłem krótkie podsumowanie tutaj oraz linka na 7thguarda. Oryginalnie natomiast planowałem zrobić to na odwrót, czyli wnioski ze zlotu opisać tutaj, a na listy wrzucić tylko linka. I to byłby błąd.

Pisząc tutaj raz, że bardziej uważam na styl tekstu, a dwa, że staram się pisać tak, by ludzie nie pracujący ze mną nad projektem X też wiedzieli o co chodzi. W praktyce oznacza to, że pisanie zajmuje mi znacznie więcej czasu, a co za tym idzie mam większe problemy w ogóle z zabraniem się za wirtualne pióro, czyli owo podsumowanie zlotu najprawdopodobniej by w ogóle nie powstało.

I to jest problem, bo często zamiast napisanego na kolanie tekstu, który byłby przynajmniej zrozumiały i przydatny dla jakiejś wąskiej grupy ludzi, nie produkuję w efekcie kompletnie niczego.

A sensownym gadaniem/pisaniem też można co nieco zdziałać, zwłaszcza, jeśli się, tak jak ja, stara mieć wpływ na kierunek rozwoju danego projektu w szerszej perspektywie. Tylko to się trzeba skupiać na projekcie, a nie na blogu...

Tytuł wpisu pochodzi z oryginalnego szkicu tego tekstu, który był trzy razy za długi i miał pełno takich fuj-słów w sobie. Wrr. Zostawiam go (tytuł znaczy się) ku przestrodze samemu sobie.

O zlotach wedle Mortona

26 VIII 2007, 18:14:49

Cytat z maila Andrew Mortona:

My overall take on kernel summit: we spend far too much time talking about technical stuff.

There is little benefit in doing this: we conduct technical discussions over email and we do it well, and there are many very good reasons for doing it that way. In fact when the KS discussion gets too techy I just start ignoring it (...)

Plus the minisummits are better suited for the technical material.

Polecam przeczytanie całego maila. Generalnie chodzi o to, że najwyraźniej nie tylko ja jestem zdania, że przeznaczanie fizycznych spotkań większą grupą na omawianie technicznych zagadnień, które z definicji interesują tylko pewien podzbiór ludzi, jest stratą czasu. Jeśli chcesz sobie o technikaliach porozmawiać sensownie, to skrzyknij tylko te osoby, które mają w tym jakiś interes, usiądźcie sobie przy jakimś stole i gadajcie, bądź też użyjcie maila/irca, jak zwykle. Natomiast jeśli chcesz robić ogólną publiczną prezentację, to najpierw się upewnij, że rzeczywiście jest ona interesująca dla większości twoich słuchaczy. Jeśli nie jest, to najlepiej jeśli oszczędzisz tak czas swój, jak i innych.

Tyle jeśli idzie o spotkania dla osób technicznych. Zastanawia mnie jak by to wyglądało w przypadku początkujących (LUG-i i takie tam). Pewnie jakoś podobnie, ale ani mi się nie chce zastanawiać, ani w sumie nie mam podstaw, żeby oceniać.

Piętrzy się i pieprzy

25 VIII 2007, 00:30:37

Piętrząca się robota ma taką fajną właściwość, że im więcej jej jest, tym więcej innych rzeczy (i ludzi) czeka, aż zostanie zrobiona. Podprojekt pracowy -- potencjalnemu podzleceniodawcy szczegóły wysyłam juz chyba z dwa tygodnie. Główny projekt pracowy leży od chyba już dwóch miesięcy i nadal nie chce się dać zmusić do działania. Ciekawym kiedy klienci zaczną nas gonić z widłami. Projekt rozwojowy pracowy, który w dłuższym okresie czasu powinien nam zaoszczędzić sporo bólów głowy (bo wreszcie będziemy mieli jak trzeba napisaną integrację wszystkich podsystemów), leży już od paru miesięcy (nie licząc chyba z pół roku, jak ktoś inny miał go robić, ale w końcu nie zrobił). I regularnie gadam z współodpowiedzialnym za niego współpracownikiem, że już w następnym tygodniu, już zaraz. Tyle główna praca.

Do tego dochodzi moja nowa firma. Co tu było... a, tak. Porządne przygotowanie infrastruktury firmowej (i przygotowanie pracowników do jej używania). Jeśli sobie teraz odpuszczę, to za parę miesięcy będą płakał, że wszystko mi się wali, nikt nie wie co zrobić, klienci wrzeszczą, a ja mogłem temu zapobiec, ale się w końcu nie zabrałem. Do tego dwóch współzałożycieli na tydzień sobie wyjeżdża w góry, więc będę odpowiedzialny za serwisowanie systemów, których na oczy nie widziałem, które nie wiem co robią i które na dodatek chodzą na windowsach, o których nie wiem praktycznie nic. Boże, jeśli przez ten czas żaden klient nie zadzwoni z awarią, to obiecuję, że egzemplarz "Boga urojonego" spalę na popiół i zacznę regularnie chodzić do kościoła.

O moich pomysłach rozwojowych na firmę i pomniejszych duperelach (jak poprawianie literówek i przecinków po moim wspólniku) nie wspomnę.

No i na zakąskę hobby, czyli rzeczy, za które mi nie płacą. Ten człowiek od serwera jabberowego pld... ile to tygodni temu mu pisałem, że już zaraz mu prześlę szczegóły jak tym administrować. pld-users.org jak leżało pół rozgrzebane, tak leży (gausus, revy, ty przebrzydły koboldzie!). Hackaton pldowy na początku września można pewnie między bajki włożyć (gausus, jak ja cię dopadnę, to ci brodę zgolę!). Dodatkowe buildery pldowe dla mniej popularnych architektur oraz szkolenie chętnych ludzi z ich obsługi i stawiania, oczywiście też mam w planach... gdzieś tak już od dwóch miesięcy. Fundacja PLD, hahaha. A mityczną nową wersją 7thguarda, to pewnie będziemy z honejem dzieci, tfu, wnuki straszyć. (Honej, jak to czytasz, to chyba mam pomysł, który nawet ma szansę zadziałać, ale to ci opowiem na początku września, jak już będę wiedział coś więcej). O byciu szefem studenckiej rozgłośni radiowej oraz pomysłach na to, jak ją ruszyć do przodu nawet nie wspominam. Szczęście naczelnym jest kto inny, więc najgorsze co się stanie, to to, że nie zrealizuję swoich pomysłów, ale poza tym nic się nie zawali.

A jak mi się w październiku studia zaczną, to się już w ogóle zesram ze szczęścia.

A najgorsze w tym wszystkim jest to, że im więcej tych rzeczy się nawarstwia, tym trudniej w ogóle zacząć. I człowiek tylko spędza dnie na unikaniu jakiejkolwiek pracy, bo jest tego tyle, że odechciewa się zabierać za cokolwiek. Zapewne dlatego, że końca i tak nie widać.

Rozwiązanie jest bardzo proste -- rzucić podstawową (i najbardziej czasochłonną) robotę i tylko skupić się (zawodowo) na zakładaniu firmy oraz hobbystycznie na paru odpowiednio wybranych projekcikach. Problem taki, że firemka przez czas dłuższy (jeśli w ogóle) nie będzie jakoś sensownie dochodowa, a ja się przez ostatnie dwa lata za bardzo przyzwyczaiłem do pieniędzy.

Treningi tańca kosztują. Treningi sztuk walki kosztują. A ja lubię tańczyć, lubię walczyć i lubię być w formie. Lubię jeździć na pingwinaria, jesień, czy zlot pldowy nie patrząc na cenę. Samochodem też lubię jeździć nie licząc pieniędzy na stacji benzynowej. Wczoraj (w ramach unikania pracy) byłem w sushi barze, pokosztowałem win, pokosztowałem potraw, pogadałem sobie z barmanką, kupiłem butelkę wina, zapłaciłem za całość jak za zboże i dałem sowity napiwek. I nie miało to żadnego zauważalnego wpływu na mój miesięczny budżet.

Pointa, pointa, ty cipo (żeby tak sparafrazować klasyka). Nie ma podsumowania. Podsumowanie napisze Życie (w formie noweli). Najlepiej by było, jakby mnie wyjebali z podstawowej pracy, bo wtedy wszystko by się samo rozwiązało. Ograniczyłbym wydatki i przestał żyć jak yuppie, a bardziej wrócił do nerdowych korzeni. Ale mnie nie wywalą, bo już za kilka dni, wkurwiony na maksa, że nie wiem co robię, znowu jakimś cudem wykombinuję jak naprawić podstawowy system pracowy. I znowu dostanę wypłatę. I nadal będę miał TODO do sufitu.

A chuj. Pieprzona potrzeba snu, pieprzony real life (trzeba było zostać nerdem), pieprzona zaledwie 24godzinna doba i pieprzone studia (które muszę skończyć przez pieprzone wojsko, bo mi obiecali, że jak skończę, to zostanę z automatu rezerwistą). I chuj ci w dupę ansari, hipisie jeden. Tak, wiem, nic nie muszę, ty też nic nie musisz, antymon nic nie musi, w ogóle załóżmy komunę i palmy zioło oraz zapładniajmy kobiety całymi dniami. Kiedyś czytałem, że sukces w życiu mierzy się umiejętnością unikania brania na siebie coraz to nowych zobowiązań, wraz z upływem czasu. No cóż, na razie idzie mi wybitnie chujowo.

Tak, żyłka mi pękła, ale nic mi nie będzie. Już w podstawówce nauczyłem się nie przejmować zobowiązaniami i mam taki zawór bezpieczeństwa, że jeśli w danym momencie nie mam ochoty czegoś robić, to po prostu tego nie robię. Dlatego całe wczoraj i przedwczoraj spędziłem na obijaniu się (a jutro z samego rańca jadę na cały dzień w góry stołowe ze znajomymi), mimo, że powinienem pracować po paręnaście godzin dziennie, żeby z wszystkim zdążyć. Nie muszę wspominać, że moi nauczyciele nie byli nigdy zachwyceni tą moją umiejętnością :) Prawda jest taka, że za parę tygodni sprawy pracowe będą w większości uregulowane, takoż sprawy firmowe, natomiast część hobbystycznych będzie zrobiona, a część nadal będzie leżała odłogiem. Ot, życie.

A, gausus, wcale nie jesteś brzydki i nie wyglądasz jak kobold. No, dobra, wyglądasz, ale twojej brody to bym się nie odważył tknąć, bo u nas w pldówku ma ona praktycznie status artefaktu. Ansari, co do tej propozycji seksualnej, to nie obraź się, ale tak naprawdę nie jesteś w moim typie. Hmm, a antymona to tak dawno nie widziałem, że w sumie nie wiem już jak wygląda.

Dobranoc.

Znowu o zarządzaniu open source'ami i nie tylko

13 VIII 2007, 03:36:25
Linux kernel management style. Ten tekst jest tak treściwy i na temat, że mógłbym na jego temat popełnić co najmniej kilka wpisów, w każdym cytując po kilka akapitów. Jak mi się będzie kiedyś nudzić, to go przetłumaczę i będę każdemu podsyłał do przeczytania co najmniej po kilka razy.

Wiecie na przykład dlaczego większość PLDowych cudzych pomysłów z miejsca kwalifikuję jako nieaplikowalne i niepraktyczne? Bo jestem egoistycznym chujem? No tak, to też, ale chodzi mi o to, że pomysłodawca (a) zazwyczaj tak naprawdę nie rozumie implikacji swoich pomysłów, zwłaszcza w stosunku do użytkowników/deweloperów (czyli ogólnie ludzi) oraz (b) jeśli rzeczywiście byłby przekonany do swojego pomysłu, to na krytykę zwracałby uwagę tylko pod kątem wyciągania z niej jakiś przydatnych spostrzeżeń, a energię poświęcał jego realizacji. Innymi słowy za każdym razem, gdy czyjś pomysł rozbija się o to, że jestem brzydki i mam wszy na pępku, to tylko utwierdza mnie to w przekonaniu, że i tak szanse realizacji miałby marne (mówiłem, że jestem chujem :).

Moja rada? Dużo czytajcie na tematy związane z tym, co chcecie robić. Im lepiej będziecie rozumieli ludzi, których to, co chcecie robić, dotyczy, tym bardziej będziecie czuli jeśli któryś wasz pomysł rzeczywiście będzie miał potencjał. Co za tym idzie większy będzie wasz zapał i mniejsza szansa, że jakiś brzydal was od pomysłu odwiedzie. Tak jak mówiłem na zlocie pldziarzy -- jeśli ja coś chcę zrobić, to po prostu robię. I nie dlatego, że mam jakieś magiczne moce, ale dlatego, że jeśli się już za coś biorę, to zazwyczaj jestem mocno przekonany, że ma to sens.

Nawiasem mówiąc parę miesięcy temu zostałem szefem swojouczelnianego radia internetowego (że Koło Naukowe Radio Emiter). I mam nawet pomysł co zrobić, żeby to radio było relewantne i produkowało pewne ilości kontentu, który znalazłby swoją niszę. Ale i tak nie znajdę na to czasu. W najlepszym wypadku uda mi się to w jakiś sposób spójnie opisać i przedstawić reszcie radiowców w nadziei, że podchwycą. Nadziei płonnej, bo prawda jest taka, że z zapałem realizuje się własne pomysły, a nie cudze.

Eh. Świat jest pełen ciekawych rzeczy, o których można poczytać, które można zrobić. Niestety większość z tego, co czytam, zaraz zapominam (nie mogę tego przeboleć prawdę mówiąc), a na rzeczy, które chciałbym robić, nie mam czasu (w tym na czytanie). Jedyne rozwiązanie, jakie mi przychodzi do głowy, to jak najszybciej się dorobić i później żyć w pewien określony sposób. O czym chętnie bym napisał coś więcej... tylko kiedy?

Od zera do menedżera, lekcja 375

31 VII 2007, 23:47:52

Jestem zwolennikiem zarzucania ludzi możliwościami robienia tego, na co mają ochotę (w przypadku projektów open source czytaj: dawania im odpowiednich uprawnień). Robienie jest ciekawsze, gdy co chwilę można robić coś nowego. A gdy robienie jest ciekawsze, robiący robi więcej i bardziej się przykłada.

Ostatnio się jednak na tym przejechałem. Dosyć oczywisty (po czasie) wniosek z owego przejechania się -- zawsze należy najpierw stwierdzić, czy istnieje więcej jak jedno podejście do poprawnego wykonania zadania. W 99% przypadków na dziesięć istnieje. Wtedy żaden problem przydzielić zadanie komukolwiek, niech się bawi. Jak zrobi źle, to albo da się komuś innemu, albo niech autor sam poprawia. Natomiast w pozostałych 1% przypadków nie warto ryzykować i należy postawić na sprawdzonych ludzi. Żeby potem nie żałować.

I małe post scriptum. Takie uwagi są zdecydowanie ciekawsze, gdy się je omawia na konkretnych przypadkach. Niestety publiczne opisywanie konkretnych sytuacji i konkretnych ludzi stoi w konflikcie z chęcią robienia czegoś z rzeczonymi ludźmi. Przeanalizowanie czyjejś pracy w gronie zainteresowanych członków projektu to jedno. Robienie tego samego publicznie, nawet jeśli jest to tylko tłem do analizy własnych poczynań, to już zupełnie coś innego. Albo rybka albo rower... Albo to z jakimiś grabkami i łopatką było.

Drażni mnie to. Muszę się sam cenzurować, inaczej zacznę kopać pod sobą dołki. Coraz bardziej romantyzuję czasy, gdy flejmowałem do woli kogo chciałem, bez brania pod uwagę jakichkolwiek konsekwencji. Stare dobre czasy...

Zajętym

20 VII 2007, 18:56:30

W pracy lekkie urwanie głowy, więc jak miałem coś zrobić, a nie robię, to właśnie dlatego.

Przy czym nie wszystko muszę robić ja, więc jeśli znajdzie się jakiś pld deweloper do postawienia dwóch vserwerów w xenie od gaususa, to można by wreszcie uruchomić pld-users oraz dodatkowe architektury do Th (aida th).

(Piszę tu, a nie na listy, bo jak ktoś mnie czyta, to znaczy, że ma nadwyżki wolnego czasu. A o taką osobę chodzi ;)

Gosh

13 VII 2007, 16:06:16

Aw, shucks, we're blushing.

Pozlotowo PLDowo

10 VII 2007, 17:14:18

Cholera, tematy do pisania mam, ale nie mam czasu, bo praca goni. Nie będę się powtarzał, więc tylko wrzucę link do mojego maila na listy pldowe. Link.

O co chodzi w tym komponentyzowaniu PLD mówiłem na zlocie, ale nie mam czasu teraz opisywać. Niedługo postaram się skrobnąć. I w ogóle skrobnąć o tym, co na tym zlocie mówiłem. Eh, za dużo tego. Jeszcze muszę coś machnąć o 7thguardzie i w ogóle wrażenia z wyjazdu (a był pełen wrażeń :), ale to też nie wiem kiedy. Mam nadzieję, że w miarę szybko.

Portage-like repo layout

17 V 2007, 00:55:01

PLD will have an additional CVS repository layout that looks more or less like portage. The 'less' part is about not using gentoo's package categories (sys-devel, sys-db, etc.), however it's most likely perfectly doable, at least for the majority of our packages, to automatically fetch that metadata from gentoo, and place it somewhere. Either in a file (like 'packages/glibc/gentoo-category') or make an additional module that looks 100% like gentoo's portage tree (perfectly doable server side; we'd have 'packages' with a flat structure, that is 'packages/packagename' and, say 'portage' with portage-like structure, meaning 'portage/packagecategory/packagename'). The question is -- why? What does it give us? (Except for the coolness factor :)

One crazy idea -- create that portage tree in our cvs repo, hack the original gentoo's portage to be able to use rpmbuild instead of those ebuilds (quick dirty hack would do) and try to actually set up a pld system using gentoo's installers. Sounds cool, not that it's in any way usefull however :) Other then getting us a mention on slashdot for pulling this off probably.

Oh, and for the record -- no, it's not, and will not be possible to have, like in gentoo, more then one package of the same name, but under different categories. Both rpm internally and the way our repo is organized prevent this.

Hmm. It would however be possible to have aliases based on gentoo's group/name pairs. What would you say if poldek -i git-core was equal to poldek -i dev-util/git (-i stands for install). And same for the builder script? Considering poldek already provides a virtual filesystem, we could just expand it, so it would look something like this:

[root@klapek ~]# poldek
(...)
poldek:/all-avail> cd dev-util
poldek:/all-avail/dev-util> ls
(...)
git-1.5.0.3-2 (git-core-1.5.0.3-2)
git-1.5.1.2-1 (git-core-1.5.1.2-1)
(...)
517 packages
poldek:/all-avail>

Now that sounds both cool and potentially usefull. What'd ya think? Any other ideas?

PLD według użytkowników

13 V 2007, 17:00:07

Wieki temu, chyba na pierwszej jesieni linuksowej, spotkaliśmy z Jajcusiem bodajże Debianowego (albo Gentoowego, ale Gentoo chyba wtedy nie było jeszcze takie popularne) zealota. W sensie takiego człowieka, który mógł godzinami się rozwodzić nad tym, jaki to Debian jest świetny i że nadaje się absolutnie do wszystkiego.

Jajcuś stwierdził, że fajnie by było, gdyby PLD miało takich ludzi. Wtedy w sumie przyznałem mu rację.

Później natomiast zacząłem się skłaniać w kierunku opinii, że tak deweloperzy, jak i użytkownicy powinni wiedzieć w jakich kategoriach należy mówić o PLD i w żadnym razie nie powinno być to twierdzenie, że PLD jest fajne, bo jest najfajniejsze i tyle. Zawsze jestem nerwowy, gdy, zwłaszcza jakiś deweloper, chce zachwalać PLD, bo łatwo tutaj powiedzieć coś, co przyniesie więcej szkody, niż pożytku. Na przykład czy PLD nadaje się na desktop? Nadaje z zaznaczeniem, że musisz rozumieć choćby podstawy obecnych desktopowych technologii (udev, hal, etc.) i nie oczekiwać, że wszystko można osiągnąć w dwóch klikach, jak w Ubuntu. I że jeśli użytkownik czegoś takiego oczekuje, to niech się trzyma od PLD z daleka, bo później będzie uciekał z krzykiem. Takich przykładów można mnożyć.

Tym samym bardzo mnie cieszy ten wątek na PLDowym forum. Tak trzymać.

Oczywiście nie wszystko jest idealne, tzn. obecnie dostępnym publicznym materiałom daleko do doskonałości, zwłaszcza biorąc pod uwagę, że z konieczności starają się one sprawę uprościć. Zawsze stronom takim jak Jakilinux przyglądałem się przez palce, ponieważ z natury rzeczy (jako że są tworzone przez użytkowników, niekoniecznie specjalnie zaawansowanych) są one skłonne do popularyzacji różnych mitów na temat poszczególnych dystrybucji. Acz chyba trzeba będzie w końcu coś z tym zrobić -- przyjrzeć się jak PLD jest widziane publicznie, skonfrontować to z rzeczywistością i postarać się stopniowo prostować nieścisłości.

Zapowiada się ciekawie, bo to już bardziej podpada pod PR i marketing. Oczywiście wiąże się to także z koniecznością określenia jakiegoś konkretnego kierunku rozwoju PLD i podobnymi sprawami. Mam zamiar trochę o tym wszystkim popisać, ale niestety nie w najbliższych tygodniach, no bo studia i praca. Ale nie ucieknie.

Th builder data

11 V 2007, 20:35:30

Per Patrys' suggestion, I've generated SQL data from builder activity and he promised to generate some graphs from them. I've uploaded it -- full version since end of 2005 and a short version with data for the last two months only. I was mainly interested in the amount of time the builders are actually active and it would appear that they still have lots of processing time left and we're not bogging them down that much.

If someone's curious and willing to spend a little time on it, it's perfectly possible to retrieve some interesting stats from the data (and generate pretty graphs; maybe using Swivel). Like who's the most active sender (arekm, the release manager; sends allmost as much requests as the rest of the developers combined) by month, how many requests were sent by month, etc, etc. I haven't added any info on whether the builds were successfull and whether they resulted in a (failed) upgrade, though that's doable and I'll most likely do it some time in the future (to get some broader idea about which architectures are the most problematic, which desync most often, etc, etc.). Also would be interesting to figure out builder downtimes (shouldn't be to hard to figure out an algo; let's say no builds for more then a day or two) and also plot that.

For people wanting to actually play with the data -- builder 'th-ftp' is just a script which mails ppl when it finds there's something wrong with a package and if you want to count unique requests actually sent by people, look at 'th-src' (however by comparison with the number of requests actually processed by the binary builders, it can be clearly seen that something like 28% of sent requests fail a the source builder). And one more thing -- the i486 lacks data for the past few months. That's because it stopped sending mails for some reason and nobody bothered to fix it.

Oh and here's the "script" I've generated it with. And yes, that's shell generating python, which in turns generates sql :)

Zajętość builderów -- help needed

11 V 2007, 16:13:22

Ponieważ robię piętnaście rzeczy na raz z których większość muszę zrobić sam, to niestety nie mam za dużo czasu. Acz nie obraziłbym się, jakby mi ktoś pomógł z pewną rzeczą (na potrzeby PLD).

Otóż bardzo by mi się przydały informacje o zajętości poszczególnych builderów (głównie Th, ale jak ktoś dorzuci Ac, to się nie obrażę). I niestety nie jest to zrobienia jakimś prostym dodawaniem/odejmowaniem i paroma grepami -- jedyny sensowny sposób, to wziąć informacje o buildach z dłuższego okresu i wyplocić jakieś ładne obrazki, żeby można było pooglądać "trendy" + do tego wygenerować jakieś średnie powiedzmy tygodniowe, etc.

Nie trzeba być specem od niewiadomoczego (nie trzeba być też deweloperem PLD), wystarczy mieć zacięcie i umieć się w miarę dobrze posługiwać shellem (sedy, grepy i takie tam) i/lub jakimś językiem skryptowym (pythonem, czy tam perlem) oraz rozgryźć jak się używa jakiegoś gnuplota, czy czegoś podobnego.

Jak ktoś będzie zainteresowany, to ja odpowiem na pytania bardziej szczegółowe i powiem co dokładniej jest potrzebne, ale ogólnie sprawa się ma tak, że ja daję paczkę maili z builderów Th, mówię jak wyciągać z tych maili interesujące informacje i jak konkretnie mają wyglądać dane wyjściowe, żeby były przydatne, po czym ktoś zabiera się za grepowanie, obrabianie i plotowanie, a na koniec dostajemy serię ładnych obrazków oraz dodatkowo trochę liczb.

Jeśli wszystko działa jak trzeba, dane okazały się przydatne, a delikwentowi się nie znudziło, to później mogę jeszcze dostarczyć paczkę maili z builderów th od początku ich istnienia (a nie tylko za dwa ostatnie miesiące), żeby dane były bardziej kompletne i dzięki temu użyteczniejsze.

(Zgłoszenia w komentarzach albo na żabę.)

Jeszcze odnośnie innych dystrybucji...

03 V 2007, 23:07:46

Spisałem sobie, co mam zamiar napisać odnośnie m.in. tego, jak widzę przyszłość pld. Erm. I w sumie mi się odechciało pisać, bo trochę tego za dużo. Będzie się trzeba kiedyś wziąć, ale na pewno nie teraz, muszę inne rzeczy zrobić.

A przy okazji -- zna ktoś może stronę, która by w krótkich żołnierskich słowach opisywała przynajmniej te najbardziej popularne dystrybucje? I nie chodzi mi o 'przyjazna dla początkujących; bardzo bezpieczna', bo takie ogólniki są mi nieprzydatne -- potrzebuję konkretów, czyli krótki opis zasad paczkowania, używanego package managera, 'rozkładu' dystrybucji (drzewa testowe na ftpie, zasady 'promocji' paczek do na przykład 'stable') i może coś też o sposobie deweloperowania (sposób robienia releasów, trochę o technice pracy nad dystrybucją). Wątpię, żeby coś takiego istniało, no ale raz się żyje. Zna ktoś?

Który linux jest fajny i dlaczego?

01 V 2007, 15:45:54

Kolega mi powiedział, żebym sobie zainstalował linuksa, ale nie wiem którego wybrać. Może pomożecie?

A na serio. Pytanie głównie do osób używających tych najpopularniejszych dystrybucji (gentoo, debian, ubuntu, etc.), ale także do tych, co używają mniej popularnych (w tym pld), pod warunkiem, że używali także czegoś innego (tzn. mają jakieś porównanie) -- co konkretnie, zwłaszcza przez porównanie z jakąś inną dystrybucją, spowodowało, że obecnie używacie tej, a nie tamtej. I to prosiłbym w miarę dokładnie, może być na jabbera, jak ktoś chce ze mną pogadać na żywo.

(Potrzebne mi to do pld, tzn. mam teraz fazę nad myśleniem sobie jak to pld mogłoby się rozwijać i potrzebuję mieć jakieś konkretne dane odnośnie tego, co powoduje, że różne dystrybucje są postrzegane jako fajne przez ich użytkowników.)

pld.org.pl

12 IV 2007, 01:03:28

Prawie cztery lata po forku. Odzyskanie domeny to już chyba ostatni rozdział tej historii.

Heh. Prawa Murphy'ego. Ten mail to ja wtedy miałem wysłać na listę, ale akurat padł mi net.

Tyle lat. Jaki ja wtedy byłem młody.

PLD news

28 II 2007, 17:01:53

Coś się rusza z organizacją prawną PLD. Powoli, bo powoli, ale do przodu. A to głównie za sprawą Arcadiusa Meeshkyevicha, który coś ma ostatnio dużo zapału bojowego. A to został Release Managerem PLD 3.0, później się coś mocno za różne części automatyki wziął, zajmuje się wspominanymi wczoraj donacjami na sprzęt, a teraz jeszcze to. Całkiem możliwe, że tym razem w końcu się uda (ja też jestem obecnie w innej sytuacji, niż byłem, więc mogę pojechać, podpisać, sypnąć groszem, etc.).

Od bardzo bardzo dłuższego czasu chciałem napisać kilka zdań na temat kwestii związanych z płaceniem deweloperom za konkretne funkcje przez taką przykładową fundację, ale przez ostatnie kilka dni wyprodukowałem tyle tekstu, że już mi się nie chce. Może za parę dni.

In other news -- mam na uczelni straszną ilość projektów w tym semestrze. Najprawdopodobniej uda mi się (przynajmniej częściowo) w ramach dwóch z nich dokończyć automatykę builderową (tak, że już właściwie nie będzie tam brakowało żadnej funkcjonalności; co najwyżej będzie trochę miejsca na polerowanie). Po pierwsze poprzez zrezygnowanie z używania poczty do przesyłania wiadomości między builderami (jest to wybitnie upierdliwe, a dodatkowo wymaga od serwera hostującego posiadania działającego demona pocztowego + instalki gpg). Najprawdopodobniej zostanie to zamienione na xmlrpc, czy coś w tym stylu.

Na bazie powyższego natomiast zostanie dorobiony jakiś centralny system zarządzania zleceniami na builderach. Jeszcze nie wiem do końca co to będzie robiło i jak zostanie zaprojektowane (ale wiem w czym -- mysql, php + interfejs webowy, bo o tym jest projekt na uczelnię :), ale na pewno będzie potrafiło wyświetlać obecne kolejki na builderach, modyfikować im priorytety oraz mordować aktualnie wykonujące się zlecenia.

Kto wie, może za parę lat wreszcie ziści się moje marzenie, że infrastruktura pldowa będzie na tyle rozbudowana, że Release Managerem będzie mogła zostać tresowana małpa. I wtedy po raz trzeci obejmę tę funkcję, ale tym razem uda mi się coś wydać!

Bezdomny jestem, daj pan z cztery opterony

27 II 2007, 16:53:03

Dla fanów strony pld-linux.org/Sponsors na pewno nie będzie to zaskoczeniem, ale osoby nie zaglądające tam co najmniej dwa razy dziennie może zainteresować jeden z nowszych wpisów.

Otóż pewnymi kanałami udało nam się otrzymać od amd cztery opterony na potrzeby rozwoju pld. Rationale? Ano powiedzieliśmy, że produkujemy trochę różnych patchy na tę architekturę i w ich interesie leży, żebyśmy je w miarę wygodnie mogli produkować dalej. Widać ktoś, gdzieś się z nami zgodził :)

(Kanałów niestety nie mogę wyjawić. Niech się głupi ochroniarze dalej zastanawiają jak udało nam się uprowadzić córkę prezesa.)

A, jak ktoś ma nadwyżki pieniężne, bądź jakieś walające się po domu dyski, czy inne kontrolery scsi, to niech zaglądnie na na stronę z listą potrzebnego sprzętu.

PoLDek

12 II 2007, 23:37:30

Już nie raz się spotkałem z tym, że ludzie mówią na PLD 'poldek'. Strasznie to dziwne. Jakoś nigdy nie widziałem, żeby na gentoo ktoś mówił 'emerge', albo na debiana 'apt-get'.

Lider z ideą

14 I 2007, 15:02:39

Istnieje pewna bardzo dobra zasada mówiąca, że jeśli masz być częścią projektu kogoś, z jakąś ideą, to zapisuj się tylko i wyłącznie wtedy, jeśli ów człek zapewni ci pełną swobodę działania, a swoją ideę będzie realizował dopiero na bazie twojej pracy. Tzn. żeby ingerencja w twój "naturalny" tok postępowania w celu realizowania Idei, była jak najmniejsza.

Jest to generalnie charakterystyka dobrego menedżera, że najpierw stara się zrozumieć jak działa to, czym ma zarządzać, później określa co by chciał zrealizować, a na końcu wymyśla taki plan, żeby osiągnąć maksymalnie dużo z tego, co osiągnąć chce, jednocześnie w jak najmniejszy sposób ingerując w zasady już wypracowane w ramach organizacji przez pracowników (oczywiście te zasady, które się sprawdzają).

Sytuację tego typu mam obecnie w pracy. I dopiero teraz jestem w stanie docenić wiedzę i doświadczenie, jakie dało mi obserwowanie różnych projektów open source oraz uczestniczenie (na różnych poziomach zaangażowania) w pld. Jestem też w stanie docenić jak dużo mogą dać ludziom rzeczy typu radio studenckie, czy jakiekolwiek inne projekty robione w grupie.

I jako ciekawostka. Oto projekt człowieka, który jednak nie do końca rozumie jak osiągnąć to, co chciałby osiągnąć.

PLD as a base distro

06 I 2007, 04:22:46

Quite recently I've stumbled across another one of the many smaller rpm based distros out there. It's not the first time I got interested in such a project and probably won't be the last, because to me they all are potential candidates for using PLD as their base. And I really think having a bunch of such projects (not PLD per se, but using our packages and at least parts of our infrastructure) would be really beneficial to both PLD and the external projects involved. Let me tell you why.

I could say that there are two main reasons for PLD being a very good base distro, one technical and the other organizational, but in reality they are really interconnected, so I'll try to cover both of them in one pass.

First thing to keep in mind is that PLD is really a lot more about technology then about providing a product. Sure, we do have something that could more or less be called a linux distribution, but on a day to day basis, most developers just view it as a place for keeping the software they use in one place and not something one treats as a whole. I assume at least some people would object, but let's face it -- our track record with regards to doing actual releases is probably worth a thousand words. PLD, being nine years, has one official release which has been abandoned ages ago, one in permanent freeze mode (we could probably advertise it as a remedy for global warming) and one in active development. Yes, we've always looked up to Debian.

Let's face it -- we're just not that good at getting our acts together and agreeing on something that could be put in a box.

This has its upsides however -- it means that the project has developed internal policies that are mostly meant to stay out of developers' ways. Otherwise, with actual releases clearly lagging, the project would collapse under it's own weight a long time ago (we did get close to that while releasing PLD 1.0, but that's a long story).

So what are those policies? Well, for the most part, there simply aren't any. There are a lot of technical things to keep in mind, best practices, kosher ways to do things 'n stuff (PLD is one of those projects that really push what rpm's capable of). But other then that, people are generally free to do whatever they want and need. Sure, there are some rules with regards to how our cvs repository is organized, but that too is rather straightforward and thought up in such a way, that the most popular types of changes aren't a pain in the ass for the developers performing them.

So how would a new project fit in? First, it'd be best for someone to talk to one of our more experienced developers (I'd be more then happy, so feel free to ping me) in order to discuss expectations and possibilities. After that it's just a matter of that developer writing a short email with a request for new developer accounts, having two other developers sign off on it (that's never a problem) and voila -- the new guys are free to start playing.

But what exactly would they be free to do?

Well, alter packages obviously. Let's say you want to build a desktop oriented distribution for home users. First thing -- they don't need stuff like openldap, mysql or postgres linked everywhere. No problem, just define appropriate global bconds (build conditionals; think USE flag from gentoo's emerge) on your build machine and build the required packages. You'll probably have to add bconds (or fix support for them) in a package or two, but generally that should be a quickie.

Ok, now for something more ambitious. PLD by default produces a shitload of subpackages for every app. Just to show you what I mean.

poldek:/ac> ls kde
Display all 716 possibilities? (y or n)

You probably don't want that in a desktop distro, since it'll just confuse users. So is there a way to somehow change this while still keeping your changes mergable with PLD? Yup. One solution -- you can create metapackages that just have a lot of Reqs on the subpackages you want. Or a more elegant approach -- using a bcond, depending on which rpmbuild will produce either a big package for, let's say, kdelibs or a multitude of subpackages (and I did test that's it's in fact possible, although I haven't seen anyone actually using this yet; see comment on pushing rpm :).

And now for something even bigger. Below is a typical way of how PLD splits libraries by default.

poldek:/th> ls libogg-*
libogg-1.1.3-2
libogg-debuginfo-1.1.3-2
libogg-devel-1.1.3-2
libogg-static-1.1.3-2

Libogg is the main stuff, debuginfo is something for gdb to munch on, devel are mostly C headers and static are static versions of a given lib (think .so vs. .a files). Confusing for our desktop users? You betcha. The same bcond rule applies here, however going through

[mmazur@klapek SPECS]$ ls|grep spec$|wc -l
11325

spec files and adding a bcond into each and every one of them probably isn't the way to go. The preferred solution here would most likely be altering rpm and it's default macros in a way that would allow for a global bcond that would work on all (well, most, some would probably need fixes of various sorts) our spec files out of the box.

And that's just a taste of the technological freedom offered in PLD. Rule of thumb is -- as long as your changes don't actually break anything for other developers, aren't ugly as hell and are in compliance with our technical policies -- you have a green light.

(And if you want to do something really weird, there's always the possibility to branch it, however I would advice against doing that too often -- we're using CVS which is not all that great with branches, even considering we have a healthy amount of scripts helping us with various tasks. YMMV however.)

There is more of course. I won't go into details, but we do have things like a builder infrastructure (python scripts for automatic package building and uploading) and an ftp infrastructure (ditto for tossing those packages around an ftp site) plus you're quite likely to be able to get someone to host your builder or two. And if you're worried about those systems not satisfying your needs -- PLD 2.0 has 8 basic distinct targets for which packages get built (that's five distinct architectures), meaning a lot of builders and a lot of files to keep track off on our ftp server. And it's all being run by a single guy. With a sex life. Involving another person. Not over the internet. And not the phone, either.

Sure, there's still a lot to be done there, but I do believe those scripts should constitute a really reasonable basis for most people.

Oh, and if you're worried about us being too Polish oriented, there's no need to. All cvs commits are in English, our website is in English, and though the Polish devel maillists are seeing more traffic then the English ones, that's just because people are lazy. Threads started on the English lists get the same amount of attention.

And if you don't believe me, we have two non-Polish developers, one from .us and the other from .ee (no, I won't tell you what obscure country that is, go look it up), that will be more then happy to confirm my story. And their willingness has absolutely nothing to do with us having their relatives held hostage.

Really.

New Th (PLD 3.0) Release Manager

02 I 2007, 01:16:39

For the record -- a couple of days ago Arcadius Meeshkyevich announced that he has taken over the position of Release Manager for PLD 3.0. Most developers agree that this should speed up the release of said PLD Th by at least a decade or two.

Świąteczne porządki

05 XII 2006, 23:26:06

Po ponad roku z laptopem wreszcie się wziąłem za jakieś sensowne przeorganizowanie sobie podstawowego narzędzia pracy (sześcioletni desktop, totalnie padnięta drukarka i praktycznie nieużywany skaner robią papa). Trochę wrażeń wraz ze szczegółami zapodam zapewne za niedługo, na razie tylko najbardziej kluczowa część: wreszcie odbieram niefirmowe maile regularnie (tzn. kilka razy dziennie, jak to drzewiej bywało), włączając w to listy pldziane, przez które się ostatnio byłem przeklikałem (zaległości), więc jakby co, to powinienem być z wątkami na bieżąco i można mnie znowu łapać na maila.

(Co oczywiście nie znaczy, że czytam wszystkie wątki, bo często używam opcji ignorowania tychże, natomiast jeśli ktoś chce, żebym jakiś konkretny przeczytał, to wystarczy mnie dać do cc, albo pingnąć, czy coś).

Źródłowe dystrybucje wcale nie takie cacy

03 XI 2006, 13:52:19

W pracy właściwie wszystkie maszyny chodzą na Gentoo. Ostatnio była dyskusja na temat tego, żeby to zamienić na jakieś binarne distro (Fedorę na ten przykład), bo pozwoli to na znacznie łatwiejszą instalację oprogramowania i takie tam.

Ja generalnie byłem przeciwny, ponieważ właściwie wszystkie maszyny po trochu robią za systemy produkcyjne i rozwojowe. W praktyce oznacza to, że przytłaczająca większość z nich ma paczki sprzed co najmniej półtora roku (wydanie Gentoo z początku 2005) i tylko pojedyncze programy były updejtowane (na przykład mysql do 4.1) wedle potrzeb.

Takie coś i owszem jest do osiągnięcia na dystrybucji binarnej, ale wtedy albo trzeba mieć dedykowaną osobę znającą się na budowaniu rpmów (co jest sztuką samą w sobie) i utrzymywaniu dystrybucji w ogóle, albo trzeba wszystkich ludzi odpowiednio przeszkolić, żeby wiedzieli co i jak robić (mało realistyczne imho, bo im starszy system bazowy, tym więcej różnych problemów będzie wychodziło i tym więcej czasu by ci ludzie tracili na rzeczy, które w teorii powinny być proste).

Dlatego też byłem za pozostawieniem Gentoo, a to z prostej przyczyny -- o ile w dystrybucji binarnej musielibyśmy i potrafić budować paczki i potrafić nimi zarządzać, o tyle tutaj jest to zasadniczo rzecz biorąc jedno i to samo. Założeniem Gentoo jest właśnie to, że jeśli chcesz mieć jakąś nową wersję programu, to nie musisz ze względu na zależności upgrejdować połowy systemu, bo ów program się po prostu przebuduje w zastanym środowisku i będzie działał jak trzeba.

A takiego wała. Przez ostatnie trzy dni przeżyłem dosyć brutalne (i frustrujące, bo przeszkadza mi w wykonywaniu pracy za którą mi płacą) zderzenie z rzeczywistością. Jeśli w dystrybucji binarnej chcę zainstalować na przestarzałym systemie jakąś nową paczkę, to zostanę po prostu zasypany listą zależności, których mój system nie spełnia, a bez których paczka działać ni będzie.

Natomiast moje kochane Gentoo zasypuje mnie zazwyczaj nic mi nie mówiącymi błędami sugerującymi, że coś w toolchainie jest nie tak. Co? A to już sobie mogę zgadywać na zdrowie. A najlepiej jakbym po prostu wszystko jak leci updejtnął, to by pewnie zaczęło działać.

O fakcie, że najwyraźniej domyślnie instalowane z systemem oprogramowanie do zarządzania paczkami jest dosyć biedne (w porównaniu z tym, co oferuje choćby vanilla rpm, o jakiś highlevelowych rzeczach typu poldek nawet nie wspominając) i żeby zrobić cokolwiek ciekawego muszę najpierw doinstalować jakieś dodatkowe programy (eix, genloop) nawet nie będę wspominał.

Muszę przyznać, że zalety tej dystrybucji coraz bardziej mi się zamazują.

Co dalej? (część pierwsza)

26 X 2006, 18:17:00

Przez te kilka lat, które byłem w PLD, raz na jakiś czas zdarzało się, że niektórzy deweloperzy znikali praktycznie z dnia na dzień. Taki Paweł Gołaszewski (aka blues) był swego czasu bardzo aktywny (czasami aż nazbyt, raz za jednym zamachem udało mu się wykasować z repozytorium CVS całe pld 1.0 :), aż pewnego dnia po prostu oznajmił, że przestał mieć czas. I rzeczywiście przestał. Poziom jego aktywności, jeszcze wczoraj całkiem wysoki, następnego dnia spadł do zera.

Wtedy niespecjalnie mieściło mi się to w głowie -- jak to tak można po prostu coś rzucić z dnia na dzień? Jeśli coś lubię robić (tu -- dłubanie w PLD), to tak sobie ustawiam życie, żeby mieć jakieś sensowne ilości czasu na owo coś.

Niestety kilka miesięcy temu przyszło mi zrozumieć o co chodzi. Studia dzienne, praca oraz znacznie większa ilość czasu poświęcana na inne dziedziny życia zaskutkowały tym, że po raz pierwszy ja mam fizycznie mało czasu. Nie mało czasu jak zwykle, kiedy 90% dnia zawsze przeciekało mi przez palce, więc jeśli miałem jedną rzecz do zrobienia, to problemu nie było, bo w końcu się za nią brałem, natomiast w przypadku większej ilości zajęć -- przeważająca ich część zawsze szła w kąt.

O nie. Tym razem ja naprawdę nie mam czasu. Oczywiście, cyborgiem nie jestem, nadal poświęcam ileś tam godzin w tygodniu na ogólnie pojęte obijanie się (choćby oglądanie zaległych odcinków The Daily Show na youtube, czy też czytanie reddita), ale jest to niestety czas bardzo limitowany i albo muszę sobie o jakiejś sensownej porze przerywać (czego nadal się uczę), albo następnego dnia chodzę niewyspany, przez co nie jestem w stanie pracować. Skutek uboczny jest taki, że na zajęcia takie jak PLD, czy 7thguard, ja już po prostu nie mam najmniejszej ochoty.

I poniekąd jest to naturalne. Czytałem kiedyś, że jedną z kluczowych umiejętności przy rozwijaniu własnych zainteresowań jest umiejętność unikania zobowiązań. Pamiętacie moje nagłówki do kernela? One były fajne, gdy były nowe, gdy się uczyłem, gdy mi rósł geek factor ze względu na dłubanie w okolicach kernela. Ale w końcu stał się obowiązkiem. Obciążeniem. Nie chciałem już tego robić, nie chciało mi się, zmuszało mnie tylko to, że wiedziałem, że powinienem i chciałem sobie samemu udowodnić, że jestem się w stanie zmusić. Uwolnienie się od tego było długie i w pewnym sensie mocno problematyczne, acz z obiektywnego punktu widzenia dla mnie było czymś pozytywnym.

W rzeczywistości jest to związane z pewną moją mroczną tajemnicą -- otóż ja nie przepadam za technologią. Technologia mnie nudzi. Znam wiele osób, które technologia, mimo długiego z nią obcowania, nadal interesuje. Oni po prostu lubią dłubać. W pewnym sensie im tego zazdroszczę. Ba, to młode dziewczę jest naprawdę entuzjastycznie nastawione do tych nowych rzeczy, których może się jeszcze nauczyć. Ja tego nie mam już od dawna.

Jesteś programistą? Lubisz kodować? Za każdym razem jesteś w stanie wymyślić jeszcze lepszy sposób na zrobienie czegoś? Jesteś adminem? Na nowe kawałki oprogramowania patrzysz krytycznym okiem, zastanawiasz się jak można je wpasować w twoją istniejącą infrastrukturę, z której jesteś w pewnym sensie dumny? Lubisz, jak ci to co napisałeś/postawiłeś ładnie furkocze i działa?

A ja nie. Jak mam coś napisać/poprawić, to zastanawiam się, czemu ktoś tego nie zrobił już wcześniej za mnie, żebym mógł tylko odpalić i żeby działało. Jak mam uruchomić jakąś usługę, to klnę na czym świat stoi, bo to jest po prostu nty w moim życiu plik konfiguracyjny przez który się muszę przedrzeć, co mnie w żaden sposób nie podnieca.

Nie zrozumcie mnie źle. Mimo wszystko jestem geekiem i mam odpowiednio skonstruowany aparat mentalny, żeby nakręcić się sesją kodowania i nie nudzić się (zbytnio) w trakcie. Ba, będzie mi się to podobało i będę odczuwał satysfakcję, jeśli mój kod w końcu zacznie działać (analogicznie przy postawieniu jakiegoś serwera, czy innej usługi).

Rzecz w tym, że na wyższym poziomie abstrakcji te rzeczy mnie odrzucają. Odbieram je jako stratę czasu. Zazwyczaj muszę się zmuszać, żeby zacząć kodować, czy wykonać jakąś tam pracę administracyjną.

Niektórzy z was być może są w stanie skojarzyć mnie z jakimś konkretnym projektem technicznym, ale nawet jeśli, to zwróćcie uwagę na jedną rzecz -- właśnie czytacie moją prozę, a nie kod. I bynajmniej nie jest to przypadek.

Oczywiście nie mogę powiedzieć, że nie jestem osobą techniczną, bo obiektywnie rzecz biorąc moja wiedza i doświadczenie wcale takie małe nie są, ale prawda jest taka, że specjalistą to ja nie jestem od niczego. Znam Pythona? Znam, ale na poziomie podstawowym, z większą częścią tego języka nigdy nie miałem żadnej styczności. To może RPM? Niezbyt. Znam osoby dobrze w nim zorientowane i naprawdę do nich nie należę. Robiłem nagłówki do kernela, to może znam się na kernelu? Niet, obecnie bez kawałka dokumentacji miałbym zapewne problemy ze zwykłym zbudowaniem działającego kernela. I tak mógłbym wyliczać jeszcze długo.

Jest to bardzo problematyczne z zawodowego punktu widzenia, gdyż po pierwsze, znacznie ogranicza mi dostęp do prac z wyższej półki, tych dobrze płatnych, w firmach, które wiedzą jak traktować inżynierów i nie zatrudniają bezmózgich dronów na stanowiskach kierowniczych. Do takiego googla najprawdopodobniej nie miałbym nawet co startować, bo jestem za cienki w uszach.

Co gorsze jednak, w 99% tych firm ja tak naprawdę nie chciałbym pracować. Choćby nie wiem jak interesujące mogły się wydawać wewnętrzne projekty danej firmy dla przeciętnego informatyka, ja zawsze będę miał z tyłu głowy myśl, że nie ma się czym podniecać, to jest po prostu nieistotny kawałek kodu, o którym za rok nikt już nie będzie pamiętał.

Od tej reguły jest stosunkowo niewiele wyjątków, z których jeden, ten mimo wszystko najbardziej realistyczny, nazywa się PLD. Ze względu na dużą ilość zbiegów okoliczności, ten projekt nadal jest dla mnie atrakcyjny i chciałbym móc się nim zajmować.

Ale o tym dlaczego tak jest i co z tego wynika napiszę następnym razem...

Dobra infrastruktura vs. jej brak

24 X 2006, 18:14:50

W robocie mam taką sytuację, że klienci domagają się znacznie większej skalowalności, niż obecne oprogramowanie jest w stanie dostarczyć. Rozwiązanie -- przepisać, biorąc pod uwagę to, co już wiemy o różnych bottleneckach w obecnym kodzie. Ale cała operacja zajmie z dwa miesiące co najmniej, a w międzyczasie klient może nas olać. Na szczęście szef po prostu dorzucił kilka maszyn i powiedział, żeby władować tam maksymalną ilość danych, jakie się da. Powinno na te dwa miesiące wystarczyć.

Gdy przez ostatnie lata raz na jakiś czas przyglądałem się infrastrukturze innych dystrybucji, to zazwyczaj jedną z pierwszych reakcji było -- to oprogramowanie jest dla nas nieprzydatne, bo nie przewiduje rozproszonej i podatnej na błędy natury systemów, których używamy (a maszyny PLD są/były rozsiane w sumie po całym globie). Za każdym razem wtedy myślałem, że niezależnie od różnych gwizdków i wodotrysków, jakie mają w swoim sofcie inne dystrybucje, nasz soft jest jednak na tym najbardziej podstawowym poziomie lepszy, ponieważ jest dostosowany do tego, czym może dysponować grupa ludzi bez sporego konta w jakimś banku. Czyli taki typowy projekt open source.

I rzeczywiście, na pewnym poziomie nasze oprogramowanie jest lepsze właśnie, dlatego, że ma takie założenia, a nie inne. Problem polega na tym, że pisanie infrastruktury dla projektu to jest tak naprawdę strata czasu, ponieważ w idealnym świecie nikt nie musiałby pisać owej infrastruktury, a narzędzia potrzebne do optymalnego wykonywania właściwej roboty (czyli robienia dystrybucji, a nie pisania skryptów w pythonie) byłyby już dostępne. Patrząc na różne problemy z obecną infrastrukturą builderową, z których część wynika na przykład z używania zwykłej poczty do komunikacji między builderami (co choćby wymaga zainstalowanego demona pocztowego na wszystkich maszynach hostujących buildery, co nie zawsze jest takie proste do wykonania), przed oczami mam różne potencjalne rozwiązania. To przepisać tak, tamto siak, tutaj dodać parę skryptów na taką ewentualność, etc.

Tyle, że każda taka sesja kodowania, to jest czas, w którym można by zrobić coś innego, coś przydatnego z punktu widzenia użytkowników (którymi deweloperzy są także). W kontekście ostatnich kilku lat, gdybyśmy mieli własną dedykowaną serwerownię, to ilość godzin zaoszczędzonych na klepaniu się z różnymi brakami w funkcjonalności, błędami, czy też zwykłymi awariami pewnie szłaby w setki.

Oczywiście prawda jest taka, że nie mamy i mieć nie będziemy takowej serwerowni, więc skazani jesteśmy na rozwiązania software'owe. I w pewnym sensie jest to też zaleta, bo w końcu dorobimy się porządnej infrastruktury, co pozwoli nam w pewnym stopniu konkurować z dystrybucjami posiadającymi jakiś kapitał, pomimo tego, że sami owego kapitału nie posiadamy (a jeśli kiedyś się dorobimy, to będziemy go mogli wydać na coś ciekawszego z punktu widzenia użytkowników, niż infrastruktura).

(Co nie zmienia faktu, że jest wybitnie irytujące, że tracimy czas na klepanie się z takimi rzeczami, podczas gdy inne dystrybucje zajmują się rzeczywistą robotą.)

FTP/Builder TODO

14 VIII 2006, 18:51:47

Linus rozumie jak bardzo bardzo ważne są odpowiednie narzędzia. Rozumiał to wtedy, gdy postanowił używać BitKeepera pomimo zastrzeżeń co do licencji, rozumiał to też później, gdy po przetestowaniu wszystkich dostępnych opensourcowych distributed scmów stwierdził, że żaden nie odpowiada jego wymaganiom, więc najlepiej będzie napisać swój własny.

Pojedynczy człowiek ma bardzo ograniczone moce przerobowe i żeby rzeczywiście stworzyć coś dużego, musi umieć delegować zadania. Jeśli jest menedżerem -- stworzyć sobie zgrany zespół. Jeśli jest informatykiem -- stworzyć sobie środowisko automatyzujące jak największą ilość wykonywanych czynności.

Przewaga, jaką ma zespół posiadający rozwinięte i dobrze działające narzędzia nad takim, który ma tylko ludzi, jest nie do opisania. Powiem tylko tyle -- jeśli wymienić moim zdaniem najważniejszą różnicę między takim Gentoo, Debianem, czy też PLD, a różnymi malutkimi dystrybucyjkami, to byłyby to właśnie kilogramy skryptów, automatów, systemów i procedur, które można znaleźć w tych pierwszych.

Pisałem już wielokrotnie, ale powtórzę jeszcze raz -- potencjał jakościowy dla PLD, który nadal drzemie w naszych niedoborach infrastrukturalnych, jest po prostu ogromny. Naprawienie tego, o czym teraz wiemy, że jest źle, dałoby bardzo duże efekty, a to nie wszystko. Tak jak Linus, który dopiero po użyciu BitKeepera wyrobił sobie zdanie na temat tego, jak powinien wyglądać porządny rozproszony scm, tak my, zrobiwszy to, co teraz chcielibyśmy zrobić, pewnie zajęlibyśmy się następnymi, bardziej już subtelnymi usprawnieniami.

Głównym ludziem od naszej infrastruktury ftpowo/builderowej zostałem jakieś dwa lata temu i główna rzecz, jaką się przez ten czas nauczyłem, brzmi -- nie ma prącia, żebym ja to wszystko zakodował.

Dlatego też postanowiłem to wszystko pospisywać. Oto opisy funkcji dla naszej automatyki builderowej i ftpowej, które, po wprowadzeniu, w drastycznym stopniu poprawiłyby komfort utrzymywania każdej linii PLD, jednocześnie na stałe "uniemożliwiając" użytkownikom natknięcie się na pewne klasy (popularnych) błędów.

Nadzieję mam taką, że prędzej, czy później, któryś z nowszych pldziarzy (w których już dawno temu straciłem orientację) się tym zainteresuje i może coś tam dokoduje, ewentualnie jakaś firma w przypływie dobrego humoru postanowi oddelegować swojego pracownika, żeby poświęcił kilka godzin w tygodniu na pokodowanie dla nas.

(Nawiasem mówiąc na pldzianej stronie TODO będę przez najbliższe dwa, trzy tygodnie umieszczał różne propozycje, niektóre dosyć, hmmm, rewolucyjne, so stay tuned (będę tutaj też informował o co ciekawszych kawałkach; no i pewnie na maillistach)).

Jak działają buildery pldziane

08 VIII 2006, 17:43:03

Ponieważ przez ten miesiąc opiekuję się (sześcioletnim) bratem, a sam obiadów raczej nie gotuję, to codziennie w okolicach południa spędzamy u mojej babci jakieś trzy godziny, coby sobie zjeść obiad i coby mały miał też jakąś odmianę (pogoda pod zdechłym Fafikiem, ani nie ma co wyściubiać nosa z domu). Ja w tym czasie teoretycznie nie mam żadnych konkretnych zajęć, więc wpadłem na genialny pomysł zabierać sobie laptopa i w tym czasie pisać prozę. Do pracy i na bloga.

Ale zamiast bloga, można przecież trochę bardziej konstruktywnie! Dokumentację do PLD popisać, a jak. Tutaj jest dokument tłumaczący na jakiej zasadzie u nas działa infrastruktura builderowa (autorstwa malekitha.NET, z późniejszymi moimi i nie tylko moimi poprawkami i usprawnieniami).

Dwie rzeczy -- to nie jest pisane po to, żebym ja se mógł popisać, tylko, żeby nie trzeba było nowoprzybyłym tłumaczyć za każdym razem o co biega. Więc bardzo by mi zależało, żeby osoby niepeeldziane, które zainteresują się przeczytaniem całości, zostawiły w komentarzach swoje ewentualne wątpliwości (tzn. co wydaje się w tym tekście niejasne). Przyda mi się to do poprawy tekstu, albo dodania kilku pytań i odpowiedzi na samym końcu wyjaśniających co bardziej niezrozumiałe kwestie.

Odnośnie zaś samego pisania. 99% tego ośmiokilowego tekstu (tzn. wszystko poza początkowym ascii artem) napisałem w ciągu jakiś dwóch godzin intensywnego pisania. Przy standardowej stronie maszynopisu wynoszącej 1800 znaków, to wychodzi, że piszę gdzieś tak jedną stronę w pół godziny. Nie wiem, czy źle to, czy dobrze.

Odnośnie zaś samego użytego angielskiego -- jeśli dużo się czyta, to się człowiekowi utrwalają pewne popularne w danym języku formy, dzięki czemu przy pisaniu ma się większy zasób 'rozwiązań' do zastosowania. Wpływa do pozytywnie na tekst, bo się go dzięki temu płynniej czyta i bardziej przypomina napisany przez kogoś oryginalnie anglojęzycznego.

Ale komfort pisania jest jednak znacznie gorszy w porównaniu z pisaniem po polsku. W co drugim zdaniu nie jestem do końca pewien, czy zastosowana forma jest poprawna. Mam na tyle obycia z językiem (językami) w ogóle, żeby kwestionować poprawność użytych przez siebie form, o ile nie jestem ich całkowicie pewien, co w przypadku polskiego zdarza się rzadko, natomiast tutaj jest "na porządku dziennym". I jest to strasznie irytujące. To jest tak, jakbym napisał, że, hmm, "partycypuję w rozwój PLD", albo że jestem "deweloperem odpowiedzialnym za aspekty związane z infrastrukturą PLD". Niby blisko poprawnego znaczenia i użycia, a jednak każdego rzeczywiście znającego język wybitnie taki potworek razi w oczy.

Tylko nie wiem jak to poprawiać w przypadku angielskiego. Musiałbym pomyśleć gdzie w jakiś wydajny sposób konsultować użyte przez siebie konstrukcje językowe.

«