run_me: Smart Selection of Command Line Tasks by File

Test-driven development (TDD) involves running automated tests. A lot. If you have a function with five tests, you might easily invoke your test runner 50 or even 100 times before all tests are passing. Any action we take that often is a natural candidate for automation. Read more on run_me: Smart Selection of Command Line Tasks by File…

Don’t Forget to Kick the Tires – On Automatic Monitoring & Human Intervention

With as much as we use modern technology to automatically monitor, observe, and report on so many different systems, I think it is important to manually check the viability of these same systems from time to time.

While the quality of sensors and metrics always seems to be improving, there are still loopholes and lapses which make human oversight and investigation important. I have experienced a few situations in the past few months where the electronic/computer-based monitoring solution for systems have failed in ways that could have been particularly costly; yet human intuition and manual intervention ensured that the situation was addressed appropriately to avoid real damage or loss. Read more on Don’t Forget to Kick the Tires – On Automatic Monitoring & Human Intervention…

Script Away Your Annoyances – Glueing Evernote and Omnifocus via JavaScript

OmniFocus has become my personal task tracking tool du jour, and I’ve come to rely on it for a morning reminder of my daily routines. One of those routines is to clear my Evernote inbox–things in that notebook need to be filed away for long-term storage while I can still remember why I put them in the inbox in the first place.

After a few weeks, I found the task of bringing Evernote to the foreground so I could check the inbox fairly annoying; I don’t want to bring it up if there’s nothing to process. So I wrote a JavaScript program to keep my OmniFocus task updated with the number of unprocessed items in my Evernote inbox.
Read more on Script Away Your Annoyances – Glueing Evernote and Omnifocus via JavaScript…

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…

Gmail Filters for unattended-upgrades Reboots

I’m a big fan of Ubuntu & Debian’s unattended-upgrades package. I can install and configure it to automatically update packages and email me results every night. Sure, I’m aware of and can immediately address the high-profile security bulletins & fixes. But what about the more subtle, less severe problems? Read more on Gmail Filters for unattended-upgrades Reboots…

Script Away Your Annoyances – Testing a Data Import Process

As I wrote in my previous post, Script Away your Annoyances – Patching a Gem:

Automation is good. Performing tasks manually is bad. Performing tasks manually is especially bad when the tasks are annoying. Let’s use a Ruby script to alleviate the pain of an annoying task.

Today’s annoyance: testing and working through the kinks of a brittle, ugly data import process.

We are planning to deploy Fedora Commons into our system soon. Fedora will help facilitate sharing data across a number of systems, including ours. Until now our system data has been stored in MySQL and on the filesystem; when we deploy Fedora, we also need to import the existing data into it. Future updates will go into Fedora as they happen.

The Original Process

We already have a script to import the data into Fedora, but before doing so, we’d like to test the import locally. Below is a picture that gives a rough idea of what must happen to run the test.

Read more on Script Away Your Annoyances – Testing a Data Import Process…