Gitting on like a house on fire

As someone whose first job consisted of one codebase, production, and FTP deploys I can say that our developer tools have come a long way. Albeit there were version control tools when I started coding, I wasn’t introduced to them until I was introduced to Git. Still a phenomenal tool 7 years later, there’s so much to Git. I’m hoping to provide you with a few tips that you may not know to help your git workflow. Discarding the last commit Have you ever committed something to only realize that you’ve committed files that shouldn’t have committed? You can toss...

Programmer vs. Developer vs. Software Engineer

Systems Programmer. Software Engineer. Applications Developer. Have you ever wondered what the difference between these role actually is? Well, your best bet would be to ask the job poster but if they’re not available, my opinion might just have to suffice. Worth mentioning – my opinions are modeled mostly after my own career and some reflection on the titles. Note: I do understand that there is a crowd of people that believe you can’t be a software engineer without an engineering degree. I am not one of those people. What is a programmer? Ah, the grit and determination of a...

A Brief Introduction to Tries

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 apart into a trie. Each character will be represented as a node. Simple...

5 Programming Languages You Should Really Try

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 already know. Originally, this started as a purely syntactic thing, but as I...

Clojure + Kibit & Eastwood

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 your code. However, like Clint Eastwood in The Bridges of Madison County,...

KNN – My Nearest Neighbors

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, they get elevated to the same complexity of Neural Networks. KNN is not a neural network, and in...

An Informal & Practical Guide to Clojure.Spec

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 define specifications that you use in your code for...