Archive

Archive for the ‘Open Source Project’ Category

Violet UML Editor

March 2nd, 2010

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

OO Design & Patterns, 2nd Ed Book CoverIn 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 , , , ,

The Tools of Open Source

October 27th, 2009

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.

  1. 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.
  2. 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…
  3. GCC: This is the GNU Compiler Collection and is often a requirement to build open source packages.
  4. 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.
  5. C / C++: Low Level libraries are often written in C or C++, even for an otherwise Java or Python based program.
  6. Python: Python is sometimes used in conjunction with Make to check for build dependencies, verify (build) requirements, or many other possible things.
  7. Perl: Often used like Python, from what I understand but I’ve yet to learn much about it.
  8. Subversion: This is the most common open source VCS software in use (based on my own observations)
  9. 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.
  10. 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 , , , , , , , , , , , , ,

Firefox – Found time to Try again!

August 29th, 2009

My attempts to build Firefox on windows continue today. If you recall , previously, I’ve had great success with Mac OS X which I tried by chance but I’ve had problems while attempting the same thing on Windows.

This experience has made me decided that my troubles with building open source program in the past has stemmed from my usage of non-unix based operating systems — Windows — and my lack of understand about make, autoconf, python and perl.

Ok, lets go….

I’ve updated to the latest tip of Mozilla Central and at this very moment, I’m at revision 80f4cdc242b9. I expect to be working with this revision throughout the remainder of this post. Though, in general the exact revision shouldn’t matter if you are attempting the same thing.

I’ve just tried to build with the command make -f client.mk

I’ve received an error and while writing this I just thought of why. It’s stupid reason but one is bound to make mistakes like this. Simply put, I forgot the very required mozconfig file. I cloned my “clean” repository to a new directory to start over and I forgot this file. For records (and search engines) the exact error I received was “configure: error: –enable-application=APP was not specified and is required.”

So, now lets actually follow the directions since we are not experts.

I’ve reread the MDC about building Firefox and I’ve created a .mozconfig files. I’ll put it below for my and your reference. Don’t assume you should use this — check out the Mozilla docs. They are very straight forward.

# My first mozilla config - https://developer.mozilla.org/en/Configuring_Build_Options

mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/obj-@CONFIG_GUESS@

ac_add_options --enable-application=browser
mk_add_options MOZ_CO_PROJECT=browser

# Use the follow two for debugging (if desired)
# ac_add_options --enable-debug    
# ac_add_options --enable-tests

The # is the comment indicator and as you can see, I’ve setup but not enabled my options for debugging. I hope to use these later but for now I’ve decided to disable them.

Given the above .mozconfig file, I’ve attempted to rebuild and run in to an apparent known issue with building on Vista. Mozilla has done a beautiful job document the reason and how to fix it.The exact error is: “configure: error: System header oleacc.idl is not available” but right afterward the URL is given.

To correct this problem, Mozilla has listed three options. I’ve elected to attempt the “Use Windows 2008 SDK” option. I wasn’t sure which to pick but I decided that the 2008 SDK seems to be supported as the site states “Unfortunately, the Vista or Windows 2008 SDKs are required to build Mozilla”. I wish the page made a recommendation or gave pros and cons but perhaps it doesn’t matter…

The next error

After getting the Windows 2008 SDK installed and up to date, I received another error. This time the error read “nsinstall: Bad file number”. I’m not sure where to go from here, so I posted at the usenet.

The prevalent solution was to run as administrator, according to these two articles:

This hasn’t worked for me; I’m still trying to figure this out. Apparently, my success is not going to come today so I’m setting this aside for the time being.

In the hopes of continuing soon, I’ve posted two questions:

FireFox, Open Source Project, Understanding Software , , ,

Programmer Challenges

June 1st, 2009

Lets ignore this post from “The first challenge” on… I don’t know what I was thinking.

Have you heard of competition-style programming? There is a website/company called TopCoder that organizes this. When I first found it, I thought it was a wonderful idea and I signed up for the site.  Somewhat unfortunately, they some how sell services to end companies on the backs of these programmers. I don’t understand the details and I don’t know if the programmers get paid but this idea turned me away from using the site.

During my time of interest, I’ve never had time to run though a practice match, let alone a real match. I do know a little bit about the site and I still like the idea, so I’ve decided to derive a similar thing but only without the “competition” part of it.

My idea is simple: Post a programming challenge and let developers come up with different solutions. My idea is to include no limitation on platform, programming language, SDK, etc. Just implement a solution and then optionally share your solution. I’d also encourage an explanation on why one chose the route they did.

The important difference between TopCoder and my idea is that there is no winner. Ever. The idea is to have different solutions and to allow other people to go though the different solutions and learn from them. In my opinion, every solution is a good solution. Now, I do realize that there truly are better solutions than others but in a business environment, only a single solution is produced and normally that solution is considered acceptable.

Again, the idea here is to learn. One who wants to learn is likely discouraged from participating in something like this, thinking that there is someone who will produce a better solution than they… so why bother?  I am in that boat, when it comes to TopCoder.

The First Challenge

Given my outline above, I prose this quick challenge: Write a program to calculate one’s age down to the second. You can go as far as to allow the user watch the time increase as they watch the program. Of course, variations of this are welcomed and I encourage you to add further features. If you’d like your solution posted, please feel free to email [Frank[at]TheOpenSourceU.com] it or you can post it to your own blog and I’ll link to your blog post. Simply e-mail me the URL (or post the link in the comments below).

If you share your solution, I’d suggest that you select one of the open source licenses.

Open Source Project, Programmer Challenges

Interested in Joining an Open Source Project? Check Out WordUp!

January 22nd, 2009

I’ve been looking a little bit at SourceForge to join a newer open source project being done on the .NET platform. I came upon WordUp which is suppose to be a Microsoft Word Replacement. It is still early in the development but I think it has huge potential.

If you are interested in joining a .NET open source project, you might want to consider joining the project.

Check out URL to join: http://wordup.sourceforge.net/?p=55

General Information: http://wordup.sourceforge.net/ & https://sourceforge.net/projects/wordup/

For myself, I’ve sent in a request to get information on joining the project. If I join the project, I hope to get permission to post about it’s inner workings from an insiders-perspective here.

Open Source Project , , ,