14 ms·
Nomnoml
- evolvingstuff 3y agoI love Nomnoml. I have lately been using it to visualize hierarchical tag structures in a browser-based PKM project I am working on. I find it creates fairly clean layouts. Example: https://imgbox.com/9A1mDyNv https://imgbox.com/9A1mDyNv
- nerdyadventurer 3y agoHow is this different from Mermaidjs?
- MichaelMug 3y agoNice. Perhaps an Obsidian plugin?
- pfix 3y agohttps://github.com/Daeik/obsidian-nomnoml-diagram https://github.com/Daeik/obsidian-nomnoml-diagram
- estomagordo 3y agoAs a newcomer to Obsidian, I have no idea how to get the svg to render side-by-side.
- vijucat 3y agoVery cool. Please do sequence diagrams with swimlanes; they're the most useful.
- mactavish88 3y agoVery cool! It blows my mind though how the moment that someone offers free stuff, the first comments are people asking for more free stuff. If I wasn't paid to work full time on open source software, I'd think very carefully about whether to do any open source work nowadays.
- dkobia 3y agoThankfully many open source projects stem from people solving for their own problems then benevolently sharing their solution. It isn’t for everyone and we are all grateful for their contributions.
- dingosity 3y agoMeh. I make free stuff and I'm completely okay with people asking for more free stuff. I might be thinking of adding something you say you need, so it's cool to know what other people's requirements are. If they're simple to implement, and other people submit a test case for it, I'm fine with enhancement requests. HOWEVER... I've had a few people who say things like "OMG. YOU MUST DO IT THE WAY I THINK YOU SHOULD DO IT" or "ADD THIS FEATURE OR YOUR NOT A REAL OPEN SOURCE CONTRIBUTOR." And that is definitely annoying. I have a thick hide and don't mind just ignoring those people, but that shouldn't be the default assumption. The people who work on open source projects are people, so don't be a pushy jerk when you're requesting features from FLOSS projects. ALSO... Let people revel in the approval of their peers before pointing out things you would have done differently. This is a cool bit of kit.
- zeroxfe 3y ago> If I wasn't paid to work full time on open source software, I'd think very carefully about whether to do any open source work nowadays. I've been maintaining open source software for two decades now, and I still love it when people ask for more stuff. It signals engagement and satisfaction and gives me very concrete directional guidance around where I should take my software. I'm under no obligation to deliver on those requests. My day job pays my bills, my open source stuff brings me joy.
- budoso 3y agoPersonally I think posting to Github is the offering part, posting the tool to HN is definitely an invitation for opinions.
- sneak 3y agoReading requests is not burdensome. It's just feedback.
- 3y ago
- deleted 3y ago[deleted]
- WesolyKubeczek 3y agoProbably needs some work on mobile — went there on a phone and the diagram was drawn on top of the editor, making the latter unusable.
- pja 3y agoThat’s just the nomnomml demo website - the text is editable so that you can see live updates in the rendered UML diagram. The underlying js library will render straight to an HTML canvas or to SVG from a Node.js program. You can run it from the command line if you want to.
- WesolyKubeczek 3y agoI know it is editable, it's just inconvenient af to edit the text if the diagram is being drawn right over it.
- withinboredom 3y agoyou can move it out of the way.
- jiehong 3y agoLooks nice, and much nicer from plantuml class diagrams [0]. [0]: https://plantuml.com/class-diagram https://plantuml.com/class-diagram
- deepsun 3y agoPlantUML supports one of my most-used diagram: Sequence. nomnoml doesn't, unfortunately.
- h0l0cube 3y agoMight be. But instead of another fragmentary standard can't we make the already reasonably supported one look better by default?
- cdchn 3y agoMaybe theres an opportunity for, instead of Yet-Another-Text-To-Diagram-DSL we could make a diagram styling store ala WordPress themes.
- rurban 3y agoThe last e label is missing in this sample
- hnbad 3y agoNeither the end node nor the start node have a visible label. I suspect this is intentional but they shouldn't take a label argument then.
- planede 3y agoThe label seems to serve as a reference. If have `-> [<end>a]` and `-> [<end>b]` then that's different than having two instances of `-> [<end>a]` from different source nodes. Being able to visibly label them would still make a lot of sense.
- eru 3y agoThis was very confusing, until I found the 'about' button. I guess I'm leading a charmed life, because I can not recognise UML on sight? (I thought at first this was describing a grammar of fake pirate language or something.)
- IshKebab 3y agoThe way to recognise UML is by the wide variety of arrow styles that nobody can remember. I'm 90% sure that's the main reason it didn't catch on. You have to learn UML because of the stupid arrows. Compare it to something like this which acknowledges the fact that nobody is going to casually memorise 10 different styles of arrow just to read occasional UML diagrams: https://buck2.build/docs/concepts/concept_map/ https://buck2.build/docs/concepts/concept_map/ Much better.
- eru 3y agoDifferent arrows are useful to express different relationships. But perhaps you should just put a legend next to each diagram, or use words to annotate your arrows?
- Etherlord87 3y agoNo one forces you to use all possible arrows, you can learn just one, and use that. When reading a diagram, ideally you would read it by looking at the generated diagram, not text, as that's the entire point, but even when reading the raw text, it's apparent where the arrows are, based on "less than" and "greater than" characters, no?
- IshKebab 3y ago> No one forces you to use all possible arrows, you can learn just one, and use that. Not if you want to read other people's UML diagrams, which is rather the point.
- dathinab 3y agoit's not really UML, at least not standard conform I think through that's kinda true for a ton of tooling using the word "UML" and in many case you also somewhat want something which is less precise (and verbose) then UML theoretically is
- kagevf 3y agoReminds me of graphviz :)
- Aissen 3y agoOne of those "text to diagram" contenders did a comparison website (open source) a while back: https://text-to-diagram.com/ https://text-to-diagram.com/ (nomnoml isn't in there).
- imiric 3y agoThat site is created by the maintainers of D2[1], so it might be biased, but I still think D2 has the friendliest syntax of the bunch, including nomnoml. [1]: https://d2lang.com/ https://d2lang.com/
- makach 3y agothis just triggers my entire spectrum of love for this text-to-diagram, but I always struggle with increasing difficulty managing content as the complexity grows.
- nicce 3y agoIf you edit these manually - yes. Usually these sort of tools are meant to generate output programmatically. Otherwise dragn'drop could be more useful.
- orobinson 3y agoI actually find this acts as a useful heuristic to bound the complexity of a diagram appropriately. For example if I'm making a diagram with Mermaid and find the code is becoming unwieldy, I take that as an indicator that I'm trying to stuff too much info into one diagram and I should split it into separate diagrams or redo it at a higher level of abstraction.
- sBqQu3U0wH 3y agoThese tools show up from time to time here, and I can appreciate the technical side of things and effort put into building the tool. However, I cannot imagine using something like this in practice - either at work or for my own uses. It's so much easier just to select, drag and drop graphical elements instead of spending time learning a specific markup language and typing everything out, hoping that the elements will appear approximately where you wish they would. Maybe it's not too bad for very simple diagrams but unmanageable for anything complex. All in all, I think it does not solve any problems and merely adds an additional layer of complexity.
- Pxtl 3y agoEither way, regardless of whether it's easier - the software world is driven by the power of plain text. Text is king. Text lets you diff, lets you git, lets you pull-request, lets you grep, etc. Look at the popularity of Markdown, a syntax that is just "simple html but it's easy to read in plain-text form". Or YAML, which is just "JSON and XML that doesn't make your eyes bleed, but has the worst type-inference ideas ever". Yes, GUI tools can help. Doing image-links in Markdown is a PITA. Ditto good-looking tables. But still, the idea of "human-friendly-text-first" formats is valid. Doing the same for UML just makes sense to me. Now obviously there are implementation details I disagree with, both in the format and the renderer. But the idea is sound.
- matsemann 3y agoThese markup languages are often not competing with "making a single diagram with drag&drop", though. Lets say you're making lots of variations, then having it in a specified format for easy changes is nice. Or diffing changes. Or programmatically generate them.
- dagw 3y agoLets say you're making lots of variations, then having it in a specified format for easy changes is nice. Or diffing changes. Or programmatically generate them. But in all those cases wouldn't it better to have something with an actual API in a programming language you are familiar with? Or at least a tool the takes something like JSON, for which there already are great tools for parsing, generating and manipulating.
- saberience 3y agoI have a hard time understanding why any engineering team I've ever worked on would use this. Can someone sell this idea to me? Seems like a waste of time when you can knock up fast and easier to understand diagrams with something like Miro which also can be done in a multi-user environment.
- cjf101 3y agoOne advantage for me, is that systems like this let me think only about relationships. This is particularly good when designing, or exploring how to think about an existing system. So for me, I get into a flow state, just connecting the dots logically. Even better: I can adjust the diagram just by adjusting the relationships. Miro and others, I am always thinking visually. It's another step removed from the real thought process. As you point out, these systems sometimes produce difficult to read diagrams. For particularly important communications, I will re-draw these in draw.io, or a similar sort of tool. But then I am thinking more about presentation, rather than relationship design and the tool is better for the job.
- sBqQu3U0wH 3y agoTo each their own I guess, some people like doing it this way, so good for them. I personally wouldn't use this either, as I find GUI tools faster and easier to use.
- jldugger 3y agoThree reasons: 1. I want changes to the diagram to be peer reviewable and understandable. 2. I want something else to manually lay out things, rather than have to adjust it personally on every addition or change. 3. I want a parsable structure I can feed into grafana or similar, so I can decorate the graph with metric data. It seems like it would be cool to have a graph of RPC calls and which links were red.
- cdchn 3y ago>I want a parsable structure I can feed into grafana or similar, so I can decorate the graph with metric data. I don't think this can do it, but it would be cool if it could. Maybe someone can make another diagramming DSL for the Grafana Node Panel.
- ororroro 3y agoGetting a good layout is too dependent on the order of definition. I can see that becoming unsolvable for the user for large diagrams but seems ok for small ones. For example the following gives an ugly yet valid layout of the example: [more loot] no ->[<end>e] [<start>start] -> [<state>plunder] -> [<choice>more loot] -> [start] [Pirate| [foul mouth]<:-[beard] [parrot]--[beard] ] [<table>mischief| bawl | sing || yell | drink ] [<abstract>Marauder]<:--[Pirate] [Pirate] - 0..7[mischief] [<actor id=sailor>Jolly;Sailor] [sailor]->[rum] [Pirate]-> *[rum|tastiness: Int|swig()] [sailor]->[Pirate]
- zoogeny 3y agoOne problem with these tools is that even if you manage to get a good layout for a document then as soon as you need to add/remove/update then you have to wrestle with them all over again. I've used a few of these code-as-diagram products because I dream of a world where technical documentation, including diagrams, are part of the source code of a project. But my experience is that getting acceptable layouts, especially for external distribution but also just for internal use, is arduous. And that frustration leads to at least two possible undesirable outcomes: the diagrams become unreadable or the diagrams become unmaintained. To be honest, the idea of code-reviewing the documents during check-in is also a myth. In general the diffs on these kind of documents are extremely difficult to grok. It is almost impossible to meaningfully check the document is correct without rendering it and reviewing the output. It is the kind of thing I really wish worked. Maybe one day it will become a solved problem.
- dangets 3y agoI've thought the same quite a bit. On one end of the spectrum you could use something like SVG if there were standard or dominant tools used to import/export, but then you lose the ascii readability benefit of tools like this, dot, or d2. It'd be nice to have a mixed text & GUI editor for something like Pikchr diagrams. https://pikchr.org/home/doc/trunk/homepage.md https://pikchr.org/home/doc/trunk/homepage.md https://d2lang.com/ https://d2lang.com/
- 3y ago
- ludovicianul 3y agoI find https://www.structurizr.com/ https://www.structurizr.com/ more suitable for my needs.
- archibaldJ 3y agogh link -> https://github.com/skanaar/nomnoml https://github.com/skanaar/nomnoml
- blagie 3y agoThe language is very, very nice. However, if I ran into this incidentally (not posted to HN for review), I would never use this. I'd see the lack of a github link on the top right, and assume it's a some kind of startup making some prototype hosted tool. The only way to find out this is open-source is to click "about," read to the third paragraph, see github mentioned, click through the link, and click on the license. My major piece of feedback is to add a github link to the icons at the top-right of the page. A .org might also be nicer than a .com. To people asking why this and not a graphical tool? To me, the overhead to moving a graphical tool is very large: 1) I like being able to manage files on github and be able to use common tooling. 2) If someone (including myself, two years later) needs to install Vizio, Illustrator, or whatever other tool to edit my diagrams, pay for a cloud service, or worse, recover something which was hosted in a discontinued tool, I'm SOL. 3) Discovery is big too. I can use normal search tools to find things. If something is locked away in a .ai file, a .docx file, or a cloud service, and I lose it, it's likely lost forever. 95% of the cost of most projects is maintenance, and even if I invest 10x the time up-front into making a diagram in a tool like this (e.g. an hour to learn it, tweak it, and get the diagram I want, instead of 5 minutes in my favourite GUI), that will pay much than an hour in dividends down the line. I use Markdown, LaTeX, and similar for large or important documents because, in the long term, they save time.
- dizhn 3y agoNowadays even with a GitHub link or claims of being open source you have to go check the repository to see what license they actually have and what percentage of the source is actually there. Some repos even have only binaries and some have the source for the open source projects they use. There's actually another category. Open source software with paid plugins. I always wonder what happens when someone adds similar functionality to the open source version.
- scbrg 3y ago> However, if I ran into this incidentally (not posted to HN for review), I would never use this. I'd see the lack of a github link on the top right, and assume it's a some kind of startup making some prototype hosted tool. Yeah, it's absolutely horrible when the GitHub link is in the bottom right rather than the top right. Completely unforgivable. Geez. Do (Free|Net|Open)BSD and GNU tools qualify as open source? No GitHub link as far as the eye can see :)
- einpoklum 3y agoHow does this compare with graphviz, if I were to only create graph-node-like objects rather than tables and such?
- cdchn 3y agographviz can create tables and you can create arrows to specific table cells.
- sts153 3y agosimple and great! a REAL tool
- monkeydust 3y agoIs this type of framework the future of email perhaps? For one I loathe long directionless emails and increasingly my mind starts wondering to something more structured to convey intentions and ideas - should add I am on the business side not an engineer.
- lcnPylGDnU4H9OF 3y ago> something more structured to convey intentions and ideas I struggle to think of what this might be without it turning into some other natural language. For example, the tool that’s used to convey intentions and ideas in these comments is written English, which certainly has its own structure.
- ademeure 3y agoI made a few tools using nomnoml in the past, including control flow & dependency graphs for GPU assembly code. I really like it, the only negative was that there's no reliable way to push certain things to be positioned close together, so for extremely large diagrams it sometimes makes bad choices and it gets a bit messy. The code is reasonably easy to modify as well even if it isn't fully documented, so I was able to hack in a way to have tooltips on hover, and making certain boxes clickable linking to other diagrams. I'm really grateful for this awesome tool being open source!
- zubairq 3y agoReally amazing, think I'll be using this quite alot now!