Writing

Ideas, systems, and lessons in code.

Every published article, newest first. Filter by topic without losing a shareable URL.

89published articles
Showing all 89 articles.
2026

Out With the Old, In With the New: Rebuilding Coding

After years on BlogEngine.NET, Coding has a new design and a new foundation built on Jekyll, GitHub Pages, Git, and Markdown.

3 min read Blogging · GitHub Pages · Jekyll · Markdown · Software Development
2026

CopyGitHubRepo v0.1.0 Released to the PowerShell Gallery

CopyGitHubRepo v0.1.0 is now available from the PowerShell Gallery, marking the first stable release of the PowerShell tool for safely copying GitHub repositories.

3 min read GitHub · PowerShell · Automation · Developer Tools
2026

Understanding What We Ask AI to Do

As AI takes on more complex work, humans still need enough understanding of what it produces to make good decisions and remain responsible for the outcome.

2 min read AI · Human Oversight · Leadership · Software Engineering
2026

Copy GitHub Repo – Clean Snapshots Without Carrying History

Copy GitHub Repo is a PowerShell utility for creating clean repository snapshots or preserving full history with explicit planning, verification, and recovery safeguards.

5 min read GitHub · PowerShell · Automation · Developer Tools
2025

Single Responsibility Principle (SRP) - Only one reason to change

The Single Responsibility Principle is the first of the five SOLID principles of object-oriented design, introduced by Robert C. Martin (Uncle Bob). It helps make software easier to understand, maintain, and extend.

5 min read C# · SOLID Principles · Single Responsibility Principle
2025

Create better software by applying SOLID principles

SOLID is an acronym for five design principles that are considered fundamental to object-oriented programming. These principles, when followed correctly, can help to create more robust, flexible, and maintainable code.…

3 min read C# · SOLID Principles · Open-Closed Principle · Single Responsibility Principle · Liskov Substitution Principle · Interface Segregation Principle · Dependency Inversion Principle
2023

.NET 8 Feels Like the New Normal

.NET 8 feels less like an alternative to the old .NET Framework and more like the default starting point for new .NET development.

1 min read .NET · .NET 8 · Software Development
2022

Countdown to New Year's with the Observer Pattern

One design pattern that you might find fun to relate to New Year's Eve is the Observer design pattern. The Observer design pattern is a behavioral design pattern that defines a one-to-many dependency between objects, so…

1 min read
2022

Decorating the tree for Christmas

As a software developer, I've always been fascinated by design patterns and how they can help solve common problems in software design. This holiday season, I've been thinking a lot about how some of these patterns can…

1 min read Design Patterns · C#
2022

ChatGPT Looks Interesting

OpenAI released ChatGPT today, and while I have not had a chance to spend much time with it yet, the idea of a conversational AI system is interesting.

1 min read AI · ChatGPT · OpenAI
2021

.NET 6 Feels Like the Version I've Been Waiting For

After watching .NET Core evolve over the last several years, .NET 6 feels like the point where the old and new .NET worlds are finally starting to come together.

1 min read .NET · .NET 6 · C# · Microsoft
2021

Twenty Years After September 11

Twenty years after September 11, remembering the people who were lost and the importance of passing that memory to a generation that was not there.

1 min read September 11 · Remembrance
2020

Six Months Into COVID

Six months after sending everyone home, masks, social distancing, and remote work have become part of everyday life.

1 min read Covid-19 · Remote Work
2020

eBay suspends my account

I had created an account with eBay back in the beginning and had not used it in a long time. I reset my password because I had forgotten it and upon login I was informed my account had been suspended. I sent them a requ…

1 min read
2020

Sending Everyone Home

I am in India while the coronavirus situation unfolds back home in Seattle, and today I made the call to send everyone home from the office.

1 min read Covid-19 · Leadership · Remote Work
2018

Microsoft Is Buying GitHub

Microsoft announced today that it plans to acquire GitHub, and I am still trying to decide how I feel about it.

1 min read Microsoft · GitHub · Open Source
2017

.NET Core 2.0 Is Starting to Feel Ready

.NET Core 2.0 is out, and this release feels like a much more practical option for real application development.

1 min read .NET Core · ASP.NET Core · .NET Standard
2016

.NET Core 1.0 Has Arrived

