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:
There are a number of additional dependencies required for getting things installed on OS X. Starting with a blank slate OS X machine, this is the process it takes:
# Install Xcode Command Line Tools
# Install Homebrew
ruby -e "$(curl -fsSkL raw.github.com/mxcl/homebrew/go)"
'use strict'; | |
var q = require('q'); | |
/** | |
* Constructs a function that proxies to promiseFactory | |
* limiting the count of promises that can run simultaneously. | |
* @param promiseFactory function that returns promises. | |
* @param limit how many promises are allowed to be running at the same time. | |
* @returns function that returns a promise that eventually proxies to promiseFactory. |
#!/bin/bash | |
# Install sleepwatcher | |
sudo cp /usr/local/Cellar/sleepwatcher/2.2/de.bernhard-baehr.sleepwatcher-20compatibility.plist /Library/LaunchAgents/ | |
sudo cp /usr/local/Cellar/sleepwatcher/2.2/etc/sleepwatcher/rc.* /etc/c | |
# Add bluetooth script to /etc/rc.wakeup (the script requires root) | |
sudo tee -a /etc/rc.wakeup <<EOF | |
kextunload -b com.apple.iokit.BroadcomBluetoothHostControllerUSBTransport && sleep 3 && kextload -b com.apple.iokit.BroadcomBluetoothHostControllerUSBTransport | |
EOF |
let module = macro { | |
case {_ | |
$name | |
import $params (,) ... | |
} => { | |
letstx $name_str = [makeValue(unwrapSyntax(#{$name}), #{here})]; | |
return #{ | |
angular.module($name_str, [$params (,) ...]) | |
}; | |
} |
#!/bin/bash | |
OUT=$1 | |
shift | |
# Usage: ./mergepdf OUTPUT file1 file2 file3 ... | |
gs -dBATCH -dNOPAUSE -q -sDEVICE=pdfwrite -sOutputFile=$OUT $@ |
#!/bin/bash | |
sudo rm -Rf /Applications/VMware\ Fusion.app | |
sudo rm -Rf /Library/Application\ Support/VMware | |
sudo rm -Rf /Library/Application\ Support/VMware\ Fusion | |
sudo rm -Rf /Library/Preferences/VMware\ Fusion | |
rm -Rf ~/Library/Application\ Support/VMware\ Fusion | |
rm -Rf ~/Library/Caches/com.vmware.fusion | |
rm -Rf ~/Library/Preferences/com.vmware.fusion* |
// START // | |
struct node { | |
node *left; | |
node *right; | |
int val; | |
}; | |
// Mirrors the tree and returns the root node. The root should be passes as *node. | |
node* mirror_tree(struct node* node) { | |
struct node* temp; |