dmuth's blog

BronyCon 2014 Wrapup

I attended BronyCon 2014 this year, and once again I worked in VIP Relations (VIPR). My role consisted of being the handler for one of the convention’s guests. This meant that I was responsible for meeting them in the morning and getting him where he needed to be on time. I was also the primary point of contact in case they had any questions or concerns regarding the convention itself.

DSC_8722 DSC_8747 DSC_8755

This was very much a “working” convention for me, and when I wasn’t working.. I was sleeping. Smiling As a result, I didn’t get to take nearly as many pictures as I would have liked. I did get this nice shot of Rainbow Dash on a drone:


The rest of my (admittedly small) collection of pictures can be found on Facebook and Flickr at:

My next convention will be Eurofurence, held across the pond in Berlin, Germany on August 20th-24th. I hope to see many of my European friends there!

Average: 5 (2 votes)
Your rating: None

My Anthrocon 2014 Con Report and Pictures

This year's Anthrocon was held in Pittsburgh, PA from July 3rd to 6th. The guests of honor were Lee Tockar and Jim Cummings. We had a total attendance of 5,861 and raised $32,372 for the National Aviary.

First, this is what 1,326 fursuiters look like:

Click on that picture if you'd like a 3000 pixel wide version. Or go here for a 17,000 pixel wide version.

DSC_8626 DSC_8653 DSC_8396 DSC_8399 DSC_8661 DSC_8365

Average: 4.7 (3 votes)
Your rating: None

Setting up custom short domains in

What is a URL shortener?

A URL shortener is a service which takes a long URL and creates a much shorter URL which then forwards you to the original URL when loaded. For example, the URL, if clicked on, will redirect your browser to instead.

Short URLs and the services that offer their creation have grown quite popular in recent years, as microblogging services such as Twitter limit you to 140 characters or less per message. In fact, some services such as Twitter offer their own URL shorteners built into the service for the benefit of their users.

The most popular of the URL shorteners is Bitly, so this post will be about setting up a custom short domain with Bitly.

Why use a custom domain

It's mostly about brand recognition and trust. If you have a domain name which you are trying to make popular, having the domain name short up on links that you post in Twitter and other places can only work to your benefit. It also serves to build trust--if users who read your blog, Twitter feed, or Facebook page know that links posted to a URL with your domain are useful, they trust more links posted with your domain. It really is an upward spiral!

Average: 4.4 (5 votes)
Your rating: None

Form Letter for Responding to Job Recruiters in the Software Industry

Hipster Cheetah on interacting with job recruiters

The Challenge

