dmuth's blog

Tweaking Boxen on OS/X

What Is Boxen?

Boxen is a package which lets you automate the setup your Mac. You can install whatever packages you want, set up services, install config files for your favorite tools. It's pretty amazing, really.

On a more technical level, Boxen is based on Puppet, Homebrew, and a plethora of contributed modules.

Setting up Boxen

Full instructions can be found on the repo, but here's the TL;DR:

sudo mkdir -p /opt/boxen
sudo chown ${USER}:staff /opt/boxen
git clone /opt/boxen/repo
cd /opt/boxen/repo

Along the way you'll be asked to enter your GitHub username and password. Please do so, because your GitHub username plays a big part in the next section.

Setting up a Personal Manifest

Average: 5 (2 votes)
Your rating: None

Git 101: How to Handle Merge Conflicts

In the last post, I talked about how to create a Git repository and upload it to GitHub. In this post, I'm going to talk about how to resolve Git conflicts.

Setting Up Our Environment

First, we're going to create a Git Repository for the user Doug. Since I already covered that in the last post, I'm bring to breeze through those steps below:

$ mkdir doug
$ cd doug
$ git init
Initialized empty Git repository in /path/to/doug/.git/
$ touch
$ git add 
$ git commit -m "First commit"
[master (root-commit) d86a7e2] First commit
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644

At this point, we have a repository created for the user Doug. Now I'm going to clone that repository for the user Andrew:

$ cd ..
$ git clone doug andrew
$ ls -l
total 0
drwxr-xr-x  4 doug  staff  136 Nov 28 16:59 andrew
drwxr-xr-x  4 doug  staff  136 Nov 28 16:47 doug
Average: 4.8 (6 votes)
Your rating: None

Git 101: Creating a Git Repo and Uploading It To GitHub

In this post, I'm going to discuss how to create a GitHub repo and upload (or "push") it to GitHub, a popular service for hosting Git repositories.

What is revision control and why do I need it?

The concept of revision control is a system which tracks changes to files. In programming, that is usually program code, but documents and text files can also be tracked. Using revision control will give the following benefits:

  • You will know what was changed, when it was changed, and who changed it
  • Multiple people can collaborate on a project without fear of overwriting each others' changes.
  • Protection against accidentally deleting a critical file. (revision history is usually read-only)

In GitHub, we store revisions in "repositories" or "repos" for short. As of this writing, the #1 service for storing Git repositories is GitHub. They offer free hosting for Git repositories.

Before you start

Make sure you have a copy of Git. If in doubt, go to the official Git website and download a copy.

Average: 5 (2 votes)
Your rating: None

My MidWest FurFest Duty Hours

Shia Moorhen and Keenora

MidWest FurFest is just around the corner, and I will be working in Convention Operations (ConOps) for Takaza.

Here are my duty hours:

Thursday: 1:30 PM to 4 PM
Friday: 4 PM to 7 PM
Saturday: 4 PM to 8 PM
Sunday: 4 PM to 8 PM

Outside of those hours, I look forward to hanging out with friends, flailing around at the dances, and generally having fun. I'll see you there!

Average: 4 (2 votes)
Your rating: None

Furfright 2013 Wrapup

Another fun year at FurFright! FurFright was held October 25th-27th, 2013 at the Crowne Plaza hotel in Cromwell, CT.

Once again, I worked security, and during the off hours I got to socialize with friends, and make a few new ones.

I didn't get to see as much of the con as I'd like, since I had some really whacky shifts. (Midnight to 4 AM, then a 4 AM to 8 AM shift)

DSC_7844 DSC_7845 DSC_7887 DSC_7862 DSC_7867 DSC_7868 DSC_7945 DSC_7874

Average: 5 (1 vote)
Your rating: None

Upcoming Presentation at GoLangPhilly

Interested in the Go Programming language? I will be presenting a web crawler which I wrote in Google Go on Wednesday, November 13th, 2013 at DramaFever's offices in Narberth, PA. More information about the meetup can be found on

For those curious about my web crawler or would like to check out the source, the source is up on GitHub.

Finally, for anyone who is curious, here is a sequence diagram of how my web crawler works:

