2 Punkte von GN⁺ 2024-03-10 | 1 Kommentare | Auf WhatsApp teilen
  • Monodraw ist ein ASCII-Art-Editor für den Mac, mit dem sich Diagramme, Flussdiagramme und Datenstrukturen als Plain Text zeichnen lassen, sodass sie direkt in technischer Dokumentation und in Code lesbar sind
  • Da das Ergebnis Text ist, lässt es sich leicht kopieren und einfügen; bei Bedarf können mit dem Export als PNG oder SVG auch Bilder erzeugt werden
  • Unterstützt Mindmaps, ER-Diagramme und sogar die Erstellung von Bannern und legt den Fokus damit stärker auf Visualisierung für die Dokumentation als auf einfache Textbearbeitung
  • Bietet FIGlet und standardmäßig 148 Schriftarten sowie Funktionen wie Linien, Rechtecke, Ausrichtungshilfen, Gruppen und Tastenkürzel, um wiederkehrende Text-Art-Arbeiten zu reduzieren
  • Erfordert macOS 11 Big Sur oder neuer; das Kommandozeilenwerkzeug kann direkt von der Website heruntergeladen werden und ist nur in der im Store gekauften Version enthalten

Visualisierungswerkzeug für den Mac, das mit Text zeichnet

  • Monodraw ist ein Editor zum Erstellen von ASCII-Art auf dem Mac
  • Strukturen wie Diagramme, Layouts und Flussdiagramme lassen sich textbasiert erstellen
  • Es wird genutzt, um Dinge wie Algorithmen, Datenstrukturen und Binärformate, die sich allein im Code nur schwer erfassen lassen, visuell zu ordnen
  • Da das Ergebnis Plain Text ist, kann es nahezu unverändert in Dokumente, Code und Spezifikationen eingefügt werden
  • Wenn Bilder benötigt werden, kann nach PNG und SVG exportiert werden

Technische Dokumentation und Darstellung von Datenmodellen

  • Textdiagramme in Code und Spezifikationen helfen dabei, Strukturen schnell zu verstehen
  • Die Visualisierung von Datenstrukturen, Algorithmen und Datenformaten ist wichtig, damit Leser Beziehungen und Abläufe erfassen können
  • Da Code häufiger gelesen als geschrieben wird, können Textdiagramme bei Wartung und Reviews hilfreich sein
  • Mindmaps

    • Verbindet die Einfachheit von Plain Text mit dem Mindmap-Ansatz
    • Auf einer unendlichen Leinwand kann Text an beliebige Positionen verschoben werden
    • Ist nicht an die lineare Struktur von Textdateien gebunden
  • ER-Diagramme

    • Visualisiert Datenmodelle als einfache Entity-Relationship-Diagramme
    • Unterstützt die Crow’s-Foot-Notation in 3 Varianten

Funktionen zum Erstellen von Text-Art

  • Banner lassen sich mit einem Klick erstellen
  • FIGlet ist integriert, und standardmäßig sind 148 Schriftarten enthalten
    • Benutzerdefinierte Schriftarten werden ebenfalls unterstützt
    • Größenanpassung von Textboxen, Schriftwechsel und Ausrichtungsanpassungen lassen sich interaktiv ohne Terminal erledigen
  • Das Textwerkzeug arbeitet mit einer benutzerdefinierten Text-Engine auf Basis von CoreText
    • Ausrichtung, Position, Schreibrichtung und Zeilenverschiebung können angepasst werden
    • Mit einem Klick kann ein Rahmen um Text hinzugefügt werden
  • Das Linienwerkzeug erleichtert das Verbinden von Formen und unterstützt orthogonale Linien sowie stufenförmige Linien
    • Das Strichmuster von Linien kann festgelegt werden
    • Über Verbindungspunkte lassen sich Linien dynamisch an andere Formen anheften, was nach dem Verschieben von Formen erneutes Platzieren reduziert
  • Das Rechteckwerkzeug dient zum Erstellen von Boxen, die in Text-Art häufig verwendet werden
    • Rahmen und Hintergrund lassen sich mit wenigen Klicks festlegen
    • Schatten können hinzugefügt werden
    • Mit benutzerdefinierten Verbindungspunkten lassen sich Linien an exakten Positionen anheften

