Don't understand german? Read or subscribe to my english-only feed.

Bookdump 02/2020

April 1st, 2020

Bücher, die ich 2020 seit dem letzten Bookdump bisher gelesen habe:

Foto vom Buchregal

  • Miroloi, von Karen Köhler. Miroloi ist ein der griechisch-orthodoxen Kultur entspringendes Totenlied. In dem 463 Seiten starken Buch geht es um das Mädchen Alina, ein zunächst namenloses Findelkind, das in einem Dorf namens “Schönes Dorf” auf einer anscheinend griechischen, von der Außenwelt abgeschnittenen und abgeschiedenen Insel am Meer lebt. Das rückständige Dorf, es gibt z.B. keinen Strom, wird in einer patriarchalen Struktur mit strengen Regeln vom Ältestenrat regiert. Frauen dürfen nicht lesen und schreiben, Männer wiederum nicht singen und kochen. Alina verliebt sich in Yael, lernt lesen und Selbstbefriedigung kennen und bricht Gesetze.
    Das Buch ist in Strophenstruktur aufgebaut, es gibt 128 Strophen, und handelt u.a. von heiligen Schriften und Religion (sowie Kritik an dieser) und Spiritualität. Es ist ein sehr schön gestaltetes Buch und fühlte sich ein wenig wie für junge und junggebliebene Leser*innen geschrieben an. Das Buch ist stellenweise ein wenig repetitiv in seiner Gesellschaftskritik, ich fand es aber anregend und sehr schön zu lesen.
  • Ein Zimmer für sich allein, von Virginia Woolf. Dieses Buch in Form eines Essays der Britin Woolf, das im Original unter “A Room of One’s Own” 1929 veröffentlicht wurde, gilt als einer der wichtigsten Texte der Frauenbewegung. Woolf beschreibt darin, unter welchen Bedingungen Frauen Literatur schaffen müssen. Formulierungen wie “Nehmen wir zum Beispiel einmal an, Männer kämer in der Literatur nur als Liebhaber von Frauen vor und wären niemals Freunde von Männern, Soldaten, Denker, Träumer: […]” erinnern stark an den Bechdel-Test und man erkennt viele Passagen, an die sich aktuelle feministische Literatur lehnt.
    Ich habe die Ausgabe aus 2012 von Reclam mit 187 Seiten (inkl. Anmerkungen und Nachwort von Axel Monte) gelesen, im Kampa-Verlag wurde es 2019 übrigens neu aus dem Englischen und mit einem Nachwort von Antje Rávik Strubel aufgelegt. Ein Werk das man gelesen haben sollte.
  • Zum Weinen schön, zum Lachen bitter, von André Heller. Der Universalkünstler Heller schreibt auf 211 Seiten 47 kurze Geschichten und am Ende gibt es noch ein Nachwort von Franz Schuh (in Summe sind es 231 Seiten). Die Geschichten entstanden zwischen 1969 und 2003 und wurden teilweise schon in anderen Büchern Hellers veröffentlicht.
    Mit dem Namen André Heller verbinde ich einen Ästheten, und dementsprechend sollte man in einer ästhetisch aufnahmefähigen Stimmung sein, wenn man dieses Buch liest. Schöne Wortspiele und phantasievolle Gedanken, geschrieben in einer wunderbar zu lesenden österreichischen und wienerischen Sprache (endlich einmal wieder ein Buch ohne “gucken”).
  • Die steinerne Matratze, von Margaret Atwood. In neun Geschichten auf 301 Seiten gibt es schöne fiktionale Literatur rund um Beziehungen, Generationen und Mord. Die miteinander verbundenen ersten drei Texte waren für mich ein schöner Einstieg. Erst später habe ich dann festgestellt, dass die folgenden Erzählungen nichts miteinander zu tun haben, was ich fast ein wenig schade fand. Die Geschichte mit der toten Hand, in der u.a. von einem Buch im Buch geschrieben wird (hallo Rekursion) ergibt ein schönes Konstrukt. Einige Geschichten wiederum fand ich eher plump und unfertig, einige sehr schöne Wortspiele haben das für mich aber wieder gutgemacht.
  • Wann wird es endlich so, wie es nie war, von Joachim Meyerhoff. (Link nur zum Verlag, weil dieser es nicht schafft, funktionierende URLs zu seinen Büchern zur Verfügung zu stellen, sigh.) Den ersten Teil (“Alle Toten fliegen nach Amerika”) dieser vierteiligen Buchserie habe ich 2019 gelesen, und hatte ihn in guter und angenehmer Erinnerung. Ich wollte ein Buch lesen, das “flutscht” und gute Laune macht.
    Meyerhoff beschreibt in diesem 351 Seiten umfassenden autofiktionalen Text das Aufwachsen und Erwachsen-werden aus der Sicht des jungen Josse. Die Geschichte spielt auf dem Anstaltsgelände der Kinder- und Jugendpsychiatrie Hesterberg in Schleswig. Josses 40-jähriger Vater, Direktor dieser psychiatrischen Anstalt, scheint ein wenig in der Midlife-Crisis zu stecken und ist ein Meister der Planung und Theorie, versagt aber stets in der Praxis bzw. Umsetzung seiner Pläne.
    Neben der Thematik der Vaterkind-Beziehung und des Sich-Einordnen unter Geschwistern geht es auch um traurige Themen. Die Situationskomik verschafft insgesamt trotzdem – zumindest bei mir – gute Laune beim Lesen. Das Buch liest sich flüssig, wer gute Unterhaltung mit Stoff zum Nachdenken sucht, wird hier fündig.
  • Wer braucht Superhelden, von Lisz Hirn. Die österreichische Philosophin schreibt in diesem 158 Seiten schlanken Buch über den Mythos der Superhelden, gegen Selbstoptimierung und Komfortdenken, und wirft einen Blick auf unser patriarchales Gesellschaftsbild und dessen toxische ­Männlichkeit. Das Buch handelt von Übermenschen bei Nietzsche und den Nationalsozialisten, geht über die Robotisierung und Verstädterung, die den Arbeiter, ja den Mann entmachtet hat, bis hin zum Transhumanismus und Posthumanisten. Es führt aus, warum der Vergleich von Trump mit Superman besonders ironisch ist, geht mit dem Neoliberalismus kritisch ins Gericht und spricht auch Themen wie Wehrpflicht, Hedonismus und die Mesotes-Lehre an. Die Autorin spricht Fake-News und gängige Irrtümer an, wie beispielsweise: 1. Argumentum ad verecundium (“Autoritätsargument”), 2. Argumentum ad peronsam (“persönliche Beleidigung”), 3. Tu quoque (“du auch”) und 4. Argumentum ad populum (“Volksmund”).
    Das Buch ist zugänglich und ließt sich vergleichsweise flott. Stellenweise gibt es einige stilistische und grammatikalische Patzer, die hoffentlich in einer neuen Auflage ausgeräumt werden. Schwer tue ich mich auch mit manchen Aussagen (ohne Referenzen), wie beispielsweise auf Seite 62: “Während das Gehirn für die erste Begegnung an die 11 Millionen Bits pro Sekunde verarbeiten muss, fallen nur 40 Bits pro Sekunde bei der digitalen Interaktionan [sic], reale Treffen verlangen von uns im Vergleich dazu ein Vielfaches an Denkleistung.” Das scheint mir auf die 2 Systeme von Daniel Kahneman anzuspielen, würfelt es für mich aber ein wenig durcheinander (z.B. gibt es auch digitale Interaktion mittels Video, Audio,…).
    Insgesamt gibt es aber viele Referenzen, und ich rechne es der Autorin an, dass sie das Buch so kompakt und unaufgeblasen gehalten hat, auch wenn viele eingestreute Zitate von Nietzsche und weiteren Philosophen streckenweise den Eindruck des Erzwungenen erwecken und der Tiefgang dann doch fehlt. Ich empfand es insgesamt aber eine philosophische und anregende Lektüre, die zum Reflektieren über Superman, Batman & CO anregt.
  • Was sollen die Leute denken, von Jess Jochimsen. Dies war die Empfehlung eines lustigen Buches von Renato Kaiser beim Schweizer Literaturclub, und ich schließe mich ihm gerne an. Eine Geschichte auf 78 Seiten in Form eines Monologs über das “Funktionieren” und was die Leute von einem denken (sollen). Sehr schön, hätte für mich gerne noch länger sein dürfen.
  • Ich fühl’s nicht, von Liv Strömquist. Die Autorin habe ich 2019 mit “Der Ursprung der Welt” für mich entdeckt. In ihrem neuen 172 Seiten umfassenden Buch in Form einer Graphic Novel ergründet sie anhand des Beispiels Leonardo DiCaprio, warum dieser zahlreiche Beziehungen zu Topmodels in ihren frühen zwanziger Jahren eingeht (und wieder beendet). Es geht um Narzissmus (Foto von sich selbst auf sozialen Medium statt vom Objekt der Begierde), Objektivierung sowie Gedanken zu unserer spätkapitalistischen Leistungsgesellschaft. Warum das Objekt der Zuneigung als atopos bzw. einzigartig angesehen wird und damit nicht einfach austauschbar ist. Warum Liebe verschwenderisch und irrational sein darf und soll, und warum sie mit einer Konsum- und Leistungsgesellschaft nicht zusammengehen kann. Mit Verweis auf ein Team um Dr. Helen Fischer wird romantische Liebe in drei Phasen, mit zugehörigen und eigenen Hormonkombinationen aufgeteilt: Begierde (Testosteron + Östrogen), Anziehung (Dopamin, Noradrenalin + Serotonin) und Bindung (Oxytocin + Vasopressin). Es gibt auffallend viele Verweise und Referenzen speziell auf die Soziologin Eva Illouz und den Philosophen Byung-Chul Han.
    Das Buch ist schnell (durch)gelesen und hat mir geholfen, einige Phänomene besser verstehen, erklären und beim Namen nennen zu können. Lesenswert.
  • Über Nationalismus, von Georg Orwell. Dieser Essay wurde von Orwell im Mai 1945 verfasst und ist jetzt in einer deutschen Erstausgabe mit einem Nachwort des Soziologen Armin Nassehi (in Summe 62 Seiten) erschienen. Orwell unterscheidet zwischen Nationalismus (“Streben nach Macht”) und Patriotismus (“Verbundenheit mit einem bestimmten Ort und einer bestimmten Lebensweise, die man für die beste auf der Welt hält, aber anderen Menschen nicht aufzwingen möchte”), wobei er Nationalismus nicht auf die Loyalität gegenüber einer Regierung oder einem Land beschränkt, sondern diesen struktureller betrachtet (Religion, Parteizugehörigkeit,…). Die Hauptmerkmale nationalistischen Denkens sind Orwell zufolge Obsession, Instabilität und Gleichgültigkeit gegenüber der Realität. Weiters teilt er Nationalismus in positiven (Neo-Toryismus, keltischer Nationalismus und Zionismus), übertragenen (Kommunismus, politischer Katholizismus, Hautfarbenbewusstsein, Klassenbewusstsein, Pazifismus) und negativen (Anglophobie, Antisemitismus, Trotzkismus) ein. Er charakterisiert fünf Typen von Nationalisten: britischer Tory, Kommunist, Irischer Nationalist, Trotzkist + Pazifist. Orwell betont, wie wichtig die moralische Anstrengung ist, wie auch das Erkennen von Gefühlen, die eigene Denkprozesse kontaminieren. Nationalisten lassen der eigenen Gruppe Sachen durchgehen, die diese selbst als moralisch verwerflich ansieht und fremden Gruppen nie zugestanden würden. Orwell zeigt, wie schwierig eine unvoreingenommene Perspektive ist und akzeptiert das Heraushalten aus der Politik nicht, speziell für Intellektuelle. Orwell zeigt schön, dass jeder von uns gefährdet ist Nationalist zu werden, und dass auch Intellektuelle (Intelligenzia) nicht vor Nationalismus gefeit sind – ganz im Gegenteil, auf dem Papier lässt sich die Welt wunderbar so konstruieren und erklären wie man es für richtig hält. Anregende Gedanken zum Chauvinismus und einer auch heute nach wie vor präsenten Doppelmoral.
  • Das Tagebuch der Anne Frank, von Anne Frank. Auf 156 wunderschön gestalteten Seiten in Form einer Graphic Novel wird der berühmte Text Anne Franks von Ari Folman und David Polonsky neu umgesetzt. Folman und Polonsky haben aus jeweils 30 Seiten Tagebuch ~10 grafisch aufbereitete Seiten gemacht, ergänzt um fiktive Dialoge. Damit ist ein zugängliches Buch entstanden, das ein schwieriges Thema ein­drück­lich und gut aufbereitet.
    Ich hätte mir mehr Akzentsetzung mittels stellenweise angebrachter Schwarz/Weiß-Zeichnungen und weniger Detailreichtum erwartet, aber vermutlich ist das Buch dadurch besonders für junge LeserInnen und Lesemuffel zugänglicher.

Bookdump 01/2020

February 25th, 2020

Bücher, die ich 2020 bisher gelesen habe:

