Race to the Bottom

https://www.danisch.de/blog/2022/01/27/die-low-code-idee-von-der-fachkraeftefreien-softwareerstellung/

Applikationen und Programme beruhen auf Quellcode. Den zu erstellen ist aufwendig. Bei “Low-Code-Applikationen” entfällt der Code … Irgendwie haben wir den Peak Hirn überschritten, sind wir gerade auf dem Weg in die Piktogramm- und Anklick-Gesellschaft … Nachdem alle Versuche, an Fachkräfte zu kommen, fehlschlugen, muss es dann jetzt wohl die fachkräftefreie Erstellung von IT-Systemen sein … das … Ziel ist, Deutschland an die Spitze der weltweiten IT zu bringen.

Die, die es können, wollen nicht zu uns. Im Gegenteil, wer es kann und wem es möglich ist, der haut ab. Niemand hat Lust auf erdrückende Steuern und Sozialabgaben, die dann für ideologische Wolkenkuckucksprojekte zum Fenster hinausgeworfen werden.

Und die einzigen, die noch zu uns wollen, können es nicht.

Aber das macht doch nichts. Wir redefinieren „Programmieren“ einfach als „Low-Coding“, da muss man nur noch Mäuse schubsen und Linien ziehen können.

Ob das helfen wird? Man kann die Realität ignorieren, aber man kann nicht die Folgen dieser Ignoranz ignorieren (Ayn Rand). Was wir in der Cephei jedenfalls sehen, ist, dass die Anforderungen der Kunden ständig höher werden. Verzweifelt gesucht sind diejenigen, die ohne Debugger den Code im Hirn ablaufen lassen können. Mäuseschubser und Linienzieher hingegen sind überhaupt nicht mehr vermittelbar, zumindest unserer Markterfahrung nach.

Ich finde das auch gar nicht verwunderlich. Die Komplexität der Systeme steigt rasant, und damit auch die Fehleranfälligkeit und das Sicherheitsrisiko.

Deutschland an der IT-Weltspitze? Vielleicht als abschreckendes Beispiel, dass woke Schneeflöckchen-Opferkult-Gendergaga-Anstalten vieles hervorbringen mögen, aber bestimmt keine Programmierer auf universitärem Niveau.

„Sehen Sie nach Deutschland! Dann wissen Sie, wie es auf gar keinen Fall geht!“ Auch eine Form der Spitzenleistung, nicht?

Altlasten

https://www.heise.de/news/Rechenfehler-im-Linux-Kernel-erlaubt-Rechteausweitung-6333365.html

Im Linux-Kernel haben Softwareentwickler eine Schwachstelle entdeckt, durch die angemeldete Benutzer ihre Rechte ausweiten können. Zum Beweis haben sie Exploit-Code entwickelt, der die Schwachstelle unter Ubuntu 20.4 sowie in Googles gehärtetem Container-Optimized OS demonstrieren soll.

if (len > PAGE_SIZE – 2 – size) ergibt einen Integer-Underflow, wenn size >= 4095. (PAGE_SIZE ist offenbar eine Konstante mit dem Wert 4096, und alle Variablen sind offenbar unsigned int). Naja. Unseren täglichen C-Pufferüberlauf gib uns heute. Was ich allerdings wirklich spannend finde, ist der Fix: if (size + len + 2 > PAGE_SIZE). In wiefern soll das helfen? Wenn size > sizeof(MAX_UINT) – len – 2 knallts doch gleich wieder, oder übersehe ich da etwas?

Mit Java wäre das nicht passiert, kann man da nur sagen… entweder schreibt man eine Prüfung davor:
if ((size + len + 2 < size) || (size + len + 2 > PAGE_SIZE))
oder man benutzt check_add_overflow(), würde ich meinen. Mit elegant und intuitiv ist es dann aber Essig.

Intel auf neuen Wegen

https://www.tomshardware.com/news/intel-to-unveil-bitcoin-mining-bonanza-mine-asic-at-chip-conference

Intel will offenbar ins Crypto-Mining-Business. Sind ja reichlich spät dran damit. Wieviele Bitcoins gibt es eigentlich noch? Aber egal, solange jeden Tag 5 neue Crypto-Währungen erfunden werden, bleibt vielleicht trotzdem noch genug Geschäft übrig.

Guter Code ist überbewertet, bunte Farben sind viel wichtiger

https://www.golem.de/news/mozilla-firefox-fehler-von-gross-und-kleinschreibung-ausgeloest-2201-162418.html

