Before software can be reusable it first has to be usable. -- Ralph Johnson

Recent Blog Posts

Generic Undo/Redo Stack in C#

In the process of customizing the RichTextBox for Inspire Writing Studio, I discovered the need to manage my own undo/redo stack. I present the code for a simple generic undo/redo stack. This generic undo/redo implementation can be extended for a variety of usage scenarios. Continue...

Developer Tips and Tutorials C#

Writing Software for the Novelist

I began my third unfinished novel about four months ago. This time, though, I had a very specific reason for putting it on the shelf. I was unhappy with the writing software available to me and I decided to create my own. I want to invite you on this journey and open the door to the process of planning and creating a viable software product. Continue...

Developer Writer PieceWorx Writing Studio

Unboxing the Microsoft Surface Pro - In Pictures

My Surface Pro arrived yesterday. Does it stand up to the hype or fall flat? Here's an in depth visual look at what you can expect. Continue...

Everyone Rate, Rank and Review Hardware Surface

Rule #5 - Code for the Maintainer

Rule #4 - Be Explicit

Should you ever use the var keyword in C#? What about Javascript? Being clear and precise is very important in legal contracts, but it's even more important in software. An unfortunate experience as a teenager helped crystallize the importance of being explicit in both legal matters and software. Continue...

Developer The Programmer's Code C# Javascript