Foto vom Buchregal

  • Factfulness, von Hans Rosling mit Anna Rosling Rönnlund und Ola Rosling. Der 2017 verstorbene Hans Rosling ist u.a. für seine Ted Talks bekannt und hat an diesem Buch bis kurz vor seinem Tod geschrieben. In diesem ~380 Seiten starken Buch beschreibt Rosling mit seinem Team, warum die Aufteilung in »der (reiche) Westen« und »Entwicklungsländer« seiner Meinung nach falsch ist. Stattdessen teilt Rosling die Welt in vier Einkommensniveaus (Stufen 1 bis 4) ein, und demonstriert, wie überheblich und falsch die Ansichten von Leuten aus der einkommensreichsten Schicht (Stufe 4) sind. Gleichzeitig verursachen die Menschen aus Stufe 4 auch den Großteil der vom Menschen verursachten CO2-Emissisionen der letzten 50 Jahren. Er weist auf die Gefahr von einzelstehenden (Prozent)Zahlen und Vergleichen von Durchschnitten, Mehrheiten sowie Extremen hin, argumentiert warum unser Weltbild durch verzerrte und überdramatisierte Nachrichten falsch geprägt wird und der Blick auf die rosige Vergangenheit meist getrübt ist. Das kritische Interpretieren von Trends, der Umgang von Angst kontra Wirklichkeit wie auch der Zusammenhang zwischen dem Einkommen und der Zahl der Kinder, die eine Frau auf die Welt bringt gehören ebenso zu den behandelten Themen. Das Buch versucht einen positiven Blick auf die Welt zu vermitteln, Rosling nannte sich selbst einen Possibilisten, wobei ihm auch der Vorwurf von Pollyannaism gemacht wird.
    Ich las »Factfulness« zu einer Zeit, in der die Feuer in Australien riesige Flächen vernichtet und für dramatische Bilder gesorgt haben. Roslings Kritik an “Klimaflüchtlingen” bekommt damit für mich einen interessanten Drall (besonders, weil Australien die Flüchtlinge aus dem Südpazifik in der Mitte von 2019 selbst nicht annehmen wollte). Unschön finde ich das Kleinreden von Zahlen rund um z.B. extreme Armut und Säuglingssterblichkeit. Die Zahlen sind weltweit tatsächlich so niedrig wie noch nie, aber die mehreren hundert Millionen Menschen in extremer Armut existieren nach wie vor und sind damit noch nicht aus der Welt. Die angeführten Umfrageergebnisse, in denen die Antworten unterschiedlicher Länder und Personenkreise dann jeweils gegen Schimpansen verglichen werden (die repräsentativ für eine Zufallsauswahl stehen sollen) empfinde ich als hochnäsig und ein Vermischen von Zufall mit dem Einschätzen einer Situation (hallo, Statistik). Roslings sa­k­ro­sankte Einkommenseinteilungen stehen für mich teilweise in Widerspruch mit der Kluft zwischen Arm und (Super)Reich innerhalb der einkommensreichsten Schicht (Stufe 4).
    Die Themen wiederholen sich immer wieder, besonders gegen Ende hin wurde es dann noch repetitiver. Auch hier gilt wieder einmal: weniger wäre mehr gewesen – ein kompakteres, dichter geschriebenes Buch hätte bei mir einen besseren Eindruck hinterlassen.
    Jeweils am Kapitelende findet sich eine Zusammenfassung, es gibt einen brauchbaren Index und eine ausführliche Liste der verwendeten Quellen. Eine gute Intention ist dem Buch auch nicht abzusprechen und es braucht vermutlich Personen wie Rosling, um die breite Masse zu erreichen. Ich hatte mir vorab ein schwierig(er) zu lesendes Buch erwartet, aber es ist sehr zugänglich und plakativ geschrieben, daher kann ich das Buch durchaus als Basis für das Hinterfragen des eigenen Weltbilds empfehlen. Rosling würde mir vermutlich auch nicht widersprechen, wenn ich schreibe, dass das Buch zum weiteren Recherchieren anregt, denn mit den im Buch angeführten und von dem Team rund um Rosling gepflegten Dollar Street und den Gampinder Tools kann man sich über das Buch hinausgehend mit der Thematik beschäftigen.
  • Das flüssige Land, von Raphaela Edelbauer. Die Eltern der theoretischen Physikerin Ruth Schwarz sterben bei einem Unfall. Die Protagonistin landet auf Umwegen in einem österreichischen Dorf namens Groß-Einland, in dem ihre Eltern aufwuchsen, das offiziell aber gar nicht existiert. Die akademische Städterin versucht mehr über die Verankerung der Eltern in der dörflichen Gemeinde herauszufinden. Sie wandelt dabei auf den Spuren ihren Eltern und taucht in die Dorfgeschichte wie auch ihre eigene Familiengeschichte ein, während ein Loch das Dorf zu verschlingen verdroht.
    Die kafkaeske und sprachmächtige Geschichte beinhaltet genug Stoff für unterwartete Wendungen, handelt vom Nationalsozialismus und der Unerinnerungskultur Österreichs und spielt – so zumindest meine Interpretation – auf das Grubenunglück von Lassing an. 350 wortgewaltige Seiten.
  • Wolfssteig, von David Bröderbauer. Der studierte Biologe und praktizierende Botaniker Bröderbauer schreibt in diesem 263 Seiten umfassenden Roman über den fiktionalen, aber an Allentsteig angelehnten Truppenübungsplatz Wolfssteig im Waldviertel. Die Protagonisten sind Christian Moser und Ulrich Bruckner: Moser, ein bei einer Bundesheerübung Verletzter wird als Invalide zum Hausmeister eines Asylheims. Bruckner, ein aus der Großstadt zurückkehrender Biologe, forscht an Birkhühnern und soll diese an besagtem Truppenübungsplatz zählen, als dieser geschlossen wird.
    In diesem Buch geht es um diverse gesellschaftskritische Themen, von Naturschutz und Interessenkonflikten (u.a. zwischen Bauern, Jägern, Landwirten, Naturschützern und Ansässigen), über Landflucht und Orientierungslosigkeit, bis hin zu Fremdenfeindlichkeit und Religion. Bröderbauer schafft dies, ohne sich zum Moralapostel aufzuschwingen. Im ersten Teil gibt es mehrere mich irritierende Vorkommen von “als” vs “wie”, und streckenweise finde ich die Formulierungen nicht so gelungen. Besonders die sprachlichen Ausflüge in die Natur und die gezeichneten Gesellschaftsbilder finde ich aber ansprechend und regen zum Reflektieren an. Bröderbauer gelingt es, viele Themenkomplexe mit nur wenigen Protagonisten und ohne kompliziert konstruierter Geschichte drumherum anzusprechen.
  • Der Neubauer, von Cordula Simon. “Schlechten Menschen geht es immer gut”. Nach diesem – im Buch immer wieder kehrenden – Motto lebt der namenlose Ich-Erzähler dieses Buches, der sich irgendwie durchs Leben schlägt und mogelt. Der Lebenskünstler verfügt dabei über eine besondere Gabe: Alkohol lässt ihn die Gedanken seiner Mitmenschen lesen.
    Die 200 Seiten beinhalten Brachialrhetorik in schneller Sprache, schöne Wortkreationen und eine zeitkritische Auseinandersetzung mit Hipstern, Millenials, Blendern und den Unterschieden zwischen verschiedenen Gesellschaftsschichten. Es gibt viel Zynismus mit einer Portion Witz und einen Rundumschlag in dem jede(r) sein Fett ab kriegt (Vegetarier/Veganer, Dicke, Vermögende, Frauenrechte, …). Das Buch macht keine gute Laune, aber Spaß beim Lesen.
  • Der Hammer, von Dirk Stermann. In diesem 444-seiten umfassenden historischen Roman geht es um das Leben des Joseph Freiherr von Hammer-Purgstall. Joseph Hammer lebte von 1774 bis 1856 als ältester von acht Kindern und war ein sprachbegabter Freund und Anhänger der Orientalistik. Der übermäßig Selbstbewusste scheitert, vor allem aufgrund seiner undiplomatischen Art, an seinem Ziel, den Orient zu beruflich zu beackern. Im Zuge dessen erfährt man allerlei rund um die Politik des 18. und 19. Jahrhundert, etwa vom Wiener Kongress und den Napoleonischen Kriegen, aber auch das von Kot und Dreck geprägte Leben zu dieser Zeit. Der Jesuit Hammer trifft auf Staatsmänner wie Napoleon und Metternich, aber auch Künstler wie Beethoven und Haydn. Er notiert sich anerkennende Worte seine Person betreffend in seinem “Lobbuch” (eine Erfindung Stermanns, die ich aber besonders charmant finde).
    Ein auf realen Tatsachen basierendes und von Details strotzendes Buch mit Graz-Bezug (Grätz), das viele Fakten über die österreichische Geschichte beinhaltet. Mein Lesetempo war aufgrund der Faktendichte nicht so hoch wie üblich und es hat auch rund 40 Seiten gebraucht, um mich auf den Schreibstil einzustellen. Interessanterweise sind mir auch eine ganze Zeit lang die Guillemets in der französischen bzw. schweizerischen Verwendung aufgefallen. Gelesen habe ich es aber sehr gerne und empfand es als sehr gut recherchiertes Buch (laut Stermann hat er 1,5 Jahre für die Recherche und 2 Jahre für das Schreiben am Buch aufgewendet), verpackt in eine interessante Schreibweise. Absolut lesenswert.
  • Untenrum frei, von Margarete Stokowski. Vom Klappentext: “Wie frei und gleichberechtigt sind wir? […] Stokowski zeigt, wie sich Rollenbilder und Schamgefühle manifestieren, wie sie uns einschränken – und dass wir sie loswerden können.”
    Stokowski erzählt sehr offen über eigene Erfahrungen und Alltagsbeobachtungen. Es gelingt ihr, geschichtlichen Kontext sehr geschickt und zugänglich in insgesamt 7 Kapiteln zu verpacken. Ich habe die 252 Seiten sehr gerne gelesen, klare Leseempfehlung.
  • Heute hat die Welt Geburtstag, von Flake. Christian “Flake” Lorenz ist der Keyboarder von Rammstein. In diesem, an einen Schelmenroman angelehnten, Buch erzählt er aus seiner Zeit in der Punkband Feeling B. und später bei Rammstein. Die 352 Seiten sind schnell gelesen und in einem kurzweiligen und ein wenig verpeilten Stil gehalten. Es geht um die DDR, Punk sowie viel Feuer, Alkohol, Essen und Klauereien. Flake wirkt naiv aber auch selbstironisch und so verrückt sein (Band)Leben zu sein scheint, er scheint ein sympathischer Chaot zu sein.
  • Sex Story – eine Kulturgeschichte in Bildern, von Philippe Brenot und Laetitia Coryn. Eine Leihgabe eines Nachbars (danke C.!), ist dies ein Sachbuch in Comicform, das in 12 Kapiteln und rund 200 Seiten, angefangen vom Ursprung und Babylon, über das Mittelalter bis hin zum 20. Jahrhundert und einen Ausblick auf “Sex der Zukunft” das Thema Sexualität aufbereitet. Es ist schön und witzig umgesetzt und es gibt allerlei interessante Fakten rund um die Kulturgeschichte. Negativ aufgefallen ist mir lediglich die flappsige Formulierung, dass die “Zirkumzision [Anm.: männliche Beschneidung] ohne großen Schaden für die Männer weiterhin praktiziert wird”. Uff.
  • Tot geschwiegen – Warum es der Staat Mördern so leicht macht, von Thomas Treschner. Im Klappentext des Buches sind “Gerichtsmediziner schätzen, dass jeder zweite Mord unentdeckt bleibt” sowie “ein True-Crime-Buch mit vielen Fallbeispielen über das Versagen eines Systems, das sich lieber mit niedrigen Mordraten schmückt, als die Leichen im Keller zu suchen” zu lesen.
    Die Kritik am System kommt an und durch, allerdings sind die 214 Seiten in einem geschwätzigen und langatmigen Schreibstil mit unnotwendigen Details gehalten, die es für mich leider zu einer schlechten Mischung aus Sachbuch und Roman machen. Die Fakten sind zwar interessant, ebenso wie einiges geschichtliches zur Gerichtsmedizin, allerdings gibt es keinerlei Quellenangaben. Treschner kritisiert die österreichische, speziell die Wiener Gerichtsmedizin, allerdings wäre mir das in Form eines Artikels im Falter lieber gewesen, als mich durch diese über 200 Seiten zu quälen.
  • Als ich jung war, von Norbert Gstrein. In dem Buch gibt es zwei parallele Handlungsstränge aus der Sicht des Ich-Erzählers Franz, einmal in einem Hotelrestaurant in Tirol, wo sich Franz als Fotograf von Hochzeiten betätigt. Das andere Setting spielt in Wyoming/US, wo Franz als Skilehrer eines Professors arbeitet. Es gibt die Mutter von Franz, die ihren Selbstmord immer wieder ankündigt, einen Professor der sich das Leben nimmt, und eine Braut die sich am Tag ihrer Hochzeit mutmaßlich das Leben genommen hat. Franz ist einer der Verdächtigten, da er als einer der letzten die Braut lebend gesehen hat. Und Franz küsste ein (sehr) junges Mädchen gegen dessen Willen, als er selbst Anfang 20 war.
    In dem 349 Seiten umfassenden Buch geht es um Pädophilie, Verlogenheit, Lebenslügen, Familiengeschichten und “Frauen schubsen”, geschrieben in einer klaren und präzisen Sprache, literarisch wunderschön und durchaus auch krimi-ähnlich spannend zu lesen. Klare Leseempfehlung.
  • Darm mit Charme: Alles über ein unterschätztes Organ, von Giulia Enders. Ich hatte die 23. Auflage vom Stand 2014 mit rund 280 Seiten zur Verfügung (eine Leihgabe – und da bereits zurückgegeben fehlt diese auch am Foto oben – danke Silvia!). Ein paar wenige Fakten bzw. Neuigkeiten rund um unser Verdauungsorgan gab es für mich, aber insgesamt gab es mir zu viel Palaver, zu viele Wiederholungen und es war für mich langatmig zu lesen. Ein faktenreicher und dichter Zeitungsartikel wäre mir auch hier wieder einmal lieber gewesen. Ich kann mich des Eindrucks nicht erwehren, dass das Buch in Folge von Giulia Enders Science-Slam-Vortrag 2012 entstanden ist und in Folge gehypt wurde. So unterhaltsam der Vortrag sein mag, so sehr hat mich das Buch leider gelangweilt.
  • Herzklappen von Johnson & Johnson, von Valerie Fritsch. Alma und Friedrich Gruber bekommen einen Sohn namens Emil, der keinen Schmerz empfinden kann. Dieses Setting ist in eine Geschichte mit den Großeltern, rund um den Themenkomplex Krieg gebettet. Emil und die Großeltern wirken wie Antipoden, Gegengestalten der Familiengeschichte. Eine interessante Fragestellung, wie man einem Menschen der keinen körperlichen Schmerz fühlt, beibringt, was weh tut.
    Die 175 Seiten sind sprachlich dicht und intensiv und haben mich schwer begeistert. Klare Leseempfehlung.

Revisiting 2019

January 6th, 2020

Mika on the Drums, picture by Gregor

Mainly to recall what happened last year and to give thoughts and to plan for the upcoming year(s) I’m once again revisiting my previous year (previous editions: 2018, 2017, 2016, 2015, 2014, 2013 + 2012).

In terms of IT events, I attended Grazer Linuxdays 2019 and gave a talk (Best Practices in der IT-Administration, Version 2019) and was interviewed by Radio Helsinki there. With the Grml project, we attended the Debian Bug Squashing Party in Salzburg in April. I also visited a meeting of the Foundation for Applied Privacy in Vienna. Being one of the original founders I still organize the monthly Security Treff Graz (STG) meetups. In 2020 I might attend DebConf 20 in Israel (though not entirely sure about it yet), will definitely attend Grazer Linuxdays (maybe with a talk about »debugging for sysadmins« or alike) and of course continue with the STG meetups.