Microsoft released .NET Core 1.0 today along with ASP.NET Core 1.0 and Entity Framework Core 1.0, marking a very different direction for .NET.

1 min read .NET Core · ASP.NET Core · Microsoft
2016

Installing Roundcube Webmail on BlueOnyx 5209

I recently had to migrate some older BlueOnyx and BlueQuartz servers to newer hardware and took the opportunity to install a newer webmail interface called Roundcube.

2 min read BlueOnyx · Roundcube
2015

Microsoft Introduces Visual Studio Code

Microsoft introduced a new development tool this week called Visual Studio Code, a lightweight cross-platform editor for Windows, Mac and Linux.

1 min read Visual Studio Code · .NET · Microsoft
2014

Microsoft Just Announced Windows 10

Microsoft announced Windows 10 today, bringing back the Start menu and taking a different approach to combining desktop and touch experiences.

1 min read Windows 10 · Microsoft · .NET
2014

I Really Like Windows Phone

I have been using Windows Phone since pretty early on, and Microsoft’s Windows Phone 8.1 announcement has me looking forward to what comes next.

1 min read Windows Phone · Microsoft · Cortana · Zune
2013

My favorite design patterns are Strategy and Factory Method

A number of years back I started my exploration into the world of design patterns and read an incredible book “ Design Patterns Explained ” that did a great job in getting me started on a path that would ultimately chan…

10 min read
2012

Calling WCF Service using LINQPad

First, if you are a .NET developer and you are not using LINQPad yet go and check it out at www.linqpad.net . They offer a free version that is the same as the paid version but without intellisense and the pricing to up…

1 min read LINQPad · WCF
2012

So I Guess Zune Is Becoming Xbox Music

Microsoft is introducing Xbox Music, and it looks like the Zune name is being replaced as music becomes part of the broader Xbox and Windows ecosystem.

1 min read Microsoft · Zune · Xbox Music
2012

Getting LINQPad to read your applications App.Config settings

I have been using LINQPad for a while now and I love it. This utility allows me to write and execute immediately code that I am working out before I put it into my project. However on occassion I need to reference assem…

1 min read LINQPad
2012

Creating custom EventLog source in windows azure

If you have tried to execute the following code on windows azure then no doubt you have run into a security violation. In fact if you try and run the same example on your local machine you will also get the same error a…

1 min read Azure
2011

Installing OpenWebmail on BlueOnyx server

I have been in the process of evaluating the BlueOnyx distribution that replaces the older BlueQuartz web hosting control panel. However one of the short comings is that BlueOnyx does not currently incorporate a webmail…

1 min read
2011

Ten Years After September 11

Ten years after September 11, a reflection on what changed in America and why the day remains first and foremost about remembering the people who were lost.

1 min read September 11 · Reflection
2011

PlayOn Plugin - TECH.ED 2011

Well I really enjoyed creating the MIX 2011 PlayOn plugin that I decided to do the same for TECH.ED 2011 . I am going to do a bit more research and see if in the next release I can provide a folder for each year as they…

1 min read
2011

PlayOn Plugin - MIX 2011

I have been using PlayOn software to view online content via my XBOX for about 6 months now and while it is really cool I dont find myself using it as much as I thought I would. However one thing I have enjoyed is using…

1 min read
2010

Silverlight PivotViewer control released

The silverlight PivotViewer control allows you to build very large collections and embed them on your website. Works really well for collections that provide a visual representation of the data you are navigating and us…

1 min read
2010

(MVP) Model View Presenter - Passive View

In my journey to write better software I have been looking at various patterns available. One of them is known as the Model View Presenter or MVP pattern. In doing some reading many of the sites I have come across point…

9 min read
2010

ASP.NET MVC Tutorials

Over the last week I have been playing around with the latest ASP.NET MVC 2 RC framework available here http://go.microsoft.com/fwlink/?LinkID=157071

1 min read
2009

HP MediaSmart Server is my favorite device for 2009

Automatically Backup all your PC’s and MAC’s. If backing up your machine is important to you but you have just not taken the step to implement a backup process, then I would highly recommend the HP MediaSmart Server . W…

6 min read
2009

Automatically attaching VHD files in Windows 7 and Windows 2008

