Skip to content

Instantly share code, notes, and snippets.

@baz
baz / gist:3073573
Created July 9, 2012 00:38
PPI of iOS device
float screenResolution() {
struct utsname systemInfo;
uname(&systemInfo);
char *name = systemInfo.machine;
float ppi;
if ((strstr(name, "iPod") != NULL) && (strstr(name, "iPod4") == NULL)) {
// older ipod touches
ppi = 163;
} else if ((strstr(name, "iPhone") != NULL) && (strstr(name, "iPhone3") == NULL)) {
@baz
baz / gist:4247847
Created December 10, 2012 01:20
NSView subview layout
@interface NSView (Layout)
- (void)setNeedsSubviewLayout;
@end
@implementation NSView (Layout)
- (void)setNeedsSubviewLayout {
@baz
baz / gist:8166453
Created December 29, 2013 01:30
Generate header for version information
#!/bin/bash
# This script automatically sets the version and short version string of
# an Xcode project from the Git repository containing the project.
#
# To use this script in Xcode 4, add the contents to a "Run Script" build
# phase for your application target.
set -o errexit
set -o nounset
@baz
baz / gist:8838951
Created February 6, 2014 05:48
AFNetworking multipart request
NSMutableURLRequest *request = [client multipartFormRequestWithMethod:@"POST" path:path parameters:nil constructingBodyWithBlock:^(id <AFMultipartFormData> formData) {
[formData appendPartWithFileData:data
name:@"file"
fileName:attachmentName
mimeType:attachmentMIMEType];
}];
@baz
baz / gist:9126573
Created February 21, 2014 00:38
RAC wrapping AFNetworking
- (RACSignal *)enqueueHTTPRequestWithRequest:(NSURLRequest *)request {
RACScheduler *scheduler = bee_plugin_rac_scheduler();
RACSignal *requestSignal = [[RACSignal createSignal:^(id<RACSubscriber> subscriber) {
AFHTTPRequestOperation *requestOperation = [self HTTPRequestOperationWithRequest:request success:^(AFHTTPRequestOperation *operation, id responseObject) {
[subscriber sendNext:responseObject];
[subscriber sendCompleted];
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
[subscriber sendError:error];
}];
@baz
baz / gist:9145682
Created February 21, 2014 23:19
Creating a RACScheduler
RACScheduler* bee_plugin_rac_scheduler(void) {
static RACQueueScheduler *b_rac_scheduler;
if (b_rac_scheduler == NULL) {
static dispatch_once_t oncePredicate;
dispatch_once(&oncePredicate, ^{
b_rac_scheduler = [[RACQueueScheduler alloc] initWithName:@"io.neat.Bee.rac-scheduler" queue:bee_plugin_queue()];
});
}
return b_rac_scheduler;
@baz
baz / gist:9447251
Created March 9, 2014 12:45
GitHub task lists
Whitespace ::= ' '
Period ::= '.'
ItemPrefix ::= 'Digit'<Period> | '-'
ItemContent ::= 'String'
Checkbox ::= '[ ]' | '[x]'
Item ::= <ItemPrefix> <Whitespace>{1} <Checkbox> <Whitespace>+ <ItemContent>
@baz
baz / gist:bbdc485f83bfecaf18ba
Created May 1, 2014 03:38
Hockey inside of XPC
int main(int argc, const char *argv[]) {
NSXPCListener *serviceListener = [NSXPCListener serviceListener];
#ifndef DEBUG
[[BITHockeyManager sharedHockeyManager] configureWithIdentifier:@"<IDENTIFIER>" delegate:nil];
[[BITHockeyManager sharedHockeyManager] setDisableFeedbackManager:YES];
[[BITHockeyManager sharedHockeyManager].crashManager setAskUserDetails:NO];
[[BITHockeyManager sharedHockeyManager].crashManager setAutoSubmitCrashReport:YES];
[[BITHockeyManager sharedHockeyManager] startManager];
#endif
@baz
baz / gist:b182d6563c108765ffea
Created March 13, 2015 17:46
RAC dependent calls
RACSignal *signal = [[[[[SomeClient clientForAccount:account] enqueueHTTPRequestWithMethod:@"GET" path:path parameters:nil]
flattenMap:^(id responseObject) {
NSMutableArray *signals = [NSMutableArray array];
[signals addObject:[SomeClient fetchEditmetaForItems:[NSSet setWithObject:item] account:account]];
[signals addObject:[SomeClient fetchTransitionsForItem:item]];
return [signals.rac_sequence.signal flatten:1];
}]