Dienstag, 4. Dezember 2018

MacOS "Mojavody"

While I usually use my machine for work and communication (no game has ever been played on it), I do like some eye-candy. When I had my first Mac it was Snow Leopard - and, wow, that was an eye catcher. It was the same for all the big cats that followed.

Then came MacOS 10.10 "Yosemite" and with it came Apple's new design language, and that was all flat. I disliked it from the first day. So what was I to do? I loved my machine, had a productive working environment running on it, but hated to look at it? For Yosemite the solution was "Flavours2", a theming engine with a selection of fairly acceptable themes.

Safari on "Mojavody"

Samstag, 28. Juli 2018

Die Errichtung des Moskauer Patriarchats

Höhlenkloster Kyiv, Quelle: Wikipedia, Lizenz: Creative Commons
Aktuell wird ja eine mögliche Autokephalie der ukrainischen Orthodoxen Kirche diskutiert [Hinweis: dieser Artikel ist von 2018, die Autokephalie ist mittlerweile längst Realität] und auch von manchen als realistisch betrachtet, nachdem der Ökumenische Patriarch Bartholomäus von Konstantinopel erklärt hatte, dieses Ansinnen wohlwollend zu betrachten.

Die orthodoxe Kirche des Kyiver Patriarchats war im Jahr 1686 aus der Zuständigkeit Konstantinopels gelöst und dem Moskauer Patriarchat - also der russischen Staatskirche - untergeordnet worden [1]. Mit der Unabhängigkeit der Ukraine entstanden in der Ukraine zwei von Moskau unabhängige orthodoxe Kirchen [2], [3], die beide als nicht kanonisch anerkannt sind - weswegen man sich eben um die Erteilung des Status der Autokephalie bemüht.

Aus der Richtung russischer Kirchen- und Regierungskreise wird gegen diese Bemühungen aus allen Rohren geschossen - das Moskauer Patriarchat sei die einzig legitime Kirche für die Ukraine, und das müsse und könne auch nur so bleiben.

Bei all den kirchenrechtlichen Verwicklungen, über die gern die Experten entscheiden sollen (oder auch nicht), ist es dennoch interessant, wie eigentlich damals die Kirche des damals eher provinziellen Moskau zu ihrem Patriarchen kam.

Hier sind einige Quellen, die das ein wenig beleuchten.

Mittwoch, 25. Juli 2018

Wenn reboot -f versagt...

Auch Linuxe können mal komplett vermurkst sein (Zombie-Prozesse, die sich nicht beenden lassen etc.). Das kann bis zu dem Punkt gehen, wo ein reboot -f keinen Effekt hat.
Solange man noch eine Shell hat, muss man aber dennoch nicht aufstehen, um einen Neustart zu erzwingen:
echo 1 > /proc/sys/kernel/sysrq
echo b > /proc/sysrq-trigger
So. Auch das ist persistiert :)

Samstag, 9. Juni 2018

Gendern - demokratische Pflicht?

Kürzlich stieß ich über die sozialen Netze auf einen Artikel von Henning Lobin und Damaris Nübling in der Süddeutschen, in dem anlässlich eines am 8. Juni vom Deutschen Rechtsschreibrat diskutierten Vorschlags des Landes Berlin zur Einführung des Gendersternchens in die deutsche Rechtschreibnorm[1] die Autoren leidenschaftlich für "geschlechtergerechte Schreibung" eintraten.


Hier heißt es u.a., dass wer die Gleichstellung der Geschlechter wolle, sie auch beide [explizit] ansprechen müsse. Neben dem in diesem Kontext leider schon obligatorischen Verweis auf Vorstöße der AfD gegen das sprachliche Gendern wird anhand einiger Beispiele zu beweisen versucht, dass die Trennung von grammatischen vom biologischen Geschlecht, die dem generischen Maskulinum zugrunde liege, falsch sei und die Sprache auch in diesem speziellen Kontext die Wahrnehmung des Menschen "lenke".

Freitag, 18. Mai 2018

Centralised Logging with EFK and hot/warm in Kubernetes

Everybody is talking about centralised logging these days, and most seem to agree that EFK (Elasticsearch, Fluentd, Kibana) is a good combination for accomplishing this. The Kubernetes repo on github contains something to start and play with, but it is far from production-ready:
  1. The Kibana version used there is rather old
  2. Elasticsearch is not production-ready (single node instance, no decoupling of resource-hungry indexing and long-term, read-only storage)
