Geeks With Blogs

  • jolson88 You know, for supposedly being in the post-PC era, I'm seeing a lot of tweets about the new Mac in my Twitter feed. #fb about 311 days ago
  • jolson88 @Anyware I find the difference in perception fascinating (and frustrating). about 314 days ago
  • jolson88 @Anyware Agreed. I've often wondered whether apps like yours can do well in freemium. about 314 days ago
  • jolson88 @Anyware Curious, have you tried an ad-driven freemium approach? about 314 days ago
  • jolson88 @Anyware Thx for the write-up! You know, I've been curious how well the freemium model would work outside of games... about 314 days ago



Add to Technorati Favorites

An Archived Managed World This blog has moved to

Before I get up on my soap-box on what I've been doing lately to improve myself as a developer, let me quickly list the development environment tools that I feel are MUST-HAVE tools for any developer serious about his craft (and they are all free):

Well, in an effort to continue improving my development environment at home, I have finished migrating my source control system from CVS to Subversion. Last time I had used Subversion, it was still in Beta and the integration into Windows was only done through Cygwin. Well, I'm proud to say that Subversion has matured a lot since then. It has all the things I like about CVS, and doesn't have a lot of things that I don't like about CVS. Plus (and this is a big one for a refactorer like me), Subversion inherently supports file renaming.

I've also been impressed by the quality in the tools that exist for Subversion. Right off the bat, after I installed Subversion, I installed both TortoiseSVN (a shell extension for Subversion, based on TortoiseCVS), and AnkhSVN (a visual studio add-in for Subversion). Now I just need to read the online book for Subversion to make sure that I know how to properly maintain and backup this sucker.

There are more improvements also. I have moved to CruiseControl.Net for my continuous integration system. It seemed like CruiseControl.Net took a little longer to setup than Draco, but I think a lot of that is because of the configurability of this sucker. Man, I love it. One piece of advice I would like to give though (which I originally read from someone else), take baby steps when setting up CruiseControl.Net. Don't shoot for the whole she-bang from the get go. You will only cause much frustration for yourself. If you take one little piece at a time, the setup is quite manageable. I still have some more items to add, but for now I got CruiseControl building using NAnt, using Subversion for source control, and using FXCop for best practice validation. The next steps for this evening or to enable the integration with NUnit and NCover for testing. I have my personal web dashboard setup on my build machine already so NUnit and NCover are my last steps. Let me tell you this much, it feels absolutely great.

I will try to make another post within the next couple days detailing what I did to enable building with NAnt from within Visual Studio without breaking the needed features of Visual Studio. That's right boys and girls, after much searching, I found a way to fire off NAnt when I press Ctrl+Shift+B within Visual Studio. Many of you may not care about this, but it was a pet peeve of mine to have two different build processes in my development environment (one with Visual Studio, and another with NAnt). It's pretty clever how it's done. It's just through a C++ MakeFile project. I originally found a link on how to do it on the NAnt Wiki.

Anyways, I'm rambling, I will get to that in a later post. I mostly wanted to let you all know that I haven't dropped off the face of the earth. Hopefully by the next time I fire up a post here, I will be a proud developer willing to boast about my personal continuous integration development environment :). That may not sound like much, but I can't emphasize how many headaches you will save yourself by setting this stuff up, not to mention how much of a better developer you will be by practicing/implementing development best practices.