Mozilla hat den Fehler in seiner HTTP/3-Umsetzung gefunden, der für den weltweiten Ausfall des Firefox-Browsers gesorgt hatte. Wie bereits schnell nach dem Ausfall bekannt geworden ist, hat eine Änderung bei einem von Mozilla genutzten Cloud-Dienst den Fehler ausgelöst. Wie nun aus dem dazugehörigen Bug-Report hervor geht, hat dieser offenbar das Header-Feld Content-Length: geändert, und der Firefox dieses daraufhin falsch geparst.

Gestern fiel weltweit der Firefox-Browser aus und ging in eine Endlosschleife. Schuld daran war fehlerhaft geparste Groß- und Kleinschreibung, heißt es. Fefe scheibt aber, und das kann ich bestätigen, wer im Firefox die Telemetrie abgewählt hatte, war nicht betroffen. Doch auch die Telemetrie ist offenbar nur der Trigger, der Fehler soll schon lang (seit V91) im Code sein.

Vor Microsoft war es immer so, Groß- und Kleinschreibung war selbstverständlich unterschieden. Inzwischen gibt es zwei Welten, und die kollidieren immer mal wieder miteinander. Das ist wohl einer der beliebtesten Fehler überhaupt, den case-insensitive compare zu übersehen. strcmpi() und so weiter.

Ich persönlich bin gespalten, was ich besser finde. Klar, das ist angenehm, wenn man sich nicht über die präzise Schreibung Gedanken machen muss, und es tippt sich einfach schneller ohne Caps. Aber es ist natürlich eine zusätzliche Fehlerquelle, und besonders tückisch deshalb, weil es vielleicht erst viel später auffällt. Wie Mozilla gerade vorgemacht hat.

Andererseits, wenn einem „Political Correctness“ wichtiger ist als die Qualität des Codes, dann ist strcmpi() wohl das kleinste Problem.

Context Caching in Spring Tests

https://rieckpil.de/improve-build-times-with-context-caching-from-spring-test/

Bei Projekten mit Unit- und Components-Tests für Services haben wir immer mal wieder das Problem, dass die Build-Zeiten explodieren, weil die Tests zu lange dauern. Dieser Artikel erklärt sehr gut, wie der Spring Test Context Caching Mechanismus genutzt werden kann, um solche Tests erheblich zu beschleunigen.

Auf was man dabei achten muss, ist vielen Entwicklern gar nicht bekannt, aber der erzielbare Performance-Gewinn lohnt die Mühe. Bei einem unserer Projekte hatten wir kürzlich ein Problem dieser Art – mit dem Einsatz der im Artikel beschriebenen Techniken konnte der Service-Test vierfach beschleunigt werden.

(Scrollen Sie den eingebetteten iFrame etwas nach unten, um das zweite eingeblendete Overlay bestätigen oder ablehnen zu können)

Anachronismen

https://www.golem.de/news/hpe-patch-zerstoert-77-tbyte-an-forschungsdaten-an-kyoto-uni-2201-162121.html

Die Kyoto-Universität in Japan hat Ende 2021 77 TByte an Forschungsdaten verloren. Der Grund: Ein Script-Update hat die Backups von den Servern gelöscht … verteilte ein Update für ein Backup-Script, das Log-Dateien nach zehn Tagen automatisch löscht. Dabei sollte nur dessen Sichtbarkeit und Nachvollziehbarkeit durch neue Variablennamen verbessert werden. Stattdessen habe das Script aber beim Aufspielen ein anderes, laufendes Bash-Script überschrieben – undefinierte Variablen und das anschließende Löschen echter Dateien statt Loggingeinträgen waren die Folge.

Ich bin mir natürlich nicht sicher, aber es hört sich schon sehr nach der alten Script-Krankheit von Linux an: Ein laufendes Script wird direkt von der Festplatte abgearbeitet, und zwar so, wie das seinerzeit unter MS-DOS passiert ist. Hingegen laden fast alle modernen Systeme inzwischen, wegen genau solcher Probleme, wie sich das für die Kyoto-Universität anhört, Scripte in den Speicher und führen sie von dort aus. Dann ist es egal, ob das Script auf der Platte bearbeitet wird – dessen geänderter Code wird ja erst mit dem nächsten Start ausgeführt.

Natürlich sollte es in Linux aber eigentlich gar kein Script geben, das dauernd ausgeführt wird und selbst steuert, wann es was machen soll. Dafür wäre die crontab zuständig. Das behebt das Risiko zwar nicht, reduziert es aber erheblich. Und für solche Fälle, die mit crontab nicht abgebildet werden können, gibt es dann noch inotifywait. Aber das sind alles nur Notbehelfe.

