2017: A year in review

A few years ago when I was doing client work, we would regularly host clients’ sites and apps for them. During this time, I was responsible for both development and keeping them up and running as much as possible. Most of the money being in new development, it was difficult to assign priority to improving… Continue reading 2017: A year in review

Published
Categorized as English

Shipping Events from Fluentd to Elasticsearch

We use fluentd to process and route log events from our various applications. It’s simple, safe, and flexible. With at-least-once delivery by default, log events are buffered at every step before they’re sent off to the various storage backends. However, there are some caveats with using Elasticsearch as a backend. Currently, our setup looks something… Continue reading Shipping Events from Fluentd to Elasticsearch

Published
Categorized as English

IAM Policy for KMS-Encrypted Remote Terraform State in S3

{ “Version”: “2012-10-17”, “Statement”: [ { “Effect”: “Allow”, “Action”: [ “s3:GetObject”, “s3:PutObject”, “s3:DeleteObject” ], “Resource”: [ “arn:aws:s3:::<bucket name>/*”, “arn:aws:s3:::<bucket name>” ] }, { “Effect”: “Allow”, “Action”: [ “kms:Encrypt”, “kms:Decrypt”, “kms:GenerateDataKey” ], “Resource”: [ “<arn of KMS key>” ] } ] } Don’t forget to update the KMS Key Policy, too. I spent a bit of… Continue reading IAM Policy for KMS-Encrypted Remote Terraform State in S3

Published
Categorized as AWS

Authenticating Linux logins via LDAP (Samba / Active Directory)

I’ve been working on infrastructure of a fleet of a few dozen Amazon EC2 instances for the past week, and with a rapidly-growing team, we decided it was appropriate to make a central authentication / authorization service. So, that meant setting up some sort of LDAP server. I was a bit intimidated at first (the… Continue reading Authenticating Linux logins via LDAP (Samba / Active Directory)

Published
Categorized as Linux

Upgrading PostgreSQL on Ubuntu

I recently started using Ubuntu Linux on my main development machine. That means that my PostgreSQL database is running under Ubuntu, as well. I’ve written guides to upgrading PostgreSQL using Homebrew in the past, but the upgrade process under Ubuntu was much smoother. These steps are assuming that you use Ubuntu 16.04 LTS, and PostgreSQL… Continue reading Upgrading PostgreSQL on Ubuntu

Published
Categorized as English

macOS Sierra

Here are the headline features of Sierra, and my thoughts about them. Siri Don’t use it on the phone, won’t use it on the Mac. It would be nice if I could use it by typing, though. Universal Clipboard This seems like a massive security risk. It works via iCloud, so if someone (like my… Continue reading macOS Sierra

Published
Categorized as English

Convox

I stumbled upon Convox a couple weeks ago, and found it pretty interesting. It’s led by a few people formerly from Heroku, and it certainly feels like it. A simple command-line interface to manage your applications on AWS, with almost no AWS-specific configuration required. An example of how simple it is to deploy a new… Continue reading Convox

Elixir anonymous function shorthand

Elixir’s Getting Started guides go over the &Module.function/arity and &(…) anonymous function shorthand, but there are a couple neat tricks that are not immediately apparent about this shorthand. For example, you can do something like &”…”. iex> hello_fun = &”Hello, #{&1}” iex> hello_fun.(“Keita”) “Hello, Keita” Let’s have some more fun. iex> fun = &~r/hello #{&1}/… Continue reading Elixir anonymous function shorthand