Just do this for me, if you're not already, put *ALL* of your code into some sort of Source Control. I don't mean burning a CD of all your source code (although that's certainly better than nothing), I mean an actual source control system. There is no excuse not to. Of all the tools I mentioned above, CruiseControl.NET, Subversion, NUnit, NAnt, NCover, and FXCop are all free. And many of them are open source too.  

Posted on Monday, January 10, 2005 8:48 PM | Back to top

Comments on this post: Self Improvement / Continuous Integration

# re: Self Improvement / Continuous Integration
Requesting Gravatar...
Can you elaborate on those a little? I'm interested in what you're talking about so I want to see if these will suit my needs. (Or maybe I don't yet know I need it... :)

* CruiseControl.NET (or Draco.NET) --??
* Subversion -- is this easier to setup than cvs also?
* NAnt -- custom builds?
* NUnit--custom test cases?
* NCover--??
* FXCop-- best practices validation? how does this work?

Though I could easily go read the docs for each of these, I'd like to know how each one is being utilized in your environment...

Left by Ben Scheirman on Jan 10, 2005 9:40 PM

# re: Self Improvement / Continuous Integration
Requesting Gravatar...
Good post. Let me axe you this: would you say Subversion is ready for prime-time in a multi-developer corporate setting? We're using VSS, which I recognize is not the greatest, but it works okay and it comes with visual studio. My company is not willing to shell out for something like Vault, and the only other CVS I have used is...well...CVS. My boss and peers are linux-phobic.
Left by Scott C. Reynolds on Jan 12, 2005 9:51 AM

# re: Self Improvement / Continuous Integration
Requesting Gravatar...

I think the answer to your question really depends on the knowledge of the person who is going to maintain the source control system. If you have someone that is very knowledgable, then I think, yes, it is ready for prime-time. DISCLAIMER: I haven't actually used it in a corporate environment though so I can't verify this advice. But I'd imagine that if the maintainer is very knowledgable and aware, then any issues should be relatively easy to resolve.

The drawback is support. If you are going with Vault, or Perforce, than you have a company to go to with support issues. Of course, on the other hand, that's the beauty (and drawback too) of Open Source, you can support the product yourself. At least, that's how I believe it works with Subversion. I'm not positive in this statement though. It could be that Tigris supports it, but I doubt it.
Left by Jason Olson on Jan 12, 2005 2:34 PM

# re: Self Improvement / Continuous Integration
Requesting Gravatar...

Also, I think one of the biggest hinderances when selling a concurrent versioning system is that it uses a totally different paradigm. You can find yourself not necessarily selling the technology, but trying to sell the different paradigm. When all people know about is the exclusive lock model (checkout/checkin of files), they are immediately uncomfortable with the idea of two people being able to edit the same file at the same time. However, if you make them aware that any conflict *won't* be merged in and that changes won't be lost, you should find yourself in a better position to sell the new paradigm.
Left by Jason Olson on Jan 12, 2005 2:36 PM

# re: Self Improvement / Continuous Integration
Requesting Gravatar...
I'm toying around with subversion at work right now, because I have some specific needs:

<li>our development is entirely web-based
<li>Multiple developers need to be able to work on the same projects.
<li>Half of the team is in India, and probably needs to access via WebDAV... VPN is painfully slow for them.
<li>We have been stepping on each other a lot lately.
<li>I need to be able to merge files.
<li>I need to be able to filter what is being developed in India. (If I don't, it comes back as a messy blob of crap)

To use WebDAV, I need to setup apache (Can I do this alongside IIS? maybe on port 8080 or something?)

We have a linux server setup with apache, so the repository *could* lie there, but then I'd have to setup an automatic "client" that keeps calling update to get a current working copy on the test server (windows) to view the changes.

Also, I wonder how useful NUnit could be in a web environment? I do have a lot of Class Library code, but not all of it is in a library. I guess I could write a console client to do the testing of that code. What are your thoughts on this?

Thanks for your advice.

Also, I'm still confused on what Continuous Integration really is... I feel like we're already doing this by working directly on the test server. Maybe I'm wrong.
Left by Ben Scheirman on Jan 12, 2005 9:45 PM

# re: Self Improvement / Continuous Integration
Requesting Gravatar...
Does anyone have any pros or cons of Draco.NET vs. CruiseControl.NET? What would be the biggest differences?

Left by Patrick Veverka on Mar 07, 2005 8:50 PM

# re: Self Improvement / Continuous Integration
Requesting Gravatar...
Hi Jason,

Do you have any tips for people looking for migrate from SourceSafe to Subversion? I have installed Subversion, Ankh, and TortiseSVN and have a basic understanding of how all the parts work. However, there's a big difference from the QuickStart examples and trying to get started with a real production environment.

Thank you.
Left by Rob Walsh on Apr 22, 2005 5:58 PM

# re: Self Improvement / Continuous Integration
Requesting Gravatar...

How do I Configure CruiseControl.Net to Perforce.

Left by CruiseControl.Net for Perforce on Nov 15, 2005 9:21 PM

# re: Self Improvement / Continuous Integration
Requesting Gravatar...

How to specify the Client Root location in the config file,where cruisecontrol.Net can insert the code.

Left by CruiseControl.Net Config on Nov 15, 2005 9:26 PM

Your comment:
 (will show your gravatar)

Copyright © Jason Olson | Powered by: | Join free