Never miss a beat

Join my newsletter.

The Archives

A Brief Introduction to Tries

Published: 6/30/2017

Hello there! Welcome back! Today I’m talking about Tries (pronounced “trys”). Tries are a type of search tree commonly used for storing and searching single characters that make up one or more strings. What make a trie interesting is that the first node contains an empty value and the descendants of a node have a common prefix associated with that node. Like most data structures, tries are easier to reason about when you have a picture to help explain it. Let’s take the word “propane” break it…

5 Programming Languages You Should Really Try

Published: 6/28/2017

For some strange reason, the vast majority of my blog readers are Python Developers. I wrote two articles on Python a long time ago and honestly try to avoid python when I can. So here’s an article for you purveyors of Python — you sultans of snakes. Note: This article is still likely relevant even if you’re not a Pythonista . For those who aren’t aware, Linguistics and Grammars are particularly interesting to me. I really, really enjoy looking into new languages and comparing them to what I…

Clojure + Kibit & Eastwood

Published: 6/28/2017

I’ve been writing Clojure for a while now, but my day job is still predominantly JavaScript and Java. There are two tools that I use every single time I write JavaScript and Java code. Respectively, a linter and a static code analyzer. Recently, I set out to search for similar tools in the Clojure domain. Enter Eastwood Named after a fantastic actor, Eastwood is a linter for Clojure code. Also like the many roles the actor plays, Eastwood is pretty aggressive in the checks that it runs against…

KNN: My Nearest Neighbors

Published: 6/3/2017

Thanks for tuning in for another fantastic awesome hardcore slippery blog post! In this post, we’re going to cover KNN and it’s implementation in Clojure! What is KNN? KNN (K-Nearest Neighbors) is simply an algorithm, but you probably knew that at this point. For many, KNN is a terrifying first step into a domain that they’re often not too familiar with — machine learning. That being said, KNN gets looped into several much more complex things by categorizing it like so. Specifically…

An Informal & Practical Guide to Clojure.Spec

Published: 5/14/2017

Hello again! No witty intro this time, I’ve just been working with Clojure 1.9-alpha recently, and have decided to write about Clojure spec and some of the features it offers. Let’s get to it! Note: There’s a lot to Clojure Spec. I’m going to cover what I consider to be the practical aspects, or the aspects that I commonly use. My goal is to make this light and comprehensible. What is Spec? Clojure’s spec is a core part of the Clojure library as of Clojure 1.9. It allows you to declaratively…

Provisioning a Development Environment for Clojure Web Services via Ansible and Vagrant

Published: 4/12/2017

Welcome back! DevOps has always been an area of interest for me, however I’ve not really had much of a reason to get into it. At CARFAX and LinkedIn, there were teams dedicated to the DevOps side of things. However, I’m picking up steam with a couple of projects that have me at the helm, and I’m seeing a more and more prevalent need for DevOps in these projects. What problems does DevOps solve? Lots of them! Copious amounts of problems, in fact. Here are a few examples: Ensuring Developers can…