Tłumaczenia

Ponieważ tłumaczenia są jedną z form pomocy wolnemu oprogramowaniu (i okolicom), dostępną nawet ludziom średnio się znającym na samym programowaniu, to jakiś czas temu zacząłem udzielać się przy tłumaczeniach. Nie ukrywam – sporo czytam, trochę piszę, a część tłumaczeń przyprawiała o zgrzytanie zębów. Nie żebym był zadowolony z własnych, ale…

Początkowo był to PDDP rozkręcony IIRC przez Fenia. Niewiele pamietam, poza tym, że było i coś tam się otarłem. Potem zdryfowałem bardzie w kierunku meta i ideologii, czyli tekstów na gnu.org. Zaczęliśmy sporą grupą, ale szybko wykruszyło się do paru osób. Niedługo później zapał zgasł, zostało nas paru niedobitków. I jakoś tak się ciągnęło, aż zupełnie umarło – ostatnia wymiana maili z rok temu, ostatni commit pewnie z dwa lata temu…

W międzyczasie jakieś luźne, nieregularne i anonimowe tłumaczenia w ramach Debian Description Translation Project, bo dotarło do mnie, że jak ktoś nie zna języka angielskiego, to z Linuksem słabo sobie poradzi, więc tłumaczenie wszystkiego nie ma sensu. Za to opisów pakietów – jak najbardziej.

Tłumaczenie było całkiem przyjemnym doświadczeniem. Zalet jest sporo: uważna lektura tekstów źródłowych, większa ilość czytanych artykułów, kontakt z językiem i jego szlifowanie. Poza tym, ma się trochę do czynienia z systemami kontroli wersji, narzędziami, formatami i procedurami ułatwiającymi tłumaczenia, co przydaje się później przy różnych okazjach, od programowania, przez adminkę i projektowanie rozwiązań IT.

Jest to też okazja do zaobserwowania pewnych archaizmów i formalizmów w praktyce. Na przykład tłumacze GNU używają jako systemu kontroli wersji CVS. Nie żeby nie wystarczał, ale jednak Git jest wygodniejszy i lepszy. NIH? Przyzwyczajenie?

Z kolei inni nie korzystają z plików PO/POT (poedit FTW!), tylko stosują własne formaty/rozwiązania i tłumaczą na żywca HTML. Cóż, można i tak (nie żebym lubił, ale da się).

Wpis wyniknął z tego, że znalazłem (w końcu!) fajny opis pewnego zagadnienia związanego z Perlem, zobaczyłem, że stronę można tłumaczyć, a nie ma wersji polskiej… Spodobał mi się samouczek Perla i uznałem, że przyda się ludziom i… zacząłem tłumaczyć. Repo jest na GitHubie, można forkować i podsyłać pull requesty. AKA zachęcam.

Tak, mam świadomość, że strona nie jest zupełnie niekomercyjna. Jakoś mi to nie przeszkadza. Dość zwarta, nieźle napisana, tłumaczyć zamierzam tylko część dostępną dla wszystkich. Planów żadnych nie ma, raczej – jak zapowiedziałem autorowi – best effort. Niemniej, z różnych względów tempo ostatnio siadło, więc wpis ma być motywatorem. Nie żebym liczył, że zadziała, za dobrze się znam.

Inne: odkryłem GitHub na nowo, w sumie bardzo social network, tylko w troszkę innej kulturze. Odkryłem też na nowo/systematyzuję Perla. Zupełnie niezwiązane: zauważyłem, że próbuję za dużo srok za ogon łapać. To się nie może udać, ale ponieważ to tylko hobby, a nie praca, to nic się nie stanie, jak ten czy inny projekt zahibernuje na jakiś czas, czy wręcz totalnie zdechnie.

Korzystając z apt-dater – parę uwag

Od pewnego czasu korzystam z opisywanego kiedyś narzędzia apt-dater do aktualizacji hostów w środowiskach większych, niż kilka własnych testowych maszyn. Garść praktycznych uwag nt. używania w takich środowiskach.

  1. W okolicy wersji 1.0 zmienił się format pliku (teraz jest XML), przez co linkowany wyżej opis jest nieaktualny. Zmian wymagał też skrypt generujący konfigurację apt-datera na podstawie danych z Chefa.
  2. Warto podzielić hosty na grupy – raz, że łatwiej decydować, gdzie wykonujemy aktualizację w danym momencie, dwa, że każdy host to osobne procesy w momencie działań więc… może być tego za dużo, jeśli zaczniemy aktualizować listę pakietów wszędzie jednocześnie (tak, mam skonfigurowane limits na workstacji, tak walnąłem w limity, jak leciałem hurtem).
  3. Sama aktualizacja to nie wszystko, trzeba jeszcze zrestartować procesy korzystające ze starych bibliotek. Kiedyś był checkrestart, teraz jest bardziej popularny –  i nieźle współpracujący z apt-daterneedrestart.
  4. Niezależnie od podziału na grupy, można ad hoc zaznaczyć hosty do wykonania operacji (polecenie tag). Sposób niezbyt intuicyjny, bo najpierw zaznaczamy hosty [t], następnie zatwierdzamy je do wykonania [;], a na końcu wybieramy polecenie do wykonania.
  5. Apt-dater przyspiesza pracę, ale nie udało mi się (i nie tylko mi), uniknąć podłączania do każdej sesji po zakończeniu aktualizacji i zamykania jej. Nawet, jeśli cała aktualizacja przeszła pomyślnie, bez interaktywnych pytań i nie ma nic do restartu. Gdyby się komuś udało – proszę o komentarz.
  6. Odpowiednio ustawione hold lub apt_preferences to podstawa, jeśli ma się jakieś dziwne (czytaj: 3rd party) pakiety, których autorzy niezupełnie umieją paczkować Debian way.

W każdym razie apt-dater bardzo ułatwia i przyspiesza pracę. Generalnie polecam.

Chromium pobiera zamknięty, potencjalnie naruszający prywatność kod

Do niedawna Chromium w Debianie pobierało niewolny, zamknięty, binarny fragment kodu po instalacji. Jest to oczywiście zachowanie sprzeczne z Umową społeczną Debiana. Co więcej charakter modułu i sposób jego działania (Chrome Hotword Shared Module – obsługa mikrofonu, rozpoznawanie mowy) nie wykluczają, że mogło dojść do naruszenia prywatności użytkowników tej dystrybucji, tym bardziej, że jest on pokrewny „podsłuchowi przez Google”, który opisywano na początku roku.

Jeszcze ciekawszy jest fakt, na który zwrócono uwagę, że nawet wyłączenie w opcjach przeglądarki tej funkcjonalności nie zapobiega ładowaniu czy uruchomieniu niewolnego modułu. Pojawiły się też pytania o to, w jaki sposób oprogramowanie wykorzystujące takie metody dystrybucji pojawiło się w Debianie oraz o to, czy Google powinno w ogóle być upstreamem. Pojawiły się też głosy, że zjawisko tego typu pojawia się coraz częściej.

W Debianie problem został poprawiony w najnowszej wersji pakietu.

Sam fakt pobierania binarnego dodatku nie jest ograniczony do Debiania, wywodzi się to z upstreamu Chromium w wersji 43, więc dotyczy wszystkich dystrybucji Linuksa z tą wersją. Zostało to zgłoszone do upstream Google.

Źródła:

  1. http://www.theregister.co.uk/2015/06/17/debian_chromium_hubbub/
  2. https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=786909
  3. https://code.google.com/p/chromium/issues/detail?id=491435