Rejestr na PP


Lokalny oddział Poczty Polskiej ma niezłą innowację: rejestr przesyłek nierejestrowanych. Informacje o normalnych przesyłkach poleconych trzymane są w systemie komputerowym. Natomiast nierejestrowane spisywane są przez pracowników w zeszyciku…

Zamiast sprzedaży rajstop, resorówek i wprowadzania bezpłatne WiFi mogłaby ta firma zająć się dostarczaniem przesyłek zamiast tylko roznosić awizo. Zmniejszyło by to kolejki w wiecznie zatłoczonych oddziałach.

Migracja do bcache


Natywnego użycia SSD jako pamięci podręcznej (coś jak ZIL czy L2ARC) w btrfs się nie doczekałem, mimo planów sprzed 4 lat. Postanowiłem więc zastosować bcache, który wydaje się już stabilne (miało na dorośnięcie sześć lat), chociaż jego autor wpadł ostatnio na dziwny pomysł przerobienia go na system plików.

bcache ma jeden spory minus: wymaga specjalnego sformatowania dysku, który ma przyspieszać (taki dm-cache potrafi się dołączyć na żywca). Trzeba więc jakoś przenieść dane.

Stan wyjściowy

Celem była sensowniejsza konfiguracja pamięci masowej na moim domowym serwerku. Jest to maszynka wszystkomająca, czyli jest tam mój katalog domowy, archiwum i serwer poczty, bazy danych, backupy zdjęć z wyjazdów, skany dokumentów, blog, stronka www, dane multimedialne, maszyny wirtualne i przeróżne inne dane. Do tej pory zaorganizowane tak:

/dżogstaff/2016.05.25-stan-wyjściowy.svg

Na dysku SSD trzymałem większośc /var i katalogi domowe. Nie widzę finansowego sensu trzymania wszystkiego na SSD.

Skorzystanie z bcache to wetknięcie w tę jengę kolejnego klocka. A nawet dwóch. Pojawiają się dwie możliwości umieszczenia nowej warstwy.

Opcja 1 – bcache na szczycie

Czyli tuż pod systemem plików:

/dżogstaff/2016.05.25-opcja1.svg

Zalety:

  • cache nie jest szyfrowany, więc powinno być szybciej

Ale również wady:

  • cache nie jest szyfrowany; co prawda wydaje mi się, że będzie tam sieczka, ale zawsze jest ryzyko odzyskania mniejszych plików

Opcja 2 - bcache na spodzie

Umieszczenie warstwy bcache tuż nad dyskami wyglądałoby tak:

/dżogstaff/2016.05.25-opcja2.svg

Zalety:

  • układ wydaje mi się bardziej estetyczny, logiczniejszy

Wady:

  • więcej ruchomych elementów przy migracji – trzeba jeszcze zadbać o LUKSa na dm-crypt

W obu opcjach korzystam z tego, że jeden cache może obsługiwać dowolną liczbę urządzeń. Dzięki temu nie musiałem dzielić mojego SSD na kolejne partycje.

(opcji trzeciej miszmasz na krzyż nie ma co omawiać)

Plan i migracja

Planowałem wykorzystać właściwości RAID1 i migracji dokonać poprzez:

  1. oznaczenie jednego z dysków jako popsuty
  2. przeformatowanie pod bcache, przeLUKSowanie tego dysku
  3. dołączenie gotowego dysku z powrotem do puli btrfs
  4. odbudowa RAID1
  5. powtórka zabawy z drugim dyskiem
  6. przegranie /var i ~
  7. podpięcie zwolnionego dysku SSD jako cache

Zestawiłem sobie na maszynie wirtualnej identyczną konfigurację i zacząłem testy. Poległem na punkcie 1… btrfs nie ma możliwości grzecznego popsucia dysku (skandal!). Można co najwyżej wyrwać dysk z maszyny i szybko wyczyścić.

Nie chcąc tracić za dużo czasu (jakby coś nie poszło, to odwinięcie danych z backupu trochę jednak trwa), zacząłem szukać innej drogi. Wszystkie luźne dyski w pracy użyłem do postawienia małego klastra Ceph (fajna zabawka swoją drogą), nie miałem pomysłu skąd wziąć tymczasowe kilka terabajtów.

Postanowiłem sprawdzić konwerter o jakże nudnej nazwie blocks. I to był strzał w dziesiątkę. blocks potrafi przesunąć nagłówek LUKS i umieścić przed nim nagłówek bcache, nie ruszając danych. Kilka testów i dwa rebooty później miałem przearanżowaną pamięć masową zgodnie z opcją 2.

Zrobione

lsblk zeznaje:

└─sda3                                            93.8G   part
  ├─bcache0                                        5.5T   disk
  │ └─luks-142b6130-853c-4dab-ab7b-a102e7d71388    5.5T   crypt /
  └─bcache1                                        5.5T   disk
    └─luks-4e5418e6-fa2c-47b3-a4be-1b045d593a5a    5.5T   crypt

A wykres wykorzystania pamięci podręcznej wygląda dosyć optymistycznie:

/dżogstaff/2016.05.24-bcache_hit.png

I jakiś taki porządek jest.

Własny, prywatny mirror Fedory