I continued to play Badminton in the highest available training class (in german: “Kader”) at the University of Graz (Universitäts-Sportinstitut, USI). I took part in the Zoo run in Tiergarten Schönbrunn (thanks to an invitation by a customer).

I started playing the drums at the »HTU Big Band Graz« (giving a concert on 21st of November). Playing in a big band was like a dream come true, being a big fan of modern Jazz big bands since being a kid and I even played the drums in a big band more than 20 years ago, so I’m back™. I own a nice e-drum set and recently bought a Zildjian Gen16 cymbal set and also own a master-keyboard (AKA MIDI keyboard) for many years, which is excellent for recording. But in terms of “living room practicality”, I wanted something more piano alike, and we bought a Yamaha CLP-645 B digital piano, which my daughters quite regularly use and now and then I manage to practice on it as well. As you might guess, I want to make music a more significant part of my life again.

I visited some concerts, including Jazz Redoute, Jazzwerkstatt Graz, Billy Cobham’s Crosswinds Project, Jazz Night Musikforum Viktring, Gnackbruch evening with AMMARITE, a concert of the Kärntner Sinfonieorchester, Steven Wilson’s To The Bone tour, Sting’s My Songs tour and the Corteo show of Cirque du Soleil. I took some local trips in Graz, including a Murkraftwerk Graz tour and a »Kanalführung«.

Business-wise it was the sixth year of business with SynPro Solutions, and we moved the legal form of our company from GesnbR to GmbH. No big news but steady and ongoing work with my other business duties Grml Solutions and Grml-Forensic.

I also continued with taking care of our kids every Monday and half another day of the week – which is still challenging now and then with running your own business, but so absolutely worth it. With a kid going to school, it was quite some change for my schedule and day planning as well. Now having a fixed schedule for most of the days, the Sonos soundbox wakes us up with Ö1 news and its Ö1 signature tune Monday to Friday. Thanks to Pavlovian conditioning, when waking up on Saturdays and Sundays I also hear the Ö1 signature tune in my head while no radio is present then. :)

I tried to minimize my Amazon usage as much as possible and will try to continue doing so in 2020 as well.

I had quite some troubles with my Vespa PX125, hopefully things are sorted out nowadays though. *knockingonwood*

After being ~20 years in the Usenet (mostly de.* + at.* + tu-graz.*) I pretty much gave it up.

Book reading became more of a habit again, and I managed to complete 42 books (see Bookdump 01/2019 and Bookdump 02/2019). I noticed that what felt like good days for me always included reading books, and want to keep my reading pace for 2020.

Bookdump 02/2019

December 31st, 2019

Foto vom Buchregal

Als Fortführung von Bookdump 01/2019 hier ein weiterer Bookdump, und zwar über jene Bücher die ich im verbleibenden, zweiten Teil von 2019 fertig-gelesen habe:

  • Gespräche mit Freunden, von Sally Rooney (via Süddeutsche Zeitung). Auf den fast 400 Seiten geht es um Beziehungsgespräche zwischen Frances, ihrer Freundin Bobbi, der Journalistin Melissa und deren Mann Nick. Beobachtungen rund um Liebe, Sex, Freundschaft, Kultur und Politik, speziell aus der Sicht von Millennials. Ich hatte den Eindruck, es geht irgendwie auch um ziellose, teils gefühllose Menschen die die Welt (und sich?) hassen. Das Buch entstand angeblich in 3 Monaten und wurde dann auch ziemlich gehypt. Auch wenn mir das Ende des Buches ein wenig unerwartet langweilig vorgekommen ist, ich habe das Buch gerne gelesen.
  • Die 4-Stunden Woche, von Timothy Ferriss. Auf 341 Seiten schreibt Ferriss über Arbeitsminimierung, Profitmaximierung und diverse Berufstipps. Über seine Erfindungen wie den DEALMAKER (D wie Definition, E wie Eliminieren, A wie Automation und L wie Liberation/Befreiung). Ich reflektiere gerne über den Wert von Zeit und was mir wichtig ist, deswegen hat mir das Buch nicht wirklich neue Erkenntnisse gebracht. Für mich war es am Ehesten noch eine gute Erinnerung, das Paretoprinzip (80/20 Regel) und das Parkinsonsche Gesetz (“Arbeit dehnt sich in genau dem Maß aus, wie Zeit für ihre Erledigung zur Verfügung steht”) wieder bewusster im Blick zu haben. Ansonsten habe ich das Buch aber als furchtbar kapitalistisch wahrgenommen und dieser Tweet von jezebrowski passt auch ganz gut dazu (danke für den wiedergefundenen Link, Darsha). Der Aufruf zum bewussten Verzicht von Tagespolitik grenzt dann für mich allerdings schon an bewusste Verblödung. Die Zeit seiner Leserinnen und Leser scheint Ferriss auch nicht zu schätzen, die 341 Seiten hätte man locker in unter 100 Seiten lesbarer gestalten können.
  • Der Richter und sein Henker, von Friedrich Dürrenmatt. Inspiriert durch Karls Review habe ich das Buch (in der mir vorliegenden Ausgabe von 2001 118 Seiten stark) nochmal gelesen, das letzte Mal dürfte allerdings noch zu meiner Schulzeit vor ca. 20 Jahren gewesen sein. Ich habe Dürrenmatt eigentlich immer gerne gelesen, interessanterweise hat es mich diesmal aber nicht vom Hocker gehaut. Vermutlich bin ich zu sehr von aktueller Literatur geprägt. Ich weiß allerdings nicht, wie ich damals™ die philosophischen Ausflüge, die Kritik am Kriminalroman und die Anspielungen auf den Nationalsozialismus wahrgenommen habe. Insofern war es eine gute Übung mit der Erkenntnis, dass ich einige Bücher mit einigem Abstand nochmal lesen sollte, um die eigene Wahrnehmung und (Un-)Reife zu kontrollieren.
  • Perfektionismus, von Raphael M. Bonelli. Mit Hilfe von 77 Fallbeispielen aus seiner eigenen Psychiater-Praxis beschreibt Bonelli auf 333 Seiten die Probleme rund um Perfektionismus und warum diese verzeihliche Schwäche nicht als positiv behaftet wahrgenommen werden soll und darf. Die Patientengeschichten dienen als gutes Vehikel für die eigenen Vergleiche und das Reflektieren. Immer wieder wird Gesellschaftskritik eingestreut, von der Leistungsgesellschaft, über Schlankheits- und Schönheitswahn sowie Helikoptereltern, bis hin zu Karōshi. Ich wünschte mir einen Index und so etwas wie Zusammenfassungen an den Kapitelenden, um das das Buch auch im Nachhinein noch besser verwenden zu können. Nichtsdestotrotz ein lesenswertes Buch rund um selbstorientierten, sozial vorgeschriebenen und extravertierten Perfektionismus.
  • Der Ursprung der Welt, von Liv Strömquist. Eine Leihgabe eines Nachbars (danke C.!), geht es in dem Buch in Form eines Comics um das weibliche Geschlechtsorgan. Die historische Konstruktion der Vulva wird auf 143 Seiten beleuchtet. Während sich die Graphic Novels für mich – zumindest bisher – noch nicht wirklich erschlossen haben, passt dieses Format in diesem Fall durchaus. Ein kluges Buch, das auch für den Sexualkunde-Unterricht geeignet wäre und definitiv nicht nur für junge Frauen lesenswert ist.
  • Permanent Record, von Edward Snowden. Das Buch wurde am 17. September veröffentlicht, und ich habe die 425 Seiten dann auch gleich bis zum darauffolgenden Wochenende verschlungen. Man bekommt einige Hintergrundinformationen, die sich wunderbar als Ergänzung zum Film Citizenfour eignen, und erfährt im ersten Drittel einiges zum Hintergrund und der Biografie Snowdens. Der zweite Teil geht dann stärker auf die Geschichte ein (finde ich persönlich den schwächsten Teil), bis es im dritten und letzten Teil um das Whistleblowing Snowdens an sich geht. Auch für Nicht-Techniker lesbar, und speziell die Gedanken rund um den Wert von Metadaten – die häufig vernachlässigt werden, man sorgt sich vielfach nur um den Nachrichteninhalt – regen zum Nachdenken an. Für mich hätte es gerne noch inhaltlicher und technischer sein dürfen, fand es aber trotzdem lesenswert. Besonders für Leute die Snowden nicht so im Detail verfolgt haben (Ende des Wortspiels), eine durchaus empfehlenswerte Lektüre.
  • Karte und Gebiet, von Michel Houellebecq. In diesem Buch geht es um den Künstler und Einzelgänger Jed Martin. Streckenweise hatte ich das Gefühl, dass es gegenüber Houellebecqs Plattform und Elementarteilchen zu “brav” und langweilig ist. Dass Houellebecq sich selbst ins Spiel bringt ist ein interessantes Gedankenspiel. Aus dem Künstlerroman entwickelt sich gegen Ende hin ein Krimi, was aber eine “SSL-Double-Layer-Codierung mit 128bit” sein soll, würde ich nur zu gerne erfahren (*kopfschüttel*). Die Andeutungen und Beobachtungen rund um Sterbehilfe, Tourismus und die (französische) Gesellschaft sowie einige wunderbare Wortspiele speziell auf den letzten ~50 Seiten haben das Buch dann aber in einem besseren Licht hinterlassen, als ich es mittendrin empfand.
  • Wunschloses Unglück, von Peter Handke. Der umstrittene Nobelpreisträger schreibt in diesem Buch über den Selbstmord seiner Mutter Maria. Ein interessantes und durchaus lesenswertes Werk aus dem Handke-Kosmos. Die 132 Seiten umfassende Ausgabe mit Text und Kommentar aus der Suhrkamp BasisBibliothek kann ich durchaus empfehlen (für Österreicher sind die Randbemerkungen zu österreichischen Begriffen besonders unterhaltsam), sie liefert interessante Ergänzungen und Zusatzinformationen zum Text.
  • Die unerträgliche Leichtigkeit des Seins, von Milan Kundera. Gilt mit seinen 373 Seiten als das Lieblingsbuch von Werner Kogler und es geht um Affären, Treue und Beziehungen, mit einem philosophischem Touch. Es ist schön™, aber besonders anfangs war für mich noch irgendwie spürbar, dass ich es nicht im Original (tschechisch) lese, und so richtig gefesselt hat es mich da noch nicht. Ab Seite 199, dem 5. Teil wurde es allerdings wunderbar und ich bin froh, dass ich doch drangeblieben bin. Lesenswert.
  • Kinder stärken, von Caroline Heyn. Bei Amazon veröffentlicht, nur 48 Seiten dünn (was ich per-se nicht schlecht finde), aber unschön gesetzt, selbst auf so wenigen Seiten findet man mehrere Rechtschreibfehler und schlußendlich liest es sich wie ein Ghostwriter-Buch voller Trivialitäten und no-na-net-Inhalten. Bei der Büchersendung erLesen wäre es ein klassischer Tischbein-Kandidat. Finger weg.
  • Wo leben wir denn?, von Tarek Leitner. Der Untertitel “Glückliche Orte. Und warum wir sie erschaffen sollten” beschreibt ganz gut, worum es in dem rund 200 Seiten dicken Buch geht. Wir vernichten unseren Wohnraum ohne Rücksicht auf Verluste, fahren für ein paar Wochen im Jahr auf Urlaub, wo es dann superschön sein muß, aber das restliche Jahr ignorieren wir die uns umgebende Hässlichkeit an Lärmschutzwänden, Einkaufsparadiesen und weiteren versiegelten Flächen. Der Quadradatmeter-Anspruch pro Person geht immer weiter nach oben. Tarek Leitner beschreibt das Dillema des Lebens am Land (mit nicht vorhandener Infrastruktur und dem Wunsch nach Grünem, aber dann zwei Autos pro Haushalt), die Zersiedelung und was sonst noch so speziell in Österreich seiner Meinung nach falsch läuft. Viele kluge Gedanken, ein bisschen verschwurbelt zu lesen, aber anregend.
  • Peter Handke im Gespräch, mit Hubert Patterer und Stefan Winkler, 2019 von der Kleinen Zeitung neu aufgelegt. Ich lese gerne Interviews mit und Gedankengänge von Revoluzzern, Unangepassten und Reflektierten, und die Neuauflage dieses Buches wollte ich mir nicht entgehen lassen. Leicht und flüssig zu lesen, aber schlussendlich doch kaum neue Erkenntnisse für mich (außer vielleicht, dass Handke gerne ein Maschinengewehr bedienen können möchte, uff). Gute Kost für einen Nachmittagskaffee, muss man aber nicht gelesen haben.
  • It doesn’t have to be crazy at work, von Jason Fried und David Heinemeier Hansson. Rein von Aufmachung, Titel und Beschreibung her hätte ich es mir nie gekauft, aber auf starke Empfehlung eines Arbeitskollegen hin (danke, Alex!) habe ich es mir doch geholt. Das 225 Seiten umfassende Buch könnte man beinahe als eine bessere Version des “Die 4-Stunden Woche” (siehe oben) bezeichnen, ohne allzu viel Palaver und Ausschmückungen. Geschrieben aus der Sicht eines SaaS-Unternehmers ist natürlich nicht alles für alle umsetzbar, aber man kann es als Denkanstoß für eine bessere Firmenkultur im eigenen Unternehmen bzw. der Jobauswahl betrachten. Viele sinnvolle Empfehlungen (wenn man die amerikanischen vs. österreichischen Urlaubsansprüche einmal außen vor lässt), schöne Sätze wie “If it’s easier for work to claim a Sunday than for life to borrow a Thursday, there ain’t no balance”. Es gibt genug “food for thought” und zum Reflektieren, ich gebe den Lesetipp somit gerne weiter.
  • Herkunft, von Saša Stanišić. Der Gewinner des deutschen Buchpreises 2019 hat mit “Herkunft” ein schönes Buch geschrieben, in dem er ein schweres Thema auf 360 Seiten leichtfüßig umgesetzt hat. Sprachlich fantastisch, wunderschöne Wortspiele, berührende – häufig auch fragmentarische – Szenen und viel Stoff für das Reflektieren, Auseinandersetzen mit Herkunft und auch den Geschichtsunterricht. Der letzte Teil (Kapitel “Der Drachenhort”) mit dem Rollenspiel und den Sprungmarken im Stil von “wenn du dich für foo entscheidest, lies auf Seite 353 weiter, wenn du für bar bist lies weiter auf Seite 350)” ist leider nicht mein Format (wie wurde das eigentlich im E-Book-Format umgesetzt?). Das hat mir damit leider einen schalen Nachgeschmack hinterlassen. Trotzdem ein Buch, das ich großteils sehr gerne gelesen habe, und vielleicht auch einfach danach schreit, später einmal noch ein weiteres Mal gelesen zu werden. Leseempfehlung.
  • Genie & Arschloch: Licht- und Schattenseiten berühmter Persönlichkeiten, von Manfred Chobot herausgegeben. Das Buch beleuchtet auf rund 280 Seiten Berühmtheiten wie u.a. Simone de Beauvoir, Johannes Brahms, Bertold Brecht, Ernest Hemingway, Wassily Kandinsky, Pablo Picasso und Richard Wagner und deren Schattenseiten, kapitelweise beschrieben von jeweils abwechselnden AutorInnen. Während ich die erste Hälfte des Buches noch als lesenswert empfand – besonders erwähnenswert ist Helmut Rizys Beitrag über Johannes Brahms, Hans Rott, Anton Bruckner und Gustav Mahler – las sich speziell die zweite Hälfte für mich teilweise wie ein persönlicher Rachefeldzug, gemischt mit Neid und dem Drang “etwas böses zu finden”. Über einige der Persönlichkeiten und deren “Schwierigkeiten” war ich bereits vorab informiert, einige interessante Informationen und Ergänzungen gab es für mich, aber so richtig erkenntnisreich war das Buch dann schlussendlich nicht. Speziell die teilweise doch irgendwie substanzlosen Anklagen und das Verhältnis der beschriebenen Personen und deren Probleme stehen für mich nicht wirklich in Relation zueinander. Hat dann leider doch irgendwie einen schalen Nachgeschmack bei mir hinterlassen.
  • Der Trost runder Dinge, von Clemens Setz. Die österreichische Literaturwissenschaftlerin Daniela Strigl (die man in Graz u.a. bei der Literatur-Show Roboter mit Senf im Literaturhaus Graz trifft) hat zum Berliner Literaturpreis 2019 eine wunderbare Laudatio auf Clemens Setz gehalten (“Morbus Setz, Laudatio in acht Symptomen”), die in manuskripte #224 abgedruckt wurde (den Text habe ich leider nicht online gefunden). Frau Strigl trifft für mich darin den Nagel auf den Kopf. Die acht von Frau Strigl angeführten Symptome (Tinnitus, Anthropophobie, Halluzinationen, Übelkeit, Kopfschmerz, Hypersensibilität, Dissoziation und Schwindel) beschreiben die Fähigkeit von Setz, Alltagsbeobachtungen mit Wortwitz, Realitätsverschiebungen und Wahnsinn zu kombinieren. Der Schreibstil von Setz trifft einfach genau meinen Geschmack, und auch dieses 315 umfassende Buch ist für mich eine ganz klare Leseempfehlung.
  • Die lange Reise: Tagebuch einer Astronautin, von Samantha Cristoforetti. Auf dieses Buch habe ich lange gewartet, weil ich von der italienischen Originalfassung wusste und die deutsche Übersetzung dann sehnsüchtig erwartete. Cristoforetti war 200 Tage auf der ISS, im Buch geht es in großen Teilen um den Ausbildungsteil den (angehende) AstronautInnen durchlaufen, und dann – vergleichsweise kurz, aber doch – um den Aufenthalt auf der ISS. Ich habe einiges interessantes gelernt (Urin-Problematik dank Schwerelosigkeit, Hornhaut wie ein Baby auf den Füßen weil sie nicht belastet sind, aber auch einiges rund um Raumanzug, russische vs. europäische/amerikanische Technologie,…) und mein Interesse an Weltraumtechnologie wurde durch das Buch definitiv gesteigert – Kulturauftrag gelungen. Leider ist das Buch fast durchgehend in kursiver Schrift gesetzt (wer bitte kam auf diese blöde Idee?) und entsprechend anstrengend zu lesen. Sprachlich war es für mich relativ mühsam (und nach einem Buch von Setz ein regelrechter Kulturschock) – es gibt viele unschöne Formulierungen (die vielleicht aber einfach auf die Übersetzung zurückzuführen sind?) und ich musste mich daher streckenweise dazu zwingen, die fast 500 Seiten durchzuhalten. Gerne hätte es für mich auch noch mehr technisches rund um die eingesetzten Computer, Kommunikationstechnologie etc. sein dürfen. Sehr interessant fände ich auch mehr Informationen zum Lebens nach dem Ausflug in den Weltraum (welche Probleme erwarten einen dann, welche Verpflichtungen gibt es,….). Nichtsdestotroz, es gibt bisher keine 220 Menschen die auf der ISS waren, und dieses Buch lässt einen ein wenig daran teilhaben. Großen Respekt auch für Cristoforetti, die auf den ~470 Seiten keinerlei Überheblichkeit durchblicken lässt, gleichzeitig ihre Faszination für das Thema und einen durchaus auch privaten Einblick in das ungewöhnliche Leben in 400km Höhe mit uns teilt. Insofern dürfte es eine Pflichlektüre für all jene sein, die sich für den Weltraum – und sei es nur pe­ri­pher – interessieren. Cristoforetti war übrigens auch beim Omega Tau Podcast, Folge 331 – Samanthas Lange Reise.
  • 2029 – Geschichten von morgen, mit Erzählungen von elf Autorinnen und Autoren. Ich bin zwar ein Fan von Black Mirror, tue mir aber mit dem Genre Science Fiction/Zukunftsroman nach wie vor schwer. Dieses Buch schafft für mich den Spagat zwischen sprachlich ansprechend und dem Thema “Zukunftsvision” so halbwegs. Die Schreibfehler im Buch waren für meine Ansprüche für Suhrkamp ein wenig unerwartet (wird dann hoffentlich mit einer zweiten Auflage korrigiert) und einige der Geschichten waren für mich eher durchschnittlich, dafür haben andere AutorInnen um so bessere abgeliefert.

