This gist shows how to create a GIF screencast using only free OS X tools: QuickTime, ffmpeg, and gifsicle.
To capture the video (filesize: 19MB), using the free "QuickTime Player" application:
| ruby '2.7.1' | |
| gem 'rails', github: 'rails/rails' | |
| gem 'tzinfo-data', '>= 1.2016.7' # Don't rely on OSX/Linux timezone data | |
| # Action Text | |
| gem 'actiontext', github: 'basecamp/actiontext', ref: 'okra' | |
| gem 'okra', github: 'basecamp/okra' | |
| # Drivers |
| ### Points and display type | |
| PPI is points per inch below, not pixels per inch. Not all models are listed, just the first model with a new display size. Diamond, RGB Stripe and Pentile RGB refer to the subpixel patterns. | |
| iPhone 1 = 320×480 at 163ppi sRGB IPS LCD RGB Stripe | |
| iPhone 4 = 320×480 at 163ppi sRGB IPS LCD RGB Stripe | |
| iPhone 5 = 320×568 at 163ppi sRGB IPS LCD RGB Stripe | |
| iPhone 6 = 375×667 at 163ppi sRGB IPS LCD RGB Stripe | |
| iPhone 6 Plus = 414×736 at 153.5ppi sRGB IPS LCD RGB Stripe | |
| iPhone 7 = 375×667 at 163ppi P3 IPS LCD RGB Stripe |
| #!/bin/sh | |
| set -e | |
| for cask in $(brew cask outdated | awk '{ print $1 }'); do | |
| brew cask uninstall --force "${cask}" | |
| brew cask install "${cask}" | |
| done |
| #!/bin/bash | |
| # Sometimes you need to move your existing git repository | |
| # to a new remote repository (/new remote origin). | |
| # Here are a simple and quick steps that does exactly this. | |
| # | |
| # Let's assume we call "old repo" the repository you wish | |
| # to move, and "new repo" the one you wish to move to. | |
| # | |
| ### Step 1. Make sure you have a local copy of all "old repo" | |
| ### branches and tags. |
| #!/bin/bash | |
| # git-cleanup-repo | |
| # | |
| # Author: Rob Miller <rob@bigfish.co.uk> | |
| # Adapted from the original by Yorick Sijsling | |
| git checkout master &> /dev/null | |
| # Make sure we're working with the most up-to-date version of master. | |
| git fetch |
| # usage, e.g.: | |
| # git difftool `git last-merge` | |
| # or: | |
| # git log `git last-merge` | |
| last-merge = "!echo $(git log -1 --merges --pretty=format:%P | cut -d' ' -f1)..$(git log -1 --merges --pretty=format:%P | cut -d' ' -f2)" |
| # `git merge-log` shows the commits that were introduced in a given merge | |
| # `git merge-diff` shows the actual changes that were introduced by a given merge | |
| # Both commands accept an optional commitish; if ommitted, the last merge commit is used | |
| merge-span = "!f() { echo $(git log -1 $2 --merges --pretty=format:%P | cut -d' ' -f1)$1$(git log -1 $2 --merges --pretty=format:%P | cut -d' ' -f2); }; f" | |
| merge-log = "!git log `git merge-span .. $1`" | |
| merge-diff = "!git diff `git merge-span ... $1`" | |
| merge-difftool = "!git difftool `git merge-span ... $1`" |
| # Usage: | |
| # git tag-review 'Rob Miller <rob@example.com>' | |
| tag-review = "!f() { git commit --amend -m \"$(git log -1 --pretty=\"format:%s%n%n%b%n%nReviewed-by: $1\")\"; }; f" |
| # git branch-name: prints the name of the branch in a safe/scriptable/non-porcelain way | |
| # git publish: publishes the current branch on the remote "origin", using the same name as the current branch | |
| # git unpublish: deletes the remote branch with the same name as the current one (potentially destructive) | |
| # git recreate: given a branch name, recreates the branch with that name from the latest master. Deletes both the local and remote copy of the branch first. Very destructive, use with caution | |
| branch-name = "!git rev-parse --abbrev-ref HEAD" | |
| publish = "!git push -u origin $(git branch-name)" | |
| unpublish = "!git push origin :$(git branch-name)" | |
| recreate = "!f() { [[ -n $@ ]] && git checkout \"$@\" && git unpublish && git checkout master && git branch -D \"$@\" && git checkout -b \"$@\" && git publish; }; f" |