Linuksowe dystrybucje od lat polegają na sieci serwerów lustrzanych (mirrorów) aby dotrzeć do użytkowników. Taka Fedora ma półtorej setki miejsc, z której można pobierać pakiety. Stworzenie prywatnego mirrora dla swoich systemów czasem się przydaje i na szczęście jest łatwiutkie.

Zgłoszenie w Fedorze

Pierwsze co, to wybieramy, skąd będziemy pobierać pakiety. Z oficjalnych serwerów Fedory mogą ciągnąć tylko publiczne serwery lustrzane – nam zostaje ściąganie właśnie z któregoś z nich. Wybieramy co nas interesuje i ustawiamy periodyczne wywołanie rsynca.

Teraz informujemy infrastrukturę Fedory, że mamy prywatny serwer lustrzany. Dopisujemy zakresy sieci, z których komputery mają korzystać z naszego mirrora [*]. Co jakiś czas uruchamiamy skrypt, który wysyła spis zawartości naszego prywatnego serwera lustrzanego. Serwery publiczne są przeczesywane automatycznie przez Fedorę.

Konfiguracja stacji klienckich

Nic. Od tej pory wszystko dzieje się automatycznie! A to dlatego, że każda fedora aktualizując się, najpierw pyta serwery dystrybucji o listę mirrorów. Dystrybucja widząc połączenie przychodzące z „naszych” sieci jako główny serwer lustrzany podaje nasz prywatny mirror. Wysłana wcześniej lista zawartości pozwala też wykluczyć mirror z odpowiedzi, jeśli nie zawiera pakietów dla odpowiedniego wydania i architektury.

Oczywiście zapytania z innych sieci (nie podanych w liście naszych) nigdy w odpowiedzi nie dostaną adresu naszego prywatnego mirrora.

Taka zero-konfiguracja po stronie klienta działa naprawdę fajnie. Każda wirtualka, kontener, komputer gościa czy nawet proces budowania pakietu w środowisku mock automatycznie korzysta z pakietów przechowywanych lokalnie.

[*] – własność sieci nie jest weryfikowana; można więc wyobrazić sobie sytuację, że chcąc zaatakować jakąś instytucje, podajemy jej podsieci jako mające korzystać z naszego mirrora. A potem ingerujemy w jego zawartość, np. nie wystawiając poprawek podatności, którą chcemy użyć w ataku.

Tak się nie powinno robić samochodów


Jakiś czas temu chwaliłem Teslę za ogarnięcie softwareowej części samochodu i połączonej infrastruktury. Różowo jednak nie jest, bo strona sprzętowa wydaje się być zrobiona z masy papierowej, delikatnej jak skorupka jajka.

Zimą trzeba na Model S chuchać i dmuchać, myć co najmniej raz dziennie:

If salt has been used on the highways (such as during winter months), thoroughly rinse all traces of road salt from the underside of the vehicle.

Najlepiej ręcznie, bo myjnia automatyczna ze szczotkami wchodzi w konflikt z gwarancją:

If washing in an automatic car wash, use “Touchless” car washes only. These car washes must have no parts, such as brushes, that can touch Model S. Using any other type of car wash could cause damage that is not covered by the warranty.

I bez chemii na felgi, bo rozpuści.

Samochód jest zrobiony z tak cienkiej i delikatnej blachy, że do zamykania maski trzeba używać obydwu rąk i naciskać w ściśle wyznaczonych miejscach (narysowanych w instrukcji). Tesla Model S, samochód który można powyginać jedną ręką:

Do not close the hood with one hand. Doing so applies concentrated force in one area and can result in a dent or crease.

Wracając do zimy – zdarzały się u nas porządne, kiedy zamarzały słabsze płyny do spryskiwaczy. A co z autem?

Do not expose Model S to ambient temperatures above 140° F (60° C) or below -22° F (-30° C) for more than 24 hours at a time.

Na szczęście mroźne miesiące się kończą i przychodzi wiosna. Przy zmianie opon na letnie trzeba pamiętać o zablokowaniu aktywnego zawieszenia, bo może zabić:

If you do not disable Active Air Suspension, Model S can attempt to self-level, causing serious damage, bodily injury, or death.

Na koniec pozytywna informacja. Jeśli uda nam się nie pognieść autka, to uzupełnianie płynów jest ograniczone do minimum:

Model S has only one reservoir into which you can add fluid. This is the washer fluid reservoir under the front trunk.

Może w ramach liftingu Tesla zastosuje wytrzymalszą blachę i lakier?

Schronisko dla kart SD


W Androidzie 6.0 pojawiła się opcja sformatowania karty SD w sposób rozszerzający wewnętrzną pamięć masową telefonu. Nazywa się to adoptable storage i działa(?) dosyć dziwnie.

Karta tak spreparowana przestaje być dostępna przez np. AirDroid. Niby jest podmountowana w /mnt/expand, ale wedle dokumentacji wgląd mają tam tylko aplikacje systemowe. Podłączenie przez kabelek (MTP) też nie pokazuje katalogu. Można tam przenieść enigmatycznie określone dane korzystając z opcji Przenieś aplikacje i dane w ustawieniach pamięci masowej, ale normalnego zarządzania i wgrywania np. audiobooków z laptopa nie da się zrobić.

Oczywiście istnieje możliwość rozszyfrowania karty po jej przełożeniu do komputera, ale poziom rzeźby wykracza poza wygodne korzystanie z telefonu. Wróciłem więc do karty sformatowanej po staremu – VFAT zamiast dm-crypt+ext4.