While (1) can be overcome rather easily, (2) poses a bit more of a challenge - how can we create a production-ready Elasticsearch service using Kubernetes? The Elasticsearch folks propose the so-called "hot/warm" architecture for addressing this:
  • "hot" nodes running on fast and expensive hardware (fast CPUs, lots of memory, SSDs) do all the indexing of anything coming in. 
  • All data older than a configurable period of time is moved to so-called "warm" nodes running on potentially slower and less expensive hardware with large disks (usually HDDs). No indexing takes place here, data is kept read-only for queries only.

Dienstag, 26. September 2017

JMeter-CSV, logische Transaktionen aus mehreren Requests, die Shell und ich.

Lösung:
( grep -v '^timeStamp' results.csv | awk --field-separator=';' '{ print $6";"$1";"$2";"$3 }' \
| sort | while read a; do OP=`echo "$a" | cut -d ';' -f 4`; TS=`echo "$a" | cut -d ';' -f 2`; \
TM=`echo "$a" | cut -d ';' -f 3`; if [ "$OP" = getConfiguration ]; then echo '`'; echo -n \
"$TS \`expr $TM"; else echo -n " + $TM"; fi; done | grep -v '^`' | tr -d '\n' ; echo '`' ) | \
while read b; do eval "echo $b"; done | sort >transaction-timings.dat

Versuch, das lesbar zu machen...
( grep -v '^timeStamp' results.csv \
    | awk --field-separator=';' '{ print $6";"$1";"$2";"$3 }' \
    | sort \
    | while read a; do \
        OP=`echo "$a" | cut -d ';' -f 4`; \
        TS=`echo "$a" | cut -d ';' -f 2`; \
        TM=`echo "$a" | cut -d ';' -f 3`; \
        if [ "$OP" = getConfiguration ]; then \
            echo '`'; \
            echo -n "$TS \`expr $TM"; \
        else \
            echo -n " + $TM"; \
        fi; \
    done \
        | grep -v '^`' \
        | tr -d '\n'; \
        echo '`' ) \
        | while read b; do \
            eval "echo $b"; \
          done \
              | sort >transaction-timings.dat

Freitag, 3. März 2017

Shell-Funktion des Tages: gitp

Musste gerade sein:
gitp() {
        test -n "$1" || { git; return 1; }
        ARG1=$1
        shift
        git p$ARG1 "$@"
}

Freitag, 17. Februar 2017

Noch etwas Nostalgisches: Intel 5100 "shiloh" WLAN-Karte mit OS/2

Für meine OS/2-Installation hatte ich seinerzeit ein Thinkpad t500 auf ebay erstanden. Die Installation war grundsätzlich problemlos, allerdings gelang es mir zunächst nicht, das gute Stück an den WLAN zu bekommen, weil es keinen "stabilen" Treiber für die verbaute Intel 5100 "shiloh" gibt.
Nachdem ich einen Artikel des Blonde Guy gefunden hatte, der beschrieb, wie man genau dieses Modell doch zum Laufen bringt, also machte ich mich noch einmal an die Arbeit.

Am Ende hat es - zumindest einigermaßen -  funktioniert. Wirklich stabil ist es leider nicht, hin und wieder ist mir das System mit einem TRAP C um die Ohren geflogen. Dank JFS ist das zum Glück heute kein großes Drama mehr (allerdings sollte man nicht die Gefahr einer durch beim Absturz offene INI-Dateien unterschätzen, die einem die WPS komplett unbrauchbar machen kann [1]). Das habe ich nun gemacht:

Freitag, 27. Januar 2017

Früher war alles besser: Common Desktop Environment auf Linux

Rechter Monitor mit Panel und einer GTK2-App
Unter Linux bevorzuge ich Leichtes. Umgebungen wie Gnome oder KDE sind mir zu schwergewichtig und auch aus verschiedenen Gründen nicht wirklich sympathisch - die eine zu wenig auf meine Bedürfnisse anpassbar, die andere riecht zu sehr nach Redmond. Folglich bin ich seit vielen Jahren vorwiegend mit WindowMaker unterwegs (das dort verlinkte Theme "NeXT-Retro" ist übrigens immer noch in Benutzung), und in der letzten Zeit habe ich wieder verstärkt Gefallen an Enlightenment gefunden. Beide sind leicht, schnell und vollkommen konfigurierbar.

Eine dritte Option ist in der letzten Zeit aber auch noch dazu gekommen, quasi die Mutter aller Gnome und KDEs: Common Desktop Environment, kurz CDE, dessen Code vor einigen Jahren Open Source wurde und nun hinreichend alltagstauglich unter Linux ist. So kann man den zarten Retro-Charme der 90er Jahre genießen und sich sozusagen auf Augenhöhe mit Windows-Benutzern wähnen :)

Sonntag, 10. April 2016

Und abermals und erneut: DHL lässt uns zum Postamt rennen



