Ich habe hier schon verschiedentlich über die Anwendung des PlantUML- oder GraphViz- Formats geschrieben. Beide sind extrem vielseitig - sowohl für eher traditionelle Darstellungen von Graphen oder Entity-Relationship-Diagrammen als auch für zum Beispiel die Dokumentationen von Public Key Infrastrukturen
Manchmal kann es jedoch vorkommen, dass die Ergebnisse beim Rendering nicht ganz den Anforderungen entsprechen. Das Rendering lässt sich durch das Setzen von Style-Attributen anpassen - das kann traditionell in der entsprechenden Datei selbst geschehen - oder aber als Kommandozeilenparameter direkt beim Rendern.
Hier zunächst ein Beispiel für den Einfluss von Parametern beim Rendern von GraphViz: Zunächst die Defaultparameer, anschließend die mittels Style-Attributen angepasste Version:
Fügt man nun die folgenden Style-Attribute in die Definition des Graphen ein:
splines=ortho
nodesep=.5
ranksep=.2
ändert sich das Aussehen wie folgt:
Für Plantuml gilt dasselbe: Aus der Darstellung mit den Default-Werten für die Style-Attribute wird:
Ändert man das Verhalten durch explizite Spezifikation von Style-Attributen wie folgt:
skinparam linetype ortho
skinparam nodesep 100
skinparam ranksep 20
wird daraus:
Wie bereits angedeutet muss man diese Parameter nicht in der Definition der Graphik selbst setzen - beide Visualisierungssysteme erlauben so etwas auch per Kommandozeilenschalter, nur die konkrete Ausprägung unterscheidet sich ein wenig: Für PlantUML würde ein entsprechender Aufruf zum Beispiel so aussehen:
java -jar plantuml-8059.jar -stdrpt:1 -tsvg -config config.ini model.dot
Die Date config.ini würde dann die Attribute in der bereits bekannten Form beinhalten - also etwa
skinparam linetype ortho
skinparam nodesep 50
skinparam ranksep 20
Für GraphViz dagegen würde das Erstellen einer Graphik mit angepassten Werten für Attrinute zum Beispiel so aussehen:
dot -Tsvg doc.dot -Gsplines=ortho >deps.svg
Demonstration und Beispiele für die Nutzung eines RFC3161-Servers aus Java heraus
15.05.2021
Ich habe ein Begleitprojekt zu meiner Implementierung meines Timestamping Server Projekts erstellt: eine Demonstration und ein Beispiel dafür, wie man einen solchen Timestamping-Server von Java aus nutzen kann.
WeiterlesenAI und ML Android Basteln C und C++ Chaos Datenbanken Docker dWb+ ESP Wifi Garten Geo Go GUI Hardware Java Jupyter JupyterBinder Komponenten Links Linux Markdown Markup Music Numerik OpenSource PKI-X.509-CA Präsentationen Python QBrowser Rants Raspi Revisited Security Software-Test sQLshell TeleGrafana Verschiedenes Video Virtualisierung Windows Upcoming...
Asymmetrische KryptographieIch habe mich mit der Idee schon länger getragen: Nochmal einen Rundumschlag zu asymmetrischer Kryptographie zu machen. Dabei werde ich mich auf Demonstrationen der einzelnen Konzepte und Operationen mit Beispielcode konzentrieren und zu jedem der vorgestellten Konzepte mehr oder weniger ausführlich bezüglich der Einsatzszenarien und Vor- und Nachteile Stellung beziehen
WeiterlesenHin und wieder erlebe ich es persönlich oder lese davon, dass jemand die Frage stellt, wie kryptographische Geheimnisse gesichert werden können. Ich gebe hier mal einen Anstoß, darüber aus der Sicht der Software-Architektur auf Systemebene nachzudenken...
WeiterlesenIch habe mich von einigen Artikeln anderer Besitzer und Upcycler von Futro-Thin-Clients inspirieren lassen - das hat dazu geführt, dass ich von meinem eigentlichen Projekt (Bauen eines kleinen Clusters) abgekommen bin und die Hardware ein wenig genauer unter die Lupe genommen habe...
WeiterlesenManche 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, muss 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 Codeberg-Repositories findet man hier.