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:
| #! /usr/bin/env ruby | |
| require 'fileutils' | |
| require 'erb' | |
| require 'RMagick' | |
| include Magick | |
| template = ERB.new <<-EOF | |
| <!DOCTYPE html> | |
| <html> | 
| @Brett's searches | |
| @Brett's custom searches | |
| go https://duckduckgo.com/?q=%21%20%s Open first result (DuckDuckGo) | |
| b https://duckduckgo.com/?q=%21%s Bang search (DuckDuckGo) | |
| grep https://www.cueup.com/?q=%s&fq=1 Greplin | |
| ss https://duckduckgo.com/site:%d%20%s Current site (DuckDuckGo) | |
| bt https://duckduckgo.com/site:brettterpstra.com%20%s BrettTerpstra.com (DuckDuckGo) | |
| gh http://github.com/search?q=%s&type=Everything&repo=&langOverride=&start_value=1 Search GitHub (everything) | |
| hints http://hints.macworld.com/search.php?query=%s&keyType=all&datestart=&dateend=&topic=0&type=stories&results=50&mode=search Search Mac OS X Hints | |
| mu http://www.macupdate.com/find/mac/%s Search MacUpdate (Software) | 
| ;SMBDIS.ASM - A COMPREHENSIVE SUPER MARIO BROS. DISASSEMBLY | |
| ;by doppelganger ([email protected]) | |
| ;This file is provided for your own use as-is. It will require the character rom data | |
| ;and an iNES file header to get it to work. | |
| ;There are so many people I have to thank for this, that taking all the credit for | |
| ;myself would be an unforgivable act of arrogance. Without their help this would | |
| ;probably not be possible. So I thank all the peeps in the nesdev scene whose insight into | |
| ;the 6502 and the NES helped me learn how it works (you guys know who you are, there's no | 
| $('#securityCode').bind('paste', function() { | |
| var el = this; | |
| setTimeout(function() { | |
| el.value = el.value.replace(/\D/g, ''); | |
| }, 0); | |
| }); | 
| javascript:(function () { | |
| var selected = getSelection().toString(); | |
| if (selected !== "") selected = '"...\n'+selected+'\n..."\n'; | |
| location.href = 'mailto:?SUBJECT='+encodeURIComponent(document.title)+'&BODY='+encodeURIComponent('\n'+location.href+'\n'+selected); | |
| })() | 
| -- Remove the history from | |
| rm -rf .git | |
| -- recreate the repos from the current content only | |
| git init | |
| git add . | |
| git commit -m "Initial commit" | |
| -- push to the github remote repos ensuring you overwrite history | |
| git remote add origin [email protected]:<YOUR ACCOUNT>/<YOUR REPOS>.git | 
| javascript:(function () { | |
| var selection = window.getSelection().toString(); | |
| var anchor = selection ? selection : document.title; | |
| void(prompt('', '[' + anchor + '](' + location.href + ')')); | |
| })(); | 
Each of these commands will run an ad hoc http static server in your current (or specified) directory, available at http://localhost:8000. Use this power wisely.
$ python -m SimpleHTTPServer 8000| var request = require('request') | |
| , path = require('path') | |
| , fs = require('fs') | |
| , url = "https://api.github.com/users/thomastraum/gists" | |
| , savepath = './gists'; | |
| request(url, function (error, response, body) { | |
| if (!error && response.statusCode == 200) { |