Instantly share code, notes, and snippets.


Offer direct access to the raw data iff you have a very specific idea what you are looking for already

🚫 Not ergonomic to query

🚫 Slow and hard to maintain

🚫 Tend to be full of a lot of noise

🚫 Hard to get a feel for trends


Offer lovely view of requests as they flow through your system

Offers access to the raw data making up every result

🚫 Instrumentation is hard to start small and grow outwards

🚫 Finding the traces you are interested in is difficult

🚫 Nowhere to go from problematic traces (i.e., no way to ask additional questions)

View gke.hcl
variable "kube_password" {
default = "containers_r_cool"
variable "google_project" {
default = "honeycomb-test-project"
variable "google_region" {
default = "us-west1-a"

How Do You Get a New Job?

How do you get a new job in the tech industry? Perhaps even your first job? What if you don't have any experience? Are you screwed?

No. You can do it. You will get rejected. A LOT. Be prepared to experience 15 or more rejections for every offer you get. It will suck. But if you go out and pound the pavement, if you keep persisting, and if you keep improving your skills - some daring soul will take a chance on you, you will get a job, and the next time you go through the whole circus it will be easier.

It's not going to be easy, but it's possible. And every subsequent job hop (if you're doing it right) should be easier for you, so you might as well get started now. If you execute your job search(es) well, the difference it will make over your whole career will add up to anywhere from tens of thousands to millions of dollars, depending on how lucky you get and how savvy you are. There are, of course, many other benefits from landing a good job from flexible working hour

View zookeeper-kafka.markdown

invoke as root:


set -e

apt-get update

# alt: 'apt-get install -y zookeeperd' might set up the service as well

Sorting in Golang, the old (pre-1.8) way:

type ByLength []string

func (s ByLength) Len() int {
    return len(s)

func (s ByLength) Swap(i, j int) {

This is slightly trickier than I anticipated so noting it down for future reference.

The command should be along these lines (assuming AWS keys are configured via environment variables or config file):

$ docker-machine create \
  -d amazonec2 \
  --amazonec2-region us-west-1 \
  --amazonec2-ami ami-818bd5e1 \
  --amazonec2-zone b \
View gist:6447b040c1a43ef9d7c139bece440808
# Create node-1
$ docker-machine create -d virtualbox \
--virtualbox-memory 2048 \
$ eval $(docker-machine env node-1)
$ docker node update --label-add type=db node-1
$ docker swarm init --advertise-addr x.x.x.x
# Create overlay network
export PROMPT_COMMAND=__prompt_command
parse_git_branch() {
git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/|\1|/'