Zusatzfunktionen zur Reduzierung von Canvas-Arbeit

  • Als grundlegende Zeichenwerkzeuge werden Pencil, Eraser, Bucket Fill und Picker angeboten
    • Bilder können als Overlay auf die Leinwand gelegt und zum Nachzeichnen verwendet werden
  • Die Gruppen-Funktion fasst mehrere Formen zu einer Einheit zusammen und erleichtert Kopieren und Verschieben
  • Ausrichtungshilfen sorgen dafür, dass beim Platzieren und Skalieren von Inhalten keine Zeichen manuell gezählt werden müssen
  • Mit der Fokus-Funktion können beim Konzentrieren auf einen bestimmten Teil der Leinwand die übrigen Formen gesperrt oder ausgeblendet werden
    • Es kann herangezoomt werden, um sich auf die aktuell sichtbaren Elemente zu konzentrieren
  • Auf alle Funktionen kann per Tastenkürzel zugegriffen werden
    • Werkzeuge lassen sich schnell mit einem einzelnen Tastendruck ohne Modifikatortasten auswählen

macOS-Unterstützung und Bedingungen für das Kommandozeilenwerkzeug

  • Monodraw ist von der Text-Layout-Engine bis zur Oberfläche als native macOS-App konzipiert
  • Text-Art kann exportiert werden, indem sie kopiert und in den gewünschten Texteditor eingefügt wird
  • Die Systemanforderung ist macOS 11 Big Sur oder neuer
    • Auf älteren macOS-Versionen kann Monodraw v1.3 verwendet werden; dafür ist macOS 10.10 Yosemite oder neuer erforderlich
    • Monodraw v1.5 erfordert macOS 10.14 Mojave oder neuer
  • Die Kommandozeilenschnittstelle ist nur in der direkt heruntergeladenen Version enthalten
    • Sie ist in der Version enthalten, die direkt von der Website heruntergeladen und im Store gekauft wird
    • In der Mac-App-Store-Version kann das Kommandozeilenwerkzeug wegen der Einschränkungen der App Sandbox nicht enthalten sein
    • Es kann etwa mit Versionsverwaltungs-Hooks genutzt werden, um beim Commit Dokumentation automatisch zu erzeugen
    • JSON-Ausgabe wird ebenfalls unterstützt, was die programmgesteuerte Verarbeitung erleichtert
  • Monodraw gibt an, keinerlei Daten zu sammeln

