Archiwalia dla 05.2007

PLD, poldek and vendor locks

This post will be entirely in English but feel free to comment in Polish if you want. The reason is my laziness as I need to provide an English translation anyway and it’s just easier to write one version instead of two.

Troll warning: I am sane and have spent more than last 3 years actively developing PLD Linux. If you want to tell me to shut up, you better find something to support your statements.

The problem

Or several problems really:

  • The first and most obvious one is poldek still has some bugs.
  • That in turn is caused by the fact that noone is working on poldek any more.
  • The above is caused by poldek’s poor source code documentation.
  • That in fact is because there is only one author and maintainer.

And sure all the above may not seem immediate. That is, until you realize Mis (Paweł Gajda) — despite having good intentions &,dash; can no longer spend his time actively working on the project. It might not be obvious at first but check the spec in our CVS. The last snapshot was taken four months ago and we already have 6 patches on top of that. This is not bad if we are talking about an upstream project. But here upstream is actually us.

I am afraid that one day we might be unable to follow rpm in terms of both features and compatibility. There are some people today who know C well enough to hack on the sources and a small percentage of them is actually capable of understanding poldek’s internals but one day there may be none.

But the problems don’t end here. Poldek was a marvellous tool back when it was created. In the dark ages of early apt we already had an interactive tool to use. But today the situation is quite different:

  • Fedora/RHEL are actively working on yum.
  • Gentoo is actively maintaining emerge.
  • Debian/Ubuntu have their apt and synaptic
  • We still have the same poldek with no one to maintain it.

And there’s more. In particular libpoldek and python-poldek need to be completely redesigned to become usable in something even resembling a GUI tool. And there are some dependency interpretation issues too. More details further below.

The solution

I can see two solutions here. The first and most obvious is to find a new active maintainer and programmer for poldek. Sign up today, lots of fun and joy awaits you as you enter the abandoned world. There are some things to fix, some to refactor and maybe a little set of desired new features too.

The other solution is to introduce a new package manager with equal rights to those of poldek. That means keeping it up to date and making sure it always works. I’ve already taken the first step and PLD now has basic yum compatibility. There are yum repositories, there is yum and yumex — a nice little GUI tool to help all desktop users out there. This way we can avoid being chained to a single tool that in future could turn into a single point of failure.

However adding yum is not enough as there is something more…

Poldek’s architecture

Long time ago in the galaxy not so far away a tool was created to aid package management. It was called poldek and it relied and still relies on a broken idea of calling rpm directly instead of using proper librpm bindings. This in turn forced poldek to reinvent a mechanism for dependency checks.

Most tools just pass the list of packages to librpm and the library in turn asks them what to do in specific cases (like unsatisfied deps or file conflicts). Poldek needed external one because there was no way to ask the rpm binary for anything and get usable feedback. It was either a success or a failure so every single check in rpm had to be doubled in poldek’s code to detect all errors before asking rpm to jump in and do its job.

Then the High Council of One decided it was worth caching the rpm’s database in yet another database but this time using a different schema. That’s why poldek takes up to several minutes on some machines every other restart (when you see a rebuilding rpm database message).

The result? Yum’s sources take as much as 2.4MB versus 35MB for poldek.

Inconsistent dependency checks

There are some problems adapting any other tool for PLD however. The reason is that for quite a long time noone bothered to use any other tool to manage packages. And PLD was fixed for poldek and poldek was fixed for PLD. And none of them handle the dependencies like the rest of the world does.

For some reason PLD decided to use the Obsoletes header to hold information about conflicting packages. Not that it makes any sense but that’s how poldek implemented it in the first place. You see, when you try to use the proper Conflicts header and drop the Obsoletes header poldek displays an error message and refuses to install anything.

Patching yum to handle conflicts and uninstall the conflicting package took me about 3 minutes. But it treats Obsoletes the way it was supposed to be used: to tell the manager that a package is being dropped from the distribution and another one provides a replacement. Not that two packages are mutually exclusive (hint: mutual Conflicts). Now image what yum does when it sees two mutually obsoleting packages. Yup. It cycles them every time you upgrade. And now the fun part — we have more than 10 issue versions (send your answers on post cards to my home address).