Wieder einmal mussten wir einen Beschwerdebrief an DHL schreiben. Vielleicht wird uns eine arme Sau anrufen und sich entschuldigen, ändern wird aber so ein bemitleidenswerter Callcenter-Mitarbeiter nichts an dem, was die dort offenbar nicht in den Griff kriegen.

Dieses Mal ging es um Handzettel für unsere Veranstaltung nächste Woche. Die Vorlagen wurden nicht rechtzeitig fertig, und die Druckerei (empfehlenswert: WirMachenDruck) nannte uns einen Termin, der noch rechtzeitig war, aber eben auch nur knapp.

Ich war diese Woche auf Geschäftsreise, also ging die Sendung an N., die ohnehin auf der Türklingel vor mir genannt ist :)

Dienstag, 24. November 2015

My best shell script bug so far :)

Consider this Bourne shell script code:
if "$NEW_STATE" = "false"; then
    echo "Current failed."
fi
What's wrong with it?

I had this in a script and spent quite some time figuring out what was wrong as it kept writing "Current failed." though indeed nothing had failed. Having stared on it for several minutes, that piece of code seemed perfectly fine.

Again after some time and several trace and debug statements later I knew that the "$NEW_STATE" variable's value was indeed "true". So what was wrong?

Well, I had meant to write this:
if [ "$NEW_STATE" = "false" ]; then
    echo "Current failed."
fi
The shell does not evaluate expressions itself. It just calls commands, such like "test" (for which "[" is simply a copy, symlink or alias), but also "grep", "ls", "cp", whatever  you like. "true" is whatever returns 0.

Having forgotten the "[" I produced code that ran perfectly well - while just doing the opposite of what I had intended. Why did I not even get a syntax error, as the shell itself cannot handle string comparison itself?

The answer is simple: both "true" and "false" are commands themselves. Both take no arguments but don't complain either if any are given - arguments are just being ignored. My "$NEW_STATE" variable had a value of "true" because everything was fine. So my broken comparison expanded to this here:
if "true" = "false"; then
    echo "Current failed."
fi
The shell happily executes "true" which yields 0 (which is true for the shell) and does not bother to look at its arguments "= "false"". Good fun.

Mittwoch, 19. August 2015

DHL strikes again...

Wenn man denkt, es geht kaum noch schlimmer, wird man dann oft doch eines Besseren belehrt. Aus "Postamt" wurde "Empfänger unbekannt". Nachdem ich heute Morgen mit dem Versender telefoniert habe und der mir versicherte, die Adresse auf den Paket sei identisch mit der in der Auftragsbestätigung (und die ist korrekt), ging ein weiteres Schreiben an DHL heraus. Es spricht für sich:

Dienstag, 23. Dezember 2014

OS/2 lebt, aber es riecht manchmal schon nicht mehr so richtig gut

Alle Jahre wieder, in der Vorweihnachtszeit, wird mein OS/2-Laptop herausgeholt und uralte Software gepflegt. Leider gibt es auch ein Jahr nach der letzten Runde immer noch keinen funktionierenden Treiber für meinen Intel 5100 AGN (Shiloh) WLAN-Chip, aber es liegt ja auch schon seit einem Jahr ein LAN-Kabel bereit.

Antwort von DHL

Nun gab es endlich eine Antwort von DHL - eine freundliche Email, in der  die Mitarbeiterin ihr Bedauern über die Unannehmlicheiten und die verspätete Antwort zum Ausdruck bringt. Die Verantwortlichen des Zustellbereiches (offenbar des meinen) seien unter einer ganannten Vorgangsnummer informiert worden, um sicherzustellen, dass bei mir künftig wieder korrekt zugestellt werde. Leider wurde nicht darauf eingegangen, dass ich längst nicht der einzige bin, der von dieser Art Probleme bereichtet hat, aber das wäre vermutlich auch zu viel erwartet gewesen.

Nun ist es an der Zeit, sie an ihren Taten zu messen, man wird sehen :)

Montag, 22. Dezember 2014

Ein Relikt aus alter Zeit...


Urlaub. Zeit, alte Schätze auszugraben und sich an ihnen zu erfreuen. 

Das ist mein altes Standard-Brett, die Basis eine Aria Pro Strat mit durchgehendem Hals, Baujahr irgendwann frühe 80er, von mir in einem Anfall von Übermut irgendwann Mitte der 80er umgebaut: Form umgefräst (mir gefielen damals diese deutschen Bassgitarren), statt Lack Öl und Wachs Marke Rockinger, Steg Single Coil durch aktiven Humbucker von Magnetics ersetzt, Pickup-Umschalter und Ausgangsbuchse verlegt, statt Plastik Kupfer-Beschläge. Das Ding tut's immer noch, 1a-Seitenlage, nur kann ich hier leider nicht mehr so einen Lärm machen, meinen Fender-Röhrenamp hatte ich vor 12 Jahren in Geldnot verkaufen müssen. 

