December 29, 2018

Please excuse the mess. I haven't blogged in a long time and I'm in the process of modernizing this website in order to start blogging again. Please come back soon if you were looking for content on this site, or feel free to read the raw content on the GitHub repository for this website.

I apologize for any inconvenience.

Latest Article

Asynchronous Messaging Architectures

Software architectures are full of opinions. They are usually the result of one person’s bias towards a specific technology, or a specific approach to developing software. Sometimes software architectures are the result of reading something in a book or seeing something in a video and believing that it’s the answer to the world’s problems. In this post, I’ll share my opinion, and my desired architecture for my own software. Read more

Recent Articles

Putting Myself Out There

In this post, I relate my first entrepreneurial experience pitching my idea to potential investors. I share the good, the bad, and the final result. Read article

Unit Testing My Go Web Server

My first post in this series had me write a cool little demo showing how to make a static web page more dynamic using a Go web server and CORS. My second post demonstrated my desire to be a craftsman by going back, refactoring my code, and making it better. In this third post, I will revisit my Go web server and will make it more professional by doing what I should have done in the first place: write unit tests. Read article

Refactoring My Go Web Server

In my previous post, I wrote a Go web server that responded to requests from my static website. Being a perfectionist, I was a little bothered by the poor quality of the code in my web server. In this post, I’m going to take a look at the previous code and clean it up using best practices to make the code better. Read article

Death to Static Websites

All too often, web developers start a web application or website with a framework like Express, Rails, or ASP.NET MVC. For a time, they were necessary, but their time and usefulness is quickly expiring. In this post, I will make the argument for why you should not use these frameworks for the next great web application and instead use simpler websites based on a mix of static and dynamic HTML and web APIs. Read article

Getting out of a Rut

Yes, it’s been a long time since I’ve blogged. It’s not that I haven’t had anything to say; I just ran out of motivation to say it. In this post, I’ll bring you up to speed on what I’ve been doing, and I’ll lay my plans for moving forward with this blog. Read article

Introduction to the TPL Dataflow Framework

The .NET 4.0 Framework introduced the new Task Parallel Framework which has made background and parallel processing extremely easy for .NET developers. With .NET 4.5, Microsoft released a new enhancement for the TPL library out of band. Called the TPL Dataflow framework, this new framework makes it extremely easy to create batch-processing pipelines in your applications. In this post, I will introduce you to the background concepts of the TPL Dataflow framework and set up further posts where I will show you how to use and build on the TPL Dataflow framework. Read article

Creating a Neuron ESB Dataflow Block

In my last post, I introduced you to the TPL Dataflow library that was added out-of-band to .NET 4.5. In this post, I will show my first example of a custom dataflow block when I create a block to support building Neuron ESB-based dataflow pipelines that send or receive messages to a Neuron ESB topic. Read article

Implementing the CIM Provider

In the previous three posts in this series, I have been creating a work queue service that can be controlled through messages sent to the service using named pipes. In this article, I will complete the series by implementing a working CIM provider and showing how PowerShell can be used to administer work queues. Read article

Outputting Debug Messages to Process Monitor

I have been using Process Monitor a lot recently to help solve customer support issues. Process Monitor is a great tool for looking at what files, registry keys, and network resources that my products are using. Earlier today, I discovered a new technique to make my Process Monitor logs better. Read article

Extracting the Named Pipe Server

In this post, I will expand on my previous two posts and will extract a working named pipe server program from my feature tests. I will then update the feature tests to perform acceptance testing against the named pipe server. Read article