Code Analysis: Methods

We’ve already gone through a lot of different programming language constructs, however we haven’t really talked about a very highly used feature.  How do we think about methods using these…

Code Analysis: Exceptions

Exceptions are a thing that we tend to use for signaling error conditions such that the error will be dealt with in some other location besides the current code location….

SEP Acquires Visual Story Mapping Software, CardBoard

CARMEL, Ind. (May 22, 2017) – Carmel-based software product design and development company, Software Engineering Professionals (SEP), has acquired CardBoard, a collaborative design and story mapping tool. The product was…

Bringing #NoEstimates into an FDA world

The last few years I have been part of a team that is building diabetes management apps for both iOS and Android. Our client partner is a global leader in…

Code Analysis: Global State

Global mutable state by itself can make a program harder to work with because instead of  having a call tree that’s simply a tree structure, you end up with more…

Code Analysis: Abstract Data Type

Abstract data types are a pretty well known concept in computer science and software engineering.  The concept is pretty simple.  If you have something that is complicated, then you can…

Code Analysis: Fluid Call Tree

Let’s elaborate on the nature of these call tree diagrams.  Consider the following code: Depending on the input for the blah function, we are going to experience two very different…

Code Analysis: Shared Mutable State

My previous post asserts that mutable state can cause a software engineer issues in understanding the program because it becomes arbitrarily hard to understand when two different parts of a…

Code Analysis: Mutable State

Mutable state gets a bad rap when you talk to pure functional programmers.  I don’t think mutable state is inherently a problem, but it does have an effect on your…

Code Analysis: Halting Problem

Let’s do a quick digression.  I wanted to talk about mutable state, but first I think we should consider the halting problem. The halting problem goes something like this: Okay,…

Code Analysis: Introduction

There already exists a significant amount of code analysis techniques out there.  I think the existing technologies are pretty useful for tracking some aspects of why a given piece of…

A day in the life of a wannabe data scientist

I recently had an experience that I think matches well with the textbook steps often presented in “day in the life of a data scientist” discussions: Frame the question Collect…

Connecting Ruby to a Google Spreadsheet With a Service Account

Ever wanted to connect your ruby app to a Google Spreadsheet? Yeah. Me too. I find myself writing ruby scripts and console apps all the time. Many times needing a…

Problem Analysis: Overlapping Blobs

Last time we started to explore the idea that you can have a system or problem that is difficult to deal with and understand because the interactions between blobs are…

Rotating Title Headers for Tables

One of my co-workers (Jason Giles) and I were recently pairing on the implementation of a table for a client that would allow dynamic addition and removal of rows.  The…

Problem Analysis: System Complexity

The last post talked about aspects about arrows that could make a problem difficult to deal with.  Now I’m going to talk about how a collection of arrows might make…

Problem Analysis: Continuous Functions

The last blog was the final entry talking about the aspects of blobs that cause problems to be difficult.  Now, we’re going to talk about the aspects of arrows (III)…

Storylines: A Tale of Two Products

So, you say you want to build a product? Awesome. How do you get started? In the Days of Yore Day 1 Some people used to (and sometimes, still do)…

Problem Analysis: Path Connected

Last time we talked about blobs that have holes in them.  This time lets talk about how we might deal with a blob that is hard to deal with because…