That’s why I propose fixing out packaging policy and poldek to handle deps like the rest of the world does (and maybe start using Suggests once poldek is fixed).

Microsoft i innowacje

Chłopaki z Yashke pisali już o najnowszym projekcie komputera w stoliku. Jak słyszymy w filmie, jest to nowy, supertajny projekt Microsoftu. O RLY?

Pierwsze skojarzenie? Lowfat autorstwa MacSlowa. Interfejs do zarządzania dokumentami wygląda dziwnie znajomo. Z tym, że lowfat powstał na przełomie lat 2005/2006.

Drugie skojarzenie? Reactable — instrument muzyczny, używający komputera w stole i rozpoznający kładzione na nim przedmioty. Tym razem projekt z roku 2003, do dziś towarzyszący Björk na koncertach.

Panowie, pokażcie mi tu innowację, bo chyba nie chodzi tu o ekran wielodotykowy Jeffersona Hana?

PLD Linux for Desktop: system-config-printer

Prosto z Fedory przybywa do PLD pakiet o wdzięcznej nazwie system-config-printer. Napisałbym, że przybywa magicznie, ale spędziłem nad nim sporą część wczorajszego wieczoru.

GNOME Printer Configuration

Dzięki temu narzędziu można w końcu w wygodny sposób zarządzać drukarkami, także tymi zdalnymi (mam na myśli udostępniane przez Sambę). W obszarze powiadamiania pojawia się także ikona odpowiadająca za kolejkę wydruku. Nareszcie usuwanie niechcianych zadań nie wymaga dłubania w przeglądarce.

Miłej zabawy, a to dopiero początek zmian w PLD na lepsze ;)

PLD, czyli o śledzeniu kodu dystrybucji

Od jakiegoś czasu na listach PLD toczy się dyskusja na temat zmiany układu repozytorium. mmazur ogłosił niedawno testowe wdrożenie układu podobnego do używanego przez Portage. Mam nadzieję, że to pierwszy krok na drodze do zmiany samego systemu wersjonowania kodu. A ma co śledzić, bo — wbrew pozorom — dystrybucja to dziesiątki tysięcy plików, nad którymi trzeba jakoś zapanować.

CVS

Obecnie do zarządzania repozytorium używamy CVS. Ma swoje wady i zalety. Przede wszystkim można w nim wiele rzeczy automatyzować, choćby ze względu na to, że pliki w repozytorium mają swoje przełożenie 1:1 na fizyczne pliki na dysku. Plik foo.spec ma wszystkie swoje dane w pliku foo.spec,v i można go sobie ręcznie backupować, edytować albo zmienić mu nazwę. No właśnie, CVS ma kilka wad:

  • Nie ma możliwości przeniesienia czegokolwiek w repozytorium. Można usunąć plik i dodać go pod nową nazwą, ale w tym momencie tracimy jakąkolwiek historię. Jedyna opcja to fizyczna zmiana nazwy pliku kontroli wersji przez osobę z uprawnieniami administratora na serwerze.
  • Gałęzie i tagi są przywiązane do poszczególnych plików kopiowanie, scalanie i przenoszenie plików pomiędzy gałęziami to prawdziwy wrzód na dupie.
  • Z powyższego powodu, praca na kilku gałęziach jednocześnie jest bardzo męcząca. Każdą gałąź trzeba pobrać z repozytorium do osobnego katalogu. Każdy nowy plik odpowiednio oznaczyć, bo w przeciwym wypadku trafi w najmniej pożądane miejsce. Do tego musimy spierać się z serwerem o to, że wiemy, że plik o identycznej nazwie już istnieje na innej gałęzi, ale nie ma nic wspólnego z naszym.
  • Nie istnieją zestawy zmian, każda zmiana w repozytorium jest pojedynczą operacją i nie ma po niej śladu w żadnym pliku poza aktualnie modyfikowanymi.

Mercurial