Jaja, die guten alten Zeiten...

Samstag, 6. Dezember 2014

DHL, das zweite Kapitel

Ich hatte mir den Vorgang, von dem ich in HL - der Tag, an dem ich deutlich werden musste berichtete, auf Termin gelegt, da ich die Befürchtung hatte, dass DHL sich zu dem Thema nicht mit mir in Kontakt setzen würde. Die Befürchtung war leider berechtigt. Also verwendete ich heute die Feedback-Funktion auf deren Homepage und schrieb das folgende:

Samstag, 22. November 2014

DHL - der Tag, an dem ich deutlich werden musste

Wir alle kennen das - wir haben etwas bestellt beim Online-Händler unseres Vertrauens, und er versendet die Waren über den Paketdienst seines Vertrauens. Worauf basiert dieses Vertrauen? Nun, vermutlich wird auch der Preis dabei eine Rolle spielen, aber wollen wir lieber nicht in Spekulationen abgleiten! Fakt ist, dass der zum Post-Konzern gehörende Paket-Dienst DHL offenbar das Vertrauen vieler Händler besitzt.

Auf der Empfängerseite dürften die Präferenzen mittlerweile leicht anders liegen. Dem Endkunden ist es üblicherweise ja herzlich egal, durch wen er sein Paket bekommt - wichtig ist nur, dass er es bekommt und zwar nach hause. Dafür zahlt er ja auch die Versandkosten, die ihm der Händler in Rechnung stellt.

Donnerstag, 20. November 2014

Behoben in 34.0b10: Privatsphären Bug in Firefox auf OSX Yosemite

Der von mir hingewiesene Bug, der bei Benutzung von Firefox auf OSX 10.10 ("yosemite") zu einer Logdatei von Maus- und Tastatur-Eingaben in /tmp führt, ist, wie die Firefox-Entwickler sagen, ein Bug in MacOS, für den aber jetzt ein Workaround entwickelt wurde.

Es wird empfohlen, auf die aktuelle Betaversion (Stand heute Morgen: 34.0b10) zu wechseln, um auch die Sicherheits-Bugfixes der letzten Iterationen zur Verfügung zu haben. Download hier: https://www.mozilla.org/en-US/firefox/beta/all/ (für Deutsch: "german" in das Suchfeld eingeben und "search" klicken).

Sonntag, 16. November 2014

Privatsphären Bug in Firefox auf OSX Yosemite

Firefox-Versionen ab Version 32.0 erzeugen auf MacOS 10.10 ("yosemite") eine Datei /tmp/CGLog_Firefox_<pid>, die ein Protokoll von Maus- und Tastatur-Ereignissen enthält. Es handelt sich dabei um einen mittlerweile bestätigten Bug. Es gibt dazu auch eine Diskussion im Firefox-Supportforum, zu der ich einige Kommentare beigetragen habe.

Diese Datei richtet keinen Schaden an, solange sie nicht in die falschen Hände gerät. Problematisch wird es, wenn - z.B. durch Schadsoftware - Unbefugte Zugriff auf das lokale Dateisystem erhalten, da man aus den protokollierten Daten u.U. sensible Information extrahieren kann.

Nach aktuellem Stand ist der Bug bestätigt, aber noch nicht behoben. Ich bin daher auf Version 31.0 ESR herunter gegangen und werde diese ältere Version benutzen, bis der Bug in einer zukünftigen Produktivversion behoben ist. Ich empfehle anderen, das selbe zu tun.

Ergänzung: Der Diskussion im Bugzilla zufolge handelt es sich nicht um einen Bug in Firefox, sondern in OSX 10.10, für den man aber bereits an einem Workaround arbeitet.

Samstag, 15. November 2014

Ein Jahr mit dem Telephon des Feindes - Bestandsaufnahme

Bild: Wikipedia
Letztes Jahr im September hatte ich mir ein neues Mobiltelefon der Marke Blackberry zugelegt. Das war etwas, was ich nur ein Jahr vorher quasi für alle Zeiten kategorisch ausgeschlossen hätte. Meine initialen Eindrücke hatte ich in einem früheren Blogpost dokumentiert: Blackberry ist (beinahe) für Nerds! Wie ist es mir nun gegangen - ein Jahr mit einem (wieder einmal) Nischenprodukt?

Die Antwort fällt erstaunlich eindeutig aus! Alle Punkte, die ich initial positiv bewertet hatte, haben sich quasi bestätigt: