Programming Articles

We’re curious people by nature. And we love to teach others what we’ve learned. So explore our blog to gain fresh insights from our expertise in areas ranging from culture to AI.

SEP Selected as a Nominee for TechPoint’s Innovation Mira Award

TechPoint has announced the nominees for its 25th annual Mira Awards, highlighting the most innovative companies, universities, and organizations in Indiana’s tech sector. The awards celebrate achievements across various categories, including the Innovation Partner of the Year. Nominees in this…
Read Full Post

Monadic Parsing

I’ve spent a nontrivial part of my time at SEP working on projects that needed to do low level communication with some sort of remote device.  Thankfully, the trend for remote device communication is going in the direction of Bluetooth and USB, so we can leverage existing libraries and OS facilities to handle low level […]
Read Full Post

Why you should probably be using Single() rather than First()

One thing I run into a lot when reviewing C# code that uses LINQ is that we developers tend to gravitate towards using First() rather than Single(), even though that’s almost never what we actually want. Both operate on a collection and return one element from it. Both throw if no element is found. If […]
Read Full Post

Add a fully-featured irb console in just 3 lines of ruby

When I write code in Ruby, I spend a decent amount of time in irb poking API’s, doing spikes, and testing out some logic. The first couple times it’s a little annoying that I need to require whatever gems and ruby files I need a play with, but after about the fifth time I’m raging […]
Read Full Post

Ditch the IDE, become a blade master with Vim.

I am a huge fan of text editors. While I have taken a few GUI editors for a spin, I always come back to Terminal Vim. In this post, I’m going to develop an argument as to why you should stop using IDEs and pick up an editor using Vim as my end example. If […]
Read Full Post

C#’s New(ish) Asynchronous Features

On my current project, I was tasked with seeing if I could add some limited auto-complete functionality to the application.  The application centers around a designer view where the user drops in and links predefined elements to create a model.  In these user defined models, it is often necessary that the properties of one element […]
Read Full Post

Better Testing in Go With Gocheck

As a quick reminder, golang is a really fun programming language to use. It even includes testing out of the box! Unfortunately, this out-of-the-box testing framework isn’t all that great. It lacks the syntactic sugar of mature frameworks like rspec or gtest. Of course, there are alternatives. I found an open-source library (licensed with Simplified […]
Read Full Post

Lambda Calculus

So I wrote a lengthy blog post about functional programming [1] and in it I have a segment where I praise lambda calculus as the best thing ever [2], link a couple of books, and leave you to your own devices.  One of the nice things about lambda calculus (elaborated upon below) is that it […]
Read Full Post

Functional Programming

What is FP? Unfortunately, Functional Programming (FP) isn’t really a single thing. It’s a bunch of different programming constructs that get put together for traditional, convenience, implementational, or mathematical reasons. Some elements of FP, like higher order and anonymous functions, have slowly become ubiquitous, which tends to confuse the dialog. I’ll try to keep this […]
Read Full Post

Category Theory and Software Engineering

This is a write-up for the book Categories for the Working Mathematician written by Saunders Mac Lane.  Someone indicated to me that they would be interested in seeing the write-up in blog format.  So here we go. Initially, I didn’t think that category theory was necessarily something that really fits in well with your typically […]
Read Full Post