1 Kommentare

 
GN⁺ 2024-03-10
Meinungen auf Hacker News
  • Am Ende komme ich immer wieder zu Monodraw zurück
    Andere Apps haben so viele Funktionen und Stiloptionen, dass es schwerfällt, sich auf den eigentlichen Inhalt zu konzentrieren, aber Monodraw lenkt nicht ab
    Trotzdem bietet es genug Funktionen, um ziemlich viel damit zu erstellen, und besonders die Anker gefallen mir: https://tamasruss.com/articles/monodraw-anchors

    • Es ist ein bisschen ironisch, wenn man sagt, andere Apps würden einen davon abhalten, sich auf den Inhalt zu konzentrieren, es aber okay ist, in Monodraw an responsiven Trennlinien und Ankerpunkten herumzuspielen
      Die Technik an sich ist aber sauber
    • Die UML-Boxen für Klassen sind wirklich nützlich, und das Tutorial ist auch gut
  • Dieses Tool gehört wirklich zu meinen Lieblings-Apps, und ich habe direkt bezahlt, als es veröffentlicht wurde
    Ich habe es mehrfach für solche Dokumentation verwendet: https://github.com/ivank/potygen/blob/main/packages/potygen/...
    ASCII ist so vielseitig, dass man an unerwarteten Stellen gut aussehende Zeichnungen einfügen kann, die das Verständnis erleichtern

    • Diese Ecken sehen nach Unicode-Blockzeichen aus
    • Dieses Beispiel ist eine großartige Illustration, die sofort zeigt, was die Software reizvoll macht, und weckt den Wunsch, sie selbst auszuprobieren
    • Das Diagramm „With Expression“ in Zeile 656 sieht in emacs okay aus, aber wenn man den eigentlichen Link in Chrome öffnet, ist rechts alles kaputt
      Die Zeichen sind korrekt, aber GitHubs Schriftauswahl scheint mit dem „bedeutungsvollen Leerraum“ in den erweiterten Teilen nicht gut zurechtzukommen
    • Es wäre besser, die Zeile auszuwählen, die man zeigen möchte, und direkt auf diese Position zu verlinken
  • Ich pflege eine Liste webbasierter Text-zu-Diagramm-Tools: https://xosh.org/text-to-diagram/
    Als Web-Alternativen zu solchen ASCII-Zeichenwerkzeugen gibt es unter anderem https://fsymbols.com/draw/, https://textik.com/, https://asciiflow.com/#/, https://web.archive.org/web/20210503172024/https://fatiherik..., https://app.monosketch.io

    • Pikchr wäre für die Liste ebenfalls eine Überlegung wert
      Es ist ein Tool vom SQLite-Entwickler: https://pikchr.org/home/doc/trunk/doc/userman.md
    • Gemessen an einem Diagramm, das ich kürzlich von Hand erstellt habe, hatten die Tools in dieser Liste nicht alle Funktionen, die ich wollte
      In der Liste scheint nur https://textik.com/ mit Diagonalen umgehen zu können, und selbst dort scheint es keine Füllfunktion zu geben
      Das Diagramm, das ich zeichnen wollte, sah so aus: https://pastebin.com/NPXFS1Fi
      In textik.com habe ich Boxen und Dreiecke erstellt, musste aber mehrere Ecken manuell korrigieren und auch das Innere selbst füllen
      Selbst wenn Monodraw nur 10 Dollar kostet, weiß ich nicht, ob ich dafür zahlen würde, weil es eine native App nur für den Mac ist
      Ich arbeite viel im Web und nutze mehrere Geräte, und da ich nur ein paar Mal im Jahr Diagramme zeichne, wirkt eine webbasierte Lösung oder ein VSCode-Plugin besser
    • Auch die Listen auf https://fmhy.net sind einen Blick wert
      Dort könnten interessante Tools dabei sein
    • Als Tool, das man in die Liste aufnehmen könnte, gibt es auch https://mbarkhau.github.io/asciigrid
    • Vor ein paar Jahren habe ich ein einfaches Tool gebaut, das noch unter https://letterbrush.com gehostet wird
  • Dieses Tool gefällt mir wirklich gut
    Ich habe es zum Erstellen von Mapless-Diagrammen verwendet: https://sebastianconcept.github.io/Mapless/guides/2024/01/28...
    Und auch zur Dokumentation der Builder-Konfiguration für Pharo VM Plugins: https://github.com/sebastianconcept/PharoPluginBuilder

    • Heißt das, du hast mit einem ASCII-Zeichentool Textdiagramme erstellt, davon Screenshots gemacht und sie auf die Website gestellt?
      Für ein paar Rechtecke wirkt das ziemlich umständlich; gibt es keinen einfacheren Weg?
    • Ich nutze es für die Dokumentation von Quellcode, und es ist sehr gut, weil man Buffer- oder Struct-Layouts direkt im Code visualisieren kann
  • Es wäre wirklich schön, wenn das Cross-Platform wäre
    Ich würde es auch gern unter Linux nutzen
    Ich verstehe den Aufwand, der nötig ist, um eine ausgereifte App zu bauen, aber ich wünschte, Desktop-App-Tools würden Linux, Windows und Mac besser adressieren
    Das ist vermutlich auch ein wichtiger Grund dafür, dass es immer mehr webbasierte Apps gibt

    • Ich finde es etwas überraschend, dass Qt für Desktop-Anwendungen nicht häufiger verwendet wird
      Für Apps dieser Art passt es wirklich gut
  • Ein tolles Tool
    Als Alternative mit Web-Version gibt es https://github.com/tuanchauict/MonoSketch, das ein Freund in Kotlin gebaut hat
    Ich habe auch eine weniger fertige Version in Rust gebaut: https://github.com/huytd/ascii-d

  • Sieht gut aus
    https://asciiflow.com/ ist eine webbasierte Alternative und seit zehn Jahren mein hauptsächlich genutztes Tool

    • Ich nutze ASCIIFlow ständig
      Allerdings habe ich noch nicht herausgefunden, wie man Browser dazu bringt, Monospace-Schriften korrekt zu rendern
      Siehe die Beispieldiagramme auf dieser Seite: http://uggly.bytester.net/#how-it-works
    • Text in solchen Diagrammen scheint von Screenreadern nicht gelesen werden zu können
  • Das ist die Art App, die man kauft und behält, selbst wenn man sie nur gelegentlich nutzt

    • Ich frage mich, ob du sie schon lange nutzt oder nur vermutest, dass es die Art Software ist, die dir gefallen würde
      Falls du sie selbst verwendet hast, würde mich auch interessieren, wie du die erstellten Diagramme genutzt hast
      Screenshots von Diagrammen kann ich mir vorstellen, aber der ursprüngliche Text scheint zu groß, um ihn etwa in ein Terminal zu setzen
    • Auch das Website-Design ist aufgeräumt
  • Diese App ist 2018 in den Wartungsmodus gegangen; hat sich seitdem etwas geändert? https://blog.helftone.com/monodraw-maintenance-mode/

    • Ich bin der Entwickler von Monodraw
      Danke für die positive Resonanz auf die App
      Mir fehlt extrem die Zeit, deshalb kann ich nicht mehr Updates veröffentlichen
      Ich arbeite an einigen häufig gewünschten Funktionen, kann aber nicht versprechen, wann sie veröffentlicht werden
      Normalerweise komme ich im Urlaub ein Stück voran
      Trotzdem werde ich weiterhin Probleme beheben, die durch OS-Upgrades entstehen, und dafür sorgen, dass das Produkt weiter funktioniert
    • Wenn man sich https://x.com/Monodraw ansieht, scheint es tatsächlich Updates gegeben zu haben
    • Die Antwort unten in den FAQ ist etwas seltsam
      Als Gründe werden genannt, dass die Pflege eines Open-Source-Projekts eine große Belastung ist und dass bei einer Open-Source-Veröffentlichung eines fertigen Produkts Klone an ahnungslose Kunden verkauft werden könnten
      Aber bei einer Open-Source-Veröffentlichung könnten Beitragende einen Teil der Arbeit übernehmen, und bestimmte Lizenzen können den Verkauf solcher Klone verhindern
  • Ich habe es früher ausprobiert und fand es gut
    Soweit ich mich erinnere, war ein Kritikpunkt, dass man das eigene integrierte Dateiformat verwenden musste, wenn man coole Funktionen wie Anker oder skalierbare Boxen behalten wollte
    Nur weil man direkt auf eine ASCII-Zeichnung in einem Markdown-Dokument zeigt, bekommt man nicht automatisch alle Funktionen
    Wenn man wirklich wollte, ließe sich das wohl mit cleveren Algorithmen und LLMs bis zu einem gewissen Grad lösen; tatsächlich habe ich LLMs recht häufig mit gewissem Erfolg zum Entwerfen von ASCII-Diagrammen genutzt
    Aber ein gutes Gleichgewicht zwischen Wartbarkeit – also der Eigenschaft, Boxen als Boxen zu behandeln und Verbindungslinien beim Verschieben mitwandern zu lassen – und Portabilität – also der Eigenschaft, dass alles reiner Text ist – habe ich noch nicht gefunden
    Wenn sich das in der aktuellen Monodraw-Version geändert hat oder ein anderes Tool dieses Problem löst, wüsste ich das sehr gern
    Zumindest passte Monodraw für mich besser als der artist mode von Emacs

    • Interessante Sichtweise
      Ich frage mich, ob du viele bestehende Diagramme hast, die du verwalten möchtest
      Wenn man bei null anfängt, würde ich so ein abstraktes Dateiformat eher erwarten und es ähnlich sehen wie das Verhältnis zwischen einer Quelldatei wie PSD und einem gerenderten Ergebnis wie PNG
      Oder auch ähnlich wie das Verhältnis zwischen Quellcode und Binärdatei
      Ausgabe-Artefakte wieder in eine sinnvolle abstrakte Form zu parsen, halte ich für schwierig perfekt hinzubekommen