Blah Blah Blah

Class Invariants and Use of Object Initializers

If you are writing object oriented code and you try to ensure that your classes maintain their invariants (i.e., ensure that your classes are always in a valid and self-consistent state), the new object initializer feature of C# will present you with some new challenges.

Remove Paths in Visual Studio Dialogs

Ever mistype a path during Find and then have to live with it in the list forever?

Get Documents Folder in PowerShell

The default PowerShell profile does not contain a variable for the Documents folder. Meanwhile Windows does not contain an environment variable for it either.

Deep Agile 2008

Rjae, Rob, Kasia Baron, and I went to the Deep Agile 2008 conference run by New England Agile Bazaar. The event was held over the course of two days at MIT's Tang Hall and was truly outstanding. The structure of it, as noted at Agile Bazaar's website, was a one-on-one discussion, debate-style, between Robert Martin and James Coplien and it focused on the realities of Agile software development.

Personalized Monitor Position

Are you running Vista? Do you have dual monitors? Last question: do you have them stacked vertically?

Template Method Pattern in Ruby

One of the most ubiquitous patterns in life is the template. It enables us to generalize behavior - thus ignoring or postponing complexity.

This ability to generalize behavior - deferring derivative details - turns out to be extremely useful in agile software development. It encourages mock-object practices. It encourages simplest possible solutions. It encourages test-driven development. And most importantly it embraces change.

Closures in Ruby, Part I

Closures are a powerful concept in some languages - a powerful tool in others. In my mind a tool is something I can ask for by name - as in, "I'd like a reciprocating saw, please." Languages where closures are truly a tool include Lisp, Python, Ruby, among others. For the time being I will use Ruby to discuss closures - although a switch over to Lisp may be necessary.

Visual Studio Wish List

Every day I work I wish for a single feature in Visual Studio: the ability to move a code file from Visual Studio to another monitor. I can't stand the fact that I can't do this! Even if I switch to MDI view Visual Studio only lets each window move around within Visual Studio and not to other monitors. I would love to have a few code files dispersed on various monitors so that I can see more of what I'm doing at any given time.

In this day and age is this too much to ask? Why the constraint?

ReferenceEquals and ReSharper Assertion Methods

For those of us that use System.Object.ReferenceEquals when checking for null it can be annoying that ReSharper indicates Possible 'System.NullReferenceException' even though that is precisely what we are doing! There is a solution: add an Assertion Method to ReSharper's Value Analysis Options.

Premature Technology Selection is the Root of Many Evils

I see a great many projects start off on the wrong foot by trying to decide all of their implementation technologies at the beginning of a project. Usually there’s a project kick-off meeting where everyone flies in from various locations to get introduced to all of the players and decide on things like what database engine are we going to use? What technology will we use to handle our data access? What user interface technologies should we use? Should we use web services?

Syndicate content