Na marginesie, jakby ktoś się dał nabrać na obietnice Chińczyków z Lenovo/Motorola że będą wypuszczać aktualizację do telefonów na bieżąco… bullshit. Aktualizację Moto G do Androida 5.0 ogłosili(!) we wrześniu 2014, a tak naprawdę pojawiła się w lutym 2015. Android 6.0 wyszedł w październiku 2015, na Moto G pojawił się pod koniec marca 2016. Pół roku za każdym razem, dystrybucje linuksowe w tym czasie całe nowe wersje są w stanie opracować i wydać.

Telefon kupiony w sklepie, więc żadnego zasłaniania się opóźnieniami po stronie pośrednika/telekoma być nie może.

Mysteriously flapping network connection


Fool me once, shame on you. Fool me twice, and I will write a blogpost to remember.

For a few days I've been experiencing intermittent networking problems. Every couple of minutes iSCSI and FCoE connection seemed to break for a brief moment. This made filesystem quite unhappy. I've added another path to iSCSI target, over legacy IPv4, but it didn't help. And because all paths were disappearing at the same moment, multipath device was failing, too.

So, iSCSI-over-IPv6, iSCSI-over-IPv4 and FCoE were crumbling. Clearly, the network was at fault (as it always is!). Then it hit me. I have seen a bug like this before. It manifested a bit different because of a different driver (r8169 vs tg3), but even without hints in dmesg I've recognized the problem.

You see, ethernet port at gigabit speed is quite powerhungry. Limiting speed to 100MBps can reduce power draw, especially with multi-port and multi-gigabits NICs. This fact is utilized by tuned utility. If you put tuned into powersave profile – like my misbehaving station was – and you have dynamic_tuning = 1 in configuration file…

During idle periods, tuned dropped my NIC into one hundred megabits speed. When bandwidth usage rose, tuned flipped the network card to gigabit speed. Brief moment of layer-1 renegotation was enough to disturb the connection to the storage target.

Disabling dynamic tuning restored the network to rock-solid state instantly.

Intermedium


Tak… Jogger się kończy, więc trzeba się przenieść. Mój pierwszy post napisałem w czerwcu 2003, więc jestem tutaj praktycznie od początku. Zaczęło się od testowania ekg2, które wówczas rozwijałem. Potem pisałem trochę o rzeczach życiowych (w tym uczelnia), trochę o technicznych, trochę o ciekawostkach. Świetna społeczność joggerowa towarzyszyła mi ponad dekadę. Teraz idę na swoje.

W czasie weekendowego researchu spodobał mi się generator Nikola. Jest w miarę przejrzysty, wygląda na rozszerzalny, społeczność na IRCu jest bardzo pomocna i co ważne: jest spaczkowany w Fedorze. Trochę grzebania w konfiguracji, trochę poprawek w skrypcie https://gist.github.com/malpka/8273337 i działa. Udało się zachować URLe do archiwalnych wpisów, adres bloga https://enotty.pipebreaker.pl się nie zmienia, więc przepięcie powinno być prawie niezauważone.

Prawie, bo niestety nie dało się bezboleśnie przenieść największej zalety Joggera – komentarzy. Archiwalne podoklejałem pod wpisami. Nowe komentarze: tutaj trzeba skorzystać z zewnętrznego dostawcy. Wybrałem komentarze Google+. Nie do końca jeszcze ogarniam, jak mają działać, ale to się dotrze w praniu.

Następnej zmiany nie planuje wcześniej niż za kolejne 13 lat. ;-)


Archived comments:

Remigiusz 'lRem' Modrzejewski 2016-02-23 13:57:46

A jest już oficjalne API do podpinania komentarzy G+, czy nadal jakaś rzeźba na niesupportowanym haczyku który może jutro zniknąć?

zdz 2016-02-23 15:27:49

Z Google to nawet supportowane rzeczy mogą jutro zniknąć. Ale na pytanie konkretnie Ci nie odpowiem, bo jeszcze nie wiem na jakiej zasadzie to jest w ogóle zorganizowane. Strony supportu googla (do których odnosi dokumentacja pluginów G+ comments do różnych platform blogowych/CMS) wyglądają na przeterminowane. Jak przepnę domenę to zadziała albo nie ;)

Tak się powinno robić samochody


W weekend w końcu znalazłem trochę czasu na obejrzenie DEF CON 23 - Marc Rogers and Kevin Mahaffey - How to Hack a Tesla Model S. Potwierdziło się to, co czytałem wcześniej. Tesla naprawdę porządnie robi samochody.

Security IT mają zrobione bardzo dobrze zarówno wewnętrznie — izolowane podsieci CAN i infotainment z „firewallem” w postaci modułu gateway, szyfrowanie prawie wszędzie, użycie SSH do komunikacji między komponentami — ale również zewnętrznie: OpenVPN z dokładnym sprawdzaniem certyfikatów (keyUsage) itp. W przypadku „zabicia” elektroniki przez atakującego, samochodem nadal można kierować i działają hamulce.

Co prawda używają starego Ubuntu i było kilka drobnych niedoróbek, ale plusem Tesla Motors jest też sprawny system patchowania. I ekipa ludzi, którzy biorą IT Security poważnie. Poważniej, niż niektóre biznesy z którymi współpracowałem.