Mein Fazit

Aus 24 für 2019 vorgenommenen Büchern sind es dann 42 (ha!) geworden. Von diesen 42 Büchern wurden 19 von Frauen und 22 von Männern geschrieben (der Offset zu 42 kommt durch “2029 – Geschichten von morgen”, das von Frauen und Männern geschrieben wurde). Viele Bücher haben mir gut gefallen, aber wenn ich Favoriten nennen müsste zählen dazu definitiv “Vater unser” von Angela Lehner und “Der Trost runder Dinge” von Clemens Setz.

Bundesdeutsch in Kinderliteratur

August 30th, 2019

Ende 2018 haben meine ältere Tochter und ich “Jim Knopf” von Michael Ende für uns entdeckt, genauer die kolorierten Neuausgaben von “Jim Knopf und Lukas der Lokomotivführer” und “Jim Knopf und die Wilde 13” (schwere Empfehlung übrigens!).

Ich ersetze das Wort “gucken” beim Vorlesen schon seit mehreren Jahren ganz automatisch durch “schauen“, mittlerweile nicht mehr nur beim Vorlesen für die Kinder, sondern auch beim Lesen “meiner” Bücher. :) Da wir jeweils ca. 20 Seiten von Jim Knopf beim Abendprogramm gelesen haben, kam da einiges an Text zusammen, und mir ist dabei wieder aufgefallen, wie viel bundesdeutsches Hochdeutsch wir als Österreicher abbekommen. Seither hab ich mir spasses­hal­ber einmal jene bundesdeutschen Wörter notiert, die mir in (Kinder)Büchern aufgefallen sind.

In Klammer jeweils österreichische Pendant(s) (und bitte nicht zu ernst und genau nehmen, speziell jene mit “*” markierten :)):

  • Abendbrot (Abendessen)
  • Apfelsine (Orange)
  • Aprikose (Marillen)
  • Bonbons (Zuckerl)
  • Brötchen (Semmel(n))
  • Bürgersteig (Gehweg/Gehsteig)
  • Eimer (Kübel)
  • Eingepullert (Angeludelt)
  • Federtasche (Federpenal)
  • Flicken (Picken/Kleben*)
  • Flur (Vorraum/Gang)
  • Fluse (Fussel/Wuzerl/Flankerl/Fuzel)
  • Gardine (Vorhang)
  • Gülle (Jauche*)
  • Heimatkunde (Sachunterricht*)
  • Johannisbeere (Ribisel)
  • Junge (Bub)
  • Kaminfeger (Rauchfangkehrer)
  • Karneval (Fasching)
  • Kissen (Polster)
  • Lappen (Putzfetzen)
  • Lecker (Gschmackig, gut/guat)
  • Marmeln (Murmeln)
  • Metzger (Fleischhauer/Fleischhacker)
  • Möhre (Karotte)
  • Mücke (Gelse)
  • Mülleimer (Mistkübel)
  • Müllkippe ((Müll)De­po­nie)
  • Pfannkuchen (Palatschinken*)
  • Pflaumen (Zwetschke*)
  • Pflaumenmus (Powidl)
  • Pfütze (Lacke)
  • Plätzchen (Keks)
  • Postbote (Postler)
  • Pult (Schreibtisch)
  • Rasenspritzer (Rasensprenger)
  • Rente (Pension)
  • Rote Bete (Rahner, Rone,…)
  • Saft ist alle (Saft ist leer/aus)
  • Sahne/Schlagsahne (Obers/Schlagobers/)
  • Schiebkarre (Scheibtruhe)
  • Schippe (Schaufel)
  • Schulranzen (Schultasche)
  • Sonnabend (Samstag)
  • Stachelbeere (Mauchale, Mungatzen,…*)
  • Tannenzapfen (Tschurtschen*)
  • Tüte (Sackerl)
  • Weihnachtsmann (Christkind(l)*)

Bookdump 01/2019

August 9th, 2019

Foto vom Buchregal

Mein Ziel für 2019 war es, mindestens 24 Bücher, also im Schnitt 2 Bücher pro Monat, zu lesen. Das Ziel habe ich mit Anfang/Mitte August früher als erwartet erreicht. Mir fehlen leider ein wenig Zeit/Motivation und Praxis für ausführlichere Bücher-Review, und wenn ich es mir nicht gleich aufschreibe, verliere ich auch den Überblick über die bereits gelesenen Bücher. Daher hiermit der Versuch in Form eines Bookdumps, angelehnt an jene wie ich sie von z.B. Julius Plenz kenne und schätze.

Hiermit also ein Zwischenstand über jene Bücher, die ich bisher in diesem Jahr gelesen habe:

Der Preis der Macht, von Lou Lorenz-Dittlbacher. Die Autorin kennt man u.a. aus ZiB2/ORF, ihr Buch gibt einen interessanten Einblick in das Leben von Spitzenpolitikerinnen. Spannende Interviews, gut und flüssig geschrieben, lesenswert.

Neujahr, von Juli Zeh. Die Geschichte von Henning und seinen Panikattacken war mein Einstieg in den Kosmos von Juli Zeh, in dessen Folge ich mir gleich ein weiteres Buch von ihr besorgt habe. Absolut lesenswert.

Die 5 Dysfunktionen eines Teams, von Patrick Lencioni. Eine Leihstellung eines Nachbarn (das einzige Buch das in obigem Foto fehlt). Es geht um Vertrauen, Konflikte, Engagement, Verantwortung, Ergebnis-Orientierung,… Viel no na ned und amerikanischer Stil, ist ein wenig an einen Roman gehalten, kann aber z.B. nicht mit dem “Phoenix Project” von Gene Kim mithalten. Es liest sich aber schnell an einem Abend und ein paar Gedanken zum Reflektieren habe ich dann doch mitgenommen.

Schluss mit Schuld (Unsere Reise zum Holocaust und zurück), von Lisa Gadenstätter und Elisabeth Gollackner. Lisa Gadenstätter kennt man ebenfalls aus dem ORF, und es gibt zum Buch auch einen DOKeins Film, den ich mir nach dem Lesen des Buches angesehen habe. Interessante Zeitzeugengespräche und lesenswert.

Feministin sagt man nicht, von Hanna Herbst. Ein kluges feministisches Buch.

weg, von Doris Knecht. Die Geschichte rund um eine verschwundene Tochter, ihre getrennten Eltern und verschiedene Lebensentwürfe. Die mindestens 3 Rechtschreibfehler sind dann hoffentlich ab der 2. Auflage, zu der es hoffentlich kommt, Vergangenheit.

Jesolo, von Tanja Raich. Depressive Grundstimmung und definitiv lesenswert, aber man sollte es eher nicht – so wie ich es gemacht habe – im Urlaub in Jesolo lesen.

Oma lässt grüßen und sagt, es tut ihr leid, von Fredrik Backman. Schönes Buch das aufzeigt, dass man nicht immer wie alle anderen sein muss, und vielleicht auch nicht jede(r) so ist, wie er/sie auf den ersten Blick zu sein scheint.

Alte weisse Männer, von Sophie Passmann. Interviews mit Sascha Lobo, Christoph Amend, Robert Habeck, Kai Diekmann, Micky Beisenherz und anderen. Ist schnell gelesen und regt stellenweise zum Nachdenken an.

Plattform und Elementarteilchen, von Michel Houellebecq. Ich wollte mich endlich mal in den Kosmos von Houellebecq begeben, und auch wenn seine Schreibweise stellenweise anstrengend obszön ist, fand ich beide Bücher sehr lesenswert (danke an Bernd Haug für die Beratung zur richtigen Reihenfolge der Bücher :)).

Alle Toten fliegen nach Amerika, von Joachim Meyerhoff. Wunderbares Buch, ich möchte die weiteren Teile unbedingt ebenfalls lesen.

Die Liebe zur Zeit des Mahlstädter Kindes, von Clemens J. Setz. Mir hat Clemens Setz mit seinem “Die Stunde zwischen Frau und Gitarre” (ein fantastisches Buch!) wieder die Regelmäßigkeit des Buchlesens gebracht und ich musste mir unbedingt mehr von ihm besorgen. Immer wieder blitzt das durch, was ich an Clemens Setz so schätze, aber es kann für mich nicht mit der “Die Stunde zwischen Frau und Gitarre” mithalten, vor allem weil ich mich mit dem Format der einzelnen (Kurz-)Geschichten nicht wirklich identifizieren konnte. Nichts­des­to­trotz lesenswert.