Ich hoffe schon lange, dass endlich Scripte unter Linux nicht mehr direkt von der Festplatte ausgeführt werden. Ich fühle mich dabei immer so steinzeitlich. Mir erschließt sich auch der Sinn nicht, denn es gibt überhaupt keinen zuverlässigen Weg, das für irgendwas auszunutzen (weil man nämlich nicht wissen kann, an welcher Stelle des Scriptes gerade ausgeführt wird). Vielleicht kann die leidgeprüfte Kyoto-Universität da nun etwas ausrichten.

Gewissensfrage

https://www.konjunktion.info/2021/12/schweden-impfstatus-per-mikrochip/

Der Impfchip ist keineswegs „Verschwörungstheorie“, sondern längst Realität. Oder was dachten Sie, was der Hintergrund der Kampagne zur Jagd auf gefälschte Impfpässe ist?

Implantierbare Chips sind allerdings schon überholt und höchstens ein Zwischenschritt. Das tatsächliche aktuelle Ziel ist die subkutane „Quantum Dots“-Markierung von Gates.

Es gibt ja sehr viele Programmierer, die sich aus ethischen Gründen weigern in der Kriegswaffen-Industrie zu arbeiten. Wird es langsam Zeit, diese ethischen Gründe auch auf die Mitarbeit in „Big Data“-Projekten auszudehnen?

Apache2 absichern

https://www.tecmint.com/apache-security-tips/

Apache2 kann mehr, als es „out-of-box“ vermuten ließe. In diesem Artikel finden Sie eine Reihe von Tipps, um Apache2 robuster und sicherer zu konfigurieren.

Koloss auf Streichholzfüßen


(Quelle Bild: xkcd https://xkcd.com/2347/)

https://www.nzz.ch/technologie/log4-und-open-source-das-internet-basiert-auf-freiwilligenarbeit-ld.1660414

Wo wäre die IT-Welt ohne Open Source? Und was würde passieren, wenn die Legionen von Freiwilligen keine Lust mehr hätten, umsonst zu coden damit sich andere daran eine goldene Nase verdienen?

Wer sich für Open Source engangiert, tut es aus Idealismus. Er will einen kleinen Beitrag leisten für eine bessere Welt, und er hofft, dass Software diese ermöglichen kann. Vielleicht ist ihm das mit der goldenen Nase also egal. Wenn er aber erkennt, dass seine Arbeit zum Bösen verwendet wird?

In dieser Welt liegt unglaublich viel Macht bei den guten Menschen, aber sie trauen sich nicht, sie zu nutzen. Weil sie zu brav sind.

Eine schwarze Katze geht um

https://thehackernews.com/2021/12/blackcat-new-rust-based-ransomware.html

Die erste Ransomware, die mit der Sprache „Rust“ geschrieben wurde, ist unterwegs. Die Sicherheitsforscher vom „MalwareHunterTeam“ haben sie auf den Namen „BlackCat“ getauft.

Es ist ein aktueller Trend in der Blackhat-Szene, möglichst neue und noch wenig verbreitete Programmiersprachen für ihren Schadcode zu verwenden. Man verspricht sich davon, Virenscanner länger täuschen zu können, sowie das Reverse-Engineering zu erschweren.

Elefant im App-Store

Suchen Sie noch ein Weihnachtsgeschenk für Ihren Programmierer-Nachwuchs? Ist sogar kostenlos!

Und sobald Ihre Lütten lesen können, geht es mit der Maus weiter.

Advent of Code

https://adventofcode.com/

Sorry, ich bin ein wenig spät dran. Wer nach der Arbeit noch nicht genug hat, kann bei diesem Adventskalender für Programmierer jeden Tag eine neue Aufgabe lösen.

Der Weihnachtsmann zählt auf uns! Wenn nicht alle 50 Sterne bis zum 25. gefunden werden, muss Weihnachten leider ausfallen.

Kubernetes Defaults sind unsicher

https://www.stackrox.io/blog/kubernetes-security-101/

(…) 87 percent of organizations are managing some portion of their container workloads using Kubernetes. The same survey shows that 94 percent of organizations have experienced a serious security issue in the last 12 months in their container environment, with 69 percent having detected misconfigurations, 27 percent experiencing runtime security incidents, and 24 percent discovering significant vulnerabilities to remediate.

https://www.tigera.io/learn/guides/kubernetes-security/

Kubernetes Security Best Practices (…) Here are a few best practices that can help you secure Kubernetes clusters and workloads throughout the software development lifecycle.

Kubernetes hat revolutionäre Fortschritte in der Bereitstellung, Skalierung und Verwaltung von Container-Anwendungen erbracht und ist deshalb sehr erfolgreich. Leider liegt aber bisher das Augenmerk dabei nicht unbedingt auf Sicherheit. Wer sich auf die Default-Einstellungen verlässt, öffnet diverse Angriffsvektoren.