Skip to content

Instantly share code, notes, and snippets.

View aabs's full-sized avatar

Andrew Matthews aabs

View GitHub Profile
@aabs
aabs / keybindings.json
Created January 24, 2018 03:58 — forked from whazzmaster/keybindings.json
Test tasks for Visual Studio Code and Elixir
// Place your key bindings in this file to overwrite the defaults
[
{
"key": "cmd+t cmd+t",
"command": "workbench.action.tasks.runTask",
"args": "Run All Tests"
},
{
"key": "f5",
"command": "workbench.action.tasks.runTask",
@aabs
aabs / rebar3_plus_otp.md
Created January 8, 2018 00:39
Creating an Erlang/OTP System w/ Rebar 3 + Emacs/EDTS

Setting up a new project

Just me keeping track of what I did to get my Erlang CLI dev env working OK

Context

This is built using Windows 10

Required Tooling

  • Windows 10 Fall Creators Edition
  • Linux Subsystem for Windows + Ubuntu Xenial
  • Rebar3
@aabs
aabs / cloud-deployment-pipeline-requirements.md
Last active September 12, 2018 14:11
A checklist of capabilities that a useful cloud migration model would exhibit

Creating a useful cloud migration model

This is a transformation of Adrian Colyer's Checklist to turn it into a working model for a cloud transformation. The assumption is that the original checklist can suffice for any services that are deployed on the build pipeline, but the question to answer here is about how the environment is provisioned, deployed, monitored and governed in such a way as to fit the architecture implicit in the service checklist.

Configuration and Secret Management

  • Config is supplied via environment variables.
  • Anything that doesn't vary between deploys should not be externalised.
  • Deployment orchestrator should supply config as it deploys a service
  • Secrets should never be supplied as config
  • Desired deployment state should be declaratively described in code in a VCS.
@aabs
aabs / k8s-snippets.md
Last active November 20, 2017 21:23
neat ways to use k8s on the command line
@aabs
aabs / service-checklist.md
Last active December 9, 2019 23:10 — forked from acolyer/service-checklist.md
Internet Scale Services Checklist

Internet Scale Services Checklist

A checklist for designing and developing internet scale services, inspired by James Hamilton's 2007 paper "On Desgining and Deploying Internet-Scale Services."

Basic tenets

  • Does the design expect failures to happen regularly and handle them gracefully?
  • Have we kept things as simple as possible?
@aabs
aabs / functional-io.cs
Created July 23, 2017 21:42
Functional IO Dependency Wrapping
// Use delegates to provide a nice clean name for complex func types
public delegate bool FileExists(string path);
public delegate byte[] ReadContent(string path);
public delegate void WriteContent(string path, byte[] content);
// this is the original function looked at, which contains two accesses of the filesystem,
// which had been intercepted through the use of System.IO.Abstractions
public byte[] GetContent(string path)
{
if (path == null) { throw new ArgumentNullException(nameof(path)); }

Keybase proof

I hereby claim:

  • I am aabs on github.
  • I am aabs (https://keybase.io/aabs) on keybase.
  • I have a public key whose fingerprint is 4AA7 8F38 03A6 B37C 29DE 7A62 79AD 22AC B76E BFAC

To claim this, I am signing this object: