Bye-Bye Internet Explorer

Microsoft will sich nun schon sehr lange vom Internet Explorer trennen, und in Kürze wird es endgültig: Mitte Juni wird ein Update erscheinen, dessen einziger Zweck es ist, den IE zu löschen.

Vielleicht sagen Sie jetzt, naja na und, mit der alten Schabracke lässt sich doch schon seit Ewigkeiten sowieso nichts mehr anfangen. Nicht ganz. Der IE ist der einzige Browser mit einem COM-Modell. Und lässt sich damit nahtlos in eine Vielzahl von Anwendungen und Programmiersprachen integrieren.

Stellen Sie sich vor, Sie hätten in Excel VBA umfangreiche finanztechnische Software kodiert, die für den Betrieb auch Daten aus dem Internet benötigt. Und um das nicht alles immer per Hand einzupflegen, haben Sie den IE automatisiert, dass er die Daten holt. Und *schwupps* mit einem Federstrich macht Microsoft jetzt ihre ganze Arbeit wertlos, tausende von Zeilen, obwohl sie bis heute klaglos den Dienst verrichten. Denn der eine oder andere Darstellungsfehler bei moderneren Seiten ist bei so etwas ja egal, insbesondere da man den IE seine Arbeit komplett im Hintergrund verrichten lassen kann.

Was kann man also tun? Das Update aufschieben? Das geht nur mit den Pro-Versionen von Windows, und auch dort nur eine gewisse Zeit. Die Software in eine VM verlagern, und diese nach jedem Start auf den letzten Sicherungspunkt zurücksetzen? Mit der Zeit würde das wohl eine ziemlich unsichere Angelegenheit, weil gar keine Updates mehr eingespielt würden.

Der saubere Schritt ist hingegen die Rekodierung für eine neue Browser-Automation. Glücklicherweise gibt es nämlich für Edge, Firefox und Chrome eine Automatisierungs-Schnittstelle, sie nennt sich Selenium. Und für Excel  und Word VBA gibt es die vorzügliche Bibliothek SeleniumBasic von Florent Breheret. Sie können die Installationsdatei dafür hier downloaden.

Im Folgenden möchte ich Ihnen die ersten Schritte mit dieser Bibliothek ein wenig erleichtern.

„Bye-Bye Internet Explorer“ weiterlesen

Gewissensfragen

Vor über 30 Jahren, mein Unternehmen war noch sehr klein, nur eine Ein-Mann-GbR, und es hieß noch gar nicht Cephei, arbeitete ich dies und das. Fahrschulsoftware, Datenbank-Auswertungen, Telefonanlagen programmieren und dergleichen. Mir ging es ganz ordentlich damit, aber natürlich hätte es besser sein können.

Dann erhielt ich eine Anfrage. Die ersten Jagdflieger mit Joystick-Steuerung wurden gebaut, und man suchte Auftragnehmer für die Kodierung der nachträglichen Auswertung der beim Flug anfallenden Steuerungsdaten. Mir wurde ein, für meine damaligen Verhältnisse, geradezu märchenhafter Verdienst angeboten.

Ich habe mich schwer getan. Das schien ein Sprungbrett in eine großartige Zukunft zu sein. Und, wenn ich ablehnen würde, würde vielleicht mein gerade erst gegründetes Unternehmen gleich wieder versterben? So nach dem Motto, den braucht man gar nicht erst zu fragen, der ist so eingebildet und meint, er kann es sich aussuchen, für wen er arbeitet.

Ich lehnte ab. Ich dachte mir, wenn nur ein Kind an einer Bombe stirbt, die ein Flieger mit einer von mir mitentwickelten Steuerung abgeworfen hat, dann könnte ich mir das niemals mehr verzeihen.

Und heute also ist wieder Krieg in Europa, Russland hat die Ukraine überfallen, und keiner kann sagen, wohin das gehen wird. Ich aber habe zumindest mit den Waffen dafür nichts zu tun. Und ich weiß, meine Entscheidung von damals war richtig, und ist es immer noch.

