Software worth recommending

There are lots of great tools out there. Far too many to try. Here are the ones that I’ve tried, and found worth recommending. Mostly they’re OS X Developer Things Quiver is a “Programmer’s Notebook”. I’ve recently switched to it from CodeBox which seems to have been abandoned by its developer. I’ve got some minor quibbles with Quiver, but overall it’s pretty nice and I’ll be bringing all my code snippets and reference material over to it.

Static vs. Dynamic Blogging

You’ve got a lot of software options when setting up a blog. Over the years. I’ve used or tried most of the options including, but not limited to: WordPress, Jekyll, Octopress, and at least 3 custom built systems. What follows is my thinking on the pros and cons of each option, and why I’m switching back to a static blog system (Hugo this time). Dynamic Blogs (WordPress, etc.) Dynamic blogs, like WP, have a lot going for them: Easy to use Lots of plugins Great media handling Usable from any internet connected device with a browser.

Why I won't be backing Mou's crowdfunding Campaign

Mou as your Markdown loving Mac geeks know, is a split pane Markdown editor. It’s been around for years and it’s really quite good. I even donated to its creator in the past to support it. Now he’s put together an IndieGoGo campaign to pay for people to work on it full time, but I won’t be contributing. Some background first Mou was never open source. I’m ok with that. I use a bunch of great proprietary apps.

The Five Virtues of a Great Programmer

In Programming Perl Larry Wall (in)famously suggested that programmers had three great virtues: Laziness, Impatience and Hubris. Over the years I’ve kept coming back to those because there’s a real truth to the idea as he originally presented it, but it’s limited, and his definition of “Hubris” has no relation to the actual word. I believe that those may be aspects of real programmers, a great programmer goes beyond that. Building on Larry’s idea, I present you The Five Virtues of a Great Programmer: Laziness The quality that makes you go to great effort to reduce overall energy expenditure.

Vampire Bug [Definition]

n. something that worked when you went to bed at 2AM, but when exposed to the light of the next day dies horribly. Typically the exposure proves that it couldn’t possibly have been working at 2AM either.

How to enable GitHub 2 factor Authentication on new device / app

( as of Sept 30th 2014 ) These are the instructions for how to do it if you’ve already got it configured and need to add a new app / device. If you don’t have it set up already, GitHub’s docs are… probably passable. Go to Settings Click on Security In the “Two-factor authentication” section click “Edit” Yes, even though you don’t want to edit it. Under “Delivery options” click “Reconfigure two-factor authentication Yes, even though you don’t want to reconfigure it.

What would you want to do?

This afternoon my intern asked me this simple question. She’s a new developer, and a friend of hers is working in a fresh codebase, with best practices. Everything is nice, and he can keep the entirety of it in his head. She’s working with my team, Support Engineering. We’re the front-line bug squashers at our company. We’ve got a legacy codebase with no tests and brain melting insanity around every bend.

Writing good User Stories

First, it should be noted that not all stories are “User Stories”. For example a developer might be tasked with manually running some script. The Story might simply be “run the fooberry script”. For everything that effects the UI, use a template: As a < type of user > I want < to perform some task > So that < I can achieve some goal > Note that it’s all about what the user wants.

Finding the Github Pull Request for a topic branch

Finding the Github pull request associated with a branch. Work on a large enough project, with other people and sooner or later you’re going to find some commit, or branch, and want to know what was in the pull request that merged it in. Maybe you want to see what other commits got merged over at the same time. Maybe you want to see what the diff was at that point in time.

Bonsai Coding

Writing code is a lot like maintaining a Bonsai Tree. If you stop pruning it it’ll stop being a Bonsai and turn into a bush. Little tweaks, frequently aesthetic ones, will help to keep it beautiful and under control. It will still grow in unexpected directions, as other developers make changes, but careful pruning will keep it balanced, and healthy. What is “careful pruning” then? Each file is a branch on our tree.