disruptive… resilient… advocate…

und:

Visionary companies are guided by a mission, not just a sustainable business model, and seek out challenges that can help move humanity forward.

Das sind nur einige goldene Worte aus „Scripting the Future“, einem lesenswerten Blog-Eintrag auf StackOverflow von CEO Prashanth Chandrasekar über den Wandel der IT beim Eintritt in eine neue Dekade.

JHipster in Unterfranken

Gesucht: jhipster-Mitarbeiter.
Was ist JHipster?
=>Wikipedia
=> Aktueller JavaPro-Artikel
=>JHipster-Webapp
=>JHipster-Studio
=>JHipster Unterfranken

Gut. Wieso kein WordPress, kein php? Doch, das auch. Ist doch hier ein WordPress.

WordPress ist nur keine Kombination aus einem Spring framework im Backend und einem an diese API angebundenen Angular framework mit SASS und jeglichem Pipapo im Frontend. Und JHipster liefert alles mit aus, was es benötigt, um höchstprofessionelle, skalierbare, sichere, mehrsprachige, benutzerfreundliche und hoch individualisierte Webanwendungen zu bauen und sich dabei an einem feinen Regelwerk der Handwerkskunst zu orientieren.

Spring Data JPA vs. Spring Data JDBC

Spring Data JPA (im Folgenden: JPA) ist im Abstraktionsgrad über Spring Data JDBC (im Folgenden: JDBC).

Mit JDBC müssen eigene Abfragen in SQL geschrieben werden, die „result sets“, also die zurück gelieferten Daten, müssen selbst geparst werden und sollen aus Objekten datenbank-konforme, ggf. relationale Daten oder aus diesen Daten wieder Objekte erstellt werden, muss auch das per Hand erfolgen. Das bedeutet unter anderem, man muss die SQL der jeweiligen Datenbank kennen.
Bei wenigen Datenbank-Aktionen ist JDBC eine große Erleichterung verglichen mit den noch weniger abstrahierten Zugriffen über direkte Sockets und der direkten Verwendung des jeweiligen Datenbank-Drivers.
Diese beiden Varianten sind die beiden schnellstmöglichen Wege, Datenbank-Zugriffe mit Java zu erreichen.

Mit JPA wird eine weitere Abstraktion hinzu gefügt. Über Entities (Objekte) werden Einträge in einer Datenbank (Tabellen und Felder) über Annotationen in den jeweiligen Klassen den Objekten und deren Eigenschaften zugeordnet. Mit Spring wird dazu ein Repository verwendet, eine Klasse, die sich um die CRUD-Operationen (create, read, update, delete) der jeweiligen Entity-Klasse kümmert.

Test driven development

Between too low and too slow – test modules!

Ein Modul:
– kann eine bis mehrere dutzend Klassen umfassen
– kapselt seine Daten (access only via API)
– hat klar definierte Co-Worker / „collaborators“ und APIs
– umfasst (fast) alle Software-Schichten (vertical slicing)
– erinnert an einen Microservice bzw. ist ein guter Kandidat dafür, einer zu werden
– arbeitet in einem begrenzten Kontext, d.h. Worte haben ihre eigenen Definitionen bzw. Klassen

DAG, Blockchain und die Kombis a la Radix & Co.

DAG, DAG, DAG, die Entenfamilie weiß Bescheid!
Merken: Directed Acyclic Graphs, ein „blockless distributed ledger“

Bei CryptoCandor finden sich eine Menge Informationen. Die gute Dame spricht schnell, macht aber vieles verständlich:

Vergleich zwischen Blockchain und DAG

DAG scaling issues & Aims of Radix

WordPress…

…umziehen in einen Docker-Container, Datenbank ebenso in einen Docker-Container wechseln und dabei gleich auf mariadb switchen.

Und dann ist das Einloggen in mein WordPress 5 buggy! Die Lösung erstmal per docker exec -it mariadb mysql -p:

  • mysql> DESCRIBE wp_wfBlocks7;
  • mysql> ALTER TABLE wp_wfBlocks7 CHANGE id id BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT;
  • mysql> DESCRIBE wp_usermeta;
  • mysql> ALTER TABLE wp_usermeta CHANGE umeta_id umeta_id BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT;

Einloggen geht wieder, in meinem jahrealten WordPress.
Und das WordPress-Update auf 5.2.3? „WordPress aktualisieren. Momentan wird eine andere Aktualisierung durchgeführt.“ Echt jetzt?

  • mysql> DESCRIBE wp_options;
  • mysql> SELECT DISTINCT(option_id) FROM wp_options ORDER BY option_id;
  • mysql> SELECT * FROM wp_options WHERE option_id=0;
  • mysql> UPDATE wp_options SET option_id = option_id +1 ORDER BY option_id DESC;
  • mysql> ALTER TABLE wp_options CHANGE option_id option_id BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT;