Prezentacja warto obejrzeć, sam chętnie bym zobaczył wycieczkę po serwerowni Tesla Motors i posłuchał więcej: jak zarządzają certyfikatami dla każdego samochodu, jaką mają infrastrukturę sieciową, jak przechowują i obrabiają telemetrię itp.


Archived comments:

sprae 2016-01-28 01:47:44

Dziękuję, też zobaczę.

Proste rozwiązanie Linuksa na pendrive


Linux zainstalowany na pendrive przydaje się od czasu do czasu. Czy to do uruchomienia jakiegoś obcego komputera, czy do ratowania systemu. Niestety, ponieważ pendrivy to crap, dość często nośnik pada i trzeba przygotować nowy.

Instalowanie Linuksa nie jest zupełnie porywające, więc powtarzanie tej czynności co parę lat po prostu nudzi. W pewnym momencie po instalacji zrobiłem tzw. golden image, który nagrywałem na nowy nośnik korzystając z dd. Ale to był tylko półśrodek: obraz nieużywany starzał się, a aktualizowanie pena USB który ma jakies 10 IOPSów trwało wieki.

Na szczęście wpadłem na o wiele prostsze i skuteczniejsze rozwiązanie. Obraz o wielkości niecałych 8GB trzymam dalej na dysku, ale dodatkowo jest podpięty pod maszynę wirtualną. Żeby zaktualizować albo zmienić konfigurację włączam VMkę, robię co trzeba i wyłączam. Obraz dysku jest w każdej chwili gotowy do przeniesienia na nowy pendrive za pomocą dd.

Pamiętać trzeba jedynie o odpowiednim initramfs. Ponieważ domyślnie utworzy się tylko taki ze sterownikami potrzebnymi w maszynie wirtualnej (więc np. sterownik dysku typu Virtio), trzeba wymusić dodanie sterowników potrzebnych do startu z pendrive. W pliku /etc/dracut.conf.d/usb-root.conf wpisujemy:

add_drivers+="usb_storage uas"
Od tej pory initramfs utworzony w maszynie wirtualnej będzie też w stanie uruchomić system z pendrive.

Got lazered!!!11


Celebrację premiery Star Wars: Episode 7 – Awakening of The Force by Disney™ należy przeprowadzać odpowiednio – z prawdziwymi laserami i prawdziwym odparowaniem fragmentów ciała. Wobec czego tydzień temu, po 25 latach noszenia okularów i soczewek kontaktowych (-4 i -4,25), przeszedłem operację TRANSK-PRK. Tylko na taką kwalifikowałem się z uwagi na cienką rogówkę, poniżej 500 µm.

(Ten akapit może być trudny w odbiorze dla osób wrażliwych). Metody laserowej korekcji wzroku (LASIK, LASEK, TRANS-PRK) poprawiają kształt rogówki w oku. Operacji poddawana jest głębsza warstwa – trzeba się jakoś dostać do środka przez warstwę nabłonka. W LASIKu rogówkę ciacha się i odkłada na bok, bo korekcji zakłada z powrotem. Oprócz noża, cięcie można zrobić laserem. Miejscowo podgrzewając tworzy się mikropęcherzyki rozrywające tkankę. TRANS-PRK idzie dalej, całkowicie anihiluje nabłonek odstrzeliwując go. Stąd dłuższa rekonwalescencja, ale i tak jest lepiej niż przy metodach z rozpuszczaniem nabłonka alkoholem.
Komu powyższy opis nie dostarcza wystarczająco silnych doznań gastrycznych, może obejrzeć początek Psa Andaluzyjskiego.

Operacja zaczyna się od przyjęcia środka uspokajającego, przeciwbólowego i czekaniu aż zaczną działać. W czepku, jednorazowej koszuli i ze zdezynfekowaną okolicą oczy ląduje się na stole. „Poduszka” trzyma głowe nieruchomo, przed twarz wjeżdża maszyneria. Światło na sali gaśnie. Jeszcze tylko pytanie o imię i nazwisko, czy aby na pewno mamy właściwą osobę i amputujemy właściwą nogę.

Lekarz do twarzy przykleja chustę chirurgiczną z wycięciem na oko, zakłada rozwieracz powiek. Jeszcze jedno zakroplenie i przecieranie oka gąbeczką z chemią. Dziwne uczucie – cały czas widzimy i czujemy smyranie po krzywiźnie oka. Następnie pada „proszę patrzeć w zieloną kropkę” i następuje uruchomienie baterii turbolaserów.

Zielona kropka w ciągu kilku sekund z punktu staje się poświatą wypełniającą większość pola widzenia. Jednocześnie można poczuć zapach palonych włosów (ciekawe, że wszyscy dobrze wiemy jak śmierdzą palone włosy). Nasz nabłonek rogówki właśnie dostał skrzydeł i unosi się w powietrzu po całej sali.

Następuje właściwa korekcja kształtu wnętrza rogówki. Po wyrównaniu przez chwilę robi się bardzo jasno, gdy do oka przykładają jakiś szklisty, żelowy przyrząd. Chwilę później następuje założenie „opatrunku” w formie szkła kontaktowego. Całość trwa dosłownie kilka minut, można znaleźć filmy TRANS-PRK na YouTube (oglądanie nie wywołuje torsji, w przeciwieństwie do np. film z LASIK na Wikipedii)