If you have played with the new VHD feature in windows 7 or windows 2008 then you know just how cool of a feature this is. However the problem is that when you reboot your machine you find that when it comes back up all…

1 min read
2009

Barcamp Seattle June 13th - June 14th 2009

BarCampSeattle is an ad-hoc gathering born from the desire for people to share and learn in an open environment. It is an intense event with discussions, demos, and interaction from attendees. It is an international net…

1 min read
2009

Replacing text in a stream after writing

Recently I responded to a question asked on StackOverflow. The question was "What is the BEST way to replace text in a File using C# / .NET?"

2 min read
2009

Calling ASMX .net Web Service using jQuery

Just started to pick up jquery recently and was playing with calling a .net web service from my page. Was really easy once I used Firefox Firebug to do my debugging and figure out some of the variable names to use to ac…

1 min read
2009

Seattle .net dotnet user group

Great new user group that is getting started and it is in Seattle. Was hosted at Starbucks who provided a top notch facility for the meeting. About 25 people showed up and speaker Charles Sterling gave us a great presen…

1 min read
2009

How do I open a file that is in use in C#?

I had a situation recently in which I needed to display in my application the log file that was being generated by the application which was using log4net. Any time I tried to open the log file I would get an exception…

1 min read
2009

Understanding .NET Reference Types and Value Types

I have been developing in .NET now for about 4 years and while I have visited this topic many times I have not always fully understood things. Dealing with Value Types is really straight forward however when we start to…

5 min read
2009

From Cobalt to BlueQuartz and now BlueOnyx

It has been a bit of a journey since I first started offering web hosting services using the Cobalt Platform that was later sold to Sun Microsystems and then dropped from the product line. However thanks to Sun they rel…

1 min read
2009

C# Traceroute using .net framework

If you have ever tried to create a traceroute program using one of the few available ICMP libraries freely available for C# you may have run into some issues mainly to do with the ICMP checksum not being correct. It see…

1 min read
2009

C# Ping

I was recently tasked with putting together a ping and traceroute feature in an application and like I always do I googled to see if someone had already worked out how to do this.

2 min read
2008

Cobalt/Sun FTP Archive

Looks as if Sun put up an archive of the cobalt software. If you are looking for any of the cobalt RaQ original software then use this ftp site.

1 min read
2008

ASP.NET - Ajax - Expression - LINQ - SQL Server - Webcasts

Found some great sites that have links to all kinds of webcasts covering ASP.NET, Ajax, Expression, LINQ, SQL Server and more. If you want to learn about any of these topics the sites listed below are a great place to s…

1 min read
2008

.NET 2.0 SP2 Installation - Were to find it

I have seen many people referring to .NET 2.0 SP2 to fix some of the issues I have been dealing with. I finally figured out that the SP2 for the 2.0 framework is not available as of now anyways as a individual download…

1 min read .NET
2008

Design Patterns - Writing better software

Writing applications that simply work is for the most part pretty easy. However writing software that is well designed, scalable and also readable takes a bit more work. Using and understanding design patterns can help…

1 min read Design Patterns
2008

Object Oriented Design Patterns

While I have been programming now for about 3 years using the Object Oriented programming environment of C# I have not really spent any time looking at patterns. I am guessing in my natural progression of learning progr…

1 min read
2008

Spawning multiple .NET delegates really slow

I recently worked on a project that had a listener service running that took TCP requests and made external calls to a remote WebService. The listener service could have up to 300 concurrent requests.

1 min read C#
2008

BlueQuartz installing Mono

Mono allows you to run applications written in .NET programming language on Linux machines.

2 min read Mono
2008

BlueQuartz add virus scanning to sendmail

This HowTo is designed to provide the simplest solution for virus scanning to a BlueQuartz box. However this will also work on any box running Redhat Enterprise Linux 4 or CentOS 4

2 min read Virus Scanning
2008

BlueQuartz how to resync quota of system with GUI

Not sure how many others have had this issue but on occasion I get a user that calls because they are getting email rejected because they are over quota. I log into the administration interface only to find that the quo…

1 min read Quota
2008

BlueQuartz enabling SSL/TLS FTP Support

This is my first attempt at putting online a step by step process in support of the BlueQuartz server appliance.

1 min read BlueQuartz · Secure Ftp