Skip to content

Instantly share code, notes, and snippets.

View minrwhite's full-sized avatar

Minerva White minrwhite

View GitHub Profile
@minrwhite
minrwhite / compose-hooks.sh
Last active March 12, 2018 16:30 — forked from dnephin/compose-hooks.sh
Execute a hook in './hooks/<service>/<action>' when that event is received - with hook for first start up
#!/usr/bin/env bash
set -e
declare -A first_start
function handle_event() {
local entry="$1"
local action=$(echo $entry | jq -r '.action')
local service=$(echo $entry | jq -r '.service')
local hook="./hooks/$service/$action"
@minrwhite
minrwhite / Dockerfile
Last active January 30, 2018 17:03
Apache Docker Image
FROM httpd:2.4-alpine
COPY server.crt server.key /usr/local/apache2/conf/
RUN sed -e "s/^#Include conf\/extra\/httpd-ssl.conf$/Include conf\/extra\/httpd-ssl.conf/g;s/^#LoadModule ssl_module modules\/mod_ssl.so$/LoadModule ssl_module modules\/mod_ssl.so/g;s/^#LoadModule socache_shmcb_module modules\/mod_socache_shmcb.so$/LoadModule socache_shmcb_module modules\/mod_socache_shmcb.so/g" -i /usr/local/apache2/conf/httpd.conf
@minrwhite
minrwhite / config.json
Created April 7, 2016 22:12
Cfssl config.json example
{
"address": "<public ip address>",
"ca": "<ca-cert-path>",
"ca-key": "<ca-key-path>",
"tls-cert": "<tls-cert-path>",
"tls-key": "<tls-key-path>",
"responder": "<oscp-cert-path>",
"responder-key": "<oscp-key-path>",
"db-config": "/cfssl-config/db-config.json",
"signing": {
@minrwhite
minrwhite / .gitignore
Last active September 11, 2020 02:05
cfssl pathlen weirdness
*.pem
*.csr
@minrwhite
minrwhite / index.js
Created March 21, 2016 11:13
Node file for testing http2 cross-origin push
var http2 = require('http2'),
fs = require('fs'),
url = require('url'),
options = {
key: fs.readFileSync('./ssl/server.key'),
cert: fs.readFileSync('./ssl/server.cert')
};
http2.createServer(options, function(request, response) {
if (url.parse(request.url).pathname === '/mystyles.css') {
@minrwhite
minrwhite / keybase.md
Last active October 26, 2015 15:18
keybase.md

Keybase proof

I hereby claim:

  • I am benwhite-deltas on github.
  • I am benwhitedeltas (https://keybase.io/benwhitedeltas) on keybase.
  • I have a public key whose fingerprint is 0677 6249 0FEC F39E 64DB 02B1 DE3E 1A3B 329A 0A99

To claim this, I am signing this object:

@minrwhite
minrwhite / run-to-cursor.png
Last active September 10, 2015 11:58
Run to cursor
run-to-cursor.png
@minrwhite
minrwhite / git-dmz-flow.md
Last active August 29, 2015 14:27 — forked from djspiewak/git-dmz-flow.md
Git DMZ Flow

Git DMZ Flow

I've been asked a few times over the last few months to put together a full write-up of the Git workflow we use at RichRelevance (and at Precog before), since I have referenced it in passing quite a few times in tweets and in person. The workflow is appreciably different from GitFlow and its derivatives, and thus it brings with it a different set of tradeoffs and optimizations. To that end, it would probably be helpful to go over exactly what workflow benefits I find to be beneficial or even necessary.

  • Two developers working on independent features must never be blocked by each other
    • No code freeze! Ever! For any reason!
  • A developer must be able to base derivative work on another developer's work, without waiting for any third party
  • Two developers working on inter-dependent features (or even the same feature) must be able to do so without interference from (or interfering with) any other parties
  • Developers must be able to work on multiple features simultaneously, or at lea
@minrwhite
minrwhite / test.cmd
Last active August 29, 2015 14:26
Recursive Key Sort
set logscale x
set logscale y
plot "plot.csv" using 1:2 with lines, "plot.csv" using 1:3 with lines
pause -1
Catch common usability problems before user testing with this checklist. I can add suggestions on https://userium.com/
USER EXPERIENCE
Personalized features. Currency, language, country specific deals, taxes, or delivery options are changed based on user's location. IP-based geolocation is not enabled without user's permission.
Registering provides value to users. For example a "Free Trial" button communicates a clear benefit, but a "Register" button doesn't. Unnecessary registration is avoided.
Transparent pricing. Prices are clearly displayed. There are no hidden costs or surprises in the terms.