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:
| // | |
| // NSObject+Blocks.h | |
| // Filemator | |
| // | |
| // Created by Zachary Waldowski on 4/12/11. | |
| // Copyright 2011 Dizzy Technology. All rights reserved. | |
| // | |
| @interface NSObject (Blocks) |
| source ~/.bash_profile | |
| hash oclint &> /dev/null | |
| if [ $? -eq 1 ]; then | |
| echo >&2 "oclint not found, analyzing stopped" | |
| exit 1 | |
| fi | |
| cd ${TARGET_TEMP_DIR} |
| # To check if this is up-to-date with the tax rates go to | |
| # http://www.expatax.nl/tax_rates_2013.php and see if there's anything | |
| # newer there. | |
| use strict; | |
| use warnings; | |
| use Text::TabularDisplay; | |
| use List::Util qw(sum); | |
| my $start = 30_000 || $ARGV[0]; | |
| my $end = 100_000 || $ARGV[1]; |
| #import <UIKit/UIKit.h> | |
| @interface UIView (TLLayout) | |
| @property (nonatomic, strong) NSArray *hiddenConstraints; | |
| // set hidden and remove any constraints involving this view from its superview | |
| - (void)hideAndRemoveConstraints; | |
| - (void)showAndRestoreConstraints; |
| static Boolean PSPDFCaseInsensitiveEqualCallback(const void *a, const void *b) { | |
| id objA = (__bridge id)a, objB = (__bridge id)b; | |
| Boolean ret = FALSE; | |
| if ([objA isKindOfClass:NSString.class] && [objB isKindOfClass:NSString.class]) { | |
| ret = ([objA compare:objB options:NSCaseInsensitiveSearch|NSLiteralSearch] == NSOrderedSame); | |
| }else { | |
| ret = [objA isEqual:objB]; | |
| } | |
| return ret; | |
| } |
| COMPACT WIDTH (stacked view) | |
| - 320 x 480 pt | |
| -> iPhone 4s | |
| - 320 x 568 pt | |
| -> iPhone 5, 5s | |
| - 320 x 768 pt | |
| -> iPad Slideover Landscape | |
| -> iPad Split Landscape 2/3 right | |
| - 320 x 1024 pt |
| #import <Foundation/Foundation.h> | |
| #import <CommonCrypto/CommonCrypto.h> | |
| NSString* randomString(NSUInteger length) | |
| { | |
| NSMutableData *data = [NSMutableData dataWithLength:length]; | |
| NSInteger result = SecRandomCopyBytes(kSecRandomDefault, length, data.mutableBytes); | |
| NSLog(@"%ld", (long)result); | |
| NSMutableString* str = [NSMutableString string]; | |
| for (int i = 0; i < length / 8; i++) |
| // | |
| // JAZMusician.h | |
| // JazzyApp | |
| // | |
| #import <Foundation/Foundation.h> | |
| /** | |
| JAZMusician models, you guessed it... Jazz Musicians! | |
| From Ellington to Marsalis, this class has you covered. |
| expr -- (void)printf("[%s, %s]\n",(char *) object_getClassName(*(long*)($esp+4)), (char *) *(long *)($esp+8) ) |