A Shell Script for Working Step by Manual Step

While I prefer a project’s deployment process to be automated, some systems just aren’t made for automation. For instance, many content management systems are designed to be updated by a live user— someone manually selecting check boxes, filling in text fields, and clicking submit buttons. Often, all that configuration is stored in a complex format in the database, making it risky to update with a script. In the end, a manual process is not only the cheapest, but also the safest way to go.

But even though the process may be manual, remembering it doesn’t have to be. Read more on A Shell Script for Working Step by Manual Step…

Developing on OS X Inside Vagrant

I maintain an OS X tool for sandboxing the popular Homebrew package manager called brewdo. Because I need my MacBook to keep working day-to-day, I need a way to develop features and fixes in brewdo without risking my system’s integrity.

If brewdo targeted Linux, I could very easily use Vagrant to spin up a Linux system and develop it there. brewdo targets OS X, though. And although Apple gives permission to virtualize it, they don’t give permission to share copies of it.

But all is not lost. OS X on Vagrant is achievable, and without skirting Apple’s copyright. Read more on Developing on OS X Inside Vagrant…

Writing Better Commit Messages with Tmux

I’ve been trying to write more detailed commit messages—breaking down what’s happening in big change sets, explaining problems I encountered and how I solved them, pointing out potential weaknesses in the code or future improvements—but it’s not easy to remember all the particulars while staring at the commit message editor.

Fortunately, Tmux can help.
Read more on Writing Better Commit Messages with Tmux…

Free Cloud Git and CI for Private Mobile Projects

Update: since this post was written, Ship.io has announced that they are shutting down at the end of October, and they are no longer accepting new signups. Greenhouse’s service remains available.

On my last project, we used GitHub private repositories and CircleCI continuous integration. Both services were fantastic. So when I recently started a personal Android project, I wanted to try using these or similar tools. My project needs to live in a private repository, and I’m not yet willing to spend any money on it. What are my options?

Read more on Free Cloud Git and CI for Private Mobile Projects…

Configuring a Laptop with Ansible, Part One

Setting up a new laptop can be disorienting. It’s easy to forget all the configuration tweaks that accumulate over time. With just a little work upfront, a configuration management system can turn those notes into executable documentation, making it easy to reproduce a heavily customized setup on other laptops down the line.

Read more on Configuring a Laptop with Ansible, Part One…