Tu następuje albo powtórzenie procedury dla drugiego oka, albo koniec. Wyjście z sali operacyjnej do oczekujących na nas osób jest doskonałą okazją do trollingu („Ciemność! Widzę ciemność!”). Po krótkiej kontroli zakładamy okulary przeciwsłoneczne z polaryzatorem (SwissMed w Gdańsku daje je w cenie zabiegu) i czekamy na wypis. W tym czasie powoli zaczyna się ból.

Po zabiegu w piątek, przeżycie weekendu było naprawdę ciężkie. Zakraplanie oczu serią specyfików 5× dziennie bardzo utrudnia opuchlizna i wrażliwość na światło. Ciało orientuje się w obrażeniach i zaczyna leczyć oparzenie. Dzięki opiece Żony* i mocy Ketonalu przetrwałem. Większość czasu oczy miałem zamknięte, co powodowało przysypianie w trakcie słuchania książek. Za to ze zdziwieniem odkryłem, jak dobrze znam swoje mieszkanie po omacku.
* – żona nie jest dostarczana przez SwissMed

Po trzech dniach pierwsza kontrola. Zdolny do walki z czołgami. Lekarz zdejmuje soczewki, ogląda oko. Już nie boli, Wszystko dobrze. Cała obsługa operacji i rekonwalescensji jest całkiem sprawna, ale brakowało mi informowania o tym co i kiedy będzie się działo. Np. jakie są etapy samej operacji. Albo jak długo zanim pojawi się ostrość. Po tygodniu oko jest już zaleczone, ale mózg musi od nowa nauczyć się akomodacji – w końcu takiego aparatu optycznego nie miał do dyspozycji od 25 lat.

Tydzień minął z incydentalnym łapaniem ostrości widzenia, co 3 godziny aplikacji czterech różnych kropli do oczu, słuchaniem audobooków i spaniem z osłonkami na oczy przyklejonymi do twarzy. Po ustawieniu fontu w rozmiarze dla ślepych da się korzystać z Kindla. Ponieważ nie mogę używać komputera, wpis został podyktowany kotu przy użyciu Jedi mind-tricks.


Archived comments:

Krystek 2015-12-12 03:15:01

Ja bym zemdlał na stole zabiegowym...

Blokada na głównej?


Ta opcja blokady użytkowników na głównej w końcu powstała? Bo deja vu, znowu wysyp grafomańskiej twórczości z przeszłości…


Archived comments:

Dandys 2015-11-22 12:28:28

Nie. Sam używam skryptu w greasemonkey, który usuwa mi niepożądanych autorów z głównej. Jeżeli masz możliwość, to polecam.

Joggerbocie gdzie jesteś?


Ostatnie braki w obecności bota joggerowego są upierdliwe. Nie ma bieżącej informacji kiedy spamerzy zaczynają dodawać bzdurne komentarze.


Archived comments:

m. 2015-07-22 17:38:44

https://en.support.wordpress.com/jabber/ ;-)

zdz 2015-07-24 06:20:41

Już jest OK, problem był niespodziewanie z drugiej strony: moje konto XMPP było zablokowane. Smoku szybko poprawił :)

m. 2015-07-24 18:47:40

Czyli fałszywy alarm.

Dzisiaj anegdota


Nasza kota ma w sypialni, na komodzie, budkę w której śpi. Przynajmniej w założeniu, bo to menda i czasem jak skuma, że śpimy to przenosi się na kołdrę. Mi to zwisa, ale żonie się niewygodnie śpi.

Interluda: zapewne każdy właściciel futra wie, że śpiący w optymalnym miejscu kot zaczyna ważyć 2x więcej, przybiera konsystencję przelewającą się przez ręce i generalnie utrudnia próby przeniesienia go.

Ponieważ żona ma skrupuły (kotek tak słodko śpi, nie można go ruszać) to zaproponowałem, że jak znowu menda przyjdzie, to ja ją wezmę i przeniosę do budy. Poszliśmy spać.

Następne wydarzenia znam z relacji małżonki, bo ja jak śpię to śpię.

Kot przyszedł na kołdrę. Małżonka budzi mnie. Otwieram oko, a małżonka wskazuje na obiekt mruczący i mówi:
– Kot!
Moja reakcja jest najbardziej adekwatna do tego zagrożenia. Wyciągam się nad żoną, sięgam ręką do kota. Głaszczę*.
Odwracam się i zasypiam z powrotem.

* kota, nie żonę

Cytat na dziś


Świetnie spostrzeżnie usłyszałem dzisiaj w pracy. Odnośnie utrzymywania dwóch całkowicie odrębnych zespołów – jeden do opracowania i wdrożenia aplikacji, drugi do jej utrzymywania na produkcji.

To tak, jakby mieć dwie reprezentacje piłkarskie. Jedną szkolić i trenować, a drugą wysyłać na zawody i kazać grać na podstawie dokumentacji.

No czo ten Infoshare znowu


Po ostatniej porażce postanowiłem odpuścić sobie Infoshare w roku powrotu do przyszłości. Ale po ostatnim tech.3camp chyba uległem magii marketingu, bo rozważam udanie się do Amber Expo w czerwcu.

Po pierwsze to organizator przyznał, że ostatnimi laty Infoshare za daleko oddaliło sie od twardych tematów technicznych. I że starają się to nadrobić w tym roku. Hmm. Plus dla nich. Oby się udało.

