Sometimes
I blog about stuff.

Software Development

In Defence of Gerrit

I'm not saying we should all use Gerrit, but I am saying that using Gerrit early in my career made me a much better programmer.

Read post

Goodbye, Pivotal Tracker

Pivotal Tracker is shutting down. It might not have been perfect, but I'll still miss it.

Read post

Structure and Purpose

The structure of the code you write can communicate your intentions, making it easier to understand for other developers.

Read article

This article was written by ChatGPT

I instructed ChatGPT to criticize itself and include a Ghostbusters reference for good measure.

Read post

Doing Agile

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.

Read post

Suit Reconfiguration

I rebuilt my dotfiles and decided to write some fiction about it.

Read post

Big Sur so far

I tried it and it seems fine.

Read post

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.

Read post

Ruby/Rails

Advent of Criminally Bad Ruby Code

Marco Roth and I collaborated on solving Advent of Code 2024 Day 5 with Ruby's most popular feature, refinements.

Read post

The Rubby Game v0.1

I just finished playing the first iteration of a board game I created about building Ruby on Rails applications. It was actually kind of fun!

Read post

System tests haven't failed

What's with all the buzz about system tests in the Ruby on Rails community right now?

Read post

Service Objects

Service Objects are a popular software design pattern in the Ruby on Rails community. They are used to extract procedural logic away from models and controllers and into their own objects.

Read article

The Null Object Pattern and Ruby

Object-oriented programmers have a solution to null propagation, the null object pattern, but is it a good fit for Ruby and other dynamic languages?

Read post

A Printable Diagonal TwixT Board

For fun, I used Phlex to generate a printable board for playing an obscure board game that I used to play more than a decade ago.

Read post

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 refactor them into Proc without API changes.

Read post

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.

Read post

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.

Read post

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.

Read post

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.

Read post

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.)

Read post

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.

Read post

Testing

Don’t assert return types

Have you ever seen a test in Ruby (or any dynamic language) that tested the type of a method? I’ve always hated those tests, but never really explored why.

Read post

TDD on the Shoulders of Giants

What do we Rubyists stand to learn from the GOOS book? I break down what my team learned about how to make writing tests a more valuable exercise.

Read post

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.

Read post

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.

Read post

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.

Read post

Solidus

How to Fail at Solidus

Some tips on how to make the most of Solidus, or completely fail by doing the opposite.

Read post

The Agile Fluency Model and eCommerce

How can eCommerce teams improve their development processes?

Read post

The Most Customizable eCommerce Platform

I often tell people that Solidus is the most customizable eCommerce platform on the market. I've broken down what that means and how it achieves that.

Read post

An update on bundles in Solidus

Bundles and kits are a popular add-on feature of Solidus. My goals is to give them first-class support and remove the gotchas that can make them a bit tricky to get right.

Read post

The Fediverse

Is ActivityPub for the masses?

Should we be worried about the impact of Threads.net on the Fediverse? I summarize my thoughts on the possible outcomes and why I think we should be cautiously hopeful.

Read post

Random

I've got some plans for 2023

This year was a strange year, so I've been thinking about where to put my energy to distract from the ongoing collapse of civilization as we know it (or whatever.)

Read post

It's almost December

What happened in 2021? What's going to happen in 2022? I honestly have no idea, but I wrote about it anyway.

Read post

Code to this, please

I made another playlist that you can listen to while you program computers, please.

Read post

How I reimplemented my long lost keybindings on MacOS

There's one feature that I miss more than any other from my Linux desktop set up, the ability to switch directly to my most used applications with a single keypress. I've finally figured out how to get the feature on Mac.

Read post

My 2020 Reading List

I've just updated my "want to read" list for 2020! Take a look.

Read post

Here comes 2020

2019 is almost over, but there's still time left! Here's a little quick update on what I'm doing in December.

Read post

Look How Small This Phone Is

I have the tinest phone. Look at it.

Read post

Relax and Focus: The Playlist

I've been exploring different styles of music that complement sustained focus a little better and I've made a playlist with that in mind.

Read post

New Zealand Trip 2019

I went to New Zealand! Again!

Read post

The Rig: New Year's Eve 2018 Edition

I'm closing out the year with an updated rundown of my hardware setup.

Read post

The Rig: 2018 Edition

I break down the latest battlestation I've set up.

Read post

Dead Code

Introducing Dead Code

I'm sorry. I started a podcast. Please subscribe to it.

Read post