Thursday, 2 July 2015

Gliffy vs Plantuml

At work we have used Trac3, especially it's wiki, as well as PlantUML2, which fitted seamlessly inside Trac.

Recently we have moved over to Confluence3 and a different diagram tool called Gliffy (which company makes an excellent plugin for adding Gliffy to Confluence)1.

After working with both PlantUML as well as Gliffy, I thought I'd write down some points in favour of both.
PlantUML
UML Images are generated by interpreting a simple and intuitive language.
Gliffy
a Web-based drawing tool for diagrams

PlantUML

Pro Con Comments
Layout is handled by the tool itself Influence of user on layout is limited makes it easy to create diagrams quickly
software with required libraries without UI
possible integration via commandline, for example batch jobs, software buildscripts to generate documentation automatically (javadoc for example) difficult integration with Confluence
a simple and intuitive language makes it easy to create diagrams quickly it is a markup language, and therefore more suited to software developers
strong focus on UML limited number of diagram components, strong focus on UML
very easy to change existing diagrams, even very complex ones

Gliffy

Pro Con Comments
Layout can be adapted in every little detail You get stuck having to draw instead of simply create diagrams makes it difficult to create or change diagrams quickly
Web tool - no obvious software needs to be installed (only on the server) Responsiveness is not great in a web browser
excellent integration with Confluence by means of a plugin
even managers might be able to use it which is a really really bad idea.
lots and lots of diagram components, including UML
very difficult to change existing diagrams, sometimes things need to be redrawn5

Conclusion

If you wish to draw UML diagrams quickly, and integrate them into your build process, PlantUML is the way to go.

If you need all the flexibility you can get and you don't mind having to draw and layout things yourself, Gliffy is the way to go.

References

[1] Gliffy
https://www.gliffy.com/
[2] PlantUML
http://plantuml.sourceforge.net/
[3] Confluence
https://www.atlassian.com/software/confluence
[4] TRAC - Integrated SCM and Project Management
http://trac.edgewall.org/wiki/TracWiki
[5] impossible to change the type of a component in Gliffy
work around is to delete the entire component, and create a new component of the correct type

Thursday, 25 June 2015

Comparing Files using Find and CMP

I needed to compare two directories containing binary files. Rsync was confusing, Diff only compares text-files.

I tried the following:
#!/bin/bash
# Example: ~/compare.sh FC30-3DA9
# where $1 is the directory name
# requirement: you are in one of the two parent dirs.
# the directories to compare must have the same name

find $1 -type f -exec sh -c '
  for f; do
    cmp "$f" /directory/of/mr/bear/"$f"
  done
' sh {} +
Seemed to work fine.

References

How to compare files in two folders using cmp?
http://www.unix.com/shell-programming-and-scripting/144821-how-compare-files-two-folders-using-cmp.html