Bei den vielen großartigen technischen Fortschritten ist unweigerlich alles in immer größerem Ausmaß von Software abhängig geworden. Ich denke, wir Programmierer sollten uns immer fragen, ob wir noch ruhig schlafen können, wenn dieses oder jenes Projekt mit unserer Denkleistung verwirklicht und auf die Menschen losgelassen wird. Ob es Waffen sind, Überwachung oder auch Big Data. All diese Dinge kommen – noch – nirgends hin ohne Programmierer, die die Software dafür schreiben.

Es läuft alles auf die eine Frage hinaus: Haben wir unseren Beruf ergriffen, um die Welt ein kleines bisschen besser zu machen? Oder interessiert uns nur der eigene Vorteil, und alle anderen sind uns egal?

„Was nützt es die ganze Welt zu gewinnen und dabei seine Seele zu verlieren?“ Matthäus 16,26

HTML5 Server-Sent Events

https://www.codingblatt.de/html5-server-sent-events/

Ein Schattendasein hinter der HTML5 WebSocket-Technologie führt die auch im Rahmen von HTML5 spezifizierte Server-Sent Events (SSEs)-Technik … Über [eine unidirektionale HTTP-Verbindung] kann der Server jederzeit Nachrichten an den Client schicken, ohne dass die Verbindung wie z. B. beim Long-Polling zwischendurch getrennt und wieder neu hergetellt werden muss.

Wenn viele Clients auf eine Webseite zugreifen, kann es ein Performance-Problem werden, wenn die alle den Server pollen. Nicht allzu bekannt ist i.d.Zshg. die Möglichkeit, Informationen an die Clients via Event zu schicken, was die Last am Server deutlich reduzieren kann. Der verlinkte Artikel beschreibt, wie HTML5 Server-Sent Events programmiert und eingesetzt werden können.

Schnelle verschlüsselte Remote-Container

Wer ein verschlüsseltes Laufwerk remote, also entweder im lokalen Netzwerk oder via Internet auf einem anderen Server, betreiben will, kennt das Problem: Egal ob man LUKS oder Veracrypt benutzt, die Performance bricht extrem ein.

Woran das liegt kann ich Ihnen zwar nicht sagen, aber es gibt für Linux-Systeme einen Weg, die reguläre Performance der jeweiligen Leitung auch für verschlüsselte Laufwerke zu erhalten.

Zunächst erzeugt man eine Datei, die etwas größer ist als das geplante verschlüsselte Laufwerk. Ein paar GB mehr reichen:

dd if=/dev/zero of=loopbackfile.img bs=1G count=100

Dies erzeugt z.B. eine Datei aus nur Nullbytes mit der Größe 100GB. Danach richtet man diese Datei als Loop Device ein:

sudo losetup -fP loopbackfile.img

Dann ein Filesystem darauf installieren:

mkfs.ext4 loopbackfile.img

Es empfiehlt sich, die Menge des für das Betriebssystem reservierten Speichers in diesem Laufwerk zu reduzieren. Da nur eine einzige Datei darauf kommt, und die (fast) den gesamten Speicherplatz einnimmt, wird kein reservierter Speicher benötigt:

tune2fs -m 0 loopbackfile.img

Jetzt das Loop-Laufwerk mounten:

mkdir loopfs
mount -o loop loopbackfile.img loopfs

Und nun kann man im Verzeichnis „loopfs“ die Verschlüsselungsdatei mit gleich welchem Verfahren anlegen und befüllen. Wenn alles erledigt ist, Crypt- und Loop-Laufwerk (in dieser Reihenfolge) unmounten, dann das „loopbackfile.img“ an die endgültige Destination hochladen – und voilà, das externe verschlüsselte Laufwerk funktioniert mit der vollen Geschwindigkeit der jeweiligen Anbindung.

(Um das verschlüsselte Laufwerk von remote zu benutzen, zuerst das Loop-File von remote mounten, und dann darin den verschlüsselten Container von quasi lokal im Loop-Verzeichnis.)

