Asynchronous Messaging Architectures

30 May 2015

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 softare.

Putting Myself Out There

29 May 2015

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.

Unit Testing My Go Web Server

16 May 2015

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.

Refactoring My Go Web Server

15 May 2015

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.

Death to Static Websites

11 May 2015

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.

Getting out of a Rut

03 May 2015

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.

Introduction to the TPL Dataflow Framework

18 July 2013

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.

Creating a Neuron ESB Dataflow Block

18 July 2013

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.

Implementing the CIM Provider

07 July 2013

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.

Outputting Debug Messages to Process Monitor

28 June 2013

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.