Java CLI tools with GraalVM: An experience report

Posted on Thu 07 May 2020 in Articles • Tagged with jvm, cli, graalvm

Over the last few years I have used several CLI tools written in java. Usually these have been utility tools packaged with JVM applications, like kafka. The slow startup time from the JVM (and general bloatiness) of these tools has made me wholly uninterested in the JVM as a tool …

Continue reading

Using python to transform and filter data in bash pipes

Posted on Thu 30 April 2020 in Articles • Tagged with bash, python, tools

I've long been a fan of bash pipes and the unix philosophy of composability. The text stream interface is so simple to extend and build upon that once you create a simple command line tool that works over stdin and stdout you suddenly have interoperability with a tremendous number of …

Continue reading

HTTP redirects via AWS API Gateway and Lambda

Posted on Sat 25 May 2019 in Articles • Tagged with api, dns, aws-api-gateway, aws-lambda, this-blog

This article is a bit messy since I'm experimenting with less editing to get content out a little faster for smaller projects. Feedback on the value of this format would be helpful, e.g. if it is too messy to be coherent / useful.

Instead of purchasing new custom domains for …

Continue reading

AWS Transcribe for long Zoom meetings

Posted on Thu 09 May 2019 in Articles • Tagged with aws, transcription


I have been meaning to play around with AWS Transcribe, AWS' managed service for speech to text, for a while. This week I came across a good excuse. Our marketing department had a few longer meetings and they recorded those meetings in Zoom, the audio conferencing system we use …

Continue reading

Elastic Beanstalk for personal projects: a quick experience report

Posted on Sat 13 April 2019 in Articles • Tagged with alexa, elasticbeanstalk, aws, biblescholar, pricing

I have been running the backend of the BibleScholar Alexa App on Amazon's Elastic Beanstalk service since late 2016. Now that I'm about to start up a couple other personal projects on AWS, I wanted to come back around and discuss what I liked or didn't like about running this …

Continue reading

Assigning service-specific static IPs for outbound traffic in AWS VPCs

Posted on Sun 17 February 2019 in Articles • Tagged with aws, nat, vpc, networking

The problem

At Ionic we commonly use network ACLs to restrict access to some services to a list of known IPs. In this specific case, I needed ephemeral servers spun up with Databricks Spark to be able to reach an internal monitoring server.

The problem is that by default in …

Continue reading

How CheckMK predictive monitoring works

Posted on Sun 07 October 2018 in Articles • Tagged with python, monitoring

Code walk through of predictive monitoring features of the CheckMK monitoring toolset.

Continue reading

Ebay classifieds: A model for bad customer experience

Posted on Sun 18 March 2018 in Articles • Tagged with ebay

This one will be short, but was still too long for a tweet. It's a bit rant-y, but here goes.

What I was selling

WARNING: This sort of turned into a pre-rant about Wyndham's timeshare program and the shady people involved in that program.

Last year I attended a sales …

Continue reading

Developing an OSX app with Python

Posted on Fri 16 March 2018 in Articles • Tagged with python, osx, ionic, pyinstaller, multiprocessing, pkgbuild

Application architecture

The purpose of the project was to build an application that would watch a directory for changes and respond to directory events with a flexible set of actions.

I broke the problem into a few parts, which mapped well into separate processes.

  1. Directory watcher. Responsible for responding to …

Continue reading

Python multiprocessing and CoreFoundation libraries

Posted on Fri 02 March 2018 in Articles • Tagged with python, multiprocessing, parallel

Python's multiprocessing library is pretty awesome, and it can make it much easier to build programs that exersize multiple cores in python. However, some libraries are known not to behave well with multiprocessing. You may be running into this problem if you see output like this from your program, in …

Continue reading