Druga sprawa: imprezy towarzyszące. Zwiedzanie zardzewiałej fanaberii za ćwierć miliarda mam już za sobą i nie widzę potrzeby powtórki. Natomiast ostatniego dnia szykuje się niezły kąsek. Sztuka wystawiona w naszym czarnym zigguracie, specjalnie dla uczestników konferencji. To jest coś, co mnie mocno przekonuje.

Who wrote systemd?


When it comes to systemd middleware, Lennart Poettering often takes the blame and has sole authorship attributed. But there are many more developers (git shows 593 authors in total) – missing their portion of berating, thus unappreciated and unhappy. Over the Winter Holidays I’ve run LWN's “who wrote” scripts to gather more insight into systemd’s developer base.

Developers with most changesets

Developers with the most changesets
Lennart Poettering Red Hat 7104 38.5%
Kay Sievers Red Hat 3711 20.1%
Zbigniew Jędrzejewski-Szmek hobbyist 1446 7.8%
Tom Gundersen Red Hat 948 5.1%
Greg KH Linux Foundation 624 3.4%
Michal Schmidt Red Hat 369 2.0%
Thomas Hindoe Paaboel Andersen GNOME 253 1.4%
David Herrmann hobbyist 233 1.3%
Martin Pitt Canonical 231 1.3%
Harald Hoyer Red Hat 207 1.1%
Dave Reisner Arch 148 0.8%

Lennart leads, but with less than 40% of all changesets. It seems he has written less than half of systemd. Sorry, Lennart :)
Kay Sievers earned second place mostly by maintaining udev for past couple of years. Majority of his commits were made while he was employed by Novell. Kay now works at Red Hat.
Third most active developer, Zbigniew Jędrzejewski-Szmek, commited less than 8% during the history of systemd. Nevertheless, Zbigniew steadily increases his productivity. OpenHub’s graphs for systemd shows he wrote 12% of changesets in 2014.
Clearly, systemd is driven by top five developers. There is a short drop afterwards. Eleventh person on list contributed less than 1% of all changesets. Red Hat as an affiliation appears few times. Further analysis is in the last section – ”Direct comitters”.

Developers with most changed lines

Developers with the most changed lines
Kay Sievers 565610 34.3%
Lennart Poettering 438513 26.6%
David Herrmann 94753 5.7%
Tom Gundersen 70541 4.3%
Greg KH 66951 4.1%
Zbigniew Jędrzejewski-Szmek 61506 3.7%
Michal Schmidt 16948 1.0%
Patrik Flykt 7386 0.4%

Per-line statistics looks a little bit different. Here Kay Sievers leads the pack with one-third of all lines changed. It is again mostly caused by the long history of udev, which was merged into systemd two and a half years ago – in April 2012.
Big individual counts by David Herrmann and Tom Gundersen can be attributed to non-init components they developed in systemd project. David wrote virtual console implementation, hacked on kdbus and logind. Tom created network configuration element of systemd.
Speaking of the networking, Patrik Flykt’s high position comes from refactoring ConnMan's DHCP client library into systemd-networkd. Recently, the library was utilised by NetworkManager 1.0.

Employers with the most hackers

Employers with the most hackers
Red Hat 46 7.1%
Novell 19 2.9%
Intel 14 2.2%
IBM 10 1.5%
Samsung 9 1.4%
Canonical 5 0.8%
Fujitsu 4 0.6%
ProFUSION 4 0.6%
Mandriva 3 0.5%
Dell 2 0.3%
Axis Communications 2 0.3%
Linux Foundation 2 0.3%
OLPC 2 0.3%
SGI 2 0.3%
HP 2 0.3%

While LWN’s scripts try to map each author to his parent company, it’s less robust than other kinds of statistics. People change employers while contributing to the same project. I do not see “hobbyists” in the table above, while over 10% of systemd has been created by them. Some authors contribute patches in their free-time, without relation to the employer. Nevertheless, it is interesting to see more or less recognizable company names in the list.

Direct commiters

There are 26 people with commit access to systemd git. Biggest group – 9 people – work for Red Hat. This is not surprising. RH have choosen systemd as a foundation for their enterprise offering. They had to build expertise and assure sustainable development. Sure way for that is to hire people contributing to systemd.

Next groups come in threes. Three people without clear company ties – I call them hobbyist. Three Debian/Ubuntu developers, with at least one person employed by Canonical. There are also three names from Intel.

Two developers can be associated with GNOME project. There are single developers from openSUSE, Mageia, Arch and CoreOS. There are also single committers from companies: Pantheon Systems and Aldebaran Robotics.

Bear in mind, above only talks about people with direct commit access to systemd’s git. There are companies contributing many patches through the mailinglist, but without dedicated commiter. I can recall few names from Samsung, which has contributed quite a number of patches. Tangentailly, there were only 2 patches from Jolla, which produces mobile phones and tablets with systemd onboard.

Summary

Red Hat pays the bills for biggest number of systemd authors. But please note, some of them were hired by RH specifically because of their earlier contributions to systemd. Community around project contains representatives from other major distributions, some of them even with direct commit access. Tom Gundersen, for example, did majority of his work as an Arch developer.

Some parts of systemd came from specific needs of external users. For example: CoreOS sponsored development of systemd-networkd; Pengutronix contributed watchdog support; Pantheon improved scalability with thousand of units, etc.


