Software Development: I started programming when I was ten years old and have been a software developer for more than a decade. I do my best to write words that are vaguely helpful to other people about the things that I've learned.
What if service objects were just Procs?
Service objects, a popular design pattern in the Ruby on Rails community, are analogous to higher-order functions, and we can demonstrate that more clearly by refactoring one into a Proc without changing its API.
August 03, 2023
Doing TCR without the R
I recently simplified the workflow where I'm using git as my test-runner, essentially doing TCR without the R.
July 16, 2023
Adding Parameterized Layouts to phlex-rails
Out of the box, phlex-rails currently doesn't support parameterized layouts. I found a quick way to hack support in.
April 16, 2023
I just learned two interesting Ruby edge-case behaviours
Kevin Newton's explanations of how YARV works alerted me to a couple of edge cases in Ruby that I'd never thought about.
December 07, 2022
This article was written by ChatGPT
I instructed ChatGPT to criticize itself and include a Ghostbusters reference for good measure.
December 05, 2022
Here are my TDD on the Shoulders of Giants talk slides
RubyConf Mini is over and my talk went well. Once the videos are posted, I'll do a quick write up about the talk, but for now here are the slides.
November 19, 2022
What is Agile software development? How do we do it? In my experience, there are far more organizations following rigid software development frameworks than there are who are meaningfully Agile.
November 23, 2021
I rebuilt my dotfiles and decided to write some fiction about it.
September 07, 2021
What I learned from 5 days of solving Advent of Code problems using TCR in Ruby
I used test && commit || revert to do the first 5 days of this year's Advent of Code. Here's what I learned along the way.
December 05, 2020
Big Sur so far
I tried it and it seems fine.
September 08, 2020
There's a trick to using Hash.new
Ruby's Hash class supports default values, but there's an edge case where using this feature produces some unexpected results. Python developers should know what I'm talking about.
April 29, 2020
Recapping the first day of RubyConf 2019
Alistair, Amy and I were in Nashville for RubyConf to hear about what's next for the Ruby community.
November 18, 2019
How to use Hash.new with a block
The default values of Ruby's hashes can be made completely dynamic. Let's look at some dogs (to understand how we can use this feature.)
October 03, 2019
A whole world of Ruby code
Exposing yourself to more code is one of the most important things you can do to improve your development skills.
August 19, 2019
A blog series on software design
I've just finished Ousterhout's book, A Philosophy of Software Design and want to share what I think Rubyists can learn from it.
August 14, 2019