Welcome to Dmuth dot org

Ferris Wheel at Funtown Pier

Welcome to my website! I've been on the web in some form or another since 1996. Even though social media is all the rage these days, I feel it is important to have one's own presence on the web. So I continue to write here as often as I can.

If you'd like to get in touch with me, feel free to reach out! All of my contact info can be found here.

-- Doug

3.043955
Average: 3 (182 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

4.666665
Average: 4.7 (3 votes)
Your rating: None

Introducing Nginxtop

Why?

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!

Installation

Here's how to install it:

npm install -g nginxtop

If instead you wanted the source code:

git@github.com:dmuth/nginxtop.git
cd nginxtop
3
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
#
VERSION="6.31" 

mkdir -p ~/tmp/drupal/OLD && cd ~/tmp/drupal/
wget http://ftp.drupal.org/files/projects/drupal-${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`
do
     NEW=~/tmp/drupal/drupal-${VERSION}/${FILE}
     OLD=~/tmp/drupal/OLD
     echo "NEW: ${NEW} OLD: ${OLD}"
5
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


5
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:

#!/bin/bash

#
# 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"
then
        echo "Evernote is still running!  Please exit Evernote before trying to back up."
        exit 1
fi

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 https://github.com/dmuth/unix-utils. Enjoy!

5
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
5
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

4.5
Average: 4.5 (2 votes)
Your rating: None

The Importance of Having More Than One Backup

Many years ago, I wanted to make sure my data was secure, so I purchased a fireproof safe from a (now defunct) company called FireCooler. I thought it would be a good idea to have a UL 125-rated safe which could keep an internal temperature of less than 125 degrees over an hour long fire. I regularly made backups to DVD and stored them in the safe.

Well, sometimes the best laid plans can go awry, and that was the case the other day when I went to put something in my safe, and found that it was flooded with water:

IMG_3373 IMG_3372 IMG_3374


How did this happen? Did something in the safe suck in tons of moisture? Did the basement somehow flood and not cause water damage elsewhere? To this day, I am still not sure. I did not see any evidence of flooding in my storage area--nothing else was damaged.

The takeaway here is that I had backups stored elsewhere so no actual data was lost. I recommend that everyone reading this, if they care about their data, to do the exact same thing. Here are a few resources for backups:

  • DropBox
  • Amazon S3
  • Amazon EC2 (Bonus: You can take the instance offline when you're not backing up to it, and an instasnce that is not online cannot be broken into. )
  • Carbonite

Happy Backups!

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

Centralia Visit

A few weekends ago, I did a road trip with Kasi Frost and Cliff Husky. Our destination? Centralia, Pennsylvania!

For those who have not heard of Centralia, it is a town which was gutted by a mine fire back in the 1980s. The government moved all of the residents (save for a few holdouts) out of down, demolished their homes, and removed the debris. The town is now pretty much a criss-crossed network of vacant lots, utility structures, and just a few buildings left standing. In some places, you can even see smoke and steam coming out of the ground.

Highway 61 (Highway to Hell)

One of the casualties of the mine fire is a section of PA Highway 61. The heat from the fire caused the highway to buckle and warp. End result was that a new stretch of road was built around the smoking part, and it was left alone. Here are a few pictures:

DSC_8093 DSC_8095 DSC_8098


Note that this in the middle of winter. Yet the snow around the fissure is completely melted away.

The Cemetery on The Hill

Welcome to Saints Peter and Paul Orthodox Cemetery. Living population: you

DSC_8121 DSC_8122 DSC_8126


Many of the headstones were from the 50s and 60s. As the general condition of this cemetery shows, it is still maintained.

4.5
Average: 4.5 (2 votes)
Your rating: None