Writing on software engineering, technology, and the industry.

My thoughts on programming, leadership, product design, and more, collected in chronological order.

Developer Skill Shapes

Embrace the dynamic nature of developer skillsets, and keep your team's landscape evolving to stay ahead of the curve.

Green with Envy

Tracing Network Calls Across Your Application Stack with Envy.js

Sort Table Columns with Angular and Typescript

Here is a simple method for adding sorting to any table in Angular 2+. It's a simple approach that allows you to define how the table is filled with data, instead of the table sort forcing you to use either client side or server side.

Intro to UX Accessibility

Web Content Accessibility conformance levels are organized based on the impact they have on the design or visual presentation of the pages. The higher the level, the more restraining it becomes on design. As a rule of thumb, success criteria from level A should be invisible or barely noticeable to the interface. On the other hand, level AAA will have such a high impact on design, that most organizations will not be able to achieve that level.

Mule ESB Enterprise in Docker on Openshift 3.x

Here is a useful Dockerfile for running Mule ESB EE in Docker. We are currently running this on Red Hat's Openshift (kubernetes-based) container server and it runs quite well.

REST API Testing with Cucumber and Javascript

There are a great many tools available for testing REST Api's by various vendors, open source plugins, browser plugins, and the old classic `curl`. If you're looking for a really simple way to test REST Api's that is easy to maintain and entirely automated then you should consider using Cucumber with Javascript.

The Soul of a Standup Meeting

The morning standup meeting is a chance for everyone to participate in a conversation that aims to share an understanding of the current objectives, coordinate team efforts, share problems and offer help, and identify potential issues.

Using Opentoken in Hapi.js

A new plugin I wrote that will allow Hapi to authenticate against PINGFederate Opentoken endpoints.

Sailing on 4th of July Weekend 2015

Here is the family sailing on our boat "Venti" 4th of July weekend. We sailed a short hop from Manitowoc to Sheboygan, WI.

Working with Ranges in a REST API

A unique way of working with ranges in a more fluent way in a REST API. What is nice about this approach is its easy to hook up to javascript and is still a valid url scheme.

Working with Themes in Hapi.js

A new plugin I cobbled together that will add a view handler to Hapi.js routes to serve themeable content. This allows you serve different stylesheets by theme name, serve different layout files, or whatever you need. Content can be themed by url (default), http header, or a custom function.

Unit Testing in Linqpad

Linqpad is great for writing a quick test or exploring some api features. If you need to write a group of tests, you can use this quick little snippet to run Linqpad like a unit test.

Interface Anti-Patterns: The Vagrant

The proliferation of N-Tier architecture has caused a common anti-pattern with the use of interfaces in .NET applications. This anti-pattern often presents itself as a form of dependency injection (DI) with its usage intending to reduce the coupling between applications but often creates the exact opposite situation.

Mirror the Google Glass Display On Your Desktop

To make glass development easier or just set things up for a presentation, you can mirror the glass display on a desktop or laptop using Android Screen Monitor (ASM).

Brew Bucket 7 Gallon Fermenter Review

The Brew Bucket is a winner, hands down. My only real hold up is the price and the amount of beer that could get left behind when you rack, but otherwise this is a real high quality product clearly designed with homebrewers in mind and not just some scaled down version of what the big boys are using. I'm really looking forward to any other products that might be coming out of their shop in the future.

Arduino Interrupts and Timers

Outside of the traditional method of gathering values from Arduino inputs, there are a couple of other excellent tools in the workshop we can use. Interrupts provide the means to allow hardware devices to trigger a routine in your sketch and perform additional processing outside of the main loop. This trigger usually happens when an input changes state, allowing you to monitor an input pin without having to check it each time the main loop runs.

Streaming files to Azure Blob Storage with Node.js

Microsoft has done an excellent job of building a cloud solution that is downright fun to work with, regardless of the language or toolset you want to use. They are regularly releasing updated API's and new cloud service offerings, have remained competitive in their pricing, and have even been called visionary.

WPF Autogrid - Drop-in Replacement For Grid

A flexible, easy to configure replacement for the standard WPF Grid control. AutoGrid lets you reduce the amount of xaml when using grids for layout by allowing you to define rows and columns as simple properties and alleviating you from having to explicitly specify the row and column a child control belongs to.

Async Query and Batch with Entity Framework

When you're working with WPF or Windows forms one of the common issues that crops up is cross threading in your viewmodels. The following is a simple solution that wraps up a `BackgroundWorker` in some standalone classes that can be used with your `DbContext`. The nice thing about this solution is it doesn't require you to inherit any classes and you can stick the code in yuo project where you feel it works best.

Oktoberfest 2012

This is a video board created for DuClaw Brewing Company to display what's on tap at the Maryland Brewer's Oktoberfest. Created to run on Xbox 360 or Windows 7 connected to a big ass Flat Panel television and a set of very loud speakers. The board also plays promotional videos on a set schedule and has a few more animations and effects not shown in this clip. The board actually runs on 3 different screens all with their own content, beer selection, videos, etc. We wrote the original for Oktoberfest 2009 and it gets updated each year. It's pretty much a giant video game written with XNA and C#.

Create a REST based HttpHandler in C#

Anytime I start a new project I’m usually super pumped to dive into some code and get something done. There I am, a cup of coffee and three energy drinks later, translating the latest business requirement into something simply amazing… or more likely, just another contact management application for the CEO of unnamed company X. But I’m happy, delightfully punching keys on the keyboard, slinging abstractions and enterprise patterns like its just another day. Just one more look at the functional spec and, wait, what is this? That’s right, I just realized that this is not a functional spec at all. This is **Functional Spaghetti**.