Short-form technical ramblings. Formerly VP of Architecture at, I'm Member of Technical staff at Mozi and co-author of "Docker: Up and Running" from O'Reilly Media.


#GitHub finally released #ARM64 runners into public beta. I had to make some small changes to the build because the ARM Ubuntu image is a little different. But one of our service build times for the ARM64 container went down from 20 mins --> 4 mins! Win.

More appreciation for how well it has been going working on a couple of medium-sized Go projects. We've worked to keep test speeds quick and it takes only about 3 seconds to run 5k+ assertions on one of the projects.

Any interest out there in me writing a blog post on this PoC I did awhile back in #TruffleRuby? #Ruby

This #Golang production project at work has been a lot of fun so far. Nearly 20K LoC and the static binary is about 45MB :)

I compared ZStandard compression against GZip in #Golang for a workload that I have at work. ZStandard produces binaries that are about 5% smaller but takes 50% less time to compress and 50% less time to decompress. That's a real boost.

The Go implementation is here

I still use the Magritte #Ruby gem that I wrote 12 years ago in projects. It's a nice wrapper for piping data in and out of external programs.

Ceci n'est pas une pipe

Imagine if splitting a string were something that you could automate for your customers? #awscloud

GitHub actions *still* does not support #ARM64 natively in runners. ARM64 builds are run in Qemu on #GitHub's AMD64-based infrastructure. A build that takes less than a minute on my Mac takes 17.5 minutes on GitHub. Sorry, but that is unusable!

Amazon Keyspaces  from #awscloud is pretty interesting. It's a #Cassandra-compatible (with limitations) implementation on top of DynamoDB as far as I can tell. The nice thing about it is that it's serverless so you don't have the huge overhead for running a full Cassandra cluster. We are using it and so far so good. It has a few annoying limitations, though. These are the ones that I've hit:

  • Only supports Cassandra protocol version 3
  • Fancy IAM auth (the default) requires special client library support. You can use user/password auth–thus supporting all libraries–but it is a bit of a faff to set up.
  • Only supports write consistency LOCAL_QUORUM . It does support other consistencies on read.
  • Using TTLs on a table requires that you set a custom option using a CQL ALTER TABLE statement. However, this custom option pisses of real Cassandra (and Scylla) which you are likely to be using for local dev. Which requires a migration workaround.

If you can manage to work around that, it's pretty nice. And the price is attractive.

We relaunched with an updated design and a ton of improvements. 🎉🥳
Hope you like it!

Read the anouncement:

#CrystalLang #website #relaunch