Meine Vermutung ist, wenn das Laufwerk direkt über das Netzwerk gemounted wird, sichert Linux weit häufiger die Daten hoch. Wenn es aber als Loop eingebunden ist, werden die vorhandenen Schreibcache-Möglichkeiten besser ausgenutzt, weil Linux „glaubt“, das wäre ein lokales Device. Aber das ist nur geraten, was genau die Ursache der grottenschlechten Performance für verschlüsselte Remote-Container ist, kann ich nicht sagen.

Doch als Beispiel, worum es geht: Ich hatte neulich das Problem, ein System mit sensiblen Daten auf das Netzwerk zu sichern, Anbindung 1GBit synchron. Zuerst, weil ich zu faul war, habe ich es direkt gelöst – Ausführungsdauer 14 Stunden (für den gesamten Datenbestand, ca. 180GB). Na, das war dann viel zu lang, eine so lange Blockade des Systems konnte ich nicht brauchen; obwohl natürlich nach der Initialisierung immer nur die Differenzen zu sichern sind, aber da ging es trotzdem immer noch um ca. 80GB pro Sicherungslauf. Habe ich also wie oben beschrieben umgestellt, Ergebnis: unter 1 Stunde für den gesamten Datenbestand.

Das ist doch ganz nett für den insgesamt überschaubaren Arbeitsaufwand für die „Loopifizierung“ eines Crypt-Laufwerks… unter Windows tritt übrigens exakt das gleiche Phänomen auf, aber ein Workaround dort ist mir nicht bekannt. Vielleicht geht es mit dem Linux-Subsystem von Windows, aber das habe ich noch nicht ausprobiert, ich weiß nämlich nicht, ob man damit auf alle Daten des darüberliegenden Windows-Hosts kommen kann.

Das eigene Grab schaufeln

https://www.golem.de/news/alphacode-deepmind-ki-entwickelt-so-gut-wie-durchschnittsprogrammierer-2202-162898.html

Die KI-Spezialisten von Deepmind haben mit Alphacode ein Modell entwickelt, das Computerprogramme auf einem Niveau schreiben können soll, das mit menschlichen Programmierern mithalten kann. Unter Beweis stellte dies das Team des Google-Schwesterunternehmens, indem es Alphacode in einem Wettbewerb antreten ließ. Dort landete das KI-Modell im Mittelfeld.

Mehr als der entstandene Code verblüfft mich, dass die KI offenbar die Problembeschreibung korrekt verstehen konnte.

Bald werden also auch die Programmierer wegrationalisiert. Mal ganz abgesehen davon, dass Skynet schon wieder realistischer geworden ist… aber so oder so, in rasender Eile macht sich die Menschheit selbst überflüssig.

Wohin wird es gehen? In das schon seit jeher erträumte Schlaraffenland? Oder in eine alptraumhafte Dystopie des »Alles gehört sehr wenigen, und die allermeisten anderen werden als „unnütz“ getötet«?

Vorbilder für zweiteres gibt es in der Geschichte leider zuhauf. Ein Schlaraffenland andererseits haben wir noch nie hinbekommen.

Katastrophales Urteil aus München

https://www.golem.de/news/landgericht-muenchen-einbindung-von-google-fonts-ist-rechtswidrig-2202-162826.html

Die Einbindung von dynamischen Webinhalten wie Google Fonts von US-Webdiensten ist ohne Einwilligung der Besucher rechtswidrig. Das hat das Landgericht München in einem Urteil (Az. 3 O 17493/20) entschieden. Webseitenbetreiber können auf Unterlassung und Schadensersatz verklagt werden.

Die deutschen Gerichte mal wieder mit voller Fahrt zurück in die Steinzeit. Irgendjemand muss doch etwas gegen die Misere der Hochschulen und das Vergraulen hochqualifizierter Fachkräfte durch extreme Steuern und Abgaben tun! Am besten die ganze IT-Industrie zerstören, dann merkt das erbärmliche Politikversagen keiner mehr. Oder ist das gar ein extra hinterhältiger Trick, um endlich die chinesische „Great Firewall“ um Europa hochziehen zu können?

