Ich habe neulich zwei verschiedene Ideen verfolgt, die mich beide dazu brachten, OpenSource-Projekte mit meinem Input zu veredeln. Dabei sah ich, was schlecht an OpenSource-Projekten ist und warum deren Existenz trotzdem eine richtig gute Sache ist!
Meine Implementierung unterstützt aber ebenfalls Datentypen: Damit ist es möglich, die einzelnen Spalten in einer CSV-Datei nicht nur als Text zu interpretieren, sondern als Zahlen, Timestamps,...
Ich wollte vor der Umstellung des Plugins zunächst sehen, ob HSQL das auch kann. In der Anleitung zu diesem Thema sah es zunächst so aus - ich konnte aber in der Anleitung keine Informationen darüber finden, wie man das exakte Format eines Timestamps (oder eines Datums, einer Zeitangabe,...) spezifiziert.
Also probierte ich einfach mit einer Beispieldatei und das schlug prompt mit der Meldung timestamp typ: org.hsqldb.HsqlException: data exception: invalid datetime format fehl. Eine Suche im Internet brachte das korrekte Format an den Tag: 2022-07-31 13:22:33.
Daraufhin recherchierte ich in den Quellen von HSQL - oder ich hatte vor, danach zu suchen, denn es stellte sich heraus, dass es nicht so einfach war, diese überhaupt zu finden. Ich wollte eigentlich auch einen Pull-Request einreichen, der darin bestanden hätte, dieses Format konfigurierbar - idealerweise sogar pro Spalte - zu gestalten. Als ich diese Information nicht finden konnte und sah, dass die Quellen nur per SVN zur Verfügung gestellt wurden, kühlte meine Leidenschaft stark ab.
Ich fand im Netz noch einen Idealisten, der die Quellen in Github hochgeladen hatte - allerdings wurden sie dort das letzte Mal vor vier Jahren aktualisiert.
Der Quelltext schreckte mich dann vollends davon ab, meine Zeit hier zu investieren: Die Anwendung implementiert eine eigene Lösung, um Daten mittels Formatstrings zu formatieren und zu parsen - nicht, dass der Autor nicht wüsste, dass es im JDK entsprechende Klassen dafür gibt: HSQL bietet sogar Funktionen zur Umwandlung der eigenen in die SimpleDateFormat-Syntax!
HSQLDB ist zwar eine famose Sache, aber ich denke, dass auch in diesem Projekt mal ein größerer Overhaul stattfinden müsste, um die Codebasis auf den aktuellsten Stand zu bringen. Aber dieses Projekt ist halt ebenso wie Log4j davon geplagt, dass es von tausenden anderen Projekten eingesetzt wird und (ich adressiere hier besonders die Konzerne, die das tun) keinerlei Mittel oder Ressourcen zur Weiterentwicklung und/oder Wartung zur Verfügung stellen!
Nun ist es aber möglich, ansprechende Graphiken (nicht nur mit Gnuplot) auch im Terminal anzuzeigen - nur eben nicht in allen: Stellt man die beiden Funktionen
und
und deren Differenz in einem Terminal dar, das sixel unterstützt - zum Beispiel, indem man XTerm mit einer entsprechenden Option xterm -ti vt340 startet, kommt bei Verwendung eines entsprechenden Skripts
set xrange [0:15]
set yrange [-0.6:0.6]
set grid
set arrow from 0.57, graph 0 to 0.57, graph 1 nohead lc rgb 'red'
set arrow from 2.4, graph 0 to 2.4, graph 1 nohead lc rgb 'red'
set arrow from 8.25, graph 0 to 8.25, graph 1 nohead lc rgb 'red'
#set object 1 circle at 0,0 size scr 0.01 fc rgb "navy"
set object 2 circle at 0.57,0.425 size scr 0.01 fc rgb "navy"
set object 3 circle at 2.4,0.355 size scr 0.01 fc rgb "navy"
set object 4 circle at 8.25,0.12 size scr 0.01 fc rgb "navy"
plot -0.04*x+0.45 t'f(x)', x/(1+x**2) t'g(x)', -x/(1+x**2) -0.04*x+0.45 t'f(x)-g(x)
folgendes heraus:
Darstellung durch Gnuplot im Terminal mit einem Sixel-fähigen Terminal-Emulator (xterm -ti vt340)
So weit - so bekannt. Ich bin aber im vergangenen Jahr immer wieder mal auf die Idee gestoßen, Graphik im Terminal mittels Braille-Zeichen darzustellen, die im Unicode-Standard tatsächlich Codepunkte haben. Und so kam ich auf die Idee, diese Variante der Darstellung auch für Gnuplot verwenden zu wollen. Gerade, als ich mich also hinsetzte und beginnen wollte, im Quellcode nach den Voraussetzungen zu suchen, ein solches neues Terminal hinzuzufügen, stieß ich auf neue Informationen, die auf Seite 26 angaben, dass ab Version 5.5 exakt ein solches bereits implementiert ist!
Nun setzte also die Suche nach einem Paket ein, das diese Version zur Verfügung stellte. Dabei war ich nicht erfolgreich - da aber auch Gnuplot OpenSource ist, checkte ich kurzerhand den aktuellen Entwicklungsstand aus und übersetzte es selbst. Dabei war zu beachten, dass das neue Terminal block standardmäßig nicht mit gebaut wird - man muss sich das explizit wünschen.
Nachdem das Binary vorlag, startete ich es - ebenfalls im xterm - und führte das oben angegebene Skript erneut aus, nachdem ich das Terminal mittels set term block braille konfiguriert hatte. Das Ergebnis:
Darstellung durch Gnuplot im xterm mit Terminal namens block
Ich versuchte dann, den Schwierigkeitsgrad mittels set term block braille ansi etwas zu erhöhen - Gnuplot meisterte das aber auch hervorragend:
Farbige Darstellung durch Gnuplot im xterm mit Terminal namens block
12.09.2022
Ich habe heute einen Bug in der OpenSource-Variante der BeanShell auf GutHub gefunden, dessen Behandlung mich wieder einmal ziemlich sprachlos zurückgelassen hat...
CI/CD mit shellcheck
13.10.2019
Ich habe mich entschlossen, in meinen diversen Shell-Projekten shellcheck als Mittel zur Qualitätssicherung einzusetzen.
Weiterlesen...Android Basteln C und C++ Chaos Datenbanken Docker dWb+ ESP Wifi Garten Geo Git(lab|hub) Go GUI Gui Hardware Java Jupyter Komponenten Links Linux Markdown Markup Music Numerik PKI-X.509-CA Python QBrowser Rants Raspi Revisited Security Software-Test sQLshell TeleGrafana Verschiedenes Video Virtualisierung Windows Upcoming...
In meinem $dayjob kam neulich die Frage auf, ob es möglich wäre, die aktuelle Softwareinstallation eines Linux-Systems als Software Bill of Materials (SBOM) zu exportieren.
Weiterlesen...Ich habe - motiviert durch meine Experimente zur Visualisierung von Paketabhängigkeiten in Linux-Installationen als interaktive Graphen - versucht, relationale Datenmodelle in ähnlicher Form zu visualisieren und dazu zwei Plugins für die sQLshell geschrieben.
Weiterlesen...Die Royal Institution hat in ihren Schätzen gegraben und die Christmas Lectures von Carl Sagan auf Youtube nochmals veröffentlicht. Meiner Ansicht nach unbedingt lohnenswert für alle, die Englisch verstehen!
Weiterlesen...Manche nennen es Blog, manche Web-Seite - ich schreibe hier hin und wieder über meine Erlebnisse, Rückschläge und Erleuchtungen bei meinen Hobbies.
Wer daran teilhaben und eventuell sogar davon profitieren möchte, muß damit leben, daß ich hin und wieder kleine Ausflüge in Bereiche mache, die nichts mit IT, Administration oder Softwareentwicklung zu tun haben.
Ich wünsche allen Lesern viel Spaß und hin und wieder einen kleinen AHA!-Effekt...
PS: Meine öffentlichen GitHub-Repositories findet man hier - meine öffentlichen GitLab-Repositories finden sich dagegen hier.