Skip to Main Content
Below you’ll find my blog posts. You can check out the
How Things Work
Combining BEM and SMACSS
Code architecture is super important when you want to have clean, readable, and...
How Browser Caching Works
Have you ever noticed that when you load a web page for...
How WebSockets Work – With Socket.io Demo
As a developer you may have heard the term WebSockets thrown around in...
Installing the Docker Client CLI on 32-bit Windows
If you’re unfamiliar with it, Docker is one of the newer development...
The 3 Rules of Dev Blogging
This post covers a short lightning talk I gave at OKC.js this...
Controlling Spotify with Slack and a Raspberry Pi
After moving to a newly constructed floor at Staplegun (where I work),...
Programming Concepts: Type Introspection and Reflection
Often times during the runtime of a program, we need to ask...
What’s with the Name?
Update: As of April 2019, this site’s domain name has been changed...
My History with Beer
Seeing as how we’re approaching the New Year, I felt this topic...
Building a JSON API with Rails – Part 5: Afterthoughts
This post has been a long time coming, but I wanted to...
Programming Concepts: Static vs. Dynamic Type Checking
When learning about programming languages, you’ve probably heard phrases like statically-typed or dynamically-typed when referring...
What Does It Really Mean to Support IE8?
Note: This post is geared towards developers who have heard about IE8...
Programming Concepts: Concurrency
For the third post in this Programming Concepts series, we’ll be discussing...
Talk: Type Introspection and Reflection
OKC Ruby 10.8.2015 [Lightning Talks] Aaron Krauss – Reflection and Introspection
Metaprogramming in Ruby: Part 2
Welcome back to the Metaprogramming in Ruby series! If you haven’t done...
Metaprogramming in Ruby: Part 1
What is Metaprogramming? Metaprogramming is code that writes code for you. But isn’t...