Welcome!

My face

Hi - I'm Clinton, and I'm the CTO of Momentum Learning in Durham, NC. I've previously worked with the Consumer Financial Protection Bureau, The Iron Yard, and RTI International, among others. My big passions are my kids and making the world of programming a more welcoming and diverse place.

Recent articles

Better bash history

When working in the terminal, I find it very useful to be able to quickly search through what I’ve done before. Often there’s a command that you used that you can’t quite remember. The default shell on most computers is bash, and you can customize it to help you search your history better. Here’s the code from my bash configuration (in ~/.profile or ~/.bash_profile depending on your system): # Append to history file instead of overwriting it. Read more...

My dad owns and operates a turfgrass farm. When I was a young kid, I would go on deliveries with him. He’d drive an eighteen-wheeler loaded with grass, usually to Columbus, GA. There was a time he listened to a lot of Tony Robbins audiotapes. That guy has an amazing rhythmic voice that I can still hear in the back of my head.

We would take a loaf of white bread and put it on the dashboard to warm in the sun. We’d arrive at the delivery location and I’d ride on the Spyder forklift with him while he placed the pallets. Afterward, we’d take the warm bread out and make sandwiches with it.

Permalink

Two semesters of teaching

I’ve just hit the end of my second semester teaching at The Iron Yard here in Durham. (Well, it’s a week from the end, but I got knocked out of commission early because of this guy. Thanks to everyone on staff for being supportive and letting me snuggle my new little dude a lot.) I still have a lot to learn, but here’s some lessons I’ve learned teaching adults – most of which came in with no programming background – to be developers. Read more...

Building a classification engine

Tonight, I built my first stab at an engine for the Reading Machine to classify articles that get pulled in via RSS or social media links as interesting or not interesting to me. I already see a few problems with what I built, but it’s a good first step and I’d like to talk about it.

Read more...

The other day, Dashiell and I were headed to Little River Regional Park to learn about birds together. Even though it’s December, it was over 60 degrees out, so we had the windows rolled down. I was playing Public Enemy’s “Welcome to the Terrordome” and he was shouting “louder! louder!” in the backseat while we drove through the NC countryside.

Permalink

For the love of Brogue

There is no computer game I have spent as much time playing as Brogue. Brogue’s your standard person-goes-in-a-dungeon-and-kills-stuff sort of game, but more importantly, it’s a roguelike, a particular style of game born from the ancient-in-computer-years game Rogue. In a roguelike, the world you play in is randomly-generated and the gameplay is exceedingly hard. Together this makes scenarios you can’t win even with perfect play. And there’s no save-and-reloading, so forget trying multiple ways to get out of a bind. Read more...

Recursively searching up directories

I found myself needing to search up the directory tree for a specific file recently, much like git does to find the .git directory above it or rbenv does to find the .ruby-version file that will tell it which Ruby runtime to use. It wasn’t as simple to figure out as I expected. Here’s the shell function I ended up with: findup() { _path=$(pwd) while [[ "$_path" != "" ]]; do if [[ -e "$_path/$1" ]]; then echo "$_path/$1" return 0 else _path=${_path%/*} fi done return 1 } The first few lines of this should be pretty obvious: I’m defining a function, then setting a variable, _path, to the current working directory. Read more...
Previous Page 7 of 9 Next Page