I use UML to do quick brain storming and when exploring software. While I’ve not posted many write ups here (grad-school!), I generally don’t want to invest a lot of time in my UML diagrams and only sometimes do I even want to save them.
Often times, especially lately, I’ve been drawing on a whiteboard that I keep in my office. I find this to be efficient (even over paper because I’d end up throwing it away).
In one of my current grad-school classes, we are using “Object-Oriented Design & Patterns” by Cay S. Horstmann as the class text book. I’ve enjoyed the book and it provides some decent examples. I bring the book up because apparently the author of the book created a UML package called Violet UML. I’ve found this to be the best software based UML brain-storming software I’ve ever found. Here are my reasons:
- It loads quickly
- I can efficiently draw diagrams without warnings or complex menus to navigate though.
- The lack of UML rules enforcement means that I can draw partial diagrams; diagrams that mean nothing out of context.
- It’s open source
- So far, its more stable / reliable to ArgoUML
If you are looking for a UML package, I must recommend this. I searched and searched for a UML package a while back and I never came up with this. I looked at everything, no matter what and still never found it. So, if you like it, please spread the word (via your own blog, twitter, facebook, etc). I think it is well done software and worth some attention.
http://violet.sourceforge.net/
Design Patterns, Design Tip, Graduate School, Open Source Project, Tips
Grad-School, Open Source, Software, SourceForge, UML
As some readers will know, I’ve been working to study the architecture of FireFox. One thing I realize is that I’m not as familiar as I should be with some of the common open source tools, or what I consider to be the common open source tools.
Below is a list of tools that are worth learning (in my opinion). I’ve also included a short description of why it might be worth learning them. (The list is in no particular order)
If you have an interest in open source, it will not hurt to get a quick base understanding of each of these. I’m not saying you (nor am I trying to) become an expert in each of these tools. However, having a basic understanding of syntax and function should save time and headache while trying to understand a project.
- Linux: The concepts in and around Linux are often used on other open source products. I think Open Source developers tend to stick with using open source software. So, there is a link there.
- Bash: The de-facto standard shell for Linux (as far as I can tell). Knowing the basic usage of bash can save you time and confusion. Certain scripts can depend on feature of your terminal interface. The Mac OS X ships with a version of bash, which is good to know…
- GCC: This is the GNU Compiler Collection and is often a requirement to build open source packages.
- Make: This is a part of the GCC but I want to make special mention of this because knowing how to read the script files and error messages can help diagnose an error.
- C / C++: Low Level libraries are often written in C or C++, even for an otherwise Java or Python based program.
- Python: Python is sometimes used in conjunction with Make to check for build dependencies, verify (build) requirements, or many other possible things.
- Perl: Often used like Python, from what I understand but I’ve yet to learn much about it.
- Subversion: This is the most common open source VCS software in use (based on my own observations)
- Mercurial: One of the two popular DVCS systems. I’ve noticed more and more open source projects switching to DVCSs, so a basic working knowledge of Mercurial and Git is helpful.
- git: The second of the two popular DVCS systems.
If you’d like to contribute to the list, please leave a comment below but please ensure you include a fair reason.
FireFox, Open Source Project, Technologies, Understanding Software
Bash, DVCS, FireFox, GCC, git, GNU, Linux, Mac OS, Mercurial, Open Source, Open Source Software, Perl, Python, Tool
This is a follow up post to a series I’ve been posting. The previous post to this posting was “Firefox – Found time to Try again!”
I finally was able to get Firefox to build on my Vista machine. It has given me a lot of trouble and I’ve had to troubleshoot several times. Relative to my previous post, I was last held up on a “NSInstall” error. NSinstall.exe would report “Bad File Number”.
The solution was reducing the directory depth. I had my mercurial repository in a sub folder of my documents folder. Specifically C:\Users\Frank\Documents\hg-repos\mozilla-fv-expirement\. I moved the directory to C:\mozilla-fv-expirement\ and re-ran the build script. It did it’s thing and I was able to fire up good-’ol firefox.exe from the [...]\dist\bin folder. I even checked my gmail account on it.
Now where?
I felt that before I started hacking and understanding the source code, I should be able to build the program. That way, if I make a significant change I can see how the code base reacts to it. Though, my intentions are not to hack but to understand how it works. The ability to drop print statements in should help with this… maybe…
Additionally, I hope to contribute to the Mozilla Litmus QA system. I might as well — I did take the time to build the trunk.
FireFox, Understanding Software
Debug, FireFox, Litmus, Minefield, Open Source, QA, RC, Windows
Recent Comments