Hy Django

Hy introduces a List that gives you all the power of macros and the elegant Lisp syntax while enabling the full power of Python. Although it's easy enough to use Python libraries in Hy, you just import them as you would in Python, I was weary of using a full framework outside it's native language. To prove out this concept, I followed the official django tutorial using Hy.

Embrace Your Constraints

Engineers want to measure the quality and effectiveness of their work. They turn to code coverage, burn down charts, and yearly goals, with the best intention. These measurements provide quantitative data about how much planned work was delivered, but they fail to tie the work to outcome. What good are 1,000 lines of code if the users never use the feature? These metrics distract from the two question every professional should ask: Did my work deliver measurable change?

CLI Commands in Emacs

A few months ago, Gabriel Gonzalez wrote an excellent article on creating useful tools with Haskell. He used an example of a small CLI tool that aligns the equals signs of a multi-line text input. The article wrapped up by integrating this tool into vim. I love the overarching concept in the article: create small tools that are useful in multiple contexts. It's directly inline with the Unix philosophy.

Hierarchies In a Hakyll Blog

Creating hierarchy in a blog is a useful technique. It allows you to have different sections by type of content. It lets users navigate by their interests quickly. It makes your blog organized. My need for a hierarchy came when working on another blog - Daily Reading Notes. That blog involves notes on books I read daily. Since each book has multiple reading notes, I wanted to allow two forms of navigation: by a grouping of all notes for a particular book and by posted date.

The Right Abstraction for Lambdas

Serverless functions are a great alternative for many light tasks that would traditionally required a server. They allow you to split up work across mutiple small functions, and you only pay for what you use. On top of that, they require less maintenance than managing your own server or Kubernetes cluster. However, the single function per lambda approach can become too granular. Shared functionality becomes hard to group together. You only have hard to enforce naming convention for lambda that belong together.