Gruber geht, von Doris Knecht. Das Buch war mein Einstieg in den Schreibstil von Doris Knecht, kein wirklich bleibender Eindruck, aber ich hab’s gern gelesen.

Warum französische Kinder keine Nervensägen sind, von Pamela Druckerman. Das Buch habe ich über ein Interview mit der Autorin zu ihrem neuen Buch (“Vierzig werden à la parisienne: Hommage ans Erwachsensein”) entdeckt. Selbst wenn man sich nicht mit allen Ansätzen und Vorschlägen identifizieren kann, fand ich das Buch lesenswert und kann es jedem Elternteil empfehlen.

Quasikristalle, von Eva Menasse. Ich kannte und schätze den Stil von Eva Menasse bereits aus ihrem Buch “Tiere für Fortgeschrittene”, und auch dieses Buch hat mich nicht enttäuscht. Das Leben von (Ro)Xane Molin, einer schlechten Verliererin aus einer bürgerlichen Familie, wird aus verschiedenen Blickwinkeln in 13 Kapiteln erzählt. War für mich nicht immer ganz einfach den Namen zu folgen (wer mit wem, wer ist relevant,…) und es gab ein paar schwächere Kapitel, dafür waren einige andere Kapitel umso umwerfender.

Meine wundervolle Buchhandlung, von Petra Hartlieb. Ich wurde über ein Interview mit Frau Hartlieb im Standard auf sie und ihre Buchhandlung aufmerksam. Das kleinformatige Buch liest sich schön und schnell, und gibt einen kleinen Einblick in das harte Leben einer Kleinunternehmerin im Umfeld einer Buchhandlung.

Kurz & Kickl, ihr Spiel mit der Macht, von Helmut Brandstätter. Ich wollte das Buch eigentlich nicht kaufen, nachdem es durch die Medien so gehypt wurde, aber ein Spontankauf im Urlaub in einer meiner Lieblingsbuchhandlungen war stärker als ich. Für mich nicht sonderlich erkenntnisreich, auch wenn es stellenweise geschichtlich interessant war, und das Buch musste wohl extrem dringend in die Druckerpresse, keines meiner Bücher aus 2019 hatte so viele Rechtschreibfehler wie dieses.

Supergute Tage oder Die sonderbare Welt des Christopher Boone, von Mark Haddon. Das Buch wurde in einer Literatursendung von Dirk Stermann als das Lieblingsbuch von ihm und seiner Tochter erwähnt. Wunderschön geschriebener Einblick in das Gedankenleben eines Autisten, werde das Buch sicher mal meinen Kindern auf das Nachtkasterl legen.

Die Daten, die ich rief, von Katharina Nocun. Ich hab das Video zu ihrem Vortrag ‘Archäologische Studien im Datenmüll’ vom 35C3 gesehen und das Buch von einem Bruder vererbt bekommen. Es liest sich leicht und flüssig, bietet einen guten Einstieg in das Thema, man kann es also wunderbar auch Nicht-Technikern in die Hand drücken.

Liebe Mama, ich lebe noch!, von Ernst Gelegs. Entdeckt via Erlesen am 28.05.2019. Die rund 100 Briefe eines Soldaten an seine Mutter und Frau geben einen Einblick in das Kriegsgeschehen. Berührend und lesenswert.

Gebrauchsansweisung für Israel und Palästina, von Martin Schäuble. Für den Fall, dass ich im Zuge der DebConf20 in die Region reisen sollte, war dieses Buch als Einstieg gedacht. Es geht ums Wohnen, Leben, Essen und Trinken sowie die Kultur und den israelisch-palästinensischen Konflikt, ohne dass der Autor zu stark Partei zu ergreifen versucht. Gut geschrieben mit ein paar Tipps die ich mir rausgeschrieben habe.

Ich und die Anderen, von Isolde Charim. Eine Leseempfehlung von Gregor Herrmann, die ich nur weitergeben kann. Die Philosophin Isolde Charim kennt man u.a. von den Kolumnen im Falter, und schreibt klug über die Pluralisierung unserer Gesellschaft. Keine einfache Kost, aber absolut lesenswert.

Vater unser, von Angela Lehner. Entdeckt im Album vom Standard am 08.06.2019. Im Buch geht es um die Ich-Erzählerin Eva, die in das psychiatrische Zentrum des Otto-Wagner-Spitals eingeliefert wird. Sensationelle Formulierungen und wunderschöne Alltagsbeobachtungen, ich habe mich wohlgefühlt wie bei Clemens Setz. Ein fantastisches Buch. Ich hoffe, da kommt noch mehr von Angela Lehner.

PS: Mein Bücherregal ist weiterhin gut mit noch ungelesenen Büchern gefüllt, wer aber Leseempfehlungen für mich hat, bitte gerne an z.B. bookdump (at) michael-prokop.at

Some useful bits about Linux hardware support and patched Kernel packages

July 31st, 2019

Disclaimer: I started writing this blog post in May 2018, when Debian/stretch was the current stable release of Debian, but published this article in August 2019, so please keep the version information (Debian releases + kernels not being up2date) in mind.

The kernel version of Debian/stretch (4.9.0) didn’t support the RAID controller as present in Lenovo ThinkSystem SN550 blade servers yet. The RAID controller was known to be supported with Ubuntu 18.10 using kernel v4.15 as well as with Grml ISOs using kernel v4.15 and newer. Using a more recent Debian kernel version wasn’t really an option for my customer, as there was no LTS kernel version that could be relied on. Using the kernel version from stretch-backports could have be an option, though it would be our last resort only, since the customer where this applied to controls the Debian repositories in usage and we’d have to track security issues more closely, test new versions of the kernel on different kinds of hardware more often,… whereas the kernel version from Debian/stable is known to be working fine and is less in a flux than the ones from backports. Alright, so it doesn’t support this new hardware model yet, but how to identify the relevant changes in the kernel to have a chance to get it supported in the stable Debian kernel?

Some bits about PCI IDs and related kernel drivers

We start by identifying the relevant hardware:

root@grml ~ # lspci | grep 'LSI.*RAID'
08:00.0 RAID bus controller: LSI Logic / Symbios Logic MegaRAID Tri-Mode SAS3404 (rev 01)
root@grml ~ # lspci -s '08:00.0'
08:00.0 RAID bus controller: LSI Logic / Symbios Logic MegaRAID Tri-Mode SAS3404 (rev 01)

Which driver gets used for this device?

root@grml ~ # lspci -k -s '08:00.0'
08:00.0 RAID bus controller: LSI Logic / Symbios Logic MegaRAID Tri-Mode SAS3404 (rev 01)
        Subsystem: Lenovo ThinkSystem RAID 530-4i Flex Adapter
        Kernel driver in use: megaraid_sas
        Kernel modules: megaraid_sas

So it’s the megaraid_sas driver, let’s check some version information:

root@grml ~ # modinfo megaraid_sas | grep version
version:        07.703.05.00-rc1
srcversion:     442923A12415C892220D5F0
vermagic:       4.15.0-1-grml-amd64 SMP mod_unload modversions

But how does the kernel know which driver should be used for this device? We start by listing further details about the hardware device:

root@grml ~ # lspci -n -s 0000:08:00.0
08:00.0 0104: 1000:001c (rev 01)

