Tests Are Docs
Automated tests are documentation, and–if done well—even useful and up to date!
✶ Understanding Developer Interruptions
Why interrupting a programmer is even more costly than you think, illustrated by u/nkukard.
Programming Sucks and Is Amazing
The Mix Has Died
Before even launching the publicly available version of TheMixNeverDies.com, I’m shelving the project.
I goofed up the CalVer implementation because I had the dumbs, and now I’ve fixed it. Oops.
I made a tiny tool for generating Markdown URL tags and want to tell you about it.
I was today years old when I learned that “my favorite quote of all time is a misattribution”.
2022: The Year of Habits
Shifting away from specific goals to a more meta—and hopefully sustainable—approach: yearly themes.
Goals for 2021 in Review
Half a dozen years later, another wrap-up.
There’s a limit to how much we can handle.
“Growing apart and losing touch is human and healthy”
DHH wrote something poignant in 2018 and here it is.
Simple, Easy, Complex, Difficult
Some language nuance.
Make the Important Things Easy
An old nugget of wisdom.
Starminder is relaunching with notable changes.
Some of my projects are languishing and need rethinking.
Quick and Dirty Python: HOWTO
Let’s build up small Python script.
Quick and Dirty Python
Something I absolutely love about Python is just how well it scales from tiny scripts to complex systems. Here’s an example of the former.
I got super excited for a new awesome looking email service, but it’s got a fatal flaw that has me looking elsewhere.
It didn’t take me all that long to come back around to this, did it?
I made an environment variable parsing library for Python, and forgot to tell you all about it!
Django Site Dispatch, Improved
Turns out I like this problem so much I had to solve it again.
Django Site Dispatch
Django’s “sites” framework is quite cool, but what if you need to make some exceptions?
I adopted a cat last year, and she’s the best.
Goals for 2021
Early again, some aspirations for 2021.
Python’s dict.setdefault Rocks
Python’s dictionaries are awesome, and I just learned about yet another reason that’s the case.
Goals for 2020 in Review
The longest year in recorded history (so far) is coming to an end. How’d I do?
Hire Me! (v.2020.10)
Back on the job market again, so here’s my updated “dating profile”.
I made a little Git hook manager and some people even use it!
I made a URL shortener with a static site generator.
Black Lives Matter: Venice Beach and Santa Monica
Painted boards from Venice Beach and Santa Monica on the morning of June 8th, 2020
✶ # TODO: add comments
5 Tips for Winning at Code Comments
PyBeach 2020 Tickets Are on Sale!
You should attend!
DogTown CrossFit Blog — Member Feature: Me!
I lost a buttload of weight and got a cool shoutout on my gym's blog, and it's hard not to brag.
Goals for 2020
Ahead of the curve this time, a look forward at what I'm hoping to accomplish professionally in 2020.
Goals for 2019 in Review
2019 is just about done—let's wrap it up.
✶ Simple Is Funner than Complex
I think I've figured out why I've been having such a hard time starting to migrate my projects to the cloud.
✶ Keynotes to Watch
I think everyone should watch these two keynotes, but especially those of us working in tech.
Free (from) Project Ideas
I'm letting some domains expire because I have neither the time nor desire to build what I wanted, so here you go.
I'm Speaking at PyOhio 2019!
Look, I'm just bragging…
See You at PyCon 2019
PyCon 2019 is here and so are we.
✶ Supporting Windows
It's neither ethical nor smart to ignore about half of all Python users.
Goals for 2019
About as late as last year, here is my next set of professional goals.
Goals for 2018 in Review
How did my goals for 2018 go?
Hire Me! (v.2018.12)
I'm looking for my next destination. Could your company be it?
PyCon 2019 Reminder
I'm going to PyCon 2019 and hope to see you there.
✶ North Bay Python 2018: Talks
I attended my favorite regional Python conference for the second time, saw some amazing talks, and wanted to tell you about them.
✶ PyBay 2018: Talks
I went to PyBay 2018 and enjoyed some talks. Here they are.
PyBay 2018: See You There!
I'm going to PyBay 2018 and hope to see you there.
✶ PyCon 2018: The Afterfeels
I went to PyCon (again) and it was amazing (again).
✶ There's No Going Back
Goals for 2018
Here we are again, with a bit of a twist.
A new Python conference is coming to town.
Goals for 2017 in Review
Time for another look back, this time at 2017.
✶ Modifying a List in Place in Python
A neat (if questionably legible) trick for modifying a list in place in Python, and a more Pythonic solution for the same problem.
Crush Cancer 2017
Donate to cancer research and watch me do a grueling workout.
I got tired of forgetting all about my 400+ starred GitHub projects and made a reminder app.
My New Vim Statusline
I realized my statusline was still bloated, so I trimmed it even more.
✶ Programmer, Developer, Engineer, Lexicographer
What am I even supposed to call myself these days?
An Otter Valentine's Day
A friend and I made SendOtterLove.com and you should use it to send someone otterable otters today.
My Vim Statusline
I don't use Airline or anything fancy, but my statusline still tells me everything I need to know.
Goals for 2017
This worked well for last year, so lets try it again.
Goals for 2016 in Review
Let's talk about some things I set out to accomplish in 2016.
SSH Agent on macOS Sierra 10.12.2
How to make ssh-agent remember passphrases on macOS Sierra 10.12.2.
I wrote a Vim plugin to help with GitHub's issue and pull request templates.
I Took the Vim Plunge and I Love It!
I started using Vim full-time a month ago and it's been great. Here are some thoughts on the transition and a few plugins that have made it fantastic.
✶ Instagram to Abandon Chronological Feed
Instagram has announced a switch to alogorithmic feed ordering instead of the current chronological one, and I think it'll prove a problem for myself and many others.
YouCompleteMe Compilation with Little RAM Solvable with Swap
I ran into a compilation issue on my small DigitalOcean droplet and solved it with some good ol' swap.
Goals for 2016
Some things I'd like to do better in 2016.
Vim + Spacegray + OS X = A Champagne Color Problem
I'd like to use the Spacegray theme for Vim on OS X, but other things look a bit wonky.
A Few Podcast Reviews
I've been listening to some great podcasts and would like to promote them.
Why and for Whom I Write
Thoughts on why I write here and who the intended audience is.
Free Project/Startup Ideas
I'd like to use these things but don't have the time to build them. Do you?
A new face for nkantar.com, and a slightly different approach.
Drupal Is a Nightmare and Done Is Better than Perfect
Sometimes you have to take your pride in doing things well and distract it while you do something badly. This was one of those times.
✶ Programmer Interrupted
Why interrupting a programmer is even more costly than you think, illustrated by Jason Heeris.
Web Development on a Chromebook — Not for Me
I tried migrating to a Chromebook and didn't like it.
New Mac Order
Quick thoughts on Apple's fancy new MacBook.
Eight Days without Blue Brother
Brief reflection on a few days without Facebook.
Sorting with Randomization
Sorting with pure chance, with some elementary stats.
I deactivated my Facebook account and thought I should write about it.
✶ Free Isn't Free
We live in a world built on software that's given away for free, and we should support it.
September to Remember
Quick thoughts on the iPhone 6/6+ and Apple Watch.
✶ How Not to Recruit a Developer
An irritated dissection of an unappealing recruiter email.
Why I chose a static site generator in a sea of fancy dynamic solutions.