Improve yourself

Selbstreflexion mithilfe meiner geliebten Frau. Sehr gut. Danke für Deine Empathie, Hartnäckigkeit und dass Du nicht müde wirst, daran zu glauben, dass auch ich dazu lernen kann, trotz aller Rückschläge in den letzten neun Jahren und der Tatsache, dass ich mein Leben noch immer nicht selbst im Griff habe. Wie alle Frauen bist Du besser als wir verzogenen Patriarchen (mehr im Sinne von „archon“ als von „Bischof“), für mich aber eh die Beste!

Danke an Waldemar Zeiler für „Unfuck the economy„. Ein Augenöffner. Momentan bin ich dankbar für jede Zeile in „Unsere Welt neu denken“ von Maja Göpel. Danke dafür, dass auch Ihr Euer Wissen, Euer Können und Eure Erfahrung so großzügig für ein paar Euro mit mir teilt!

Angriff auf den trägen Allerwertesten. Ich habe neue Informationen über mich bekommen: meine Hüfte ist schief, mein eines Bein wäre verkürzt und die Muskeln an meinen Schultern vorne sind ebenfalls verkürzt.

Zudem sei ich, so die psychologische Analyse, ein Kontrollfreak und Kopf-Mensch, dessen Stärke und Schwäche zugleich die logische Analyse sei. Ich müsse loslassen lernen, mich auch einmal distanzieren und mir größere Pausen von Analyse und Kontrolle verschaffen. Der generelle Tipp – wohl für die meisten: „Nein“ solle in Wort und Denken wesentlich mehr integriert werden.

Klingt nach den Folgen u.a. eines Lebens in der IT: 1989 habe ich mich vor den ersten eigenen Computer gesetzt (Atari Mega ST 1, yeah!) und bin scheinbar seitdem nicht mehr davon aufgestanden und daraus aufgetaucht. Auch 2021 funktioniert nur die Logik, wie dereinst bei Wilhelm Schickard, Ada Lovelace, Konrad Zuse und Alan Turing. Kein bisschen Empathie in der künstlichen Intelligenz. Dystopische Science-Fiction? Die Maschine regiert den Menschen schon längst, wir wollen das so, seitdem Preußen dem ersten sozio-ökonomischen Großbund neuer Prägung seine Tugenden überstülpte (ca. 1815, bei einer Milliarde Bevölkerung), in der „wir“ mit den jetzt vorhandenen, großen Bündnissen schon 7,8 Milliarden im preußischen Militärschritt über die Welt marschieren lassen.

 

 

Die heutige Kollekte

start green: https://start-green.net

Grüne Startups: https://gruene-startups.de

Bundesverband Deutsche Startups e.V.: https://deutschestartups.org/community/plattformen/greenstartups

Beginners to Open Source: https://opensource.com/resources/beginners-open-source

17 years of defending open source: Join the OSI today (2015): https://opensource.com/life/15/2/defending-open-source-join-osi-today

Vis (1): https://luxurycroatia.net/property/old-stone-house-land-island-vis-sale

Vis (2): https://www.njuskalo.hr/nekretnine/vis-podspilje-imanje-1794-m2-kucom-maslinikom-oglas-32857927

Change your world…

Q# und das QDK – Teil 1

