Dangerous Default Values in Constructor parameters (C#)

Default values in constructor parameters can be a convienent way to reduce code and clarify intent. However, I ran into this risky piece of code last week. public abstract class BaseClass { // default constructor protected BaseClass() { } // constructor with default values protected BaseClass(DateTime? someDate = null) { SomeDate = someDate ?? DateTime.Now; } public DateTime…

My job is to learn

To me, one of the key activities in what we do, its not typing code, its not design, its not even listening to customers, although, that comes close. The key activity that we perform is learning. We are very much a learning-centered profession so to speak. Because the very act…

I haven't prioritized blogging lately

I have found myself saying "I don't have time for that" a lot lately about a lot of things. What I mean is "I haven't prioritized that". I wonder if just saying that would make it less the clocks fault. After all, the clock doesn't care how I spend my…

Web Demonstrations

Hate it when web demonstrations end up like this (Hulu video): From Parks and Recreation…

SPADE Applications

Over the years I have built up a collection of software purchases that require a software key. Right now I'm at around 100 of such purchases. Several years ago I started storing them in the, now retired, Backpack product from 37 Signals. I've been wanting to move this information out…

Code / Auction :: 5

A look at handling the stateless nature between the client and the server and maintaining authentication / authorization status over time. Code Auction Blog Series Introduction and stack selection Basic Requirements Authentication Staying Signed In Handling Session Timeouts In the course of working with a web based application the user invariably…

Code / Auction :: 4

In this post I will review our options for keeping users signed into the application. In a traditional request / response application this a well known path of leveraging session cookies or auth headers. Most big web frameworks support maintaining user authentication state out of the box. Code Auction Blog Series…

Code / Auction :: 3

In this post I will look at the authentication model I plan to use in the application. Code Auction Blog Series Introduction and stack selection Basic Requirements Design Decisions Before we can determine how we are going to get users into the application we need to determine the model for…

Ghostbusters

I am running Ghost, the new blogging platform, as my blogging engine. Here's my initial thoughts: No Spell Check! For a second there I thought my spelling has vastly improved as I had no red squiggles. Turns out that the text editor (which I love) breaks Chrome's native spell check…

Code / Auction :: 2

In this post I want to walk through the basic user requirements / process for this application and discuss some design goals that I want to implement specifically in this version of the application. Code Auction Blog Series Introduction and stack selection Background Each year the local youth group for my…