Archive

Posts Tagged ‘DVCS’

ORM patterns which are ‘Invisible to the eye’

February 10th, 2010 Frank No comments

The more I work with design patterns*, the more I come to respect them as a design tool. For grad-school, I’m writing a DVCS and I needed some information on ORM patterns. While I’m not sure if this is a real term, I Googled it and found a great article on Invisible to the eye.

The article can be found at: http://giorgiosironi.blogspot.com/2009/08/10-orm-patterns-components-of-object.html

For my project, I’m mainly interested in the Data Mapper and the Table Data Gateway. Both are patterns from Martin Folwer’s book Patterns of Enterprise Application Architecture.

While I’ve not read the book yet, I think I might… After classes…. Anyway, I mostly wanted to share on the 10 ROM patterns listed at Invisible to the eye.

*If  you’d like a good intro to design patterns, I love Head First Design Patterns

Invisible to the eye

Fossil SCM (DVCS)

January 28th, 2010 Frank No comments
Fossil SCM

Fossil SCM

When I had really discovered DVCS a while back, I didn’t really notice fossil and for that I’m sorry.

I think it is a (for my purposes) viable DVCS in which I’d given consideration before diving in to use Mercurial (although it is a great system and I’ve had no issues with it). Some of the features of fossil are appealing, such as having the bug tracker integrated or the help wiki integration. Obviously this won’t work for all projects, but I think it has potential.

What is particularly interesting is that the site at fossil-scm.org is actually fossil serving itself. Consider the URL when you visit the home page: “http://www.fossil-scm.org/index.html/doc/tip/www/index.wiki”  It’s a wiki page. If you click on a few of the links in the link-bar, I think you’ll see what I mean. The site is it’s repository — or rather the repository contains the site. While this is arguably a good and bad thing, I can find it’s appeal. It’s certainly a new step (for me) in the management of a project.

While I certainly would never migrate all my Mercurial repositories to fossil for the time being, I am strongly considering using fossil for a class project I’ll be completing for SE-450. If for nothing else but to learn more about fossil and to gain insights in to it’s use as it compares to Mercurial. Fossil is suited to some things and Mercurial is suited to some things. Perhaps it’s time to actively use two different VCS depending on my project needs…

More inf o at: http://www.fossil-scm.org/

Categories: Random Tags: , ,

The Tools of Open Source

October 27th, 2009 Frank 1 comment

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.