The 08:00.0 describes the hardware slot information ([domain:]bus:device.function), the 0104 describes the class (with 0104 being of type RAID bus controller, also see /usr/share/misc/pci.ids by searching for ‘C 01’ -> ’04`), the (rev 01) obviously describes the revision number. We’re interested in the 1000:001c though. The 1000 identifies the vendor:

% grep '^1000' /usr/share/misc/pci.ids
1000  LSI Logic / Symbios Logic

The `001c` finally identifies the actual model. Having this information available, we can check the mapping of the megaraid_sas driver, using the `modules.alias` file of the kernel:

root@grml ~ # grep -i '1000.*001c' /lib/modules/$(uname -r)/modules.alias
alias pci:v00001000d0000001Csv*sd*bc*sc*i* megaraid_sas
root@grml ~ # modinfo megaraid_sas | grep -i 001c
alias:          pci:v00001000d0000001Csv*sd*bc*sc*i*

Bingo! Now we can check this against the Debian/stretch kernel, which doesn’t support this device yet:

root@stretch:~# modinfo megaraid_sas | grep version
version:        06.811.02.00-rc1
srcversion:     64B34706678212A7A9CC1B1
vermagic:       4.9.0-6-amd64 SMP mod_unload modversions
root@stretch:~# modinfo megaraid_sas | grep -i 001c
root@stretch:~#

No match here – bingo²! Now we know for sure that the ID 001c is relevant for us. How do we identify the corresponding change in the Linux kernel though?

The file drivers/scsi/megaraid/megaraid_sas.h of the kernel source lists the PCI device IDs supported by the megaraid_sas driver. Since we know that kernel v4.9 doesn’t support it yet, while it’s supported with v4.15 we can run "git log v4.9..v4.15 drivers/scsi/megaraid/megaraid_sas.h" in the git repository of the kernel to go through the relevant changes. It’s easier to run "git blame drivers/scsi/megaraid/megaraid_sas.h" though – then we’ll stumble upon our ID from before – `0x001C` – right at the top:

[...]
45f4f2eb3da3c (Sasikumar Chandrasekaran   2017-01-10 18:20:43 -0500   59) #define PCI_DEVICE_ID_LSI_VENTURA                 0x0014
754f1bae0f1e3 (Shivasharan S              2017-10-19 02:48:49 -0700   60) #define PCI_DEVICE_ID_LSI_CRUSADER                0x0015
45f4f2eb3da3c (Sasikumar Chandrasekaran   2017-01-10 18:20:43 -0500   61) #define PCI_DEVICE_ID_LSI_HARPOON                 0x0016
45f4f2eb3da3c (Sasikumar Chandrasekaran   2017-01-10 18:20:43 -0500   62) #define PCI_DEVICE_ID_LSI_TOMCAT                  0x0017
45f4f2eb3da3c (Sasikumar Chandrasekaran   2017-01-10 18:20:43 -0500   63) #define PCI_DEVICE_ID_LSI_VENTURA_4PORT               0x001B
45f4f2eb3da3c (Sasikumar Chandrasekaran   2017-01-10 18:20:43 -0500   64) #define PCI_DEVICE_ID_LSI_CRUSADER_4PORT      0x001C
[...]

Alright, the relevant change was commit 45f4f2eb3da3c:

commit 45f4f2eb3da3cbff02c3d77c784c81320c733056
Author: Sasikumar Chandrasekaran […]
Date:   Tue Jan 10 18:20:43 2017 -0500

    scsi: megaraid_sas: Add new pci device Ids for SAS3.5 Generic Megaraid Controllers
    
    This patch contains new pci device ids for SAS3.5 Generic Megaraid Controllers
    
    Signed-off-by: Sasikumar Chandrasekaran […]
    Reviewed-by: Tomas Henzl […]
    Signed-off-by: Martin K. Petersen […]

diff --git a/drivers/scsi/megaraid/megaraid_sas.h b/drivers/scsi/megaraid/megaraid_sas.h
index fdd519c1dd57..cb82195a8be1 100644
--- a/drivers/scsi/megaraid/megaraid_sas.h
+++ b/drivers/scsi/megaraid/megaraid_sas.h
@@ -56,6 +56,11 @@
 #define PCI_DEVICE_ID_LSI_INTRUDER_24          0x00cf
 #define PCI_DEVICE_ID_LSI_CUTLASS_52           0x0052
 #define PCI_DEVICE_ID_LSI_CUTLASS_53           0x0053
+#define PCI_DEVICE_ID_LSI_VENTURA                  0x0014
+#define PCI_DEVICE_ID_LSI_HARPOON                  0x0016
+#define PCI_DEVICE_ID_LSI_TOMCAT                   0x0017
+#define PCI_DEVICE_ID_LSI_VENTURA_4PORT                0x001B
+#define PCI_DEVICE_ID_LSI_CRUSADER_4PORT       0x001C
[...]

Custom Debian kernel packages for testing

Now that we identified the relevant change, what’s the easiest way to test this change? There’s an easy way how to build a custom Debian package, based on the official Debian kernel but including further patch(es), thanks to Ben Hutchings. Make sure to have a Debian system available (I was running this inside an amd64 system, building for amd64), with according deb-src entries in your apt’s sources.list and enough free disk space, then run:

% sudo apt install dpkg-dev build-essential devscripts fakeroot
% apt-get source -t stretch linux
% cd linux-*
% sudo apt-get build-dep linux
% bash debian/bin/test-patches -f amd64 -s none 0001-scsi-megaraid_sas-Add-new-pci-device-Ids-for-SAS3.5-.patch

This generates something like a linux-image-4.9.0-6-amd64_4.9.88-1+deb9u1a~test_amd64.deb for you (next to further Debian packages like linux-headers-4.9.0-6-amd64_4.9.88-1+deb9u1a~test_amd64.deb + linux-image-4.9.0-6-amd64-dbg_4.9.88-1+deb9u1a~test_amd64.deb), ready for installing and testing on the affected system. The Kernel Handbook documents this procedure as well, I just wasn’t aware of this handy `debian/bin/test-patches` so far though.

JFTR: sadly the patch with the additional PCI_DEVICE_ID* was not enough (also see #900349), we seem to need further patches from the changes between v4.9 and v4.15, though this turned up to be no longer relevant for my customer and it’s also working with Debian/buster nowadays.

Vortrag: Best Practices in der IT-Administration, Version 2019 @ GLT19

July 29th, 2019

Es ist schon ein Weilchen her, aber nachdem mich noch immer Leute darauf ansprechen: Auf den Grazer Linuxtagen 2019 (GLT19) war ich als Referent mit einem Vortrag zum Thema “Best Practices in der IT-Administration, Version 2019” vertreten. In dem 25-minütigen Vortrag geht es um die moderne IT-Administration und welche Best Practices es im Jahr 2019 gibt.

Es gibt den Vortrag als Videomitschnitt auf YouTube sowie in verschiedenen Formaten auch direkt beim CCC. Die Vortragsfolien (11MB, PDF) stehen ebenfalls online zur Verfügung. Viel Spaß beim Anschauen!

BTW: den Vortrag kann man in längerer Workshop-Version von mir via SynPro Solutions beziehen, bei Interesse/Bedarf einfach bei mir melden.

(Not really) Revisiting 2018

July 26th, 2019

Mainly to recall what happened last year and to give thoughts and planning for upcoming year(s) I usually revisit the last year (previous years: 2017, 2016, 2015, 2014, 2013 + 2012).

But the end of 2018 and beginning of 2019 were quite stressful (mainly business wise) and I was lacking time and motivation to actually sit down and blog something™. Then I wanted to finally migrate from WordPress to Hugo and started to look into the migration but got stuck for all kinds of reasons (no really nice™ theme, the more useful themes all using a bunch of foreign hosted stuff (meh) and finally some fiddling with broken URLs and further technical minor annoyances) that made me postpone any blogging. Since I had some blog articles in the queue that I wanted to actually publish, I decided to stay at WordPress for the time being and look into migrating to something like Hugo at a later point in time.

So I’m not really revisiting 2018 but just publishing what was stuck in my drafts since the middle of 2018. :)

Events:

Personal:

  • Read ~one book per month on average, which is once again below my targets (the books I recall are “Was man von hier aus sehen kann” (Mariana Leky), Monitoring with Prometheus (James Turnbull), “Why We Sleep: The New Science of Sleep and Dreams (Matthew Walker)” and “Die Stunde zwischen Frau und Gitarre” (Clemens Setz), while Clemens’ book really brought me back into book reading habits!)

Conclusion: nothing to complain about :)

Debian buster: changes in coreutils #newinbuster

July 26th, 2019

Debian buster is there, and similar to what we had with #newinwheezy, #newinjessie and #newinstretch it’s time for #newinbuster!

One package that isn’t new but its tools are used by many of us is coreutils, providing many essential system utilities. We have coreutils v8.26-3 in Debian/stretch and coreutils v8.30-3 in Debian/buster. Compared to the changes between jessie and stretch there are no new tools, but there are some new options available that I’d like to point out.

New features/options

b2sum + md5sum + sha1sum + sha224sum + sha256sum + sha384sum + sha512sum (compute and check message digest):

  -z, --zero           end each output line with NUL, not newline, nd disable file name escaping

cp (copy files and directories):

  Use --reflink=never to ensure a standard copy is performed.

env (run a program in a modified environment):

  -C, --chdir=DIR      change working directory to DIR
  -S, --split-string=S  process and split S into separate arguments;
                        used to pass multiple arguments on shebang lines
  -v, --debug          print verbose information for each processing step

ls (list directory contents), dir + vdir (list directory contents):

  --hyperlink[=WHEN]     hyperlink file names; WHEN can be 'always' (default if omitted), 'auto', or 'never'

This –hyperlink option is especially worth mentioning if you’re using a recent terminal emulator (especially based on VTE), see Hyperlinks (a.k.a. HTML-like anchors) in terminal emulators for further information.

rm (remove files or directories):

  --preserve-root=all   do not remove '/' (default); with 'all', reject any command line argument on a separate device from its parent

split (split a file into pieces):

  -x                      use hex suffixes starting at 0, not alphabetic
  --hex-suffixes[=FROM]  same as -x, but allow setting the start value

timeout (run a command with a time limit):

  -v, --verbose  diagnose to stderr any signal sent upon timeout

Changes:

date (print or set the system date and time):

--rfc-2822 (AKA -R) was renamed into --rfc-email, while --rfc-2822 is still supported

nl (write each FILE to standard output, with line numbers added):

Old default options: -bt        -fn -hn -i1 -l1 -nrn   -sTAB   -v1 -w6 
New default options: -bt -d'\:' -fn -hn -i1 -l1 -n'rn' -s<tab> -v1 -w6

Debian buster: changes in util-linux #newinbuster

July 26th, 2019

Debian buster is there, and similar to what we had with #newinwheezy, #newinjessie and #newinstretch it’s time for #newinbuster!

Update on 2019-07-26 22:55 UTC: Cyril Brulebois pointed out, that findmnt (find a filesystem) was available in Debian/stretch already as part of the mount package, updated the blog post accordingly

One package that isn’t new but its tools are used by many of us is util-linux, providing many essential system utilities. We have util-linux v2.29.2-1+deb9u1 in Debian/stretch and util-linux v2.33.1-0.1 in Debian/buster. There are many new options available and we also have a few new tools available.

Tools that have been taken over from / moved to other packages

  • cfdisk + fdisk + sfdisk (tools to display or manipulate a disk partition table) were moved from util-linux to fdisk
  • findmnt (find a filesystem) is no longer shipped via the mount binary package (of util-linux source package) but part of the util-linux binary package itself nowadays
  • setpriv (run a program with different Linux privilege settings) is no longer shipped as separate binary package of util-linux but part of the util-linux binary package itself nowadays
  • su (change user ID or become superuser) was moved from login package (kudos to Andreas Henriksson for this!)

Deprecated / removed tools

Tools that are no longer shipped with util-linux as of Debian/buster:

  • line binary (copies one line (up to a newline) from standard input to standard output), the head binary is its suggested replacement
  • pg binary (browse pagewise through text files), it’s marked deprecated in POSIX since 1997
  • tailf binary (follow the growth of a log file), it was deprecated in 2017 and `tail -f` from coreutils works fine
  • tunelp binary (set various parameters for the lp device), parallel port printers are suspected to be extinct by now

New tools

blkzone (run zone command on a device):

Usage:
 blkzone <command> [options] <device>

Run zone command on the given block device.

Commands:
 report       Report zone information about the given device
 reset        Reset a range of zones.

Options:
 -o, --offset <sector>  start sector of zone to act (in 512-byte sectors)
 -l, --length <sectors> maximum sectors to act (in 512-byte sectors)
 -c, --count <number>   maximum number of zones
 -v, --verbose          display more details

 -h, --help             display this help
 -V, --version          display version

For more details see blkzone(8).

chmem (configure memory, set a particular size or range of memory online or offline):

Usage:
 chmem [options] [SIZE|RANGE|BLOCKRANGE]

Set a particular size or range of memory online or offline.

Options:
 -e, --enable       enable memory
 -d, --disable      disable memory
 -b, --blocks       use memory blocks
 -z, --zone <name>  select memory zone (see below)
 -v, --verbose      verbose output
 -h, --help         display this help
 -V, --version      display version

Supported zones:
 DMA
 DMA32
 Normal
 Highmem
 Movable
 Device

For more details see chmem(8).

choom (display and adjust OOM-killer score):

Usage:
 choom [options] -p pid
 choom [options] -n number -p pid
 choom [options] -n number command [args...]]

Display and adjust OOM-killer score.

Options:
 -n, --adjust <num>     specify the adjust score value
 -p, --pid <num>        process ID

 -h, --help             display this help
 -V, --version          display version

For more details see choom(1).

fincore (count pages of file contents in core):

Usage:
 fincore [options] file...

Options:
 -J, --json            use JSON output format
 -b, --bytes           print sizes in bytes rather than in human readable format
 -n, --noheadings      don't print headings
 -o, --output <list>   output columns
 -r, --raw             use raw output format

 -h, --help            display this help
 -V, --version         display version

Available output columns:
       PAGES  file data resident in memory in pages
        SIZE  size of the file
        FILE  file name
         RES  file data resident in memory in bytes

For more details see fincore(1).

lsmem (list the ranges of available memory with their online status):

Usage:
 lsmem [options]

List the ranges of available memory with their online status.

Options:
 -J, --json           use JSON output format
 -P, --pairs          use key="value" output format
 -a, --all            list each individual memory block
 -b, --bytes          print SIZE in bytes rather than in human readable format
 -n, --noheadings     don't print headings
 -o, --output <list>  output columns
     --output-all     output all columns
 -r, --raw            use raw output format
 -S, --split <list>   split ranges by specified columns
 -s, --sysroot <dir>  use the specified directory as system root
     --summary[=when] print summary information (never,always or only)

 -h, --help           display this help
 -V, --version        display version

Available output columns:
      RANGE  start and end address of the memory range
       SIZE  size of the memory range
      STATE  online status of the memory range
  REMOVABLE  memory is removable
      BLOCK  memory block number or blocks range
       NODE  numa node of memory
      ZONES  valid zones for the memory range

For more details see lsmem(1).

New features/options

agetty + getty (alternative Linux getty):

  --list-speeds          display supported baud rates

blkid (locate/print block device attributes) gained a bunch of long options:

Options:

  --cache-file          same as -c 
  --no-encoding         same as -d
  --garbage-collect     same as -g
  --output              same as -o
  --list-filesystems    same as -k
  --match-tag           same as -s
  --match-token         same as -t
  --list-one            same as -l
  --label               same as -L
  --uuid                same as -U

Low-level probing options:

  --probe               same as -p
  --info                same as -i
  --size                same as -S
  --offset              same as -O
  --usages              same as -u
  --match-types         same as -n

dmesg (print or control the kernel ring buffer):

  -p, --force-prefix          force timestamp output on each line of multi-line messages

fallocate (preallocate or deallocate space to a file):

  -i, --insert-range   insert a hole at range, shifting existing data
  -x, --posix          use posix_fallocate(3) instead of fallocate(2)

findmnt (find a filesystem):

  --output-all       output all available columns
  --pseudo           print only pseudo-filesystems
  --real             print only real filesystems
  --tree             enable tree format output is possible

fstrim (discard unused blocks on a mounted filesystem):

  -A, --fstab         trim all supported mounted filesystems from /etc/fstab
  -n, --dry-run       does everything, but trim

hwlock (read or set the hardware clock (RTC)):

  -l                 same as --localtime
  --delay <sec>      delay used when set new RTC time
  -v, --verbose      display more details

lsblk (list block devices):

Options:

  -z, --zoned          print zone model
  -T, --tree           use tree format output
  --sysroot >dir<  use specified directory as system root

Available output columns:

  PATH     path to the device node
  FSAVAIL  filesystem size available
  FSSIZE   filesystem size
  FSUSED   filesystem size used
  FSUSE%   filesystem use percentage
  PTUUID   partition table identifier (usually UUID)
  PTTYPE   partition table type
  ZONED    zone model

lscpu (display information about the CPU architecture):

  -J, --json              use JSON for default or extended format

lslocks (list local system locks):

Options:

  -b, --bytes            print SIZE in bytes rather than in human readable format
      --output-all       output all columns

Available output columns:

  TYPE  kind of lock

lslogins (display information about known users in the system):

Options:

      --output-all         output all columns

Available output columns:

  PWD-METHOD  password encryption method

lsns (list namespaces):

Options:

      --output-all       output all columns
  -W, --nowrap           don't use multi-line representation

Available output columns:

  NETNSID  namespace ID as used by network subsystem
     NSFS  nsfs mountpoint (usually used network subsystem)

nsenter (run program with namespaces of other processes):

  -a, --all              enter all namespaces
      --output-all     output all columns
  -S, --sector-size <num>  overwrite sector size
      --list-types     list supported partition types and exit

rename.ul (rename files):

  -n, --no-act        do not make any changes
  -o, --no-overwrite  don't overwrite existing files
  -i, --interactive   prompt before overwrite

runuser (run a command with substitute user and group ID):

  -w, --whitelist-environment <list>  don't reset specified variables
  -P, --pty                       create a new pseudo-terminal

setsid (run a program in a new session):

  -f, --fork     always fork

setterm (set terminal attributes):

  --resize                          reset terminal rows and columns

unshare (run program with some namespaces unshared from parent):

  --kill-child[=<signame>]  when dying, kill the forked child (implies --fork), defaults to SIGKILL

wipefs (wipe a signature from a device):

Options:

  -i, --noheadings    don't print headings
  -J, --json          use JSON output format
  -O, --output <list> COLUMNS to display (see below)

Available output columns:
     UUID  partition/filesystem UUID
    LABEL  filesystem LABEL
   LENGTH  magic string length
     TYPE  superblok type
   OFFSET  magic string offset
    USAGE  type description
   DEVICE  block device name

zramctl (set up and control zram devices):

  -a, --algorithm lzo|lz4|lz4hc|deflate|842   compression algorithm to use (new compression algorithms lz4hc, deflate + 842)
       --output-all          output all columns

Deprecated and removed options

hwlock (read or set the hardware clock (RTC)):

  --badyear        ignore RTC's year because the BIOS is broken
  -c, --compare    periodically compare the system clock with the CMOS clock
  --getepoch       print out the kernel's hardware clock epoch value
  --setepoch       set the kernel's hardware clock epoch value to the value given with --epoch

unshare (run program with some namespaces unshared from parent):

  -s     (use --setgroups instead)

Inception: VM inside Docker inside KVM – Testing Debian VM installation builds on Travis CI

July 25th, 2018

Back in 2006 I started to write a tool called grml-debootstrap. grml-debootstrap is a wrapper around debootstrap for installing Debian systems. Using grml-debootstrap, it’s possible to install Debian systems from the command line, without having to boot a Debian installer ISO. This is very handy when you’re running a live system (like Grml or Tails) and want to install Debian. It’s as easy as running:

% sudo grml-debootstrap --target /dev/sda1 --grub /dev/sda

I’m aware that grml-debootstrap is used in Continuous Integration/Delivery environments, installing Debian systems several hundreds or even thousands of times each month. Over the time grml-debootstrap gained many new features. For example, since 2011 grml-debootstrap supports installation into VM images:

% sudo grml-debootstrap --vmfile --vmsize 3G --target debian.img

In 2016 we also added (U)EFI support (the target device in this example is a logical device on LVM):

% sudo grml-debootstrap --grub /dev/sdb --target /dev/mapper/debian--server-rootfs --efi /dev/sdb1

As you might imagine, every new feature we add also increases the risk of breaking something™ existing. Back in 2014, I contributed a setup using Packer to build automated machine images, using grml-debootstrap. That allowed me to generate Vagrant boxes with VirtualBox automation via Packer, serving as a base for reproducing customer environments, but also ensuring that some base features of grml-debootstrap work as intended (including backwards compatibility until Debian 5.0 AKA lenny).

The problem of this Packer setup though is, contributors usually don’t necessarily have Packer and VirtualBox (readily) available. They also might not have the proper network speed/bandwidth to run extensive tests. To get rid of those (local) dependencies and make contributing towards grml-debootstrap more accessible (we’re currently working on e.g. systemd-networkd integration), I invested some time at DebCamp at DebConf18.

I decided to give Travis CI a spin. Travis CI is a well known Continuous Integration service in the open source community. Among others, it’s providing Ubuntu Linux environments, either Container-based or as full Virtual Machines, providing us what we need. Working on the Travis CI integration, I started with enabling ShellCheck (which is also available as Debian package, BTW!), serving as lint tool for shell scripts. All of that takes place in an isolated docker container.

To be able to execute grml-debootstrap, we need to install the latest version of grml-debootstrap from Git. That’s where travis.debian.net helps us – it is a hosted service for projects that host their Debian packaging on GitHub to use the Travis CI continuous integration platform to test builds on every update. The result is a Debian package (grml-debootstrap_*.deb) which we can use for installation, ensuring that we run exactly what we will ship to users (including scripts, configuration + dependencies). This also takes place in an isolated docker instance.

Then it’s time to start a Debian/stretch docker container, installing the resulting grml-debootstrap*.deb file from the travis.debian.net container run there. Inside it, we execute grml-debootstrap with its VM installation feature, to install Debian into a qemu.img file. Via qemu-system-x86_64 we can boot this VM file. Finally, goss takes care of testing and validation of the resulting system.

The overall architecture looks like:

Diagram of TravisCI setup

So Travis CI is booting a KVM instance on GCE (Google Compute Engine) for us, inside of which we start three docker instances:

  1. shellcheck (koalaman/shellcheck:stable)
  2. travis.debian.net (debian:stretch + debian:unstable, controlled via TRAVIS_DEBIAN_DISTRIBUTION)
  3. VM image installation + validation (debian:stretch)

Inside the debian/stretch docker environment, we install and execute grml-debootstrap. Finally we’re booting it via Qemu/KVM and running tests against it.

An example of such a Travis CI run is available at https://travis-ci.org/grml/grml-debootstrap/jobs/407751811.

Travis CI builds heavily depend on a bunch of external resources, which might result in false negatives in builds, this is something that we might improve by further integrating and using our infrastructure with Jenkins, GitLab etc. Anyway, it serves as a great base to make contributions and refactoring of grml-debootstrap easier.

Thanks to Christian Hofstaedtler + Darshaka Pathirana for for proof-reading this.

Vortrag: Best Practices in der IT-Administration, Version 2018 @ GLT18

May 8th, 2018

Auf den Grazer Linuxtagen 2018 (GLT18) war ich als Referent mit einem Vortrag zum Thema “Best Practices in der IT-Administration, Version 2018” vertreten. In dem 25-minütigen Vortrag geht es um die moderne IT-Administration und welche Best Practices es im Jahr 2018 gibt.

Es gibt den Vortrag als Videomitschnitt auf YouTube sowie in verschiedenen Formaten auch direkt beim CCC. Die Vortragsfolien (4.4MB, PDF) stehen ebenfalls online zur Verfügung. Viel Spaß beim Anschauen!

Event: Infracoders-Graz – Best Practices in der IT-Administration

March 17th, 2018

Am Dienstag (20.03.2018) findet das nächste Treffen der Infracoders-Graz statt. Ich wurde eingeladen einen Vortrag zu halten und werde zum Thema “Best Practices in der IT-Administration” referieren.

  • Was: Vortrag zu “Best Practices in der IT-Administration”
  • Wann: Dienstag, 20.03.2018 um 19:00 Uhr
  • Wo: Aula X Space, Georgigasse 85, Graz
  • Eintritt frei

Revisiting 2017

January 1st, 2018

Mainly to recall what happened last year and to give thoughts and planning for upcoming year(s) I’m once again revisiting the last year (previous years: 2016, 2015, 2014, 2013 + 2012). Here we go:

Events:

Technology / Open Source:

Music:

  • Played the drums less often than I wish I did

Sports:

Business:

Personal:

  • Read ~one book per month on average, which is below my targets but better than in previous years (the non-IT books I recall are “Open: An Autobiography” by Andre Agassi, “Tiere für Fortgeschrittene” by Eva Menasse, “Du musst dich nicht entscheiden wenn du tausend Träume hast” by Barbaba Sher, “Fettnäpfchenführer Taiwan” by Deike Lautenschläger, “Der kleine Prinz” by Antoine De Saint-Exu, “Gebrauchsanweisung für Spanien” by Paul Ingendaay, “Irmgard Griss: im Gespräch mit Carina Kerschbaumer” by Carina Kerschbaumer, “Die letzte Ausfahrt” by Markus Huber)
  • Continued with taking care of my kids every Monday and half of Tuesday (which is still challenging every now and then with running your own business, but it’s so incredibly important and worth the effort)
  • Started to learn Spanish (maintaining a 354 day streak on Duolingo until the end of 2017)

Conclusion: after a very challenging 2016 I took several arrangements to ensure a better 2017. Recording further metrics about my daily work helped me with capacity and workload planning. I tested lots of different paper notebooks and workflows to improve my daily routines and work, including The Five Minute Journal and the Pomodoro Technique. Trying to get enough sleep and avoid work in the evenings/nights as much as possible (overall it became an exception and not the norm) improved my work-life-balance. In 2018 I’ll get back to attending a few selected events (incl. Fosdem, Grazer Linuxdays and DebConf) and work on some new projects. Exciting times ahead, looking forward to 2018!

Usage of Ansible for Continuous Configuration Management

December 16th, 2017

It all started with a tweet of mine:

Screenshot of https://twitter.com/mikagrml/status/941304704004448257

I received quite some feedback since then and I’d like to iterate on this.

I’m a puppet user since ~2008 and since ~2015 also ansible is part of my sysadmin toolbox. Recently certain ansible setups I’m involved in grew faster than I’d like to see, both in terms of managed hosts/services as well as the size of the ansible playbooks. I like ansible for ad hoc tasks, like `ansible -i ansible_hosts all -m shell -a 'lsb_release -rs'` to get an overview what distribution release systems are running, requiring only a working SSH connection and python on the client systems. ansible-cmdb provides a nice and simple to use ad hoc host overview without much effort and overhead. I even have puppetdb_to_ansible scripts to query a puppetdb via its API and generate host lists for usage with ansible on-the-fly. Ansible certainly has its use case for e.g. bootstrapping systems, orchestration and handling deployments.

Ansible has an easier learning curve than e.g. puppet and this might seem to be the underlying reason for its usage for tasks it’s not really good at. To be more precise: IMO ansible is a bad choice for continuous configuration management. Some observations, though YMMV:

  • ansible’s vaults are no real replacement for something like puppet’s hiera (though Jerakia might mitigate at least the pain regarding data lookups)
  • ansible runs are slow, and get slower with every single task you add
  • having a push model with ansible instead of pull (like puppet’s agent mode) implies you don’t get/force regular runs all the time, and your ansible playbooks might just not work anymore once you (have to) touch them again
  • the lack of a DSL results in e.g. each single package management having its own module (apt, dnf, yum,….), having too many ways how to do something, resulting more often than not in something I’d tend to call spaghetti code
  • the lack of community modules comparable to Puppet’s Forge
  • the lack of a central DB (like puppetdb) means you can’t do something like with puppet’s exported resources, which is useful e.g. for central ssh hostkey handling, monitoring checks,…
  • the lack of a resources DAG in ansible might look like a welcome simplification in the beginning, but its absence is becoming a problem when complexity and requirements grow (example: delete all unmanaged files from a directory)
  • it’s not easy at all to have ansible run automated and remotely on a couple of hundred hosts without stumbling over anything — Rudolph Bott
  • as complexity grows, the limitations of Ansible’s (lack of a) language become more maddening — Felix Frank

Let me be clear: I’m in no way saying that puppet doesn’t have its problems (side-rant: it took way too long until Debian/stretch was properly supported by puppets’ AIO packages). I had and still have all my ups and downs with it, though in 2017 and especially since puppet v5 it works fine enough for all my use cases at a diverse set of customers. Whenever I can choose between puppet and ansible for continuous configuration management (without having any host specific restrictions like unsupported architectures, memory limitations,… that puppet wouldn’t properly support) I prefer puppet. Ansible can and does exist as a nice addition next to puppet for me, even if MCollective/Choria is available. Ansible has its use cases, just not for continuous configuration management for me.

The hardest part is to leave some tool behind once you reached the end of its scale. Once you feel like a tool takes more effort than it is worth you should take a step back and re-evaluate your choices. And quoting Felix Frank:

OTOH, if you bend either tool towards a common goal, you’re not playing to its respective strengths.

Thanks: Michael Renner and Christian Hofstaedtler for initial proof reading and feedback

Grml 2017.05 – Codename Freedatensuppe

June 14th, 2017

The Debian stretch release is going to happen soon (on 2017-06-17) and since our latest Grml release is based on a very recent version of Debian stretch I’m taking this as opportunity to announce it also here. So by the end of May we released a new stable release of Grml (the Debian based live system focusing on system administrator’s needs), known as version 2017.05 with codename Freedatensuppe.

Details about the changes of the new release are available in the official release notes and as usual the ISOs are available via grml.org/download.

With this new Grml release we finally made the switch from file-rc to systemd. From a user’s point of view this doesn’t change that much, though to prevent having to answer even more mails regarding the switch I wrote down some thoughts in Grml’s FAQ. There are some things that we still need to improve and sort out, but overall the switch to systemd so far went better than anticipated (thanks a lot to the pkg-systemd folks, especially Felipe Sateler and Michael Biebl!).

And last but not least, Darshaka Pathirana helped me a lot with the systemd integration and polishing the release, many thanks!

Happy Grml-ing!

The #newinstretch game: dbgsym packages in Debian/stretch

May 26th, 2017

Debug packages include debug symbols and so far were usually named <package>-dbg in Debian. Those packages are essential if you’ve to debug failing (especially: crashing) programs. Since December 2015 Debian has automatic dbgsym packages, being built by default. Those packages are available as <package>-dbgsym, so starting with Debian/stretch you should no longer look for -dbg packages but for -dbgsym instead. Currently there are 13.369 dbgsym packages available for the amd64 architecture of Debian/stretch, comparing this to the 2.250 packages which I counted being available for Debian/jessie this is really a huge improvement. (If you’re interested in the details of dbgsym packages as a package maintainer take a look at the Automatic Debug Packages page in the Debian wiki.)

The dbgsym packages are NOT provided by the usual Debian archive though (which is good thing, since those packages are quite disk space consuming, e.g. just the amd64 stretch mirror of debian-debug consumes 47GB). Instead there’s a new archive called debian-debug. To get access to the dbgsym packages via the debian-debug suite on your Debian/stretch system include the following entry in your apt’s sources.list configuration (replace deb.debian.org with whatever mirror you prefer):

deb http://deb.debian.org/debian-debug/ stretch-debug main

If you’re not yet familiar with usage of such debug packages let me give you a short demo.

Let’s start with sending SIGILL (Illegal Instruction) to a running sha256sum process, causing it to generate a so called core dump file:

% sha256sum /dev/urandom &
[1] 1126
% kill -4 1126
% 
[1]+  Illegal instruction     (core dumped) sha256sum /dev/urandom
% ls
core
$ file core
core: ELF 64-bit LSB core file x86-64, version 1 (SYSV), SVR4-style, from 'sha256sum /dev/urandom', real uid: 1000, effective uid: 1000, real gid: 1000, effective gid: 1000, execfn: '/usr/bin/sha256sum', platform: 'x86_64'

Now we can run the GNU Debugger (gdb) on this core file, executing:

% gdb sha256sum core
[...]
Type "apropos word" to search for commands related to "word"...
Reading symbols from sha256sum...(no debugging symbols found)...done.
[New LWP 1126]
Core was generated by `sha256sum /dev/urandom'.
Program terminated with signal SIGILL, Illegal instruction.
#0  0x000055fe9aab63db in ?? ()
(gdb) bt
#0  0x000055fe9aab63db in ?? ()
#1  0x000055fe9aab8606 in ?? ()
#2  0x000055fe9aab4e5b in ?? ()
#3  0x000055fe9aab42ea in ?? ()
#4  0x00007faec30872b1 in __libc_start_main (main=0x55fe9aab3ae0, argc=2, argv=0x7ffc512951f8, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7ffc512951e8) at ../csu/libc-start.c:291
#5  0x000055fe9aab4b5a in ?? ()
(gdb) 

As you can see by the several “??” question marks, the “bt” command (short for backtrace) doesn’t provide useful information.
So let’s install the according debug package, which is coreutils-dbgsym in this case (since the sha256sum binary which generated the core file is part of the coreutils package). Then let’s rerun the same gdb steps:

% gdb sha256sum core
[...]
Type "apropos word" to search for commands related to "word"...
Reading symbols from sha256sum...Reading symbols from /usr/lib/debug/.build-id/a4/b946ef7c161f2d215518ca38d3f0300bcbdbb7.debug...done.
done.
[New LWP 1126]
Core was generated by `sha256sum /dev/urandom'.
Program terminated with signal SIGILL, Illegal instruction.
#0  0x000055fe9aab63db in sha256_process_block (buffer=buffer@entry=0x55fe9be95290, len=len@entry=32768, ctx=ctx@entry=0x7ffc51294eb0) at lib/sha256.c:526
526     lib/sha256.c: No such file or directory.
(gdb) bt
#0  0x000055fe9aab63db in sha256_process_block (buffer=buffer@entry=0x55fe9be95290, len=len@entry=32768, ctx=ctx@entry=0x7ffc51294eb0) at lib/sha256.c:526
#1  0x000055fe9aab8606 in sha256_stream (stream=0x55fe9be95060, resblock=0x7ffc51295080) at lib/sha256.c:230
#2  0x000055fe9aab4e5b in digest_file (filename=0x7ffc51295f3a "/dev/urandom", bin_result=0x7ffc51295080 "\001", missing=0x7ffc51295078, binary=<optimized out>) at src/md5sum.c:624
#3  0x000055fe9aab42ea in main (argc=<optimized out>, argv=<optimized out>) at src/md5sum.c:1036

As you can see it’s reading the debug symbols from /usr/lib/debug/.build-id/a4/b946ef7c161f2d215518ca38d3f0300bcbdbb7.debug and this is what we were looking for.
gdb now also tells us that we don’t have lib/sha256.c available. For even better debugging it’s useful to have the according source code available. This is also just an `apt-get source coreutils ; cd coreutils-8.26/` away:

~/coreutils-8.26 % gdb sha256sum ~/core
[...]
Type "apropos word" to search for commands related to "word"...
Reading symbols from sha256sum...Reading symbols from /usr/lib/debug/.build-id/a4/b946ef7c161f2d215518ca38d3f0300bcbdbb7.debug...done.
done.
[New LWP 1126]
Core was generated by `sha256sum /dev/urandom'.
Program terminated with signal SIGILL, Illegal instruction.
#0  0x000055fe9aab63db in sha256_process_block (buffer=buffer@entry=0x55fe9be95290, len=len@entry=32768, ctx=ctx@entry=0x7ffc51294eb0) at lib/sha256.c:526
526           R( h, a, b, c, d, e, f, g, K(25), M(25) );
(gdb) bt
#0  0x000055fe9aab63db in sha256_process_block (buffer=buffer@entry=0x55fe9be95290, len=len@entry=32768, ctx=ctx@entry=0x7ffc51294eb0) at lib/sha256.c:526
#1  0x000055fe9aab8606 in sha256_stream (stream=0x55fe9be95060, resblock=0x7ffc51295080) at lib/sha256.c:230
#2  0x000055fe9aab4e5b in digest_file (filename=0x7ffc51295f3a "/dev/urandom", bin_result=0x7ffc51295080 "\001", missing=0x7ffc51295078, binary=<optimized out>) at src/md5sum.c:624
#3  0x000055fe9aab42ea in main (argc=<optimized out>, argv=<optimized out>) at src/md5sum.c:1036
(gdb) 

Now we’re ready for all the debugging magic. :)

