wesley tanaka

Unicode is Base 1114112


During my years as an engineering leader, I've worked with developers who do not have a mental model of Unicode beyond "they're special characters". This sometimes causes them to create and run into difficulty solving bugs due to confusion between bytes, UTF-8, and Unicode code points.

What is a variable?


You can visualize a variable1 as a box that contains a thing2. For example, this variable called x contains an integer 0:

x = 0

This other variable called most_recent_email contains a pointer (more below) which we draw with an arrow.

Using Packer and Ansible (instead of Dockerfile) to create Docker Images


Docker contains a feature, the Dockerfile, for automating the creation of images. However, packer can also be used to create docker images, and does so in a way that's generalizes to creating virtual machine or cloud images too.

Here is an example packer file that will create a docker image using an ansible playbook, and tag the image so that you can use it locally.

What is Apache Beam?


Apache Beam is a formal definition of a few core data structures:

Notes about using HTTP/2



How do I find which AWS IAM user owns an AWS Access Key

  • pip install awscli
  • for i in `aws iam list-users | grep UserName | cut -d\" -f4`; do aws iam list-access-keys --user-name $i; done

strace equivalent in Mac OS X


Recent versions of Mac OS X have a System Integrity Protection feature which breaks the dtrace implementation installed on Mac OS X. In order to use dtrace functionality you first need to disable a portion of System Integrity Protection.

  1. Restart computer
  2. Hold down Command-R while computer boots
  3. Launch Terminal from the Utilities menu
  4. csrutil disable
  5. csrutil enable --without dtrace
  6. Restart again

Now you can use dtrace command line tools such as

Generating grpc stubs for Python from the command line


The GRPC quickstart guide refers to generating GRPC stubs using python code similar to run_codegen.py

When you look in this file, you see what appears to be a command line like: protoc --python_out=. --grpc_python_out=. myfile.proto

However, if you actually try to execude that command line with either protoc 2.6.1 or 3.0.0, you get this error:

Understanding protocol buffer version compatibility issues in Python


There are multiple protocol buffer and protobuf-related software packages available in multiple versions, as well as two major protocol buffer syntax releases. Forward compatibility does not exist, so the error messages that appear require research to understand:

Testing Ansible roles with test-kitchen and Docker using the Ansible Role Tester


Preparing an Ansible role to be distributed can be time consuming and error prone. Ideally, you should test it against many versions of Ansible and many operating system versions. However, doing this is time consuming.

Enter the Ansible Role Tester.

In its simplest form, you simply add this to your CI script after making sure that docker and bundler are available:

wget -O- bit.ly/ansibletest | sh

Syndicate content
by Wesley Tanaka