Skip to content

Instantly share code, notes, and snippets.

Nathan Witmer zerowidth

Block or report user

Report or block zerowidth

Hide content and notifications from this user.

Learn more about blocking users

Contact Support about this user’s behavior.

Learn more about reporting abuse

Report abuse
View GitHub Profile
laggardkernel /
Last active Mar 23, 2020
Comparison of ZSH frameworks and plugin managers

Comparison of ZSH frameworks and plugin managers


  • update 1: add a FAQ section
  • update 2: benchmark chart and feature comparison table
  • update 3:
    • improve the table with missing features for antigen
    • new zplg times result


posener /
Last active Mar 12, 2020
Be Careful with Table Driven Tests and t.Parallel()

Be Careful with Table Driven Tests and t.Parallel()

We Gophers, love table-driven-tests, it makes our unittesting structured, and makes it easy to add different test cases with ease.

Let’s create our table driven test, for convenience, I chose to use t.Log as the test function. Notice that we don't have any assertion in this test, it is not needed to for the demonstration.

func TestTLog(t *testing.T) {

Setting up with an EdgeRouter

This document covers how to setup, a service that provides iPXE-based installation and live boot of a bunch of operating systems, on a Ubiquiti EdgeRouter.


I've made a few assumptions throughout this document that will probably be different for your setup:

ampersarnie /
Last active Dec 13, 2019
[Horizon: Zero Dawn - Metal Flowers] A complete list of authors and poems found in the metal flower collectables in the game Horizon Zero Dawn #gaming #horizon #horizonzerodawn #ps4 #literature #poetry

Mark I


Yosa Buson

Light of the moon

Moves west, flowers' shadows

Creep Eastward


jdmaturen /
Last active Feb 18, 2020
Who pays when startup employees keep their equity?

Who pays when startup employees keep their equity?

JD Maturen, 2016/07/05, San Francisco, CA

As has been much discussed, stock options as used today are not a practical or reliable way of compensating employees of fast growing startups. With an often high strike price, a large tax burden on execution due to AMT, and a 90 day execution window after leaving the company many share options are left unexecuted.

There have been a variety of proposed modifications to how equity is distributed to address these issues for individual employees. However, there hasn't been much discussion of how these modifications will change overall ownership dynamics of startups. In this post we'll dive into the situation as it stands today where there is very near 100% equity loss when employees leave companies pre-exit and then we'll look at what would happen if there were instead a 0% loss rate.

What we'll see is that employees gain nearly 3-fold, while both founders and investors – particularly early investors – get dilute

bazzargh / hacker.rb
Created Nov 13, 2015
hackertyper style presentation tool, leverages ttyrec to let you play back the presentation from random keystrokes
View hacker.rb
#!/usr/bin/env ruby
# hackertyper-style playback of series of tty recordings created by
# ttyrec.
# usage:
# hacker slides/*
# - Type randomly to move forward inside file
# - backspace to skip back or prev file
import interface
class IFoo(interface.Interface):
def foo(self):
"""foo this object."""
class IBar(interface.Interface):
gvaughn /
Last active Jan 13, 2020
git copr alias

I'd like to share some git aliases that you might find useful if you handle pull requests from others.

Add these to your ~/.gitconfig in the [alias] section:

copr = "!f() { git fetch -fu origin refs/pull/$1/head:pr-$1; git checkout pr-$1; } ; f"
prunepr = "!git for-each-ref refs/heads/pr-* --format='%(refname:short)' | while read ref ; do git branch -D $ref ; done"

Now you can "git copr #{pr_number}" (check out pull request is the mnemonic) and it will pull down the PR in a local branch of pr-#{pr_number} and check it out for you. To do it right, you must pronounce it "Copper" with a James Cagney gangster accent.

aphyr / gist:aa3de337d12ac886eb96
Created Oct 9, 2014
Functional clojure.test
View gist:aa3de337d12ac886eb96
(require '[clojure.test :as test])
; Rewrite clojure.test to generate data structures instead of writing to
; stdout
(def ^:dynamic *results*
"Bound dynamically to an atom wrapping a vector of test report maps")
(defn add-name
"Given a testing report map, assoc's on a :name derived from the current
`clojure.test/testing` context."
You can’t perform that action at this time.