I hope to see everyone there!

Average: 5 (1 vote)
Your rating: None

My Experience as a Mentor at PilotPhilly

On the weekend of November 9th and 10th, 2013 I had the pleasure of participating at PilotPhilly. PilotPhilly was a 24 hour hackathon for high school students. While I am not a high school student, I am a software engineer and the event put out the call for engineers to help out at the event as mentors. As a mentor, my job was to provide guidance to participants and give them suggestions if they became stuck on a problem.


A 360 degree panorama of the hackathon

The hackathon ran from 1 PM on Saturday to 1 PM on Sunday. Sunday afternoon, every group presented their projects. Some projects were serious, some not so serious, and some were downright hysterical.


The app "QuickMunch" is presented
Average: 5 (5 votes)
Your rating: None

My presentation on the Node.js Seq module

My presentation on the Seq module from the Node.js Philly Meetup is now online.

Here's how to view it:

git clone

open seq.html # On a Mac, this will open in your browser

Enjoy, and feel free to send me any questions you may have about Seq!

Average: 5 (1 vote)
Your rating: None

Philly DevOps Meetup Notes, September 2013

"I LOVE Boxen!"

I attended tonight's Philly DevOps Meetup at the Comcast Center in Philadelphia, PA. As a service to the tech community, I decided to share the notes I took from the presentations.

Boxen (presented by Adam Ochonicki):

  • configuration management for Macs
  • Does things like installs Skype, VLC, etc.
  • is a wrapper for Puppet
  • Warnings:
    • Installs its own Homebrew and rbenv
    • Installs services on non-standard ports
    • YMMV on "older" hardware

Docker (presented by Dave Konopka):

  • Docker is to Linux containers what Vagrant is to VMs
  • Linux containers (lxc): isolate proceses, files, and networking running on a host system
  • AUFS: Layered file system
  • Docker is NOT:
    • package manager
    • configuration management
    • VM
  • Requirements:
    • 3.8 kernel
    • LXC and AUFS support
  • Layered file system:
    • Base image can be shared across multiple docker containers
  • Unlike VMs, the guest OSes and kernels are not duplicated
  • Host kernel + smaller resource footprint + layered file system = insanely fast spinup
  • Can run on top of other forms of virtualization (EC2)
  • Starting a container:
    • Spawn a container from an image
    • Fire one process
  • Repositories
  • Ideal use cases:
    • Experiment with distributed applications
    • Portable stand alone applications
    • App deployment
    • Replicate test environments
    • High number of concurrent isolated "systems"
  • "production ready" due in October, 2014
Average: 4.5 (2 votes)
Your rating: None

My BronyCon 2013 Writeup

Earlier this month I attended BronyCon, a convention for "bronies", or people who are fans of "My Little Pony: Friendship is Magic". With over 8,000 attendees, it is the biggest convention of its kind.

"You're a brony?"

No, I do not identify as a brony. I've seen the show, and it's good animation and solid storytelling. If I had children, I'd watch the show. But I do not feel enough of a connection at this time to self-identify as a brony.

"Why'd you go, then?"

A few reasons. First, I was curious about the brony fandom, especially its explosive growth--BronyCon is only 3 years old, and they had over 8,000 attendees this year. Second, I wanted to work a convention outside of my comfort zone for a change. Third... we kinda had a staff swap going. At Anthrocon last month, BronyCon's Operations Director worked for me in my department. So I returned the favor and worked for BronyCon this year.

VIPR Group Photo Fursuiters at BronyCon DSC_7763

"Wait, what? You were staff there!?"

Yep, I worked for the VIP Relations team, or VIPR for short. One difference between BronyCon and other kinds of conventions I worked is the larger number of guests who are voice actors and relatively famous in real life. Due to the increased attention that guests would get, each guest had a "handler" assigned to them for the duration of the convention. That means your schedule is your guest's schedule. You meet your guest in the hotel when they head out in the morning, and you're on duty until they head back to their hotel for the night. You are responsible for escorting them to each panel and stage appearance on time, and are basically their Point of Contact for the convention itself.

Average: 4 (11 votes)
Your rating: None