Die drei zentralen Phänomene des Quanten-Computings:

  • Superposition oder auch Kohärenz (en.: superposition)
    Die Position in Raum und Zeit quantifizierter Teilchen (in Raum und Zeit), sich mit einer gewissen Wahrscheinlichtkeit in dem einen Energieniveau oder den einen physikalischen Zustand zu positionieren und einer gewissen Wahrscheinlichkeit, sich in einem anderen Energieniveau oder einen anderen physikalischen Zustand zu positionieren.
    Alle möglichen Positionen eines quantifizierten Teilchens fasst die Wissenschaft momentan in einer Wellenfunktion Ψ zusammen. Die real meßbare Wahrscheinlichkeit zu jeder dieser Positionen wird dabei erst durch Quadrierung der Wellenfunktion erlangt.
     
  • Quantenmessung oder Dekohärenz (en.: quantum measurement)
    Die wissenschaftlichen Theorien der Quantenphysik analysieren das Problem eines Energieniveaus oder physikalischen Zustands, bei welchem mehr Energie vorhanden ist als für „den Grundzustand“ notwendig, aber zu wenig, um ein nächstes Level zu erreichen. Ist zum Beispiel 30 Prozent mehr Energie „bei einem Teilchen“ vorhanden, „befinden“ sich 70 von 100 Teilchen bei einer Messung weiterhin im Grundzustand. „Hat“ ein Teilchen dagegen 70 Prozent mehr Energie, wird es bei 70 Prozent der Messungen im anderen Zustand wieder gefunden. Die Messung „findet“ das Teilchen entweder in dem einen oder in dem anderen Zustand, da die Messung das Teilchen in den einen oder anderen Zustand hinein drückt, in dem es bis zur Messung möglicherweise nicht war. Im kurzen Fachjargon: bei einer physikalischen Messung kollabiert die Superposition. Frei interpretiert: Messung entquantifiziert Teilchen.
    In der Quanteninterferenz (en.: quantum interference) manifestieren sich Wellen- und Teilchencharakter: wie Wellen überlagern sich Wahrscheinlichkeiten der Positionen quantifizierter Teilchen und beeinflussen ihre Amplituden. Die Messung selbst beendet die Interferenz, unterdrückt die Kohärenzeigenschaften quantenmechanischer Zustände – und bestimmt somit die Position der gemessenen Teilchen mit. Das gilt auch im Fall eines verzögerten Messprozesses – das heißt: wenn quantifizierte Teilchen sich für einen Weg von vielen möglichen entscheiden, verhalten sie sich selbst dann nicht kohärent, wenn erst nach der Entscheidung gemessen wird. Das kann z.B. mit der Änderung des Interferenzmusters nach einer Beugung von Elektronen am Doppelspalt mit und ohne verzögerter Messung und weiteren physikalischen Versuchsaufbauten nachgewiesen werden: alle determinieren den indeterministischen Charakter!
     
    Ein Qubit ist – analog zu einem Bit in Binärsystemen – die Information 0 oder 1 in Superposition. Je nach „Art der Messung“ bzw. „Quanteninterferenz-Filter“ positioniert sich der Qubit-Wert auf 0 oder 1. Dazu führen in den vorhandenen Quanten-Computern der Frühphase momentan Aufbauten wie Quantum Register im Zusammenspiel mit einem Classical Register, Kombinationen von Quantum Gates ähnlich den bekannten logischen Operationen AND, OR, NOT, and XOR (siehe: Linear algebra for quantum computing) im Rahmen eines Quantum Circuits, welches an ein Quantum Backend geschickt, ausgewertet und die Auswertung per Quantum Verification überprüft wird.
     
  • Verschränkung (en.: entanglement)
    Zwei oder mehr quantifizierte Teilchen können sich miteinander verschränken: damit bilden sie einen Verbund, so dass der Quantenzustand eines der verschränkten Partikel nicht mehr unabhängig von den Quantenzuständen der anderen Teilchen beschrieben werden kann. Das bedeutet, jeder Eingriff oder jeder Prozess, der eines der verschränkten Teilchen betrifft, korreliert mit den anderen Teilchen. Findet eine Messung eines verschränkten Teilchens statt, sind alle Teilchen im Verbund von der Dekohärenz betroffen, unabhängig von der räumlichen Position, auch wenn die Teilchen Lichtjahre voneinander entfernt sind.

 
Aus den genannten Phänomenen resultiert bei Messung des Zustandes eines Qubits, dass gleichzeitig Informationen über die Zustände aller mit diesem verschränkten Qubits gewonnen werden. Darin liegt der Vorteil von Quanten-Computern im Vergleich zu den bisher entwickelten Binär-Rechnern; ein „Kern“ eines Quanten-Computers kann damit theoretisch unzählbare Kerne schlagen, die Berechnungen im binären System vornehmen.

Maus-Scrollrad no-reverse

Das Scrollen mit dem kleinen Rädchen mitten auf der Maus kann unter Ubuntu angepasst werden – wie vieles andere. Meine „Coba Nitro-X GT-300“ entpuppt sich als SINOWEALTH Wired Gaming Mouse…

(base) jochen.gebsattel@Pc32:~$ xinput list
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ SINOWEALTH Wired Gaming Mouse id=9 [slave pointer (2)]
⎣ Virtual core keyboard id=3 [master keyboard (2)]
  ⎜ ↳Virtual core XTEST keyboard id=5 [slave keyboard (3)]
  ⎜ ↳Power Button id=6 [slave keyboard (3)]
  ⎜ ↳Power Button id=7 [slave keyboard (3)]
  ⎜ ↳Sleep Button id=8 [slave keyboard (3)]
  ⎜ ↳SINOWEALTH Wired Gaming Mouse Keyboard id=10 [slave keyboard (3)]
  ⎜ ↳Cherry GmbH CHERRY Corded Device id=11 [slave keyboard (3)]
  ⎜ ↳Cherry GmbH CHERRY Corded Device id=12 [slave keyboard (3)]
  ⎣ ↳Eee PC WMI hotkeys id=13 [slave keyboard (3)]

…mit folgenden Eigenschaften…

