Saturday, November 1, 2014

New Version Available and Future Plans

It has been a while since I have done a post for PlantText, but I am trying to make up for it now. I have been very busy the last week or so working on the small feature changes that people have recommended on the Feedback page, as well as a few other small enhancements I have been thinking about for a while. There were a lot of good ideas and I think I have addressed most of them in the new version that I just pushed out today!

Here are some of the changes made...
  • Added a "TXT" link below the PlantUML diagram so you can convert the PlantUML diagram to ASCII art.
  • You can change the PlantUML Server setting to any URL now, so the diagrams do not need to be created by the default PlantUML server. You can download the PlantUML .war file, install it with a java servlet container like Tomcat 7, and have your own local PlantUML server running from PlantText.
  • Removed the "Dock & Drag" options from the editor page because they were buggy and unnecessary. People did not really use it and they were taking up a lot of space on the page.
  • Added informative pop-up messages in the bottom left corner of the editor page so you would know what the "Save", "Refresh", and other buttons are doing.
  • I added a "Load" button so you can load the PlantUML text that you have saved to the PlantText server using the "Save" button. This is useful if you want to reload the PlantUML and copy over what you were working on. The PlantUML that you last saved is automatically loaded when ever you login, but this keeps you from having to log off and back on again in order to revert back to what you had saved.
  • I made a few cosmetic changes to give the editor page a cleaner look and a bit more usable space. 
Also, I responded to all your posts on the Feedback page. I hope the answers helpful. Thank you for the ideas and the bug reports.

Finally, I wanted to let you know that I am working on adding functionality to help you convert PlantUML class diagrams to code stubs in a number of programming languages. In this case, PlantUML text would be sent to another web service in order to dynamically generate the code stubs. I am building this on top off the work done by Brian Folts at GitHub. He did all the hard work. I am just extending his effort and wrapping it in a web service so we can use it from PlantText. I will contribute most of these changes back to his repository as soon as I learn Git and GitHub.

I'll keep you posted on additional changes and when they will be available!



Thursday, February 20, 2014


Why use a text based diagramming tool? To some it sounds crazy. Even some of the developers I work with laughed it off as just the latest wild idea from someone who transitioned from being a typical Microsoft programmer to more of a Linux / command-line sort of guy. They expect me to be at the command prompt while coding, doing server maintenance or managing source control. But for creating UML diagrams? Really?

I began working with PlantUML a few months ago. I started off using all of the freely available tools out there, primarily the really nice PlantUML QT editor. I was hooked right away. After a small investment of time getting up to speed on the handful of keywords needed, all of a sudden I could create UML diagrams from text. Text is a powerful thing. Using text-based diagrams means they can be versioned in our version control system. We can run diffs on them to see what’s changed over time. It also solves the problem of developers creating pretty diagrams with little meaning; PlantUML makes it easy to generate standard UML diagrams. Just like anything run from the terminal, it’s the only way to truly document work that you’ve done in a way that’s completely maintainable and reproducible. I can send a snippet of PlantUML to a colleague and know that when he drops it into the viewer of his choice, he will see exactly the same diagram that I’m looking at.

Don’t get me wrong. I’ve used just about all of the graphically-based diagramming tools out there. Some of them I like a lot. Creately is one of my favorites. But what I noticed when I started working with PlantUML is that my thought process remained focused on the complex idea I was trying to model, instead of getting sucked into thinking about where to put the next rectangle and how big it should be. Using those graphically-based diagramming tools you spend a lot more time than you realize dragging boxes around, coloring, and drawing connectors between them. It can hijack your thought process. Using PlantUML allows me to stay elbows-deep in my class diagrams.

For me, working with PlantUML is a better alternative. I simply don’t like learning proprietary tools that have their own menus and widgets and GUIs and do things in specialized ways specific to their own pieces of software, and that change arbitrarily from one release to the next. I want to write text, have diagrams generated for me, and know that I can use the QT Editor or the .Net editor or PlantText, and get exactly the same diagrams returned to me.

I was so drawn in by the power of PlantUML that I decided to build my own editor to fill in some of the gaps in the other available tools. I didn’t want a desktop application; it had to be web-based. It also needed to accommodate really large diagrams. I wanted something integrated with Google Apps, because I use Google Apps personally and professionally. I also wanted the editor to be loaded with features. PlantText supports VI Editor and Emacs bindings, it supports theming, and it handles tabs and other special character keystrokes very well. It uses the Ace Editor, a free, incredibly sophisticated HTML editor, as its foundation.

Down the road I see the potential of adding some extremely powerful features to PlantText. Converting PlantUML to Code in both directions is next on my list, so that code stubs can be generated from PlantText class diagrams and, conversely, PlantUML diagrams could be generated from code. With that feature in place it opens the door to integrating with continuous integrations software, so that updated UML diagrams could be generated from your build server.

PlantText isn’t for everyone. It’s an expert’s design tool. It’s meant for people that see the value in investing a small amount of time up front to reap greater rewards over the long haul.

Try it out at when you have a few minutes.