Meetup: Code-Qualität

Am 9.6. gibt’s von mir einen tollen Online-Vortrag in Zusammenarbeit mit IT Dev Café Düsseldorf. Ich zeige tolle Beispiele aus meiner Arbeit bei Codequalitätsanalysen – und diskutiere, wie es zu bestimmten Problemen typischerweise kommt. Sagte ich schon, dass es ganz toll wird?

Nehmt teil, bringt Freunde mit, kostet nix!

Hier ist der Meetup-Link!

Von Kleinkindern lernen

Wie Medien berichteten, hat am Sonntag ein Kleinkind einen Twitter-Beitrag im Account der US-Atomwaffenbehörde verfasst:

»;l;;gmlxzssaw« – Rätselhafter Code? Verborgene Botschaft? Die Auflösung kam schnell

Bemerkenswert daran ist natürlich nicht, dass man genau erkennt, welche Buchstaben mit der rechten (die bis gml) und welche mit der linken sehr kleinen (das z liegt auf amerikanischen Tastaturen links neben dem x) Hand (der Rest) verfasst wurden.

Bemerkenswert daran finde ich auch nicht, dass der für den Account zuständige Social-Media-Manager es nicht für nötig hielt, während seiner kurzen Abwesenheit (vermutlich musste er aufs Klo) seinen PC zu sperren, auf dem die Twitter-Webseite zum Verfassen eines Tweets gerade geöffnet war.

Denn dass der Mensch der Schwachpunkt jeder IT-Sicherheits-Infrastruktur ist, wissen wir ja schon, nicht wahr? Man muss ja nur “versehentlich” einen präparierten USB-Stick mit der Aufschrift “Pornos” vor einer Firma verlieren, schon erhält man (nach kurzer Wartezeit freilich) bequem Zugriff auf alle Systeme (auf die der glückliche Finder Zugriff hat). Tipp, falls Sie es ausprobieren wollen: Tun Sie wirklich ein paar Pornos auf den Stick, dann schöpft das Opfer nicht so schnell Verdacht.

Bemerkenswert finde ich aber, dass der Tweet zwar nach ein paar Minuten gelöscht wurde – in der Zeit aber, wie man auf dem Bild sieht, fast 5000 mal geliked und halb so oft retweetet wurde. Wohlgemerkt: “Normale” Tweets des gleichen Accounts, meist mit fast sinnlich fotografierten Kampfflugzeigen drauf, bringen es gerade mal auf etwas über 100 Likes und 30 oder 50 Retweets – aber nicht innerhalb weniger Minuten, sondern Tagen.

Das ist ein Symptom, welches auf ein grundlegendes Problem der (a)sozialen Medien hinweist: Quatsch verbreitet sich bisweilen millionenfach schneller und weiter als alles andere. Das ist aber das genaue Gegenteil des Bedarfs: Wichtige (und möglichst akkurate) Informationen sollten sich schneller und besser verbreiten als anderen. Dieses wünschenswerte Verhalten bilden die Mechanismen der sozialen Netzwerke schlicht nicht ab. Deshalb sind sie ein Problem.

tl;dr: Das Beispiel der tausendfach retweeteten IT-Attacke eines Kleinkinds zeigt: Der “soziale” Kaskadier-Mechanismus von Twitter&Co begünstigt die Ausbreitung von Unsinn.

Haben Sie auch Hacker in die Teeküche eingeladen?

Wichtige Mitteilung! Bitte auf keinen Fall kritische Sicherheitslücken in Exchange-Servern entfernen!

Sonst hab ich nix mehr, über das ich mich lustig machen kann.

Liebe Admins. Corona hin oder her: Kritische Sicherheitslücken, für die seit Februar Patches bereitstehen, und die einem Angreifer ermöglichen, Ihr System zu übernehmen, also quasi eine Einladung in die Teeküche Ihrer Firma – wo Sie sicher auch diverse Rechner ohne Passwortschutz herumstehen haben, nicht wahr? So sieht’s aus. Kommt, liebe Hacker, wir haben nix zu verbergen, wir brauchen unsere Daten nicht, verschlüsselt sie ruhig, unsere Vorstände zahlen auch gerne das Lösegeld, das ist immer noch billiger als Leute einzustellen, die sich ordentlich um die IT-Sicherheit kümmern.

Ach, und übrigens soll es auch Mail-Systeme geben, die ganz grundsätzlich weniger anfällig sind als jene von Microsoft. Und nix kosten. Open Source nennt man das, klingelt’s?

Weitere Infos beim BSI

IT-Expertennetzwerk Wetter (Ruhr)

Falls jemand fragt: Ja, ich bin Mit-Gründer des lokalen Netzwerks für IT-Experten in Wetter (Ruhr). Derzeit existiert es in Form einer Gruppe bei Xing. Sinn ist der Austausch unter lokalen IT-Experten zu beliebigen Themen, sei es Mitarbeitersuche, Know-How-Transfer oder Händeschütteln (letzteres erst wieder nach Corona). Wer Interesse hat, IT-Experte ist und entweder in Wetter wohnt oder arbeitet, kann sich gerne melden.

Alternative App-Bezahlmethoden werden endgültig verboten

Ja, Tante Google, kann ja schonmal vorkommen, dass man sich verschreibt, ist ja auch nicht schlimm, denn wir wissen, ja, dass ihr eigentlich schreiben wolltet: Bezahlung von unserem System vorbei wird komplett verboten, um UNSERE EINNAHMEN ZU SCHÜTZEN.

