A curiosity journal of math, physics, programming, astronomy, and more.

Two Git scripts to encourage good development habits

I've written about various practices I have when writing or reviewing code, from splitting branches using diff files and drafting pull requests locally to reviewing code locally and documenting exploratory testing. It's not always easy going those extra miles, so I try to make it as simple, reliable, and fun as possible by automating whatever I can. Here are two scripts I often use, both of which use git and fzf. One helps keep commits clean, the other I use for testing tests. ... Read more

Nice words

An old oak in my yard fell a few weeks ago, and after I cleared the brush my kids volunteered to help rake up twigs and bark. My six year-old declared the job somewhat difficult, to which my three year-old replied, "It's not hard for me." I was a bit snappish and couldn't let that braggadocio go uncorrected, so I told him, "It's easy for you because you're not doing anything, you're just telling everyone else what to do." He paused for a long moment. Then he said, "But you are doing a good job!" The little guy is a born manager. ... Read more

5 Tips for Sketchnoting

Back in 2013 I learned about sketchnoting in a workshop at Midwest UX, and as someone who always doodled in my notes, giving meaning to the doodles felt like an obvious innovation I had overlooked, like putting wheels on luggage. After a few months' practice, I captured some brief tips. Since then, I've sketchnoted presentations from Agile Conf, local software meetups, company retreats, Clojure/conj, a handful of local one-day conferences, and a commencement speech. My style is mostly the same as it was ten years ago. And that's fine, because the point was never to get better at drawing, it was to capture notes more memorably. If you're interested in visual note-taking, here are five tips after 12 years and 100 sketchnotes. ... Read more

On writing code myself

Years ago I visited Mystic Seaport in Connecticut, where wooden sailing ships were built to go out on the Atlantic. The hull had to be as strong as possible, so beside making the internal structure from dense hardwoods like oak, shipwrights also used the natural shape of trees to the ship's advantage. Most notably they constructed the arched ribs from the bends in a tree where the trunk joined a root or a branch. The curved grain was far stronger than a man-made joint between two pieces of straight lumber. ... Read more

A game loop in a core.async goroutine

Growing up I had an old Commodore 64 with an assortment of games on 5¼" floppy disks. One of them was an election game, possibly President Elect by Strategic Simulations, Inc, but at the time I was too young to understand it, and I never played much. Last year I wanted to teach my kids about the electoral college, so I made my own election game, one aimed more at a third grader. I omitted real-world parties, issues, and polling data, and focused instead on a tight loop of nudging states' preferences for or against two different candidates. There's a little geography, and a lot of puns. I called it Electravaganza. You can play here. ... Read more

Posts by topic

Taxicab Geometry

Circles of Apollonius