Programmierung

Ternary Operator für VBA - IIf

Ich wusste nicht, dass es den Ternary-Operator schon für VBA gibt, hab bisher immer drumrumprogrammiert. Zugegeben, es ist kein Operator, sondern eine Funktion aber für die Anwendung ist das zum Glück egal, das Ergebnis lässt sich zuweisen. [...]

Gleitkommazahlen, oder: 3.9+0.05?

Es ist manchmal ein Kreuz. Gibt man in LibreOffice Calc oder Excel ein: =3.9+0.05 oder =3,9+0,05, je nachdem, ob Komma oder Punkt für “Kommazahlen” genutzt werden, ist das Ergebnis: 3.95 oder 3,95 [...]

MultiMarkdown via docker

MultimarkDown mit einem Docker-Image? https://hub.docker.com/r/ekleinod/multimarkdown docker run \ --rm \ --user "$(id -u):$(id -g)" \ --name multimarkdown \ --volume "${PWD}:/multimarkdown" \ ekleinod/multimarkdown \ <options> <filename> Warum? Die Installation unter Linux ist aufwendig, da von Hand kompiliert werden muss. Wenn Docker sowieso installiert ist: das Image ist 7 MB groß, läuft fast so schnell wie ein installiertes MultiMarkdown.

Bash-Loops

Im Ernst, bash? array=( one two three ) for i in "${array[@]}" do echo "$i" done

Inno-Setup-Installer

Nach dem NSIS-Debakel der nächste Versuch, diesmal mit Inno Setup, ebenfalls Open Source und Freeware, aber nicht plattformunabhängig. Zum Glück gibt es amake, der ein Docker-Image für Inno-Setup gebastelt hat und per Docker-Hub zur Verfügung stellt. Das ist sogar noch komfortabler, da so die gleiche Umgebung überall zur Verfügung steht. Technisch ist das ein Linux, auf dem Inno Setup mittels Wine läuft, sagen wir so: gut dass ich das nicht machen muss. [...]

NSIS-Installer

Seit einiger Zeit versuche ich schon, einen Windows-Installer für das Gebu-Programm zu erstellen. Dafür gibt es erstaunlich wenig Alternativen: im Endeffekt NSIS, WiX und Inno Setup, die überhaupt in die nähere Auswahl kommen. Nähere Auswahlkriterien: Freeware, Open Source und Multiplattform – da bleibt dann nur NSIS übrig. [...]

Ärgerlicher “Bug” in Javas Files-API

Mannomannomann. Da debuggt man eine Stunde für einen Fehler, der m.E. im Design der Java-Files-API liegt. Erwartungshaltung vs. implementierte Realität. Wenn ich schreibe: Files.writeString(file, content, StandardOpenOption.CREATE, StandardOpenOption.WRITE); dann erwarte ich, dass eine neue Datei angelegt wird, falls sie noch nicht existiert, dass der Inhalt “content” in die Datei geschrieben wird und diese danach nur diesen Inhalt enthält. [...]

Java-Stream-API

Weil ich gestern das Script hatte: die Stream-API von Java ist schon geil für einige Anwendungsfälle. Kurz, prägnant und lesbar. Ausschnitt vom Code gestern: einmal Pfad bis in die Unterverzeichnisse traversieren und die Dateien bearbeiten: [...]

Java als Scriptsprache

Mal etwas anderes als Filme: Seit Java 11 kann man Java als Scriptsprache einsetzen, das heißt, direkt eine Java-Datei aufrufen. Im Endeffekt schreibt man eine Klasse mit main-Methode, die die Arbeit erledigt (man kann wohl mehrere Klassen in eine Datei packen, aber wer macht sowas). [...]

xjc: fehlender Modul-Export

xjc 2.3.2 liefert mir eine Exception wegen eines fehlenden Modul-Exports von com.sun.tools.xjc zu com.sun.xml.bind. Der Fehler ist im Git gefixt, seitdem gab es noch kein neues Release, also hab ich xjc selbst kompiliert. Vorgehen siehe https://ekkart.de/computer/programmierung/java/jaxb/ [...]