Im Klartext: Google will immer schon die 30% Gebühr einstreichen, denn wo kämen wir denn hin, wenn es da irgendeine Form von Konkurrenz gäbe, dann würde Google schließlich noch pleite gehen, und das wollen wir doch alle nicht, gell?

Für Android-Entwickler, die noch alternative Payments über Links auf Webshops o.ä. verwenden, heißt das: Bis 30.9.21 gibt es eine “extended grace period”, danach werden eure Apps aus dem Play Store geschmissen, wenn ihr die alternative Bezahlmethode bzw. Verlinkung darauf nicht rausnehmt. Unklar ist noch, ob auch schlichte Links auf die Homepage etwa eines Spiels verboten sind (wo dann wiederum ein Webshop aufgerufen werden kann). Ab dem 1.1.2021 müssen neue Apps der neuen Regelung genügen.

Nachhaltige Software

Neulich traten die hiesigen Bürgermeisterkandidaten zu einer Podiumsdiskussion an. Motto: Nachhaltigkeit.

Es ging um Mobilität, Wohnen, Teilhabe. Gut und schön, aber es gibt Aspekte, auf die Bürgermeister wenig Einfluss haben.

Zwei Beispiele:

Mein Acer-Laptop ist ein paar Jahre alt und war nicht ganz billig, er enthält zwei Grafikchips, einer spart Strom, einer zum Spielen. Leider unterstützt Windows 10 den besseren Chip nicht, der Hersteller hat natürlich auch null Motivation, einen neuen Treiber zu schreiben. Die Kiste ist also zum Spielen nicht mehr zu gebrauchen. Wer da die Abwärtskompatibilität abgesägt hat, kriegt von mir die verschimmelte Himbeere der Nichtnachhaltigkeit.

An meinem Arbeits-PC hängt ein ziemlich cooler (da ständig blau blinkender) WLAN-Stick von Asus mit toller Reichweite. Leider wird der enthaltene Chip von Linux-Kerneln ab 5.4 nicht mehr unterstützt. Würde ich also das (natürlich aus Sicherheitsgründen empfohlene) Update durchführen, müsste ich entweder Stunden in diffiziles Herumgefummel an komplizierten Treiber-Quellcodes investieren oder den alten WLAN-Stick wegschmeißen und einen neuen kaufen. Gerade Linux als Open Source-Betriebssystem sollte sich meiner Ansicht nach solche Fehler nicht erlauben. Die nächste verschimmelte Himbeere.

Verbunden sei dies mit dem Aufruf, nur dann auf Abwärtskompatibilität zu verzichten, wenn dadurch keine Hardware obsolet wird.

Nachhaltige Software ist möglich!

Visual Forth für Android und Arduino

Ich bin ja Experte darin, Dinge in einen Topf zu werfen, die sonst nix miteinander am Hut haben. Anders ausgedrückt:

Wenn man Müsli, Tomatensoße, Klebstoff und Lötzinn kräftig aufkocht, kommt wohl etwas wie das hier dabei raus:

Das ist … erklärungsbedürftig.

Das Bild zeigt eine App, an der ich gerade arbeite, und die demnächst ins Licht der Öffentlichkeit treten wird (ich teste und optimiere noch wild dran herum). Hinter dem klobigen Namen “Visual Forth for Arduino” verbirgt sich eine Art grafische Variante der Programmiersprache Forth. Ähnlich wie Scratch kann man Befehle als Klötzchen untereinander kleben, um ein Programm zu erzeugen. Der Clou daran: Dieses Programm läuft dann per Knopfdruck auf einem ganz normalen Arduino Nano, der über ein OTG-Kabel via USB am Tablet hängt. Einzige Voraussetzung: Der Arduino wurde zuvor mit Finf bespielt. Finf (“Finf is not Forth”) ist eine kleine Forth-Umgebung für Arduino, Open Source, ursprünglich von Leandro A. F. Pereira, wird aber von mir weiterentwickelt (und korrigiert, räusper). Meine App erzeugt also aus den Klötzchen Forth-Code (oder besser: Finf-Code und lässt ihn auf dem Arduino laufen.

Vorteil im Vergleich zu Scratch für Arduino: Das Programm funktioniert auch dann noch, wenn man den Arduino aus dem Tablet stöpselt und einfach an eine Stromversorgung anschließt! (In der Premium-Version meiner App, har har.)

Jetzt könnt ihr ja mal raten, was obiger Forth-Code auf dem Arduino tut.

Auflösung
Wenn man den mittleren Anschluss eines Spannungsteilers mit einem normalen und einem lichtempfindlichen Widerstand an Eingang A2 anschließt und eine Leuchtdiode an D2, dann geht die LED an, wenn es dunkel wird.

An der Einrücktiefe erkennt man übrigens die Stapel-Höhe vor dem jeweiligen Befehl. So hinterlässt der Analogread-Befehl seinen Messwert natürlich (symbolisch sichtbar anhand der Einrückung darunter) auf dem Stapel. Daher “visuell” – denn wer mal versucht hat, Forth zu programmieren, ist entweder verrückt geworden oder hat sich dergleichen aufgemalt (Mehr zum Thema “Forth” und “verrückt” in diesem Buch).

Meinen Fork von Finf gibt es hier auf github.

Mehr zu diesem spannenden Maker-Thema demnächst.