-

The Hunted Queen
As in the before times, this year I wrote a D&D one-shot adventure to share with my co-workers at Automattic. Sadly, I was only able to run the adventure for a few people because 2020. Still, it was a fun adventure and I wanted to share it with the internet, so here you go. (It’s…
-

grepdef: a quick way to search for definitions in code
I live inside my code editor all day and something that I need to do pretty often is to search for the definition of a symbol (a variable, constant, or function). For example, I might be debugging a problem in a JavaScript file when I come across this code: I need to see translateDataFromRaw to…
-

Unusual Things
Every year I write a D&D one-shot game for my friends and co-workers at the Automattic Grand Meetup. This year’s adventure was titled “Unusual Things” and has a certain… upside down feeling to it. I hope you like it! Here’s the blurb: Nothing much happens in the mountaintop town of Hawkurns, where the populace mines…
-

What I learned writing a game engine
One of the things I did on my recent sabbatical was to start coding a video game in JavaScript. I learned a lot in the process, and I thought I’d write down some of my experiences. (For the record, while I wrote the game engine myself, I used the excellent Pixi library for graphics.) Classes…
-

The Box of Souls
Another D&D one-shot I wrote, this one was run for my co-workers in Rome! Two powerful countries have been at peace for twenty years thanks to the actions of the mysterious Candlemane Family, who created The Box of Souls, a weapon so fearsome that both sides were forced to disarm. However, something strange is happening…
-

Time Greed and the benefits of slowing down
I just came back to work from a three-month sabbatical, and I wanted to capture some of the things I learned during that time. Part of my sabbatical was a meditation retreat where an important theme was paying attention to the forces of Greed and Aversion in our minds. Over the course of the retreat…
-

Await, there’s more!
This week I gave a talk at my local JavaScript meetup on the history, use, and future of Promises and I thought that you, dear reader, might be interested as well. Here’s the blurb: JavaScript is an asynchronous language; it is designed to react to events and to trigger jobs that take an unknown amount…
-

Alternatives to Else
One of the first imperative programming concepts I ever learned was if/else. With this relatively simple power tool I could make decisions in my code based on any number of factors. Of course, my early programs were… a little hard to read. I hadn’t yet learned one of the maxims of programming that I try…
-

How do we deal with dependencies in PHP
Generally what we want to do when we’re coding something is to call a function. While some of the functions we call could stand alone and some could be methods on an object, they’re all just function calls. So why does most PHP code have so many classes? I don’t think code organization is a…
-

Legend of the Whale
As has become tradition, every year I design and run a one-shot Dungeons & Dragons game for my co-workers at our annual gathering. This year I was heavily inspired by my experiences playing Breath of the Wild and I wanted to try to re-create that particular “Zelda” feeling in D&D. I’d love to have done…
-

Safely coding with constants
In PHP there is a tendency to assume that the code we are working on is the only code that is running. The global and transactional nature of the language’s past has made this easy to do. This tendency naturally leads us to use global state, and while there does seem to be a resistance…
-

Giving more time to each thing
Lately a lot of my dharma practice has been revealing restlessness. Even when I think I’m being calm and slow and contemplative, I still am giving more thought to my Instagram-mind, or my what-do-I-need-to-do-next mind. Most of all I’ve noticed that my inclination toward efficiency in all things leads me to always be doing more…