Thanks to everyone who was involved in getting us the automatic dbgsym package builds in Debian!

The #newinstretch game: new forensic packages in Debian/stretch

May 25th, 2017

Repeating what I did for the last Debian releases with the #newinwheezy and #newinjessie games it’s time for the #newinstretch game:

Debian/stretch AKA Debian 9.0 will include a bunch of packages for people interested in digital forensics. The packages maintained within the Debian Forensics team which are new in the Debian/stretch release as compared to Debian/jessie (and ignoring jessie-backports):

  • bruteforce-salted-openssl: try to find the passphrase for files encrypted with OpenSSL
  • cewl: custom word list generator
  • dfdatetime/python-dfdatetime: Digital Forensics date and time library
  • dfvfs/python-dfvfs: Digital Forensics Virtual File System
  • dfwinreg: Digital Forensics Windows Registry library
  • dislocker: read/write encrypted BitLocker volumes
  • forensics-all: Debian Forensics Environment – essential components (metapackage)
  • forensics-colorize: show differences between files using color graphics
  • forensics-extra: Forensics Environment – extra console components (metapackage)
  • hashdeep: recursively compute hashsums or piecewise hashings
  • hashrat: hashing tool supporting several hashes and recursivity
  • libesedb(-utils): Extensible Storage Engine DB access library
  • libevt(-utils): Windows Event Log (EVT) format access library
  • libevtx(-utils): Windows XML Event Log format access library
  • libfsntfs(-utils): NTFS access library
  • libfvde(-utils): FileVault Drive Encryption access library
  • libfwnt: Windows NT data type library
  • libfwsi: Windows Shell Item format access library
  • liblnk(-utils): Windows Shortcut File format access library
  • libmsiecf(-utils): Microsoft Internet Explorer Cache File access library
  • libolecf(-utils): OLE2 Compound File format access library
  • libqcow(-utils): QEMU Copy-On-Write image format access library
  • libregf(-utils): Windows NT Registry File (REGF) format access library
  • libscca(-utils): Windows Prefetch File access library
  • libsigscan(-utils): binary signature scanning library
  • libsmdev(-utils): storage media device access library
  • libsmraw(-utils): split RAW image format access library
  • libvhdi(-utils): Virtual Hard Disk image format access library
  • libvmdk(-utils): VMWare Virtual Disk format access library
  • libvshadow(-utils): Volume Shadow Snapshot format access library
  • libvslvm(-utils): Linux LVM volume system format access librar
  • plaso: super timeline all the things
  • pompem: Exploit and Vulnerability Finder
  • pytsk/python-tsk: Python Bindings for The Sleuth Kit
  • rekall(-core): memory analysis and incident response framework
  • unhide.rb: Forensic tool to find processes hidden by rootkits (was already present in wheezy but missing in jessie, available via jessie-backports though)
  • winregfs: Windows registry FUSE filesystem

