• Using Ruby Subversion Bindings to Create Repositories

    Subversion has a default Web UI that is served up by Apache if you run Subversion that way. It is pretty boring and read-only. Then there are things like WebSVN that make it less boring, but still read-only. I got curious about what it would take to make something even...

    February 5, 2009 - 6 minute read
  • DRY your CruiseControl.NET Configuration

    Don't Repeat Yourself (DRY) is one of the principles of good software development. The idea is that there should ideally be one and only one "source of knowledge" for a particular fact or calculation in a system. Basically it comes down to not copying-and-pasting code around or duplicating code if...

    January 30, 2009 - 5 minute read
  • StringBuilder and my Biggest Pet Peeve

    What You Should Know About Strings In both Java and .NET (and other languages) String objects are immutable. They don't change. Period. If you "change" a String, it creates a new String. That includes String concatenation using a + // One string created "foo" String foo = "foo"; // foo...

    January 20, 2009 - 2 minute read
  • MSBuild Task for PartCover

    I continue to lament the dearth of option for Test Coverage in the .NET world. In the Java world you have open source tools like Emma and Cobertura that are widely used and supported (and many more) as well as proprietary tools like Clover available. .NET we have an open...

    January 8, 2009 - 5 minute read
  • Tracking Project Metrics

    How do you track the health of your software projects? Ideally you could come up with few, easy to collect metrics and have your Continuous Integration system generate the information and maybe even graph it over time. What we track is going to be based on a set of beliefs...

    January 8, 2009 - 5 minute read
  • Register and Unregister COM DLL from .NET Code

    Background The command regsvr32 is used to register a native, unmanaged code DLL so that it is available via COM. With a registered DLL you can use COM Interop to call that code from .NET Managed code. Regsvr32 is unmanaged code and as such makes use of some existing functions...

    January 1, 2009 - 4 minute read
  • Windows Subversion Maintenance Scripts

    Previously I wrote about the Subversion Maintenance Scripts that I use for doing things like backups and upgrades. They were bash shell scripts that automated dealing with multiple Subversion repositories. The secret was that those guys were being run using Cygwin on Windows. Recently we got a new, more powerful...

    November 19, 2008 - 3 minute read
  • Swapping Values Without a Temp Variable

    It's been a long time since I've done any C programming (the only C I ever really did was in school 10+ years ago) and I've never done it outside of school. I figure since I look at and study languages that are pretty esoteric, it's only fair to throw...

    November 12, 2008 - 3 minute read
  • Scheme/HtDP Unit Testing Functions

    How to Design Programs (HtDP) provides a series of unit testing functions that allow you to test the output of any kind of function. The current version talks about testing your code, but doesn't offer a lot of guidance into how to do that. Everything you need is there though,...

    October 19, 2008 - 3 minute read
  • Studying HtDP

    I haven't posted in a while, but I've recently been studying How to Design Programs (HtDP). It's really a book about teaching beginners how to program by following a series of recipes that tell you how to identify and solve different classes of problems. The techniques are taught in a...

    October 19, 2008 - 2 minute read
  • Grails Testing Acegi Security

    Almost every web application I create needs some form of user authentication and authorization. Grails provides a great plugin system that allows you to extend the base framework to provide these kinds of features. My current favorite security plugin for Grails is the Acegi Security Plugin. It's built using the...

    September 1, 2008 - 3 minute read
  • Grails Validations Based on Related Objects

    Grails has a rich set of tools for performing validations of your domain objects. There are quite a few built in validations that you can use. These mainly resolve around validating single properties within a single domain object. It also supports things like validating the sizes of dependent collections. Sometimes...

    August 19, 2008 - 3 minute read
  • Mobile Free (Partial Solution - Calendar Edition)

    The holy grail is to have a computer at home, a computer at work and a computer (or a phone) in your pocket. Those things have calendars and contacts and email on them. You might use them at different times, but in the end, you want to know what you...

    August 1, 2008 - 4 minute read
  • Erlang Examples: GUIs and Error Handling

    This is part of a series on the Erlang Exercises which is a great set of programming problems that challenge you to implement solutions to some common Erlang problems. I'm going to share some of my solutions to these problems. Robustness in Erlang, and use of a graphics package Excercise:...

    July 31, 2008 - 3 minute read
  • Capistrano and Ferret DRB

    This is a bit of a followup to my previous post on Capistrano with Git and Passenger. I decided to use Ferret via the acts_as_ferret (AAF) plugin. Ferret is a full-text search inspired by Apache's Lucene but written in Ruby. Basically Ferret and Lucene keep a full-text index outside of...

    June 19, 2008 - 2 minute read
  • Capistrano Deploy with Git and Passenger

    One of the great things about Rails and its community is that they are very lazy. Lazy in the good way of not wanting to do boring, repetitive, error prone things manually. They metaprogram and they automate. A great example of this is Capistrano. Capistrano allows you to deploy Rails...

    June 17, 2008 - 4 minute read
  • Package Grails DBMigrations in your WAR File

    The Grails DBMigrate Plugin is a handy way to give you control over the generation of your database if you don't want Grails to auto-munge your schema. It works fine in development, but when you create a WAR for deployment on another machine the Migrations are not packaged in the...

    June 10, 2008 - 1 minute read
  • Erlang Examples: Talk with Erlang

    This is part of a series on the Erlang Exercises which is a great set of programming problems that challenge you to implement solutions to some common Erlang problems. I'm going to share some of my solutions to these problems. Implementing Talk with Distributed Erlang Make a simple Talk program...

    May 30, 2008 - 4 minute read
  • Erlang Examples: Talk with Sockets

    This is part of a series on the Erlang Exercises which is a great set of programming problems that challenge you to implement solutions to some common Erlang problems. I'm going to share some of my solutions to these problems. Erlang using UNIX sockets Do you want to talk with...

    May 29, 2008 - 4 minute read
  • Erlang Example: Star Messages

    This is part of a series on the Erlang Exercises which is a great set of programming problems that challenge you to implement solutions to some common Erlang problems. I'm going to share some of my solutions to these problems. Interaction between processes, Concurrency 3) Write a function which starts...

    May 29, 2008 - 3 minute read
  • Erlang Example: Min and Max Element of a List

    This is part of a series on the Erlang Exercises which is a great set of programming problems that challenge you to implement solutions to some common Erlang problems. I'm going to share some of my solutions to these problems. Simple recursive programs 1. Write a function lists1:min(L) which returns...

    May 28, 2008 - 3 minute read
  • Erlang Exercises: Ring Messages

    Erlang Exercises has a great little series of programming problems that challenge you to implement solutions to some common Erlang problems. It's a great way to learn the language. I'm going to share some of my solutions to these problems. Maybe for some discussion, maybe for some feedback from some...

    May 28, 2008 - 3 minute read
  • Erlang First Post

    Some linguists and philosophers posit the idea that you can not have a thought for which you do not have language. "The limits of my language mean the limits of my world." -- Ludwig Wittgenstein I've started looking at Erlang a bit. Erlang is a functional programming language that is...

    May 27, 2008 - 5 minute read
  • The Best Reason for REST

    REST is a popular means of implementing Service Oriented Architectures (SOA) as well as merely providing simple remote APIs for interacting with systems. REST is a constraint based architecture built on HTTP, the foundational protocol of the Web. That foundation, its simplicity and the constraints it is built upon are...

    May 2, 2008 - 3 minute read
  • Grails Philosophy

    There was a post on the Grails Mailing list today asking about the philosophy of Grails. This is my response: I think I might have ripped this off from somewhere, but fundamentally there are 4 questions to answer for a basic application like this: How do you display data to...

    May 1, 2008 - 2 minute read
  • Newer posts Older posts