[HN Gopher] Show HN: PlantUML based collaborative UML editor is ...
___________________________________________________________________
Show HN: PlantUML based collaborative UML editor is now open source
Author : AlexITC
Score : 167 points
Date : 2023-01-28 04:55 UTC (18 hours ago)
(HTM) web link (github.com)
(TXT) w3m dump (github.com)
| jph wrote:
| Great tool! Would you be open to CollabUML adding PlantUML Font
| Awesome icons?
|
| You can see the demo PlantUML for "Area diagram demo" that I'm
| using:
|
| https://github.com/joelparkerhenderson/demo-plantuml
| AlexITC wrote:
| Actually, those icons look very nice, right now, the app uses
| the public plantuml server, which means that I can't control
| any settings it runs with.
| pachico wrote:
| I still don't understand why not everyone uses diagrams as code.
|
| The implications of having an easy tool to document and express
| ideas in a visual way and have it all up to date are enormous.
| mndgs wrote:
| Why not put this thing online, real Collab mode? Just have each
| session with a different uuid in the URL, so that one can share
| it with other team... Full private mode could be smth one would
| need to pay for, to fund hosting costs.
|
| (Real lazy to compile the client each time just to do colab work
| on UMLs)
| AlexITC wrote:
| > Why not put this thing online, real Collab mode? Just have
| each session with a different uuid in the URL, so that one can
| share it with other team
|
| I'm not sure how that would change much from its current
| behavior, you can put a random value at the url and work with
| it, actually, we have used the tool in my team several times.
|
| > Full private mode could be smth one would need to pay for, to
| fund hosting costs
|
| I used to have an text at the bottom of the page mentioning
| this, my idea was to get a couple of customers before investing
| considerable time in developing the tool, there is a lot that
| could be done!
|
| > (Real lazy to compile the client each time just to do colab
| work on UMLs)
|
| Do you mean compiling the text into the diagram?
| mndgs wrote:
| If the author agrees and provided the other dependants (the two
| sites this is built upon) don't mind, I can put a little
| backend for this. Not too difficult.
| AlexITC wrote:
| Actually, both dependencies are specified:
|
| 1. https://github.com/ether/etherpad-lite 2.
| https://plantuml.com/ -> go to the bottom, there is an editor
| that renders the diagram, collabuml uses such a public api.
|
| I'm happy to provide details about running etherpad if
| necessary.
|
| > I can put a little backend for this. Not too difficult.
|
| Etherpad is the collaborative backend, plantuml is the uml
| renderer (there is a way to run a server with this).
| bb88 wrote:
| Grady Booch would love this.
| tluyben2 wrote:
| You can tell him https://twitter.com/Grady_Booch
| AlexITC wrote:
| I challenge you to get his attention to this tiny project, if
| successful, I'd invite you a beer/coffee.
| FpUser wrote:
| Grady Booch / Rational went overboard with UML. UML is very
| nice when used in moderation but basing all development on
| their tools and creating exportable to code designs as they
| envisioned is total madness.
| kgilpin wrote:
| That was not Grady Booch's doing. His vision was not for UML
| to become a full blown programming environment. It was meant
| to be a disposable thinking tool for developers, which is
| more how people are using it now.
|
| See for example,
| https://www.informit.com/articles/article.aspx?p=1405569
| jostiniane wrote:
| love the tool! Came across plantuml and presented it to my
| colleagues 1 year ago, it got all the attention and it's the
| defacto tool in my current workplace.
| AlexITC wrote:
| Hi hn,
|
| It's been almost 3 years since I created CollabUML [1] and got a
| lot of fun seeing what the hn community was doing with it, since
| then, I have been thinking many times on making the repository
| public. Better late than never, right?
|
| It is worth sharing how this started, I was taking interviews
| including a system-design phase, I used to launch my IDE's to
| render PlantUML diagrams while I thought that it would be more
| cool to just share a url instead of sharing my screen.
|
| I made a plan and took the weekend to build it, while I have
| invested minimal time/effort in this, this side-project is the
| one that has got the most attention so far.
|
| Anyway, play with it [2] and let's see what we get.
|
| Thanks hn!
|
| - [1]: https://news.ycombinator.com/item?id=22955971
|
| - [2]: https://collabuml.com
| mdaniel wrote:
| The post title says open source but the repo is missing any
| license file and the readme doesn't specify your license either
| (although the license file would be better since GitHub's
| detector doesn't scan the readme for licensing text)
| AlexITC wrote:
| Good catch! I just added an MIT license.
|
| Thanks for reporting.
| foooobaba wrote:
| We use plantuml all the time for sequence diagrams, we check
| the code into git and use the generated images in the
| documentation, then the readme.md provides detailed doc of our
| subsystems, plus people can comment on exact lines of code in
| the plantuml source during pull requests...
|
| So thanks for building this, it's awesome!
| AlexITC wrote:
| Some time ago, github introduced support for Mermaid diagrams
| (https://github.blog/2022-02-14-include-diagrams-markdown-
| fil...), a nice perk is that you don't need to compile the
| diagrams because github renders these automatically.
| hutzlibu wrote:
| It is nice, that you open source it, instead of throwing it
| away, but you might want to add, that you seem to have no real
| plan of maintaining this any further:
|
| https://news.ycombinator.com/item?id=34556346
|
| "with no plans to go back touching js/ts for anything serious"
|
| Or am I missinterpreting things?
| AlexITC wrote:
| I updated the README to reflect the project state.
|
| > "with no plans to go back touching js/ts for anything
| serious" > Or am I missinterpreting things?
|
| If for any reason this project became something I'm focused
| on, I'd just migrate it to Scala.js which is what I feel more
| comfortable with.
| alixanderwang wrote:
| Really cool, thanks for sharing! Would you have chosen Etherpad
| if you had to do it again? (I'm thinking of adding text
| collaboration to an open-source project I maintain). Did you
| get requests to support non-Etherpad servers?
| AlexITC wrote:
| > Would you have chosen Etherpad if you had to do it again?
|
| Hard question, it really depends on my goal, for building a
| quick prototype, I'd certainly use Etherpad again because it
| is trivial to launch it, and, more or less, it has worked
| reliably for the last years. On the other hand, collaborative
| editors have lots of progress with CRDTs now, it is worth re-
| evaluating options.
|
| I'd bet that the key would be whether Etherpad can be easily
| customized to fit your goal.
|
| Of course, as a dev, I was fantasizing about potentially
| writing my own collaborative editor someday if there was a
| way to make the project financially viable , for sure, this
| is the least important thing to make it get there.
|
| > Did you get requests to support non-Etherpad servers?
|
| Not really, I think I have got less than 5 emails about this
| project so far.
|
| > I'm thinking of adding text collaboration to an open-source
| project I maintain
|
| If you don't mind sharing, what's that project about?
| alixanderwang wrote:
| Thanks for the reply.
|
| > If you don't mind sharing, what's that project about?
|
| I maintain another text-to-diagram language, and we host a
| playground (https://play.d2lang.com). I want to let people
| make collaborative rooms on there.
| AlexITC wrote:
| Looks cool!
|
| Integrating collaboration in the simple way I did it
| should be a piece of cake, feel free to contact me
| privately if you need any help running etherpad, it is
| mostly tweaking a few settings and putting nginx on front
| of it.
| johnwheeler wrote:
| I don't understand. What do you mean you created PlantUML?
| FPGAhacker wrote:
| Pretty sure he meant to say "collabUML"
| dang wrote:
| It was a typo. Fixed now.
| isitmadeofglass wrote:
| > It's been almost 3 years since I created PlantUML [1] and got
| a lot of fun
|
| I assume you meant to write that you created collabUML 3 years
| ago, and not accidentally take credit for creating PlantUML
| itself, which is 14 years old and was created by Arnaud Roques
| in 2009.
| hutzlibu wrote:
| I vouched for this comment, but it seems you are shadow
| banned, meaning all your posts don't show, except for people
| who have showdead=1. You might want to work on your personal
| insult debate style and then email dang and ask for it to be
| removed.
| mlvljr wrote:
| [dead]
| sorokod wrote:
| _It 's been almost 3 years since I created PlantUML_
|
| An unfortunate typo, PlantUML is a 99.9% Java project residing
| here [1]. The source is worth reading as it has few external
| dependencies and a lot of functionality is implemented from
| scratch, e.g. a JSON parser [2].
|
| [1] https://github.com/plantuml/plantuml
|
| [2]
| https://github.com/plantuml/plantuml/tree/master/src/net/sou...
| AlexITC wrote:
| Thanks for reporting, I posted this close to my midnight,
| after that, I wasn't able to edit my comment anymore.
|
| I have contacted hn by email to ask for help.
| dang wrote:
| Fixed now.
| EgoIsMyFriend wrote:
| i know people are upvoting this because it got open sourced but
| i'm wondering if anyone actually uses UML outside of university
| classes i attended? if anyone would give his experience i would
| appreciate it
| andystanton wrote:
| We make extensive use of sequence diagrams using PlantUML at my
| work. We don't rigorously adhere to the correct UML arrow types
| and so on, instead preferring it as a fast way to clearly
| communicate data flow over time. The fact that it's in a text
| format means it can be conveniently edited and stored in source
| control.
|
| I've had less success with component diagrams to represent our
| systems because the layout engine in PlantUML is (or used to
| be) quite limited. This resulted in diagrams that didn't
| communicate the system as well as if I manually drew boxes and
| lines.
|
| There is a fantastic plugin for Jetbrains IDEs that generates
| the diagrams in real time which is great for fast feedback, and
| can be used for driving out diagrams while presenting video
| calls.
|
| Overall, my conclusion is that you can pick the parts that are
| useful to you and the people you communicate ideas with.
| jph wrote:
| We're in the same boat with component diagrams, where the
| layout engine is insufficient. What did you choose to do for
| alternatives?
| gregmac wrote:
| I found using groups, colors and direction hints gets
| mostly around the issues. Enough that the benefits outweigh
| the downsides of switching to something else (that doesn't
| get source control, requires separate edit/export steps
| etc). group sys { one -down->
| two }
| AlexITC wrote:
| > There is a fantastic plugin for Jetbrains IDEs that
| generates the diagrams in real time which is great for fast
| feedback, and can be used for driving out diagrams while
| presenting video calls.
|
| That's exactly how I use it!
|
| > We make extensive use of sequence diagrams using PlantUML
| at my work. We don't rigorously adhere to the correct UML
| arrow types and so on, instead preferring it as a fast way to
| clearly communicate data flow over time. The fact that it's
| in a text format means it can be conveniently edited and
| stored in source control.
|
| Similar situation, Github now supports rendering Mermaid
| (https://github.blog/2022-02-14-include-diagrams-markdown-
| fil...) but I'm yet to give it a try.
| starkd wrote:
| At first, I read this as "plant-based UML". I was expecting it
| to be a vegan option.
| jeffreygoesto wrote:
| Sure! Docs-As-Code with PlantUML and in our case Sphinx
| (AsciiDoctor is just as good, in our case Sphinx-Needs moved
| the needle) is a nice low effort "persist your architecture
| ideas in the repo" solution. You can check that every PR has a
| piece of documentation and design coming with the new feature.
| We're getting more from being in- to semi-formal and not trying
| to use UML as a programming language.
| agumonkey wrote:
| I hated I'll with a passion before, but in my actual job it
| would provide a better pivot point to explain structure and
| protocols compared to a GitHub issue in plain text. Ironic.
| oscillonoscope wrote:
| I've used plantUML for state/timing/sequence diagrams in the
| digital logic space
| e12e wrote:
| On a small project I used sequence diagrams to document a
| custom Api/data flow, so that another team (different company)
| had a reference for implementing the client to my (bespoke)
| JSON/REST server.
|
| I frequently draw simplified architecture and data/entity
| diagrams that tend to be "mostly" UML.
|
| Generally on a whiteboard while discussing design/architecture
| - rarely do they end up as permanent artifacts/documentation.
| h0l0cube wrote:
| I have absolutely used it for designing before building complex
| things and documenting complex things after they've been built.
| At the design phase, I find it's useful to iterate on high-
| level UML to anticipate the architectural challenges that lay
| ahead vs iterating on implementation when I've already found
| myself in the weeds. If you peruse AWS documentation you'll see
| UML diagrams of all kinds right through it. And you're probably
| very familiar with sequence diagrams if you do anything network
| or concurrency related.
| FpUser wrote:
| I use selective UML concepts to express my designs. My current
| tool of choice so far is StarUML which also lets me export the
| designs as nice looking HTML
| zppln wrote:
| Software level design documentation in aerospace make extensive
| use of UML (my shop even use PlantUML). Sequence diagrams in
| particular are quite useful.
|
| People often find that level of documentation a bit redundant
| if you have access to the code, but if you're pressed for time
| and the diagrams actually describe the crucial parts it can be
| a huge timesaver when you have to fix something in a 10 year
| old component.
| toyg wrote:
| Yeah, UML overall is a bit overengineered, but sequence
| diagrams can be incredibly useful.
| AlexITC wrote:
| I have been involved in many teams where we used PlantUML for
| sequence diagrams, which are specially helpful to explain a
| complex process.
|
| To me, I have saw considerable performance improvements when
| sharing sequence diagrams to devs that are not very familiar
| with a project or its domain.
|
| Unfortunately, sometimes it is complicated to understand when a
| diagram is worth it because while an experienced dev can find
| something obvious, an less experienced one can struggle on that
| for a while.
|
| EDIT: I forgot mentioning that these diagrams were super
| helpful when presenting solutions to technical
| customers/partners, instead of preparing a PoC, we could just
| create the diagrams to explain the proposal flows.
| ewi_ wrote:
| TL;DR: Not the UML you're taught in school, but check out C4
| Model https://c4model.com/
|
| --
|
| Pure UML is pretty rare in my experience, and most likely used
| only in very strict environment that don't change often
| (security, airplanes,...).
|
| UML concepts and diagrams however are extremely useful to
| collaborate on complex systems or flows. However people don't
| tend to make good diagrams, unless they're very restrictive. I
| find that sequence diagrams are usually the ones with the best
| quality out there because you have to adhere to a strict (and
| rather simple) representation.
|
| For things that are not flows-like I would recommend using the
| C4 Model https://c4model.com/ :
|
| - It provides a simple and constrained way to describe systems
| and their interactions.
|
| - The first two levels are the most useful IMO as they provide
| a lot of information, while being rather static over time.
| Level 3 and 4 typically require frequent changes as your code
| evolves.
___________________________________________________________________
(page generated 2023-01-28 23:01 UTC)