Join the #newinstretch game and present packages and features which are new in Debian/stretch.

Debian stretch: changes in util-linux #newinstretch

May 19th, 2017

We’re coming closer to the Debian/stretch stable release and similar to what we had with #newinwheezy and #newinjessie it’s time for #newinstretch!

Hideki Yamane already started the game by blogging about GitHub’s Icon font, fonts-octicons and Arturo Borrero Gonzalez wrote a nice article about nftables in Debian/stretch.

One package that isn’t new but its tools are used by many of us is util-linux, providing many essential system utilities. We have util-linux v2.25.2 in Debian/jessie and in Debian/stretch there will be util-linux >=v2.29.2. There are many new options available and we also have a few new tools available.

Tools that have been taken over from other packages

  • last: used to be shipped via sysvinit-utils in Debian/jessie
  • lastb: used to be shipped via sysvinit-utils in Debian/jessie
  • mesg: used to be shipped via sysvinit-utils in Debian/jessie
  • mountpoint: used to be shipped via initscripts in Debian/jessie
  • sulogin: used to be shipped via sysvinit-utils in Debian/jessie

New tools

  • lsipc: show information on IPC facilities, e.g.:
  • root@ff2713f55b36:/# lsipc
    RESOURCE DESCRIPTION                                              LIMIT USED  USE%
    MSGMNI   Number of message queues                                 32000    0 0.00%
    MSGMAX   Max size of message (bytes)                               8192    -     -
    MSGMNB   Default max size of queue (bytes)                        16384    -     -
    SHMMNI   Shared memory segments                                    4096    0 0.00%
    SHMALL   Shared memory pages                       18446744073692774399    0 0.00%
    SHMMAX   Max size of shared memory segment (bytes) 18446744073692774399    -     -
    SHMMIN   Min size of shared memory segment (bytes)                    1    -     -
    SEMMNI   Number of semaphore identifiers                          32000    0 0.00%
    SEMMNS   Total number of semaphores                          1024000000    0 0.00%
    SEMMSL   Max semaphores per semaphore set.                        32000    -     -
    SEMOPM   Max number of operations per semop(2)                      500    -     -
    SEMVMX   Semaphore max value                                      32767    -     -
    
  • lslogins: display information about known users in the system, e.g.:
  • root@ff2713f55b36:/# lslogins 
      UID USER     PROC PWD-LOCK PWD-DENY LAST-LOGIN GECOS
        0 root        2        0        1            root
        1 daemon      0        0        1            daemon
        2 bin         0        0        1            bin
        3 sys         0        0        1            sys
        4 sync        0        0        1            sync
        5 games       0        0        1            games
        6 man         0        0        1            man
        7 lp          0        0        1            lp
        8 mail        0        0        1            mail
        9 news        0        0        1            news
       10 uucp        0        0        1            uucp
       13 proxy       0        0        1            proxy
       33 www-data    0        0        1            www-data
       34 backup      0        0        1            backup
       38 list        0        0        1            Mailing List Manager
       39 irc         0        0        1            ircd
       41 gnats       0        0        1            Gnats Bug-Reporting System (admin)
      100 _apt        0        0        1            
    65534 nobody      0        0        1            nobody
    
  • lsns: list system namespaces, e.g.:
  • root@ff2713f55b36:/# lsns
            NS TYPE   NPROCS PID USER COMMAND
    4026531835 cgroup      2   1 root bash
    4026531837 user        2   1 root bash
    4026532473 mnt         2   1 root bash
    4026532474 uts         2   1 root bash
    4026532475 ipc         2   1 root bash
    4026532476 pid         2   1 root bash
    4026532478 net         2   1 root bash
    
  • setpriv: run a program with different privilege settings
  • zramctl: tool to quickly set up zram device parameters, to reset zram devices, and to query the status of used zram devices

New features/options

addpart (show or change the real-time scheduling attributes of a process):

--reload reload prompts on running agetty instances

blkdiscard (discard the content of sectors on a device):

-p, --step <num>    size of the discard iterations within the offset
-z, --zeroout       zero-fill rather than discard

chrt (show or change the real-time scheduling attributes of a process):

-d, --deadline            set policy to SCHED_DEADLINE
-T, --sched-runtime <ns>  runtime parameter for DEADLINE
-P, --sched-period <ns>   period parameter for DEADLINE
-D, --sched-deadline <ns> deadline parameter for DEADLINE

fdformat (do a low-level formatting of a floppy disk):

-f, --from <N>    start at the track N (default 0)
-t, --to <N>      stop at the track N
-r, --repair <N>  try to repair tracks failed during the verification (max N retries)

fdisk (display or manipulate a disk partition table):

-B, --protect-boot            don't erase bootbits when creating a new label
-o, --output <list>           output columns
    --bytes                   print SIZE in bytes rather than in human readable format
-w, --wipe <mode>             wipe signatures (auto, always or never)
-W, --wipe-partitions <mode>  wipe signatures from new partitions (auto, always or never)

New available columns (for -o):

 gpt: Device Start End Sectors Size Type Type-UUID Attrs Name UUID
 dos: Device Start End Sectors Cylinders Size Type Id Attrs Boot End-C/H/S Start-C/H/S
 bsd: Slice Start End Sectors Cylinders Size Type Bsize Cpg Fsize
 sgi: Device Start End Sectors Cylinders Size Type Id Attrs
 sun: Device Start End Sectors Cylinders Size Type Id Flags

findmnt (find a (mounted) filesystem):

-J, --json             use JSON output format
-M, --mountpoint <dir> the mountpoint directory
-x, --verify           verify mount table content (default is fstab)
    --verbose          print more details

flock (manage file locks from shell scripts):

-F, --no-fork            execute command without forking
    --verbose            increase verbosity

getty (open a terminal and set its mode):

--reload               reload prompts on running agetty instances

hwclock (query or set the hardware clock):

--get            read hardware clock and print drift corrected result
--update-drift   update drift factor in /etc/adjtime (requires --set or --systohc)

ldattach (attach a line discipline to a serial line):

-c, --intro-command <string>  intro sent before ldattach
-p, --pause <seconds>         pause between intro and ldattach

logger (enter messages into the system log):

-e, --skip-empty         do not log empty lines when processing files
    --no-act             do everything except the write the log
    --octet-count        use rfc6587 octet counting
-S, --size <size>        maximum size for a single message
    --rfc3164            use the obsolete BSD syslog protocol
    --rfc5424[=<snip>]   use the syslog protocol (the default for remote);
                           <snip> can be notime, or notq, and/or nohost
    --sd-id <id>         rfc5424 structured data ID
    --sd-param <data>    rfc5424 structured data name=value
    --msgid <msgid>      set rfc5424 message id field
    --socket-errors[=<on|off|auto>] print connection errors when using Unix sockets

losetup (set up and control loop devices):

-L, --nooverlap               avoid possible conflict between devices
    --direct-io[=<on|off>]    open backing file with O_DIRECT 
-J, --json                    use JSON --list output format

New available --list column:

DIO  access backing file with direct-io

lsblk (list information about block devices):

-J, --json           use JSON output format

New available columns (for --output):

HOTPLUG  removable or hotplug device (usb, pcmcia, ...)
SUBSYSTEMS  de-duplicated chain of subsystems

lscpu (display information about the CPU architecture):

-y, --physical          print physical instead of logical IDs

New available column:

DRAWER  logical drawer number

lslocks (list local system locks):

-J, --json             use JSON output format
-i, --noinaccessible   ignore locks without read permissions

nsenter (run a program with namespaces of other processes):

-C, --cgroup[=<file>]      enter cgroup namespace
    --preserve-credentials do not touch uids or gids
-Z, --follow-context       set SELinux context according to --target PID

rtcwake (enter a system sleep state until a specified wakeup time):

--date <timestamp>   date time of timestamp to wake
--list-modes         list available modes
-r, --reorder <dev>  fix partitions order (by start offset)

sfdisk (display or manipulate a disk partition table):

New Commands:

-J, --json <dev>                  dump partition table in JSON format
-F, --list-free [<dev> ...]       list unpartitioned free areas of each device
-r, --reorder <dev>               fix partitions order (by start offset)
    --delete <dev> [<part> ...]   delete all or specified partitions
--part-label <dev> <part> [<str>] print or change partition label
--part-type <dev> <part> [<type>] print or change partition type
--part-uuid <dev> <part> [<uuid>] print or change partition uuid
--part-attrs <dev> <part> [<str>] print or change partition attributes

New Options:

-a, --append                   append partitions to existing partition table
-b, --backup                   backup partition table sectors (see -O)
    --bytes                    print SIZE in bytes rather than in human readable format
    --move-data[=<typescript>] move partition data after relocation (requires -N)
    --color[=<when>]           colorize output (auto, always or never)
                               colors are enabled by default
-N, --partno <num>             specify partition number
-n, --no-act                   do everything except write to device
    --no-tell-kernel           do not tell kernel about changes
-O, --backup-file <path>       override default backup file name
-o, --output <list>            output columns
-w, --wipe <mode>              wipe signatures (auto, always or never)
-W, --wipe-partitions <mode>   wipe signatures from new partitions (auto, always or never)
-X, --label <name>             specify label type (dos, gpt, ...)
-Y, --label-nested <name>      specify nested label type (dos, bsd)

Available columns (for -o):

 gpt: Device Start End Sectors Size Type Type-UUID Attrs Name UUID
 dos: Device Start End Sectors Cylinders Size Type Id Attrs Boot End-C/H/S Start-C/H/S
 bsd: Slice Start  End Sectors Cylinders Size Type Bsize Cpg Fsize
 sgi: Device Start End Sectors Cylinders Size Type Id Attrs
 sun: Device Start End Sectors Cylinders Size Type Id Flags

swapon (enable devices and files for paging and swapping):

-o, --options <list>     comma-separated list of swap options

New available columns (for --show):

UUID   swap uuid
LABEL  swap label

unshare (run a program with some namespaces unshared from the parent):

-C, --cgroup[=<file>]                              unshare cgroup namespace
    --propagation slave|shared|private|unchanged   modify mount propagation in mount namespace
-s, --setgroups allow|deny                         control the setgroups syscall in user namespaces

Deprecated / removed options

sfdisk (display or manipulate a disk partition table):

-c, --id                  change or print partition Id
    --change-id           change Id
    --print-id            print Id
-C, --cylinders <number>  set the number of cylinders to use
-H, --heads <number>      set the number of heads to use
-S, --sectors <number>    set the number of sectors to use
-G, --show-pt-geometry    deprecated, alias to --show-geometry
-L, --Linux               deprecated, only for backward compatibility
-u, --unit S              deprecated, only sector unit is supported