UnsupportedJavaRuntimeException.assertUsingVersion in Android Studio

After upgrading Android Studio to version 2.3, you may get:

Decoding binary data in logstash

By default, logstash stores the "message" field as a unicode string (in this example, we avoid including a '\x0a' byte to keep the pipeline configuration shorter):

Downloading Ansible galaxy roles in parallel

To always ensure that I have the latest version of a role from Ansible Galaxy, I've found I needed to use both the --force option (to re-download even if the directory already exists) and the --ignore-errors option (to keep going through all the roles). Overall, the command line ends up looking like this:

ansible-galaxy install --force --ignore-errors -r priv/ansible/requirements.txt -p priv/ansible/roles/

letsencrypt / certbot incomplete certificate chain error

Some tutorials on enabling HTTPS in Apache recommend adding this in the <VirtualHost *:443> configuration block:

SSLEngine on
SSLCertificateFile "/etc/letsencrypt/live/"
SSLCertificateKeyFile "/etc/letsencrypt/live/"

Installing Kano OS on Raspberry Pi 3 from Linux

Some notes about installing Kano OS on a Raspberry Pi 3

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.

Rather than thinking of Unicode as "special characters," it may help some developers to think about Unicode as a number system created by an alien race . . . with a lot of fingers.

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.

Parallel Stream Processing with Apache Beam, Flink, and Kafka

Apache Beam is a programming model and an associated SDK that lets you write software programs that work with large or possibly unbounded data sets. Beam code is reminiscent of using lazy evaluation in functional programming languages to operate on infinitely large data structures.

For example, this code reads lines forever from a Kafka topic, groups the lines into windows of 10 seconds, counts the number of instances of each word in the group, and outputs the words with their counts to another Kafka topic.

What is Apache Beam?

(Update 2017 May 25) A more detailed and refined description is available at

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


Subscribe to RSS - Tech