Wenn Sie als Seitenbetreiber Google Fonts, oder sonst irgendwelchen externen Content nachladen, reicht ein Klick auf Ihre Seite, um Sie mit Schadensersatzklagen überziehen zu können. Wie üblich sucht man sich dabei den leichtesten Gegner, man stellt sich nicht etwa gegen Google, um denen die missbräuchliche Datensammelei auszutreiben, nein, der harmlose Webshop um die Ecke soll büßen.

Falls Ihre Seite mit Standard-Themes arbeitet (z.B. für WordPress: Twentyseventeen, Twentynineteen, Twentytwenty und so weiter Update: Auch diese Themes verwenden Google Fonts!), sind Sie vermutlich auf der sicheren Seite gefährdet. Falls Sie ein professionelles Theme einbinden, z.B. Avada, achten Sie in den Einstellungen auf die Möglichkeit, die Google Fonts lokal zu hosten und aktivieren Sie diese Option, falls möglich – wenn die Google Fonts vom lokalen Server kommen, sind Sie vor Abmahnungen geschützt.

Falls das verwendete Theme eine solche Option nicht anbietet, gibt es Plugins für das automatische lokale Zwischenspeichern der Google Fonts, z.B. OMGF | Host Google Fonts Locally. Es ist außerdem möglich, CSS und Theme manuell zu patchen, hier ist eine Anleitung dafür.

Es gibt aber auch Themes, die ihren eigenen Font mitbringen und den sowieso lokal laden. Bei solchen Themes ist kein Handlungsbedarf.

(Um zu überprüfen, welchen Font ein Text auf einer Seite hat, klicken Sie eine betreffende Textstelle rechts, und dann auf „Inspect“ bzw. „Untersuchen“. Im sich daraufhin öffnenden Debugger-Fenster ist weiter unten ein Abschnitt mit diversen Textformatangaben, den nach unten scrollen, dort steht dann der verwendete Font. Oder Sie nehmen die Lasche „Netzwerk“, drücken auf Reload und können dann in der Liste alle nachgeladenen Ressourcen prüfen; falls Fonts von Google nachgeladen werden, sehen Sie die URL dazu.)

Von der anderen im Artikel genannten Möglichkeit, nämlich der zwangsweisen Einwilligung (als „notwendig für den Betrieb der Seite“) im Cookie-Consent, würde ich abraten. Man wird damit nämlich kaum verhindern können, dass bereits externer Content geladen wird, bevor der Nutzer zustimmen kann, und daraus wird Ihnen genauso ein Strick gedreht. Ich hatte kürzlich im Support einen ganz ähnlich gelagerten Fall, und kann Ihnen deshalb aus eigener Erfahrung versichern, der Bundesdatenschutzbeauftragte kennt da kein Pardon.

Ergänzung: Inzwischen kristallisiert sich heraus, dass viele Websites gar nicht konform gestaltet werden KÖNNEN. Wer z.B. Youtube-Videos einbindet, bekommt die Fonts quasi als Zählpixel automatisch mit aufgedrückt, und Google schließt es in seinen Bedingungen sogar aus, das zu umgehen. Vielleicht lässt sich das zwar mit einem speziell gestalteten Youtube-Embedder umgehen, der zunächst nur ein Vorschaubild anzeigt, und bei Klick auf Play erst eine Einwilligung anfordert, aber ich habe noch keinen solchen gefunden.

2. Ergänzung: Eine sehr gute Übersicht, wie Google Fonts in einer WordPress-Installation ohne Plugin, sondern per CSS lokal gehostet werden können, bietet dieser Artikel von perun.net. Auch dort gibt es aber keine Lösung für dynamisch per API erzeugte nachgeladene Font-Adressen (welche nicht nur Youtube betreffen, sondern auch andere Google-Dienste). Für diese Problematik scheint es bisher keine Umgehung zu geben.

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.