As configured in my dotfiles.
start new:
tmux
start new with session name:
== Rules == | |
On Infrastructure | |
----------------- | |
There is one system, not a collection of systems. | |
The desired state of the system should be a known quantity. | |
The "known quantity" must be machine parseable. | |
The actual state of the system must self-correct to the desired state. | |
The only authoritative source for the actual state of the system is the system. | |
The entire system must be deployable using source media and text files. |
function analyse_remote_branches { | |
printf "\n\n== Loading remote branches..\n" | |
git gc --prune=now | |
git remote prune origin | |
git for-each-ref --shell --format="%(refname)" refs/remotes/origin | \ | |
while read branch | |
do | |
branch_name=${branch/refs\/remotes\/origin\//} | |
printf "\nRemote Branch : ${branch_name}\n" | |
result=`git log master..origin/${branch_name//\'/} --pretty=format:" -------> %h | %ar | %an | %s" --abbrev-commit --date-order --decorate -n 4` |
#!/usr/bin/env python | |
import os, re, subprocess, sys | |
from xml.etree import ElementTree | |
retag = sys.argv[1] == "retag" | |
if retag: | |
del sys.argv[1] | |
source = os.path.abspath(sys.argv[1]) | |
extensionless = '.'.join(source.split('.')[:-1]) |
As configured in my dotfiles.
start new:
tmux
start new with session name:
curl -s https://api.github.com/orgs/twitter/repos?per_page=200 | ruby -rubygems -e 'require "json"; JSON.load(STDIN.read).each { |repo| %x[git clone #{repo["ssh_url"]} ]}' |
PROTIP: Bars in Oregon have to serve food as long as they're serving alcohol. As a result, some of them have amazing food.
PROTIP: You can't buy alcohol (other than beer or wine) anywhere else but a state-controlled liquor store. Most of them are closed on Sundays and close around 7pm every other night of the week.
#!/bin/sh | |
OPTIONS=`vagrant ssh-config | awk -v ORS=' ' '{print "-o " $1 "=" $2}'` | |
scp ${OPTIONS} "$@" || echo "Transfer failed. Did you use 'default:' as the target?" |
Ideas are cheap. Make a prototype, sketch a CLI session, draw a wireframe. Discuss around concrete examples, not hand-waving abstractions. Don't say you did something, provide a URL that proves it.
Nothing is real until it's being used by a real user. This doesn't mean you make a prototype in the morning and blog about it in the evening. It means you find one person you believe your product will help and try to get them to use it.
user www-data; | |
worker_processes 4; | |
error_log /var/log/nginx/error.log; | |
pid /var/run/nginx.pid; | |
events { | |
worker_connections 1024; | |
} |
#!/bin/sh | |
# for use with emacs/vim/etc as goimports and goflymake | |
# | |
# I use it with config like: | |
# | |
# (setenv "GOPATH" (expand-file-name "~/Projects/go")) | |
# (setenv "PATH" "~/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:~/Projects/go/bin:/usr/local/go/bin") | |
# (setq exec-path (append exec-path (list (expand-file-name "~/Projects/go/bin") "/usr/local/go/bin"))) | |
# |