Sunday, February 26, 2012

State of numerical computation languages

When I was a student I spent a huge amount of time doing difference numerical computation with MATLAB and Maple. I must say I was falling in love with MATLAB. This environment, language and visualization possibilities were amazing and very powerful. I simply couldn't choose another stuff. It gave me a chance fully concentrate on engineering problems I had been trying to solve.

But now I must admit that MATLAB is very expensive software. And we should look around for other open-source mathematical computation environments. Today I'm biased because I prefer to invest time in general purpose language then in specialized computation languages (like MATLAB, R).

I've found very interested comparison (Mathesaurus):

Also, Hyperpolyglot provides nice comparison "Numerical Analysis Software: Fortran, MATLAB, R, NumPy".

Based on these two comparisons I've selected several factors for choosing the "right" numerical environments:
  1. Commercial or open-source
  2. Visualization possibilities
  3. Language itself (MATLAB, Maple, R, etc.): computational specific or general purpose (Python, Clojure/Incanter, etc. )
  4. Integration with Fortran/C/C++ etc.
  5. GUI features

Monday, February 13, 2012

UML Sketching Tools

UML drawing is painful in case your model should evolve very fast and you have to adjust it on the way. Such tool as Visio (and similar) is doing their job well till you don't need "aggressive" redrawing ;-) Have you ever tried to draw "huge" sequence, activity diagrams in Visio? I've "struggled" with grouping, layouting, styling, etc. So, I have decided to concentrate more on modelling and switched to "easy-going" UML tools also knowing as "Textual UML tools".
Here is the list of my favorite:
  • PlantUML - very powerful tool. It supports very intuitive diagram language. Seven diagram types, nice styling. And very good documentation.
  • UMLet - It's true sketching tool. Very very simple. And you shouldn't expect sexy UI ;-) BUT! It's so "right tool for the job". You just have to try it.
  • UMLGraph - It can be used to generate UML class and sequence diagrams. It has nice integration with javadocs tool.
I think that this Allen Holub's UML Quick Reference (example based and very pragmatic) might be helpful.