On Empowerment Through Declarative Programming

Lately I've been pairing with my good friend, Caleb Gossler, on some atypical Node.js at work. To be honest it's not the most interesting work to talk about. Rather than go into the bland details I thought I'd extrapolate the valuable part of the experience. We have been taking…

Movement for Reading in Emacs

I use the usual emacs keybindings for moving the cursor around in the buffer. Usually this is more about positioning the cursor for making edits, but more and more I find myself using emacs for non-editing tasks. In these cases I am less concerned with where my cursor is and…

Old Habits Die Hard

Next up on my little emacsian adventure: changing windows. Guh! C-x o just doesn't work for me. I'm too young to have this deeply ingrained in my head. I cut my teeth on fancy pantsy editors that C-<tab> from open file to open file, and emacs just…

On Emacs and Node.js Testing Workflow

Making it easy to lint your JavaScript is a good step, but it's pretty helpful to be able to execute your tests from within your editor. I'm on a certifiable emacs kick lately, so here's how I got it to work! I wanted to get testing to feel similar to…

On Emacs and Node.js Workflow

One of the things I miss most about my time in Microsoft's realm is the tooling. It had this great way of making you feel nice and cozy within the bounds of how their stuff works (although I always felt the urge to break the mold, because let's face it,…

Silly Mistakes

Have you ever been in the middle of writing a function, and a bright idea hit you like a piano out of mid air, or suddenly interrupted by a flash mob? Me, too. What were we talking about? This is among the most universal experiences in programming: distractions that lead…

Go: Range is by Value

TL;DR: The value for each item in a range loop is not by reference. Instead, use the index index := range foos.Bars and index to the item &foos.Bars[index]. I learned a practical lesson today about how the range keyword works in Go. Here's the scenario. I…

Whimsy

As it turns out, I'm really bad at following through with plans. I recently intended to dig through algorithms in Go, but here I find myself doing whimsical things with my time instead. A couple of years ago I had a dubious amount of fun with a tiny bit of…

Monkey Patching in Node.js

Disclaimer: Don't do this. Really. This post is just for the fun of it. Monkey patching (a.k.a. "Duck Punching") in Node.js is somewhat of a controversial topic. Conventional wisdom says to steer clear of this activity, but I think sometimes it is inevitable. The best…