(base) jochen.gebsattel@Pc32:~$ xinput list-props 9
Device ‚SINOWEALTH Wired Gaming Mouse‘:
Device Enabled (150): 1
Coordinate Transformation Matrix (152): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
libinput Natural Scrolling Enabled (288): 1
libinput Natural Scrolling Enabled Default (289): 0
libinput Scroll Methods Available (290): 0, 0, 1
libinput Scroll Method Enabled (291): 0, 0, 0
libinput Scroll Method Enabled Default (292): 0, 0, 0
libinput Button Scrolling Button (293): 2
libinput Button Scrolling Button Default (294): 2
libinput Button Scrolling Button Lock Enabled (295): 0
libinput Button Scrolling Button Lock Enabled Default (296): 0
libinput Middle Emulation Enabled (297): 0
libinput Middle Emulation Enabled Default (298): 0
libinput Accel Speed (299): 0.000000
libinput Accel Speed Default (300): 0.000000
libinput Accel Profiles Available (301): 1, 1
libinput Accel Profile Enabled (302): 1, 0
libinput Accel Profile Enabled Default (303): 1, 0
libinput Left Handed Enabled (304): 0
libinput Left Handed Enabled Default (305): 0
libinput Send Events Modes Available (273): 1, 0
libinput Send Events Mode Enabled (274): 0, 0
libinput Send Events Mode Enabled Default (275): 0, 0
Device Node (276): „/dev/input/event3“
Device Product ID (277): 9610, 4103
libinput Drag Lock Buttons (306):
libinput Horizontal Scroll Enabled (307): 1

…und das „Natural Scrolling“ lässt sich abschalten:

(base) jochen.gebsattel@Pc32:~$ xinput set-prop 9 288 0

Code!

„More time is spent reading code than writing code.“ Voll true, Alter.

Das heißt im Klartext, ein Programmierer – insbesondere ein guter – bekommt einen guten Stundensatz – gute Programmierer insbesondere einen sehr guten – um in dieser Zeit den Code zu lesen, den andere Programmierer bereits geschrieben haben.

Diese anderen Programmierer sind – wenn der Programmierer, der deren Code liest, ein guter ist – auch sehr gute Programmierer. Diese kosten sehr viel Geld pro Arbeitsstunde.

Schlechte Programmierer lesen – und verwenden – schlechten Code. Weil sie zu wenig guten Code zu Gesicht bekommen.

Und der Code ändert sich – bei guten Programmiersprachen – in regelmässigen Zyklen. Das ist nicht immer unter Beibehaltung von Abwärts-Kompatibilität möglich.

Manchmal kann so ein Monat für einen richtig guten Programmierer darin bestehen, fünf Zeilen Code zu schreiben.

A journey in the pursuit of excellence (2)

Uns‘ WordPress läuft in einem docker-Container. Beim Upgrade der WordPress-Installation gehen bei dem ältlichen Server, der die docker-engine antreibt, gerne die Bilder verloren!

Hier zwei kurze Tipps zur Wiederherstellung für alle, die wie ich bereits zweimal das Backup des wp-content/uploads-Ordners vergessen haben:

for i in *.png; do docker cp $i www.gebsattel.rocks:/var/www/html/wp-content/uploads/2020/02/; done

kopiert die im Dateisystem des docker-Hosts gespeicherten png-Bilder in den jeweiligen Ablage-Ordner des WordPress-Systems

und

for file in ' '; do mv -i -- "$file" "${file// /-}"; done

sucht nach einem Leerzeichen in den Dateinamen und ersetzt diese mit einem Minus, wie es WordPress beim Upload auch tut.

Teil der Reihe „A journey in the pursuit of excellence

OpenJ9 versus HotSpot JVM

OpenJ9 ist eine alternative Implementation der offiziellen Oracle HotSpot JVM engine. OpenJ9 stammt aus IBM’s Java SDK/IBM J9 und reicht zurück zu OTI Technologies Envy Smalltalk.

Während OpenJ9 im Speichermanagement die Nase vorn hat, sind die z.B. von adoptopenjdk (u.a.) angebotenen Versionen von OpenJDK, der freien Implementation des offiziellen Oracle JDK’s (inklusive HotSpot JVM engine), in der Ausnutzung vorhandener CPU-Leistung führend.

Die verschiedenen über SDKMAN! angebotenen JDK-Distributions finden sich unter https://sdkman.io/jdks.

Für Entwickler ist es neben den Vorzügen besserer Ausnutzung der für ein Projekt vorhandenen Hardware aber auch entscheidend, wie das Buildtool (z.B. gradle), ein Framework (z.B. Spring), dessen Versionskontrolle (z.B. Spring Boot) und die zusätzlich eingebundenen, externen Libraries (z.B. Lombok u.a.) inklusive aller Annotationen sich mit der jeweiligen JVM verhalten. Auch hier liegen trotz aller Hilfen durch das Framework und eine moderne IDE wieder genug Stolperfallen versteckt, um stundenlang an einer Zeile Code zu knabbern…