Matt Williams

Author's details

Name: Matt Williams
Date registered: August 9, 2008


Matt Williams lives in Columbus, OH, in a house filled with computers, cats, books and fiber. Pursuing the goal of being a modern Renaissance person, he plays with his daughter, cooks, roasts coffee, reads, weaves, studies, and hacks, including crazy ideas like a Cloud in a Box. Docker has been an especial passion since June of 2013.

Latest posts

  1. Weaving with Light Pt. 1 — August 31, 2016
  2. Abusing HAProxy: Stupid Simple Easy Dashboards — June 24, 2016
  3. Rules for Operations — April 25, 2016
  4. DevOps Creed (Work in Progress) — April 24, 2016
  5. I am not a Mindreader: a mini-saga — April 11, 2016

Most commented posts

  1. Swarming Raspberry Pi – Part 1 — 13 comments
  2. Docker, Cgroups, Memory Constraints, and Java: A Cautionary Tale, or Here be Reapers (sometimes) — 9 comments
  3. Shrinking Docker Images — 7 comments
  4. Rails & JRuby in a Jar — 7 comments
  5. rspec, restful_authentication, and login_required — 6 comments

Author's posts listings

Aug 31

Weaving with Light Pt. 1

Handweaving with fiber optics viewed in the dark

This is the first in a series of posts regarding a recent project which integrated handweaving, fiber optics, and electronics. It’s a part of a costume for a cosplayer at work, but I’ll be discussing my part of it. TL;DR For those who can’t wait, here’s what the project looks like in the dark: And …

Continue reading »

Jun 24

Abusing HAProxy: Stupid Simple Easy Dashboards

I wanted a simple way to have a dashboard to show if hosts and services are alive & didn’t want to write much code and/or run up a nagios instance (or anything like that). All I care is whether it’s green or red. I’d already been setting up HAProxy for a proxy forwarder, so I …

Continue reading »

Apr 25

Rules for Operations

The Big Three

The following list was compiled in 2012 for a talk on Operations Principles for Developers (Ops4Devs). They are loosely inspired by the list of rules from Zombieland as well as from my experiences and those shared by others. Looking over the list four years later, I believe that they are still (very) applicable for all …

Continue reading »

Apr 24

DevOps Creed (Work in Progress)


This is a work in progress of a DevOps Creed. It will always be a work in progress as I and others learn and grow. Suggestions are welcome! I have drunk deep of the DevOps Kool-Aid. From the visions which ensued, I have come to the following…. I Believe: DevOps methodologies lead to systems which …

Continue reading »

Apr 11

I am not a Mindreader: a mini-saga


I must confess a severe failing on my part. I am not a mindreader. I am not privy to the thoughts in your head. I do not know your needs or desires. And I am certainly not aware of your expectations. This is why requirement documents exist. Please use them.

Apr 07

Cloudera Manager Disaster Recovery with JSON Deployment Dump


Cloudera Manager is fairly opinionated. In its defence, it pretty much needs to be given that it needs to wrangle multiple underlying Open Source projects. Each of these, in turn, have their own quirks and opinions. The following is a description of how to recover a Cloudera Manager cluster post disaster, assuming that you have …

Continue reading »

Mar 30

Interesting Feature of Dockerfile Volume Directives

I’ve been rewriting a cleanroom version of the hadoop-in-a-box — just about finished. And, truth be told, the code, all in all, is a bit tighter than the original encumbered version. However, I ran into an interesting feature of Volumes — I had thought perhaps to optimize things a bit, but it caused some unexpected …

Continue reading »

Mar 17

Docker, Cgroups, Memory Constraints, and Java: A Cautionary Tale, or Here be Reapers (sometimes)


TL;DR: Java and cgroups/Docker memory constraints don’t always behave as you might expect. Always explicitly specify JVM heap sizes. Also be aware that kernel features may not be enabled. And Linux… lies. I’ve recently discovered an interesting “quirk” in potential interactions between Java, cgroups, Docker, and the kernel which can cause some surprising results. Unless …

Continue reading »

Mar 15

Zombie Apocalypse! Docker AUFS + Java + Low Memory …. Hadoop in a Box Cloudera Manager Cluster

TL;DR — When using AUFS in a memory constrained environment, Java can spawn (lots!) of Zombies. A workaround is to change the storage driver to the device mapper. In working on the Hadoop in a box CDH cluster with Cloudera Manager, I’ve discovered a few interesting things about AUFS. These experiences are with Ubuntu 14.04 …

Continue reading »

Mar 10

Cloudera Manager GUI and API Can Step on Each Other

While learning how the configuration worked — in particular which arguments to pass in order to set non-default values, I discovered that I could lose changes by following these steps: Use the GUI to set a value and save it. This is just so that you can find the variable. Keep the GUI open. Dump …

Continue reading »

Older posts «