Und Beiträge schreiben?

  • mysql> ALTER TABLE wp_posts CHANGE ID ID BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT;
  • mysql> UPDATE wp_postmeta SET meta_id = meta_id +1 ORDER BY meta_id DESC;
  • mysql> ALTER TABLE wp_postmeta CHANGE meta_id meta_id BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT;
  • mysql> UPDATE wp_terms SET term_id = term_id +1 ORDER BY term_id DESC;
  • mysql> ALTER TABLE wp_terms CHANGE term_id term_id BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT;

Durch die Aufteilung der früheren Tabellen categories, post2cat, und link2cat in wp_terms (den Termini), wp_term_taxonomy (Zuordnung der Termini zu  Beitrags-Tags, Beitragsformaten bzw. Beitrags-Kategorien) und wp_term_relationships (Zuordnung der Beiträge zu den entsprechenden Termini) ist hierbei Unordnung eingezogen, die manuell zu bereinigen war.

Dann noch ein echo „# BEGIN WordPress“ > .htaccess ins root-Verzeichnis und im WordPress-Dashboard unter „Einstellungen“ die Permalinks-Einstellungen gewechselt und zurück gewechselt – dann funktionieren die auch wieder…

IT Ab use

Bezüglich meiner Urteilsfähigkeit muss ich ein bisschen aufpassen. Was ich in den letzten fünf Jahren an mangelnder Flexibilität und zeitfressendem Ping-Pong ohne tragfähige Lösungen erlebte und noch erlebe trotz – oder gerade wegen – dem Einsatz etablierter Systeme und Konstrukte, hat mich erneut geprägt. Wir waren davor auf einem weitaus besseren Weg. Und dazu waren nicht nur „unter anderem“, sondern „vor allem anderen“ auch Regelungen durch Lizenzbeschränkung bis hinunter zu Funktionsfehlern durch das zwanghafte Einprogrammieren der Lizenz-Beschränkungen ursächlich.

Ein weiterer Teil liegt zusätzlich auch an der Entwicklung der IT insgesamt. Die wir bisher so alle prägten und so förderten, wie sie sich entwickelte.

In diese Sackgassen möchte ich mit keinem neuen Aufbau kommen. Systeme, die Windows voraussetzen, setzen eben ein Windows voraus, das zum weiteren Systemaufbau mit Windows zwingt. Soll so ein Kreislauf projektiert werden, werde ich administratorisch nicht dafür verantwortlich sein.

Das geht auch nicht, da ich gleichzeitig Datenschutzbeauftragter bin und mit Windows und dem Einsatz anderer Software aus amerikanischen Schmieden kein Datenschutz mehr möglich ist (gesetzlich geregelt seitens der USA durch den Cloud-Act seit März letzten Jahres). Bekommen wir Lösungen auch ohne Windows-Systemzwang hin, sind nicht in Deutschland ansässige IT-Firmen dennoch nicht mehr deutscher Gesetzgebung unterworfen. Bei Privatisierung von Wasser und Häfen durch Chinesen schreit jeder laut auf, in diesem Bereich nicht, da fördern wir das nur immer weiter.
Zudem lässt ein Vendor-Lock-In keinen eigenen Verantwortungsspielraum mehr frei, keiner deutschen Firma, keiner Regierung. Amerika kann Europa jetzt schon einfach jederzeit abschalten. Allein dass uns das allen bewusst ist und wir dennoch nichts an unserem täglichen Handeln ändern, finde ich mindestens befremdlich. Das ist ein großer Unterschied zum Zusammenbruch der Weltwirtschaft: Systeme „stromlos“ setzen können auch Terroristen und die USA mauserte sich zum beliebtesten Ziel. Terroristen im Sinne einer Oligarchie von Irren im Gegensatz zu Handlungen im Konsens breiter Massen, gegen die auch ein Präsident der USA nicht ankommt.

Ich fürchte mich weniger davor, dass wir ein technisches Versagen – gerade bei Open-Source mithilfe einer ungeregelten und somit ungesteuerten Community – nicht wieder hin bekommen, als davor, dass unser Handeln die Grundlage eines vernichtenden Urteils der kommenden Generationen über uns bildet. Und ein Erwachen aus selbstverschuldeter Grausamkeit, in der liebe Omas und Opas kleine Rädchen waren, die die Grausamkeit sogar ohne eigenem vermehrten Nutzen und unwillentlich förderten – repetitio non placet. IT und Menschlichkeit schließen sich logisch eh schon in weiten Bereichen aus. Computer müssen z. B. nie auf Toilette…

