[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)