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:
// NOTE: filenames hardcoded! | |
const got = require('got') | |
const csv = require('csv') | |
const fs = require('fs') | |
async function fetchGoogleBookId(isbn) { | |
const queryUrl = `https://www.googleapis.com/books/v1/volumes?q=isbn:${isbn}` | |
const response = await got(queryUrl) | |
const json = JSON.parse(response.body) |
static EVILoggingCallback s_callback = nil; | |
#pragma mark - | |
void EVILog(EVILogLevel level, NSString *fmt, ...) | |
{ | |
va_list ap; | |
va_start(ap, fmt); | |
if(s_callback) |
- (void)start:(NSString *)queueItemId | |
{ | |
// ... | |
EVILog(EVILogLevelInfo, @"started playing %@", queueItemId); | |
// ... | |
} |
@implementation AppDelegate | |
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification | |
{ | |
// ... | |
EVIRegisterLoggingCallback(^(EVILogLevel level, NSString *message) { | |
NSLog(@"EVIStreamer (%@): %@", EVILogLevelString(level), message); | |
}); | |
// ... | |
} |
extern void EVILog(EVILogLevel level, NSString *fmt, ...); |
typedef NS_OPTIONS(NSInteger, EVILogLevel) | |
{ | |
EVILogLevelError, | |
EVILogLevelWarning, | |
EVILogLevelInfo, | |
EVILogLevelDebug, | |
}; | |
typedef void(^EVILoggingCallback)(EVILogLevel level, NSString *message); |
clang hi.c -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk -o hi | |
where -isysroot parameter is discovered with: | |
xcrun --sdk macosx10.9 --show-sdk-path | |
--sdk parameter possibilities: | |
thaddeus@pegasus:~$ xcodebuild -showsdks | |
OS X SDKs: |
BTPactolaNotificationRequest *request = [[BTPactolaNotificationRequest alloc] init]; | |
request.deviceIdentifier = @"123456"; | |
request.title = @"My App" | |
request.message = @"Something Happened!" | |
[request sendRequest]; |
#!/bin/sh | |
curl -X POST --data '{"message":"Hello, Pactola"}' http://pactola.io/f1b7db32/notification |