Manche Entwicklungen dürfen und sollten wohl länger dauern und müssen vielleicht auch teilweise schmerzlich sein, wenn nur die „Community“ daran wächst. „Community“ ist immerhin noch der Begriff für eine menschliche Interessensgemeinschaft, ggf. sogar eine nahe an der griechischen Demokratie wie Communities im Internet. Oder für die Belegschaft einer Firma. Oder für die Bürger eines Staates. Oder für die schrumpfende Gemeinschaft an genug ausgebildeten Fachkräften in Deutschland, die die überlebensnotwendigen Werkzeuge um uns herum noch verstehen, beherrschen und eingreifen können.

Die Sicherheit eines langjährig eingesetzten Systems liegt meiner Ansicht nach aber nicht nur in der Technik und der Software dahinter allein begründet.

Entscheidungsgewalt haben die, die sich überhaupt noch dazu trauen, in Deutschland ein Unternehmen zu führen. Da gibt es eben auch vieles zu bedenken, bevor die Späne fallen.

Mein Leben als Datenschutzbeauftragter o. b. B.

– ein Netzwerk, das man vergrößert, hat eine größere Angriffsfläche.

– mehr Verantwortliche bedeuten auch mehr Zugriff auf Firmendaten. Unter vielem anderen kann auch der Inhalt der für die internen Mitarbeiter geschützten Verzeichnisse von externem, philosophisch-moralisch ungeschultem und weder Ihrer noch unserer Firma sonderlich verbundenem IT-Fachpersonal eingesehen werden.

– von den Angestellten und dem Chef unbemerkte, direkte Zugriffe durch Personal externer Teams auf unsere Systeme können definitiv niemals ausgeschlossen werden, wenn das Intranet kein Inhouse-Netzwerk ist.

– bei allen externen Teams gibt es ebenfalls Mitarbeiter-Fluktuation jenseits jeder Einschätzungsmöglichkeit der Risiken für Folgeschäden aus Sicht der Geschäftsführung.

– die immer fähigere Hardware, die unter unseren virtuellen Systemen liegt und diese vernetzen, kommt aus Ländern mit diktatorischem Regime, die komplett konträre Interessen zu unseren haben.

– auch Venenscanner können schon mit Bienenwachs-Händen überlistet werden (usw. usw.), IT-Sicherheit ist ein Fachgebiet mit sehr kurzlebigen Lösungen.

– Cloud-Systeme sammeln Dienste, offene Ports und vielzählige Software-Konstrukte mit Millionen Zeilen Code und sind deswegen lohnende Ziele.

– die Betriebssysteme, die wir momentan einsetzen, werden von mehreren Regierungen als hoch unsicher eingestuft und jeder ist sich des Verstoßes gegen das Datenschutzgesetz durch den – aus europäischer Sicht irländischen – Softwarehersteller bewusst, der zudem am wenigsten an einem gesunden, staatstragenden Wirtschaftskreislauf interessiert ist, da er wie alle großen IT-Unternehmen quasi staatenlos geworden ist.

– gleichzeitig sind alle Daten, die mithilfe von Codezeilen aus den USA gespeichert wurden, unter dem direkten Zugriff der amerikanischen Regierung und Herrn Trump – seit März letzten Jahres sogar hochoffiziell gesetzlich geregelt mit dem „Cloud-Act“.

– die Ausbildung von international gleichwertigen Fachkräften wurde in Deutschland auf breiter Front vernachlässigt, weswegen man auf der Hannover-Messe viele „Innovationen“ sieht, die bereits von Kindern, die zum Lego-Spielen fähig sind, „programmiert“ werden können – natürlich im von IT-Fachkräften vorgegebenen Rahmen. Das führt immer mehr dazu, dass Menschen Maschinen und Computer bedienen, ohne ausreichend ausgebildet zu sein, diese zu verstehen und in der Lage zu sein, Herrschaft über diese zu gewinnen. Das macht aus manchen IT-Fachkräften, die viele andere IT-Fachkräfte an ihren Fäden spielen lassen, Götter der restlichen Menschheit (allerdings eher die griechische „Götter“-Version).

Auch gesellschaftlich gesehen „Im Westen nichts Neues“: die IT profiliert sich zum überlebensnotwendigen Werkzeug, weil wir Regierungen fördern, die am Arbeitsplatz interessiert sind und nicht am Menschen – mit dem Erfolg, dass der diplomatische Status und der zusätzliche Aufschlag auf das Gehalt, das gegen Bestechlichkeit helfen soll, langsam von Politikern und systemimmanenten Monopolstrukturen auch auf IT-Fachkräfte ausgeweitet werden.

„Hooray!“