Problem Analysis: Topological Holes

  Our previous posts were talking about the aspects of our blobs (I and II).  Now we’re going to transition to talking about the aspects of the contents inside of our blobs that…

Custom UISegmentedControl: Swift Tutorial

Customizing a UISegmentedControl If you have spent any time developing an iOS app, you have probably realized that customizing UI elements in Swift can be hard. There is either a…

Problem Analysis: High Dimensional Spaces

Previously we were discussing our how you probably want your valid input blob to be a metric space.  Let’s move on to another aspect that can make a problem difficult…

Problem Analysis: Blob Structure Examples

The previous blog post gave us our first aspect to look for in a problem, meaningful structure in our valid input blob.  Let’s look at some concrete examples. The important thing…

Problem Analysis:  Blob Structure

  The previous blog was just an introduction to the problem analysis technique that I want to talk about.  And to review, the definition of problem that I’m going with…

Problem Analysis: Introduction

Before we can measure how difficult a code base is for software engineers to work with, we have to also have a method to measure how difficult problems are for…

Objective Code Quality Blog Series

I’m proposing a method for tracking how difficult it is for software engineers to work with code.  Preexisting methods such as code smells, cyclomatic complexity, best practices, test coverage, etc…

Cleaning Up Left-over Docker Resources

After spending some time hacking with Docker for a blog series, I found that I had a lot of unused Docker containers and images lying around. As part of cleaning…

Security in the Age of the Internet of Things

Originally published over here. The Internet of Things is big. No, really big. No, even bigger than that. How big? My colleague Brad Boyer explains it better than I could…

Refactoring JavaScript – a play in three acts

Originally published over here. Act 1, the setup Once upon a time, there was a JavaScript codebase. This codebase used the function expression syntax: const returnTheNumberOne = () => 1;…

Strategies for IoT Edge Devices in Noisy Channels.

As Internet of Things technologies mature, there is more focus on aggregation of disparate information. Edge devices provide the rich data streams on which those techniques are based. While low level design…

Virtual Machine Pains and How Vagrant Can Help You

In my last project we were upgrading the database for the application from Oracle 11g to Oracle 12c. I created and configured a VirtualBox Virtual Machine (VM) using these instructions….

Indy.Code() Conference Debuts in Indianapolis

The Indy.Code() conference held its inaugural event in Indianapolis on March 29-31, 2017. This multi-city software development conference presents topics that cover all aspects of software creation. The Indianapolis event…

My manager gave me an AWS IoT button…

Originally published over here. With the touch of a button you can notify the world that you touched a button. I was sitting at my desk the other day, busily shifting…