Having worked in the software industry for many years now, I get lots of job spam from recruiters. Sometimes it is relevant to the sort of work I do, but sadly many times it is not. The reasons range from recruiters not understanding technology (confusing Javascript and Java is a fair mistake if you've never worked with either), to having quotas to fill, to getting pressure by employers to fill positions. Be that as it may, taking out your frustration on a recruiter is not necessarily the most productive thing either. Since I got tired of typing replies by hand, I instead created a form letter that I can paste as a response to recruiters.

The Form Letter

This is what I send to recruiters:

Dear Sir or Madam:

Yes, this is a form letter. Smiling Please do not take this as a slight--I had to write it due to hearing from multiple recruiters a day, and I simply do not have the time to reply to everyone individually.

CURRENT JOB STATUS: At this time, I am NOT on the job market. Should you wish to forward the occasional job posting my way via email, that is okay.

For future reference (and my own sanity), I must ask that you kindly refrain from any of the following:

- Calling me on the phone unsolicited.

- Calling me on the phone unsolicited multiple times in a single day.

- Emailing me the same job posting multiple times in a single day.

- Sending me LinkedIn connection requests if we have never spoken before.

- Sending me job descriptions for technologies I do not use. (Hint: Javascript != Java)

Each of these things has happened before in substantial quantities so regrettably, I have no choice but to block repeat offenders--it is necessary to both maximize my sanity and minimize my bar tab. If in doubt as to if something is appropriate, feel free to ask via email.

If you have a question about my interest in a specific technology or employer, just ask. No need to forward a job description, a simple 1 or 2 line email is quicker.

If you have any questions not covered above, free free to ask.

All the best,

-- Doug

Average: 4.8 (5 votes)
Your rating: None

Introducing Nginxtop


Every once in awhile one of my websites gets hit by some poorly behaved web crawler or by some spambot. The symptoms are usually the same: either the same page gets loaded over and over, or non-sensical URLs based on valid URLs are hit. Either way, the effect on the web server is debilitating--the exact traffic causes the database to take a hit, and the network usage to be 5-10 times what is normal for the website. We can't have that.

My usual method for mitigating this is to make use of UNIX command line utilities such as tail, cut, and grep to weed out the offender and then block them with iptables. But I got tired of cobbling together the same commands every time this happened. Instead, I decided to write nginx top!


Here's how to install it:

npm install -g nginxtop

If instead you wanted the source code:
cd nginxtop
Average: 3 (2 votes)
Your rating: None

Quick and Dirty Script to Upgrade Drupal

I run several Drupal-powered websites, and I recently had to upgrade Drupal in order to fix a vulnerability that had been reported. I hate doing the same task over and over so I looked for a way to automate that from the command line. I came up with a solution that worked for me, and I wanted to share it.

First, head to /admin/reports/updates on your website and verify that your Drupal installation needs to be updated. Next, run these commands from the UNIX shell:

# Change accordingly based on the version of Drupal you are upgrading to

mkdir -p ~/tmp/drupal/OLD && cd ~/tmp/drupal/
wget${VERSION}.tar.gz \
   && tar xfvz ./drupal-${VERSION}.tar.gz

# Replace with whatever the root directory of your website is
cd webserver_root 

# Move each file to the "OLD" directory and move in the upgraded version
for FILE in `echo index.php includes misc modules profiles scripts themes update.php`
     echo "NEW: ${NEW} OLD: ${OLD}"
Average: 5 (1 vote)
Your rating: None

Dorsai Thing 2014 Report and Pictures

One of the volunteer groups I am involved with is a group called The Dorsai Irregulars. We provide security services for "fannish" conventions including (but not limited to) science fiction conventions, furry conventions, and anime conventions. The convention committees like it because security is being handled by fellow fans who understand the attendees. Hotels like it because we deal with any issues that come up instead of forcing the hotel to deal with said issues.

While it's great to help out, since some of us are on duty at any given time (security usually a 24-hour operation), those of us in the group usually don't have a chance to hang out and socialize much. Instead, we hold our own event each year which we call "Dorsai Thing" wherein as many people from the group (and additional people who work contracts with us, referred to as "folk") get together for a weekend at a hotel and have our own get-together in which none of us are working. Dorsai Thing consists of a breakfast on Saturday and Sunday morning and a banquet dinner on Saturday evening. Aside from that, there may be "field trips" or local tourism on Friday or Saturday afternoons.

DSC_8241 DSC_8252 DSC_8289

DSC_8244 DSC_8245 DSC_8243 DSC_8246

Average: 5 (1 vote)
Your rating: None

A Script to Backup Evernote to Dropbox

In the previous post I made on this topic, I talked about how to use Git to backup your Evernotes into Dropbox.

In this post, I wanted to share the script that I created to automate doing those backups:


# Evernote directory. Season to taste.
DIR="$HOME/Library/Containers/com.evernote.Evernote/Data/Library/Application Support/Evernote/accounts/Evernote"

# Errors are fatal
set -e 

# Check to see if Evernote is running
PIDS=`ps ax |grep -i evernote |grep -v grep |grep -v backup-evernote` || true
#echo $PIDS # Debugging

if test "$PIDS"
        echo "Evernote is still running!  Please exit Evernote before trying to back up."
        exit 1

cd "$DIR"
git add .
git status
COMMENT="Backup on `date`"
git commit -m "$COMMENT" . || true
git push -u origin master

A few notes about the previous script:

  • Checking to see if Evernote is running first is just a good idea. Trying to back up files which are being actively used is asking for trouble.
  • Wherever you see || true that means "if the previous command exited with non-zero, run the 'true' command". This has the effect of ignoring errors from specific commands.
  • The assumption is made that you set up your origin, as outlined in the previous post.

This script (and other related utilities) are available for download in my GitHub repo at Enjoy!

Average: 5 (2 votes)
Your rating: None

Setsucon 2014 Report

I went to Setsucon, an Anime convention which was held January 25th and 26th, 2014 in State College, PA.

It was my first anime con in a few years so I wasn't sure what to expect. I ended up rather enjoying the convention. While I like anime, I'm not very active in the community so a lot of the programming didn't appeal to me. I went there mostly to catch up with friends:

DSC_8207 DSC_8191DSC_8219
Average: 5 (1 vote)
Your rating: None

Backing up Evernote with Git and Dropbox

What's Evernote?

Imagine a lightweight word processor. Like Microsoft Word but 50 times faster. Then abstract out the concept of a file system so that instead of having to keep track of hundreds of files around your hard drive, you only have "notebooks" and "notes" to deal with all in one application. Now make them searchable. And finally, put the whole thing in the cloud so that you can access your notes on your computer, through the web, or on an iPhone. That's Evernote. It's as amazing as it sounds.

Why back up your notes?

Because sometimes cloud-based systems have issues. Or maybe you accidentally nuke an entire notebook. Or perhaps you want all your notebooks to be "local notebooks", and not replicated to Evernote's cloud. No matter the reason, it's your data, and you have a right to have backup copies.

Skill Level: Advanced

Average: 4.5 (2 votes)
Your rating: None