Świeżutka zabawka, łatwo rozwijalna, ale jeszcze nie spełnia oczekiwań dużej dystrybucji:

  • Każda kopia robocza jest pełnym odbiciem lustrzanym głównego repozytorium. Nie ma możliwości pobrania jednego pliku, dokonania w nim zmian i wysłania z powrotem.
  • Rozbicie na rewizje i kody zestawów zmian jest bardzo nieintuicyjne ze względu na fakt, że tylko kod szesnastkowy jest unikalny.
  • Zaśmieca kopię roboczą, tworząc w niej katalogi z metadanymi, co utrudnia pracę z narządziami operującymi na plikach rekursywnie (diff, find, grep).

GIT

Rozproszony system kontroli wersji zaprojektowany przez Linusa Torvaldsa. Nadawałby się świetnie, gdyby nie to, że ma intuicyjność składni zbliżoną do Emacsa. W związku z tym, nikt nie zmusi deweloperów, żeby z dnia na dzień nauczyli się nowego narzędzia i przepisali wszystkie swoje skrypty. Zwłaszcza, że z opcji pracy offline skorzysta góra kilka osób (w przypadku dystrybucji, ciężko bez dostępu do sieci zbudować jakikolwiek pakiet).

Subversion

Narzędzie sprawdzone, oferuje to samo, co CVS, jednocześnie poprawiając jego niedociągnięcia. Nie oferuje pracy na rozproszonych kopiach repozytorium. Ma za to jedną wadę Mercuriala:

  • Zaśmieca kopię roboczą, tworząc w niej katalogi z metadanymi.
  • Kod pobrany z repozytorium zajmuje dwa razy więcej miejsca niż powinien, bo trzymana jest lokalna kopia pliku (co pozwala na częściową pracę offline).

Subversion + SVK

Wyobraźcie sobie Subversion, ale bez wspomnianych problemów. Z pełnym wsparciem dla pracy offline. To właśnie jest SVK — pełni rolę klienta Subversion, zarządzając jednocześnie kopią roboczą i klonami repozytorium. Kopie robocze nie są wzbogacane o żadne magiczne katalogi z metadanymi, nie mają narzutu w postaci trzymania kopii plików, a do tego system potrafi śledzić lokalne scalenia i automatycznie podpowiada komentarz przy upychaniu swoich zmian z powrotem do głównego repozytorium Subversion.

Rozwiązanie niemal idealne — miłośnicy GIT mają swoje ulubione funkcje, a reszta może używać tradycyjnego klienta Subversion. Bez żadnej magii shellowej.

Review Board

A skoro już mowa o Subversion, to kilka dni temu chipX86 ogłosił projekt, który stworzyli wewnętrznie na potrzeby VMware. Review Board, bo tak się nazywa, to aplikacja Django, która pozwala wygodnie przechowywać nadsyłane łatki. Na listach PLD pojawia się ich sporo i często giną w czeluściach skrzynek pocztowych. Coś takiego z pewnością by nam się przydało — miejsce, gdzie każdy z uczestników listy może zaproponować swoje zmiany i otrzymać komentarze jeszcze przed włączeniem ich do samej dystrybucji. Miejsce, gdzie łatki nie giną.

Nielegalne tłumaczenie

Jak podaje Gazeta, policjanci zatrzymali dziewięć osób, które nielegalnie tłumaczyły dialogi z filmów. Czy to ja jestem przed poranną kawą, czy może to zdanie jest zwyczajnie idiotyczne?

Jak można nielegalnie tłumaczyć? Nielegalne może być rozpowszechnianie tłumaczeń książek bez zgody wydawcy, nielegalne może być kopiowanie filmów. Ale tłumaczenie? Może sam fakt, że znam biegle jeden język obcy i dwa inne w stopniu podstawowym jest już dostatecznym powodem, żeby mnie aresztować? Można bowiem domniemać, że skoro posiadam wszelkie po temu predyspozycje, mogłem uczyć się języków z zamiarem tłumaczenia. A to jest przecież nielegalne.

Czy jeśli opowiem koledze film, to złamię prawo? A jeśli film był po francusku i będę go opowiadał po polsku?

Czy napisanie streszczenia książki jest legalne? A recenzji filmu? Można przecież podnieść podobny argument — w przypadku 90% serwowanej nam przez kina papki, po przeczytaniu recenzji, mniej ludzi obejrzy film, bo część uzna, że to szmira.

