Milhouse on software, engineering, and Emacs.

Bloom Filters in Elixir

TL;DR: One of the things I like to do when learning a new language is to implement fundamental data structures in them like stacks, heaps, hash tables, and so on. In this post, I am going to show you how I implemented a Bloom Filter in Elixir and talk about the experience.

Read More

Makefiles and Debugging them

TL;DR: Makefiles are awesome, but debugging them is quite a pain when you’re getting started with them. In this post I will explain how I made my Debian Pc setup 100% automatic using a simple Makefile. I will also give starters some tips on how to organize and debug Makefiles.

Read More

Tail Call Optimization in Ruby

TL;DR: In a previous post I ranted about how I got bitten by the lack of TCO (Tail call optimization) in Ruby. Turns out Ruby actually has support for TCO, but it’s not enabled by default. In this post I will talk about my experience with it and how it saved my life in the fourth programming assignment of Algorithms: Design and Analysis, Part 1 from Coursera.

Read More

Composable Validations

TL;DR: In this post I will try to show why understanding multiple programming paradigms is useful and important (and also fun!). This post tackles the common problem of aggregating validation results in a comprehensible return value. The problem we solve here is almost the same as the one solved by ActiveRecord’s errors.

Read More

Missing TCO in Ruby

TL;DR: Today I the lack of tail call optimization in ruby bit me. This post shows that despite the elegance of recursive solutions, one has to protect {him,her}self against the dreaded StackOverflowError.

Read More

Temporarily Disable VCR

TL;DR: If you control your application’s “external” dependencies, turning off VCR on your build server can increase the integration exercise of your applications for virtually zero cost. In this post I will show how you can disable VCR in your test suite with an environment variable.

Read More

Complete Data Structures Courses

TL;DR: The internet is amazing and you can learn almost anything you want for free and with the best material out there. Today the lack of formal education is much less of a barrier than it used to be.

Read More