Skip to content

Instantly share code, notes, and snippets.

OS X Screencast to animated GIF

This gist shows how to create a GIF screencast using only free OS X tools: QuickTime, ffmpeg, and gifsicle.

Screencapture GIF

Instructions

To capture the video (filesize: 19MB), using the free "QuickTime Player" application:

@jordelver
jordelver / .zshrc
Created September 12, 2013 12:44 — forked from SlexAxton/.zshrc
gifify() {
if [[ -n "$1" ]]; then
if [[ $2 == '--good' ]]; then
ffmpeg -i $1 -r 10 -vcodec png out-static-%05d.png
time convert -verbose +dither -layers Optimize -resize 600x600\> out-static*.png GIF:- | gifsicle --colors 128 --delay=5 --loop --optimize=3 --multifile - > $1.gif
rm out-static*.png
else
ffmpeg -i $1 -s 600x400 -pix_fmt rgb24 -r 10 -f gif - | gifsicle --optimize=3 --delay=3 > $1.gif
fi
else
require 'pathname'
require 'fileutils'
Pathname.glob("content/articles/**/index.txt").entries.each do |path|
new_filename = path.to_s.split('/')[2..5].join('-')
new_filename = "#{new_filename}.html.markdown"
FileUtils.cp(path, new_filename)
end
@jordelver
jordelver / gist:6260618
Last active December 21, 2015 05:59
Add a new disk to a RAID 5 array

Add a new disk to a RAID 5 array

Create a new partition

Create new primary partition

fdisk /dev/sdf

Set partition to Linux RAID Autodetect which is fd

@jordelver
jordelver / gist:6204090
Created August 11, 2013 09:03
"Black hole" Null Object - Responds to any chained message
class NullObject < BasicObject
def method_missing(*)
self
end
def respond_to_missing?(name)
true
end
end
@jordelver
jordelver / gist:6204052
Last active December 20, 2015 22:19
NullObject logger
Purchase = Struct.new(:description, :price)
DATA = [
Purchase.new("Walkman", "1.25"),
Purchase.new("Mini-disc player", "2.57"),
Purchase.new("Record player", "3.54")
]
require 'logger'
@jordelver
jordelver / gist:6204041
Last active December 20, 2015 22:19
Special case object
class User
def name
# ...from the database
"Fred"
end
def self.find(user_id)
user_id == 123 ? self.new : nil
end
end
@jordelver
jordelver / gist:6185467
Last active December 20, 2015 19:48
MySQL basics

MySQL basics

Dump the database

mysqldump -u root -p <database> > /path/to/file.sql

Restore the database

mysql -u root -p <database> < /path/to/file.sql
@jordelver
jordelver / gist:6138841
Last active December 20, 2015 13:29
A/B Testing tools
class Foo
def bar(arg)
arg.call
end
end
class X
def call
"Normal class"
end