Polskie listy dialogowe szkodzą kinematografii dokładnie w ten sam sposób. Przecież nikt nie przeczyta samych napisów zamiast obejrzenia filmu, prawda? A czy któryś z serwisów oferował nielegalne kopie filmu do pobrania? Nie oferował, to o co chodzi?

Panie Gutek i inni wydawcy, ja oglądam filmów dużo. Mam w domu całe sterty legalnych płyt, oglądałem też masę pirackich kopii. Gdyby chociaż połowę z interesujących mnie tytułów dało się kupić w Polsce, to byłbym szczęśliwy. I tak, zapłaciłbym za nie. Dlatego, żeby je mieć, nie dlatego, że czekam na wasze spolszczenia. Angielskie filmy oglądam w oryginalnych wersjach językowych. Japońskie z angielskimi napisami.

A panowie niech się zastanowią, co wam złego zrobili tłumacze. Ja bym na waszym miejscu podpisywał z nimi kontrakty zamiast podawać ich do sądu. Bo oni — w przeciwieństwie do waszych profesjonalistów — nie uważają, że fuck to znaczy kurczę.

Strip #033: Czas na film

Gdyby Patrys kręcił filmy…

Tutaj w graficznych przeglądarkach wyświetla się komiks

Strip #032: Pickup techniques

W nawiązaniu do mojego niezbędnika podrywacza.

Tutaj w graficznych przeglądarkach wyświetla się komiks

Bezpruderyjna informatyczka pozna pana

cycuszel.pl

Nareszcie, po latach poszukiwania w Sieci (bo przecież informatycy znajomych nie mają), odnalazłem swój ideał kobiety!

Trzydzieści cztery lata, za rok magisterka, siwe włosy, szalona małolata. Uwielbia pompować toster dla szatana, a jej ulubione lektury to Pascal i Borland C - ćwiczenia. Wydanie drugie, ABC sieci komputerowych i Polowanie na Hitlera. Historia zamachów na wodza Trzeciej Rzeszy. Na szczęście jest otwarta na ludzi, więc i Sposoby wypieku chleba domowego będziemy czytać wieczorem przy kominku.

Drodzy autorzy serwisów społecznościowych, jeśli planujecie bezczelnie zrobić serwis ze sztucznie generowanymi profilami, to chociaż postarajcie się nie używać hurtowo całej historii wydawniczej Helionu.

Update: panowie są bezczelni, najpierw usunęli z serwisu informacje o wspomnianych wyżej książkach, a chwilę potem posprzątali profile, w których było nawiązanie do Grona (na przykład Zainteresowania: patrz grona tematyczne). Wiemy już zatem, komu ukradli profile, pozostaje tylko spekulować, komu podprowadzili zdjęcia?

Nowy Skype dla Linuksa, używaj Ekigi

Na garażowym blogu Skype pojawiła się zapowiedź kolejnej wersji dla Linuksa. Zmienił się interfejs (nie, nie przesiedli się na GTK+).

Pojawiły się też nowe funkcje, takie jak wysyłanie wiadomości SMS i rozmowy wideo. Ehh, rozmarzyłem się. Nic się nie pojawiło, Skype dla Linuksa nadal tkwi w epoce pingwina łupanego i jest więcej niż wystarczającym powodem dla śmiechu ze strony użytkowników Windows.

Dlatego proponuję upgrade w formie zamiany Skype’a na Ekigę:

Ekiga - spread the love ;)

Działa tak samo pod Windows i pod Linuksem, a do tego używa powszechnie uznanych za standardowe protokołów SIP (co oznacza tyle, że można rozmawiać z użytkownikami dowolnego klienta VOIP). Używam od dawna, a od niedawna mam też okazję pobawić sie kamerą, polecam.

It’s gettin’ laid

Z powodu przedłużonego weekendu, złożyłem wizytę w swoim rodzinnym domu. Od wczoraj jestem w związku z tym ze wszech stron atakowany przeróżnymi talk-showami, reality showami i innymi szczytowymi osiągnięciami mediów ostatniego dziesięciolecia. Wśród nawału problemów na miarę łamów magazynu Bravo, dotarły do mnie utyskiwania facetów, którzy nie potrafią sobie znaleźć kobiety.