Archived comments:

quest 2014-12-30 22:03:35

Wow. What a long post!

First off. I didn't know Poettering wasnn't sole developer, but after his recent letter where he complained for people "trying to hire hitman to kill him", I think the other are somewhat lucky.

and second. "author" is only noun. It shouldn't be used as verb > http://www.thefreedictionary.com/author

zdz 2014-12-30 23:15:11

Thanks, I've replaced "author" with synonyms.

Linuxhippy 2014-12-30 23:56:46

As most of the time, Redhat is one of the few companies truly investing in open-source instead of just making bucks with it (canonical which e.g. has their desktop stuff under a license which makes it unuseable for anybody else)

Jristz 2014-12-31 01:07:33

@quest English is a language not normed, in contrast with spanish, french, bulgarian, etc; therefor any complain on what is correct and what is not in english grammar is either correct and wrong at same time, the main objetive is simply to be underestandable for the english readers, since without a norm solid writted like the examples I give, everithing that is underestandable is valid, even using author as a verb.

lRem 2014-12-31 01:15:57

> Google 0%

Impressive ;)

tg 2014-12-31 02:24:00

Nice post.

Minor comments: Dave Reisner works for Google (but I don't know if he contributes on their time) and David Herrmann works (now) for Red Hat.

Out of interest, how does the changed lines statistics handle non-code changes? If stuff like hwdb/*.hwdb and src/libsystemd-terminal/unifont.hex is included it would skew the numbers a lot I guess.

Jristz 2014-12-31 03:17:41

Dave Reiser is Arch developer, right, but they work indirectly to Google since the place where he work was buyed by google around 2009

Adam Williamson 2014-12-31 05:50:20

It's perfectly fine to use 'author' as a verb, e.g. "this changed was authored by Bob". Perfectly good English. I don't really like *any* free dictionary sites, but m-w.com is the best of a bad bunch, and it lists the verb use of 'author':

http://www.merriam-webster.com/dictionary/author

really, though, if you want a good dictionary, pay for an OED subscription; it's worth it.

Jono Loves Bacon 2015-01-01 23:05:32

>> Google 0%

>Impressive ;)


Why would you expect Google to contribute to this project?

zdz 2015-01-02 13:39:01

There are 34 patches from Filipe Brandenburger, using his @google.com email address. It's hard to say if those were made during his paid hours.

SDSSS 2015-01-02 18:06:05

Well, the top two developers (Poettering and Sievers) have been chided more than once for their attitude, in general, and their sloppiness, in particular.

Anonymous 2015-01-08 00:55:31

Where are you getting the employer data from? I didn't think the LWN database was generally available, and relying on the email domain is not reliable.

Failure modes of incorrect Type= in systemd units


Proper supervision of daemons requires knowledge which cannot be inferred automatically. Some aspects of service behaviour have to be described by administrator. Widely used upstart system manager has 3 type-like job properties: expect daemon, fork and stop. Their description starts with a warning:

This stanza is extremely important: read this section carefully!
The warning is no less true with systemd's Type=.

Wrong type specification impacts service monitoring, failure detection and dependencies handling. There are six service types in systemd. Three basic ones (simple, forking, oneshot) and three more sophisticated (dbus, idle, notify).

Failure to set proper type may not bite you immediately. Service may run for minute or two and then get killed mysteriously. Services depending on wrongly specified one won't be started, even if it appears to run fine; but systemd won't consider the service ready and will not start dependent units.

Type highlights

  • simple - default type; daemon has to stay in foreground. Ready: as soon as the binary is executed (which may be too soon, service may not be ready to serve requests yet).
  • forking - daemon must fork. Ready: after first process exits. If PIDFile= is defined, readiness is delayed until PID is written to the pidfile.
  • oneshot - suitable for running scripts; systemd waits until process finishes. Ready: when main process exits.
  • dbus - for D-Bus services. Ready: when specified BusName= is acquired.
  • idle - like “simple” , but with delayed execution.
  • notify - most flexible and robust type; by defining simple communication protocol between daemon and systemd, precise information about state can be provided. Requires simple patching, for scripts you can use systemd-notify helper. Ready: when service says so.

Basic type determination

Suitable type can be guessed correctly in 75% cases by just running the daemon binary. If it stays in foreground, connected to the terminal, the type is “simple”. If it forks into the background, the type is “forking” (suprisingly!)

 # /usr/sbin/daemon
Copyright 2014 Foo Baz Bar Corp.
Serving Requests…
→ Type=simple
# /usr/sbin/otherdaemon
#
→ Type=forking

If you need to run a program/script which does its jobs and exits (does not stay running), use oneshot. Please note: if you can choose how the daemon behaves, it generally better to go with "forking". This makes systemd declare "ready" after daemon is actually able to accept connections.

Failure modes

Most of the failures shown below happen after TimeoutStartSec=. By default it’s set to 90 seconds, so lets stick with this value.

Incorrectly selected Type=
simple forking oneshot notify
Correct type simple killed after 90 s1 stays in “activating” state forever2 killed after 90 s3
forking killed almost immediately4 stays in “activating” state forever killed after 90 s
oneshot becomes “failed” after executing5 killed after 90 s killed after 90 s
notify probably works fine killed after 90 s stays in “activating” state forever
Notes:
  1. systemd expects process to fork and parent to exit. It waits until timeout.
  2. it never gets to the “ready” state, so no units depending on it will start; start timeout is ignored for “oneshot” units.
  3. systemd will wait for ready notification. Until timeout.
  4. ”main” process exits
  5. daemons should not exit, but “oneshot” units should

I hope that explains why sometimes systemd kills your service after a minute. Of course you should read man systemd.service, it contains much more details.

Więcej sprywatyzować się nie da?


Stany Zjednoczone Ameryki to ten dziwny kraj, który co jakiś czas zaskakuje pomysłami, na które nie wpadłby nawet Związek Radziecki.

Jakiś czas temu myślałem, że sprywatyzowanie więzień to jakiś żart. Jednak nie. Pierwsze było co prawda UK, ale dopiero USA rozkręciło to w duży biznes. Z więziennictwa zrobili tak dochodowy interes, że nawet sędziowe zaczęli dostawać łapówki za kierowanie skazanych do więzień i poprawczaków.

Podobnie z wojskiem. Private Military Company zaczęły się w UK, a rozkwitły za oceanem. Stoją za tyloma skandalami, że co kilka lat robią rebranding – wystarczy przypomnieć Blackwater/Xe/Academi/Constellis czy jak oni się teraz nazywają.

W mijającym tygodniu zaskoczył mnie felieton w Ars Technica dot. kontroli operacyjnej. U nas sprawę reguluje Prawo Telekomunikacjne w serii arykułów 180 i np. Ustawa o Policji w art. 20c. Za wielką wodą jest to CALEA. O ile u nas tymi kwestiami zajmują się służby (i część gastronomii), to w USA sprywatyzowano również podsłuchy. Firmy oficjalnie zajmują się pomaganiem małym ISP, których nie stać na infrastrukturę inwigilacyjną (takie np. AT&T radzi sobie samo, ale co roku fakturuje CIA na ponad 10 mln dolarów za tę usługę). Faktem jest jednak, że formacje broniące prawa outsource'ują podsłuchiwanie do prywatnych spółek.

Jak to się może rozwinąć? Zapraszam do obejrzenia krótkometrażówki sci-fi pt. From future with love.


Archived comments:

Sigvatr 2014-09-06 18:38:26

> Jak to się może rozwinąć? Zapraszam do obejrzenia krótkometrażówki sci-fi pt. From future with love.

Fantastyczny ten filmik. Co prawda, chyba powinien skończyć się w momencie, kiedy główny bohater krzyczy "all clear":P Bo potem to nie wiadomo co się dzieje. I te diody - skąd to przekonanie, że w przyszłości będziemy sobie na zbrojach diody wstawiać? No, ale i tak filmik jest genialny.
Nawet muzykę zapożyczyli z Fallouta:)

torero 2014-09-08 08:38:42

> Podobnie z wojskiem. Private Military Company zaczęły się w UK, a rozkwitły za oceanem. Stoją za tyloma skandalami, że co kilka lat robią rebranding – wystarczy przypomnieć Blackwater/Xe/Academi/Constellis czy jak oni się teraz nazywają.

Ojtam, [wcale się nie zaczęło](https://pl.wikipedia.org/wiki/Wojsko_najemne). Co do reszty... cóż, czasy mamy takie, że widać prędzej można doczekać się prywatyzacji więziennictwa i resortów siłowych, niż powszechnej oświaty czy służby zdrowia...

Plussszz


Zgodnie z panujący trendem, krótsze przemyślenia i pierdołki umieszczam w social network, dokładnie tu:

https://google.com/+TomaszTorcz

Na joggerze dalej mam zamiar publikować rzeczy dłuższe niż 2 akapity i takie, które powinny być googlalne (o ironio).


Archived comments:

(s) 2014-08-18 14:56:25

wlazłem klikłem wpis++, kazało mi wpisać hasło do gmaila i jestem na obcym terenie... nigdy mi się nie chciało sprawdzać do czego można używać np. fb. A drzewiej używałem np. del.icio.us fajne było.

zdz 2014-08-19 07:22:17

Do czego używać SM? No dodaje się znajomych i osoby, które chcemy czytać, a potem co kilka dni wchodzimy i patrzymy co kto napisał.

(s) 2014-08-19 11:58:44

niby tak ale jak się ma paru znajomych w ogóle w tym 0 current i nie jest się zainterere czytaniem co ktośtam zjad na kolacje ? ;) Jak miałem joggery to osoby drugie i trzecie były opcjonalne... fb mam ale martwe to jest, zresztą "znajomi" joggerowi też mają raczej pro-forma... btw, musiałem już kiedyś zakładać g+ bo wyszło że mam już śledzi 2 szt. W sumie to chodzi o to czy g+ nadaje się jako zabawka dla socjopatów czy nie.. wyjdzie w praniu.

DeHa 2014-08-19 13:23:40

Ma to jakiś związek z zapowiadanym przez wieszczy zamknięciem G+?

lRem 2014-08-20 02:11:19

(s): G+ raczej nie jest wypełniane zdjęciami śniadań, to ludzie wrzucają na Facebooka. G+ jest dla gików, więc raczej stoi krótkimi wrzutkami technologiczno/naukowo/socjalnymi (z reguły coś rzędu kobieta narzekająca na to, że ludzie nie dowierzają że kobieta może być inżynierem).

DeHa: lepiej zmień wieszczy.