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:
| NSSharingService *service = [NSSharingService sharingServiceNamed:NSSharingServiceNameComposeEmail]; | |
| NSDictionary *parameters = @{ | |
| @"NSSharingServiceParametersDefaultSubjectKey": @"Lo, a subject!", | |
| @"NSSharingServiceParametersDefaultRecipientsKey": @[@"[email protected]"] | |
| }; | |
| [service setValue:parameters forKey:@"parameters"]; | |
| [service performWithItems:@[@"Woo, private API."]]; |
| # remove any bad refs | |
| git remote prune origin | |
| # pipe into bash and auto-delete any branches that have been merged into master! | |
| git log master --pretty=format:'%d' | grep '^ (origin' | tr -d ' ()' | sed 's/origin\//git push origin :/' |
| # see https://github.com/thomasjbradley/signature-pad for more details | |
| instructions = JSON.load(data).map { |h| "line #{h['mx']},#{h['my']} #{h['lx']},#{h['ly']}" } * ' ' | |
| system "convert -size 198x55 xc:transparent -stroke blue -draw '#{instructions}' signature.png" |
| require "sinatra/base" | |
| require "sinatra/namespace" | |
| require "multi_json" | |
| require "api/authentication" | |
| require "api/error_handling" | |
| require "api/pagination" | |
| module Api | |
| class Base < ::Sinatra::Base |
| ## Get FFMpeg working on heroku by building binaries using vulcan | |
| gem install vulcan | |
| vulcan create foo | |
| git clone --depth 1 git://source.ffmpeg.org/ffmpeg | |
| cd ffmpeg |
| { | |
| "auto_indent": true, | |
| "auto_match_enabled": true, | |
| "caret_style": "smooth", | |
| "close_windows_when_empty": true, | |
| "color_scheme": "Packages/Theme - Aqua/Color Schemes/Tomorrow Night Aqua.tmTheme", | |
| "detect_indentation": true, | |
| "dictionary": "Packages/Language - English/en_US.dic", | |
| "draw_centered": false, | |
| "draw_indent_guides": true, |
| + (void)drawNoiseWithOpacity:(CGFloat)opacity inRect:(CGRect)rect{ | |
| static UIImage *noiseImage = nil; | |
| static dispatch_once_t oncePredicate; | |
| dispatch_once(&oncePredicate, ^{ | |
| NSUInteger width = 64, height = 64; | |
| NSUInteger size = width*height; | |
| char *rgba = (char *)malloc(size); srand(124); | |
| for(NSUInteger i=0; i < size; ++i){rgba[i] = rand()%256;} | |
| CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceGray(); | |
| CGContextRef bitmapContext = |