wesley tanaka


Thrift vs Protocol Buffers vs Avro in Python


Thrift, Protocol Buffers, and Avro are modern software projects which all contain an IDL-enabled data serialization format with Python support. One might think that because they all have an IDL that they all would enforce some level of type safety even in Python, but one would be wrong:

What is Docker?


Docker is a long-lived daemon process with a thin CLI client which makes it easy to clone() new processes with their own PID namespaces, network interfaces, root filesystem, mounts, and hostname.

A docker image contains a filesystem tree (actually an aufs filesystem which allows one image to be implemented as a "layer" on top of another more "base" image).

A Dockerfile is a list of instructions for building a docker image.

AWS Groups vs Roles vs Policies


A short overview of terms used by the system that Amazon Web Services (AWS) uses to manage user accounts, roles, permissions and groups:

Running Ubuntu 14.04 inside VMWare Fusion


To get shared folders to work in VMWare Fusion with a Linux guest, I needed to reinstall vmware tools:

  1. sudo vmware-uninstall-tools.pl
  2. install vmware tools from the menu

I couldn't get my home directory to work over hgfs (lightdm would log me in and then the session would immediately exit), so I created an entry in /etc/exports on my mac.

What is Ansible?


Ansible is a python command line program. In its basic usage, it reads a list of server hosts (the "inventory"), has access to a library of command line scripts ("modules") that might be run on the servers, and reads a configuration file ("playbook") which specifies modules to run on each server, and parameters to pass to each module. Using the sequence defined in the playbook, it connects to each server with SSH, copies (SFTP or SCP) the module up to the server, executes it remotely, then deletes it.

JIRA time tracking fields - difference between timeestimate and timeoriginalestimate


The JIRA API has (at least) four fields exposing time tracking data. In the jira-python python wrapper, these are exposed as follows, assuming you have a local variable issue containing an issue object.:

What is librarian-puppet?


As is wont with modern open source software projects, the librarian-puppet homepage describes itself in terms that only fully make sense after you already know what the software does:

Librarian-puppet is a bundler for your puppet infrastructure. You can use librarian-puppet to manage the puppet modules your infrastructure depends on, whether the modules come from the Puppet Forge, Git repositories or a just a path.

Firefox is already running, but is not responding


If your computer crashes while firefox is running, it's possible that you will get an error message like this when you next start up firefox after rebooting:

Firefox is already running, but is not responding. To open a new window, you must first close the existing Firefox process, or restart your system.

To fix it, you can remove the lock files inside your profile.  On Linux (with a default setup where you have a single firefox profile) this looks something like:

Command line replacement for gitk --all and GitX


gitk --all, tig and GitX are invaluable for visualizing the git commit graph, but when GitX recently stopped displaying branch names on a repository I work with, I started looking for a stock git install command line replacement for two reasons:

  • It takes slightly longer to copy and paste GUI output over chat.
  • When helping someone with a git issue, it's time consuming to ask them to install GitX or gitk first.

Here is a command line that provides similar commit graph visualization:

Creating a one dimensional plot in R and ggplot2


To plot a "scatter plot" of a single dimensional variable in R, you can use:

ggplot(my_dataframe, aes(x=my_dataframe$VariableName, y=c(0))) + geom_point()

Syndicate content
by Wesley Tanaka