# Ben's code log

(a.k.a. "clog")

### How I finally learned what a "monad" is

I struggled. But then I invented it to learn it.

### SQL Database Design with Yesod and Persistent

How to write your models for a normalized database.

### StrangeLoop 2017

Lessons and learnings...

### 3 Tools I Use On Every Server

The first things I install when I start a fun new adventure.

### A Perl Script to Tell You The Sunrise and Sunset

That's right, I can still do Perl.

### Robust Clojure: The best way to handle nil

Treat it as a type, like Nothing, not a value like null.

### Pattern matching as a tool for refactoring

Pattern matching is useful even if you don't end up using match because it helps you reason about your code