Skip to content

Instantly share code, notes, and snippets.


Ryan Parman skyzyx

View GitHub Profile

I'm OK; The Bull Is Dead

By Gopal K. Kapur
Published at Computerworld • JUN 21, 2004 6:00 AM PST

Early in my career, when I worked as an engineer, my boss had a process by which the engineering team was expected to report project status. He insisted that we use the following steps, in the specified order:

  1. Punch line: The facts; no adjectives, adverbs or modifiers. "Milestone 4 wasn't hit on time, and we didn't start Task 8 as planned." Or, "Received charter approval as planned."

  2. Current status: How the punch-line statement affects the project. "Because of the missed milestone, the critical path has been delayed five days."

skyzyx / GoSublime.sublime-settings
Last active Dec 27, 2019
GoSublime preferences
View GoSublime.sublime-settings
"margo": {},
// The maximum amount of memory(MiB) that MarGo is allowed to use
"margo_oom": 1000,
// you may set specific environment variables here
// e.g "env": { "PATH": "$HOME/go/bin:$PATH" }
// in values, $PATH and ${PATH} are replaced with
// the corresponding environment(PATH) variable, if it exists.
skyzyx /
Last active Jul 30, 2020
Dumb, small things that irritate me for completely irrational reasons.
skyzyx /
Last active Sep 21, 2020
Using GNU command line tools in macOS instead of FreeBSD tools

macOS is a Unix, and not built on Linux.

I think most of us realize that macOS isn't a Linux OS, but what that also means is that instead of shipping with the GNU flavor of command line tools, it ships with the FreeBSD flavor. As such, writing shell scripts which can work across both platforms can sometimes be challenging.


Homebrew can be used to install the GNU versions of tools onto your Mac, but they are all prefixed with "g" by default.

All commands have been installed with the prefix "g". If you need to use these commands with their normal names, you can add a "gnubin" directory to your PATH from your bashrc.

skyzyx /
Last active Aug 7, 2020
Internal (not customer-facing) Root Cause Analysis (aka Post-Mortem) template

[20XX-XX-XX] Service Name downtime

  • This is a blameless Post-mortem.
  • We will not focus on the past events as they pertain to "could've", "should've", etc.
  • All follow up action items will be assigned to a team/individual before the end of the meeting.
  • If the item is not going to be top priority leaving the meeting, don't make it a follow up item.

| | |

skyzyx /
Last active Apr 3, 2020
SPF records

Once upon a time, my company faced an issue: We were trying to send emails via so many third-party services (Google Apps, Sendmail, Amazon SES, Marketo, various other tools), that we exceeded the SPF-mandated DNS lookup limit by several, causing many of our emails to be flagged as spam.

Here was the problem I needed to solve:

  1. Starting with a top level domain, fetch the SPF records for the domain.

  2. Results will include a blend of include:, ip4:, or ip6: statements.

  3. We want to collect all IP statements as a unique, flattened List.

skyzyx / gist:9fb1a4d2cd1d2537f414aa709d04e279
Created Oct 14, 2018
Downsample to AAC 2-channel audio
View gist:9fb1a4d2cd1d2537f414aa709d04e279
ffmpeg -i $INPUT -c:v copy -af "pan=stereo|FL < 1.0*FL + 0.707*FC + 0.707*BL|FR < 1.0*FR + 0.707*FC + 0.707*BR" -vol 512 -movflags +faststart $OUTPUT
skyzyx /
Created Sep 15, 2018
Check the launch status of the underlying EC2 instances in an ECS cluster.
# Requires:
# * AWS Unified CLI Tools
# * jq
aws ec2 describe-instance-status \
--instance-ids $(
skyzyx /
Created Sep 4, 2018
Prune large, already-deleted files from your Git history.
wget -O ~/bin/bfg.jar
git clone{org}/{repo}.git
cd {repo}
java -jar ~/bin/bfg.jar --strip-blobs-bigger-than 100k --protect-blobs-from {branch}
git reflog expire --expire=now --all && git gc --prune=now --aggressive
git push --force
skyzyx / single.html
Last active Jun 30, 2020
Hugo Partial for Generating the Table of Contents
View single.html
{{- partial "toc.html" . -}}
You can’t perform that action at this time.