Sudoers in namespace

9 minute read Published:

A failed Linux namespace approach to evaluating a sudoers file with simulated hostnames and usernames.

Packaging Python code with XAR

5 minute read Published:

Using the Facebook XAR (executable archive based on SquashFS) to package my Python transcribe project in a single file.

Speeding up numpy-based pitch detection with numba and scipy

6 minute read Published:

Doing some Python profiling and optimization to make a numpy.correlate-based Python music transcriber faster using numba and scipy.

Vertica on EC2 performance optimizations

3 minute read Published:

Disabling hyperthreading, upgrading the kernel, and the noop scheduler for SSDs on EC2 instances with CentOS/RHEL 7.

8 months of pq

6 minute read Published:

A post announcing the 1.0 release of pq, my Rust command-line protobuf deserializer, and how the codebase evolved over the last 8 months.

Type-erasing unsafe traits in Rust

2 minute read Published:

In Rust, traits can be object-safe and non-object-safe. There are workarounds to make unsafe traits safe - this is how I did it.

Deploy Rust and Go on CentOS

7 minute read Published:

Some build and deploy ideas for Go and Rust static binaries on CentOS: systemd units, rpms, etc.

Terraform tips and tricks

6 minute read Modified:

I've spent the last 2 months trying to explore the depths of Terraform (for AWS). Here's a compilation of neat things I discovered along the way.

Configurable datastructures with C macros

3 minute read Modified:

Using C macros to create basic datastructures with configurable data types and storage backends using gcc switches.

Ngrepping the Vertica network protocol

2 minute read Published:

How I used ngrep to reverse-engineer the Vertica wire protocol from JDBC and contribute it upstream to Python and Ruby-native Vertica libraries