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 / 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
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.