Persönliches dies-und-das
Intelligenter als alle anderen
Ich witzel immer mal gerne, dass Informatiker (so kollektiv betrachtet, es mag Ausnahmen geben) der Meinung sind, alles besser zu wissen als andere, egal zu welchem Thema.
Problematisch wird es, wenn sie das auch noch öffentlich zum Besten geben.
Kolmogorov hat anscheinend eine ähnliche Beobachtung zu Mathematikern gemacht (nicht im russischen Original, sondern in der Übersetzung, die ich bei Scott Aaronson gefunden habe):
Every mathematician believes that he is ahead of the others. The reason none state this belief in public is because they are intelligent people.
…
Reverse SSL proxies, HTTP2 and connection coalescing
I’m maintaining a bunch of servers and, where possible, services are moved into containers.
Ideally those containers do their own SSL handling when listening on ports and in case of heavily overloaded services - such as https, since every domain comes with a webserver these days, there needs to be some de-multiplexing in the frontend.
For this purpose I use a reverse SSL proxy that checks the SNI field in the connection (so, Windows XP is out. I’m not sorry.) and routes the connection to some backend service.
…Notes on my Go HTTP server
I’m currently building a Single Page App in Angular (TypeScript) which is backed by a bundle of services provided via HTTP. Rather typical I’d say.
It’s a good opportunity to brush up on my Go skills, which are rather basic so far. So to make sure I won’t forget the things I learned today, some journaling is in order.
To make sure that internal data structures are properly initialized before use, Go code typically employs the Factory pattern. That way the struct can be private (ie lowerCaseInitial), and the object is generated by a function which can make sure that it’s consistent before being passed to any consumer:
Gezänk mit meinem Telefon- und Internetanbieter
Bei Umzügen gibt es eine ganze Menge zu beachten. Zum Beispiel, dass die Dienstleistungen, die man so bezahlt, auch alle mit umziehen.
Eine recht wichtige (für mich) ist die Telefon- und Internetverbindung (naja, eigentlich nur der Internetzugang).
Mit meinem Dienstleister hatte ich in der letzten Woche deutlich mehr “Spaß” als mir lieb war. Nachdem sich nun hoffentlich alles auf einem guten Weg befindet, hat sich deren Marketing-oder-was-auch-immer Abteilung getraut nachzufragen, wie das ganze denn für mich war.
…DAX Vorstandsgehälter
tagesschau.de verkündete heute: die Wissenschaft hat festgestellt, dass DAX Vorstand viel Gier enthält.
Chefs verdienen 50 Mal so viel wie Angestellte…
Das klingt ja erstmal noch harmlos. Ein deutlicher Abstand, aber okay - die tragen ja auch das Risiko, blablabla.
In einem Jahr also 50 “durchschnittliche” Jahresgehälter. Dazu eine einzige, kleine Überlegung:
Wieviele Jahre arbeitet Mensch nochmal insgesamt zwischen Ausbildung und Rente?
Und schon sieht die Zahl schon nicht mehr nur mondän, sondern bloß noch unverschämt aus.
…Die USA, ein Reiseführer
Wir sind gerade wieder in Kalifornien und es gibt ein paar Unterschiede zu heimischen Gepflogenheiten, die wir uns merken wollen, damit wir sie nicht jedes Mal neu entdecken müssen.
Und wenn wir das schon sammeln, warum nicht öffentlich, damit es unter Umständen noch jemand anderem hilft?
Allgemein
- Wenn irgendwo gefragt wird, ob die deutsche Visa-Karte “Credit” oder “Debit” ist: Sie ist Credit. Visa Debit gibt es bei uns anscheinend nicht.
Verkehr
- Die Automatikschaltung in Autos ist oft so gesperrt, dass man aus der Parkposition nur herauskommt, indem man beim Schalten die Bremse drückt.
- Ebenso muss man zum Entfernen des Schlüssels in der Parkposition sein. Auch hierfür wird die Bremse benötigt und das Auto zumindest elektrisch am Laufen sein.
- An roten Ampeln darf man rechts abbiegen, es sei denn, ein Schild verbietet es.
- Tanken: Die Zapfhähne haben eine Gummimanschette am Hals, die zusammengedrückt werden muss, daher: feste in den Tank drücken.
Haushalt
- Der Müllschlucker in der Spüle wird oft von einem Gummideckel abgeschlossen. Der sollte entfernt werden, bevor Wasser im Becken landet, sonst klemmt’s.
"bad listen address format" docker error on Debian (and elsewhere)
I just encountered an issue on my Debian sid (“unstable”) system where docker wouldn’t start due to incompatibilities between its components.
On my search on the net, I found various proposals to just downgrade containerd, but I thought that’s kinda lame (and it’s also tedious to make sure that all the dependencies are still met and upgrades still work for everything else).
The sign that something went wrong was this message in the log:
…Seagate's 8TB "Archive" disks
So last year I bought two of Seagate’s (comparably) cheap Seagate hard drives for archival, model ST8000A0002, but never was quite happy with them.
They came with two different firmware versions (AR13 and AR15), but both hung the SATA bus all the time, corrupted the file system that was on them due to this, and eventually collected their bunch of uncorrectable errors.
When they both had >3000 of these errors, I RMA’d them. Seagate was pretty fast, I got the new disks in less than a week, and I was quite surprised to see that they ship with a new firmware: AR17.
…Filterblasen
Derzeit sind Filterblasen und “Fake-News” ja in aller Munde. Ich frage mich, wo die große Aufregung herkommt, denn beides sind keine neuen Phänomene.
Es gibt gegenüber “früher” nur zwei Änderungen: Erstens heißt es nun anders, zweitens sind diese Dienstleistungen (denn um nichts anderes geht es dabei) nun jedem zugänglich, während sie früher Luxusdienste waren, die vor allem einer kleinen Schicht zur Verfügung standen.
Es handelt sich um: Claqueure, Jupelperser, Ja-Sager, Schmeichler, Opportunisten, Abnicker. Es gibt noch viele weitere Bezeichnungen.
…Updated gerrit account merge script
Since 2014, there were a number of changes to gerrit’s database schema, which required an update to the script we use to merge accounts. Publishing here because why not?
#!/bin/sh
# Copyright (C) 2016 Patrick Georgi <patrick@georgi-clan.de>
# licensing: ISC license terms
#
# usage: $0 id-to-keep id-to-merge
HOST=review.coreboot.org
PORT=29418
if [ $# -ne 2 ]; then
echo "usage: $0 id-to-keep id-to-merge"
exit 1
fi
KEEP=$1
MERGE=$2
if [ `expr $KEEP + 0` -eq 0 ]; then
echo "$KEEP is not an id"
exit 1
fi
if [ `expr $MERGE + 0` -eq 0 ]; then
echo "$MERGE is not an id"
exit 1
fi
ssh -p $PORT $HOST gerrit gsql << _EOF
-- BEGIN TRANSACTION;
UPDATE account_external_ids SET account_id=$KEEP WHERE account_id=$MERGE;
UPDATE account_group_by_id_aud SET added_by=$KEEP WHERE added_by=$MERGE;
UPDATE account_group_by_id_aud SET removed_by=$KEEP WHERE removed_by=$MERGE;
UPDATE account_group_members SET account_id=$KEEP WHERE account_id=$MERGE;
UPDATE account_group_members_audit SET added_by=$KEEP WHERE added_by=$MERGE;
UPDATE account_group_members_audit SET removed_by=$KEEP WHERE removed_by=$MERGE;
UPDATE account_group_members_audit SET account_id=$KEEP WHERE account_id=$MERGE;
UPDATE account_project_watches SET account_id=$KEEP WHERE account_id=$MERGE;
UPDATE change_messages SET author_id=$KEEP WHERE author_id=$MERGE;
UPDATE changes SET owner_account_id=$KEEP WHERE owner_account_id=$MERGE;
UPDATE patch_comments SET author_id=$KEEP WHERE author_id=$MERGE;
UPDATE patch_sets SET uploader_account_id=$KEEP WHERE uploader_account_id=$MERGE;
-- there may be unique constraint violations in these, so transfer what's possible
-- and remove the others. being duplicates, they won't be too important anyway.
UPDATE IGNORE patch_set_approvals SET account_id=$KEEP WHERE account_id=$MERGE;
DELETE FROM patch_set_approvals WHERE account_id=$MERGE;
DELETE FROM accounts WHERE account_id=$MERGE;
-- COMMIT;
_EOF
ssh -p $PORT $HOST gerrit flush-caches