Panowie, panie, drodzy geecy. Choćby nie wiem, jak trudnym jawiło się to zadanie, zapewniam, że od opowiadania o tym, jaką się jest pierdołą w telewizji, nikomu fanek nie przybyło. Skoro jednak znalezienie kobiety jest takim problemem dla zwykłego samca, to w jak trudnej sytuacji znajdują się — o zgrozo — informatycy? Spieszę zatem z pomocą i niezbędnymi radami.

Niezbędne przygotowanie

O ile poważne rozpoznanie rynku i przygotowanie się do wdrożenia stanowi podstawę udanej operacji, należy bardzo starannie dobierać materiały szkoleniowe. Często popełniany na początku błąd polega na przyjściu do klubu w stroju hydraulika i zaczepienie siedzącej przy barze kobiety słowami hej maleńka, coś dzisiaj przetkamy? Procedensy w tej kwestii niezbicie dowodzą, że o ile nie jest to dobry sposób na rozpalenie serca swej wybranki, z pewnością pozwala w miarę pewnie odebrać pełną kwotę swojego ubezpieczenia na życie.

Równie ważne jest też opanowanie fachowego słownictwa. Doświadczenia pokazują, że najtrudniej jest opanować słowo kobieta (a.k.a. dziewczyna). Niestety, samice nie reagują z równym entuzjazmem na słowa sztunia, niuńka, dupcia, czy też świnka. Nie znaczy to jednak, że nie reagują z równą werwą.

Prezentacja produktu

Informatycy z przerażeniem odkryją zapewne, że jest to jedyny przypadek w ich karierze, kiedy prezentacji nie poprowadzi w ich imieniu handlowiec. Owszem, istnieją różne serwisy randkowe i kluby dla samotnych, ale przecież nie po to kupujesz swoje koszule w kratę u Versace, żeby teraz nabyć partnerkę z lumpeksu!

Narzuć więc najlepszego flanelowego kraciaka, jakiego znajdziesz (uwaga na plamy po długopisach na kieszeni) i udaj się do sali konferencyjnej, to jest do najbliższego klubu. Klub rozpoznasz po głośnej muzyce, braku tostów i niewielkim odsetku ludzi ubranych jak informatycy (kobiety potwierdzą, że nie ma nic gorszego, niż spotkać na przyjęciu kogoś ubranego tak samo).

Prezentacja produktu rządzi się właściwie tymi samymi prawami, co w przypadku sprzedaży oprogramowania. Obaj wiemy, że masz w spodniach wszystkie pięć składników, które zrobią z niej prawdziwego championa, ale nie wdawaj się specjalnie w szczegóły techniczne. Jej uprzednie doświadczenie z innymi tego typu aplikacjami powinno wystarczyć, aby zrozumieć ideę działania, nawet na podstawie pobieżnego opisu i bez demonstracji zrzutów ekranu. Postaraj się raczej skupić na ficzerach, silnik lepiej wypada na późniejszej demonstracji w terenie.

Garść porad

Jeśli prezentacja przebiegnie sprawnie i klient wyrazi wstępne zainteresowanie, należy zachować szczególną ostrożność. Utrata potencjalnej partnerki na tym etapie może być szczególnie frustrująca, dlatego pilnuj każdego swojego ruchu.

Niewiele osób wie, ale kobiety mają słuch kierunkowy. Wieloletnie badania empiryczne dowodzą, że komplementy nie docierają do uszu lub docierają bardzo zniekształcone, jeśli wymawiasz je patrząc na biust. Staraj się więc utrzymać kontakt wzrokowy. Nie, tłumaczenie się słabym wzrokiem nie jest dobrą wymówką, żeby próbować odczytać to, co wydawało ci się Braille’em na jej naszyjniku.

Na zakończenie wypada dodać jeszcze, że kobiety wprost szaleją za pragmatycznymi mężczyznami z prawidłowo wykształconym poczuciem humoru. Żeby sprawdzić, jak twoja nowa partnerka szaleje, spróbuj po pierwszej nocy nakleić jej na czoło żółtą karteczkę z imieniem, a kiedy się obudzi, spytaj chłodnym tonem cześć, często tu bywasz?

A teraz do boju, ja tymczasem ruszam na imprezę ;)