13 ms·
Nomnoml
- zubairq 3y agoReally amazing, think I'll be using this quite alot now!
- 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.
- thangngoc89 3y agoI wouldn't count those comments as asking for more free stuff. I would think of them as feature requests, ideas, suggestions. Whether or not to implement them is totally up to the author, and the author could charge for those if they decide to implement it.
- mactavish88 3y ago[flagged]
- oblio 3y agoI'd have to at least switch tabs and that's very demanding.
- thangngoc89 3y agoIsn't that the point of posting/ commenting on HN? So that we can discuss about the post? I see something on HN and after checking it, I would definitely comment on HN first.
- mactavish88 3y agoAs someone who has been working on open source software for 5 years now, GitHub issues are my primary source of truth for what users want and how to go about prioritizing features. If people can’t be bothered to log an issue or thumbs-up/comment on an existing one, it can’t be such an important thing to them.
- josephg 3y agoYeah; comments fill a different use case. And for that reason I still find comments interesting. I'd never write a github issue unless I have a clear use case for a feature, or a clear reproducable bug. And on the receiving side, I hate unclear discussion style issues - "This is cool but its slow when I do (hacky unsupported thing)". But with comments you surface much more "raw" reactions to things. "Oh cool - I didn't think about the problem like that". "I've always wanted something like this for (some weird problem)", or "How come everyone who tries to solve this problem uses approach X? Is there a reason people don't use approach Z?". Maybe as a maintainer, the beauty of HN comments is that you don't actually need to reply to them. Github issues sort of demand a response by their very being. If you leave them, they get in the way and make the issue repository basically useless. If you close them without responding, its kinda rude. And responding takes time. Comments, on the other hand, can just be comments. Its lovely.
- oblio 3y agoNice comment! Could you please provide a few more details about what you mean exactly?
- waveBidder 3y agoit's hard to tell if you're mocking the grandparent or people making feature requests
- oblio 3y agoWell, kind of both :-)
- barthvr 3y agoThe first two comments (by timestamp) are one guy (OP) asking for an Obsidian plugin, and the second one is a guy asking for the implementation of swimlane diagrams.
- CapsAdmin 3y ago> It blows my mind though how the moment that someone offers free stuff, the first comments are people asking for more free stuff. If you create something from the perspective of "I had to make this on my unpaid spare time..", then requests for additional work do seem annoying. But is that the case here? If I made a utility I thought other people could also benefit from I'd personally be open to suggestions. I'd ignore a lot of them, but every now and then someone requests something interesting that sparks motivation to expand the utility.
- z500 3y agoI have a tool I've been working on on and off, and after several years it's actually working. But I was barely smart enough to do even that. If people actually started using it and asking for features that would be a nightmare for me lol
- lcnPylGDnU4H9OF 3y ago“No” is your friend in such scenarios. “Because I made it for me and I don’t need that” is your other friend if people are insistent. (A screenshot of the “fork” button on Github might be a third, rather muscly friend who doesn’t like to talk.) I do understand the desire to be helpful but one should put themself first when it comes to fulfilling requests. Just in case anyone gets here and is similarly discouraged. (Good job finishing the features you wanted!)
- BossingAround 3y agoYou can always say "feel free to fork my project, I currently don't have the bandwith." That's absolutely within the spirit of open source.
- xoac 3y agoDo you maintain any popular open source projects?
- CapsAdmin 3y agoI have one popular project I've worked since around 2010. Lately I've let some of the long time users who can also code maintain it though. It's a character creation editor for a game, a bit like second life in a way. (it's called pac3 for garrymsmod) I don't have any numbers apart from steam workshop which claims 800k current subscribers, though that doesn't say anything about active users. But there are a lot of tutorials, discord groups, etc centered around this so I'd call it popular. The way I maintain this project is not very professional. I maximize my own joy first because if I don't have that, I can't work on the project. The community is loud, maybe because the community is also mostly young gamers. Sometimes I break things and people complain. Sometimes they can call me names, write long emotional posts about how I should revert something and how everything was better in the past version. But overall I enjoy working on the project and seeing the amazing things people create with it that I could never foresee. There are several channels for feature requests (github, discord, steamcommunity), but I don't actively follow it. I usually check when I'm not sure what to do but still feel like working on it. Sometimes people contact me directly to ask if I can add X feature. Sometimes that works. For features in general I try to implement something everyone can benefit from, since the editor allows you to create things from smaller building blocks, I'd rather make those smaller building blocks necessary to create the high level feature that was requested.
- 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.
- f1shy 3y agoI see those requests as gratuitous feedback and ideas that could be useful. I‘m glad to have more requests. By no means I‘m going to implement them, but maybe some request triggers useful ideas.
- j-a-a-p 3y ago> It blows my mind though how the moment that someone offers free stuff... Try to launch a free service for consumers and experience how they are entitled to stuff just because you offer this service.
- 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.
- 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
- 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.
- deepsun 3y agoPlantUML supports one of my most-used diagram: Sequence. nomnoml doesn't, unfortunately.
- 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.)
- 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
- vidarh 3y ago> and in many case you also somewhat want something which is less precise (and verbose) then UML theoretically is This tends to be "the" big problem with UML (and similar): Very few people care about, or have a reason to, stick 100% to UML. They want to "speak diagrams", and just like written or spoken language, our syntax and semantics is context dependent and dependent on the dialect and speech patterns and understanding of those we speak to. So the "UML" people learn is often a dialect of sorts closer or further from the formal grammar, and a lot of tools fail to take that into account and try to force you into conformity. We accept that for programming languages, yet we still use pseudo-code in all kinds of contexts, but diagrams are one step up - one of the things we "escape to" when writing formal code is too complex or we want to explain things to people who don't know or care about the details. There's a significant strain there between those conflicting goals of diagrams as communication, and the evolution of CASE tools that wants diagrams to be formal, that is much closer to how we deal with natural languages (people arguing over formal use vs. slang) than with programming languages, and it's fascinating.
- layer8 3y agoIt’s a pity, because one benefit of UML would be that everyone speaks the same language. Before UML, there were many different modeling notations [0], and the goal with UML was to create a single interoperable unified language. This was successful insofar as it displaced the previous object modeling languages. However, it would be nice to have that benefit of a modeling lingua franca not only in modeling tools, but for casual usage as well. [0] https://en.wikipedia.org/wiki/Object-modeling_language https://en.wikipedia.org/wiki/Object-modeling_language
- 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.
- 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.
- withinboredom 3y agoThese specialized grammars attempt to strike a balance between human-readable and machine-readable. JSON is a terrible solution because you'd have to have an id + dictionary, then a list of relationships. Basically, no human is ever editing that.
- thomasfromcdnjs 3y agoDepends on the person I guess, I've actually found it easier to type out my diagrams.
- 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.
- guntherhermann 3y agoI work with someone who is blind, and our diagrams are written in something similar to this (can't remember the name, but confluence either supports it out of the box or there's a plugin for it). And personally, if you're going to suggest an alternative, Miro is not the one. Irritating SAAS nonsense
- withinboredom 3y agoI use mermaidjs for basically everything documentation related. It works in GitHub ... confluence ... everywhere. This looks like a much prettier version of that.
- hahn-kev 3y agoYeah, for me this is why nothing else can compete. If there's native support in GitHub it's hard to see anything else as better without that feature.
- withinboredom 3y agoTo me, that’s also a problem. It locks out competitors (like this tool). It’d be great if they simply allowed installing arbitrary renderers on an org (basically, given a fenced input, output an image or formatted text).
- h0l0cube 3y agoThese mark up languages like PlantUML/Mermaid are diffable, mergeable, and can sit there in the repo right next to the code it's designing for. Many IDEs and cloud repositories support displaying them. Not sure if that's the case for nomnoml though.
- 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]
- bmacho 3y agoedit: I thought that it goes top to down, but no, it determines order other ways. Original Pirate table: [Pirate| [beard]--[parrot] [beard]-:>[foul mouth] ] parent posts Pirate table [Pirate| [foul mouth]<:-[beard] [parrot]--[beard] ] this is upside down. Defining beard and parrot the order we want them to appear doesn't help: [Pirate| [beard] [parrot] [foul mouth] [foul mouth]<:-[beard] [parrot]--[beard] ] it is still upside down.
- ororroro 3y agoThanks for treating this as a puzzle. I think it proves the point that you either need to reverse engineer the layout engine in your head or guess and check to get good layouts.
- Veuxdo 3y agoThis pirate example is not doing us any favors. Is there a way to arrange these jumble of words in a way that makes any sense?
- p1mrx 3y agoArrr, it be fine as it be, now sail off ye scallywag.
- 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!
- 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?