Skip to content

Instantly share code, notes, and snippets.

View leviathan's full-sized avatar

Jörg Polakowski leviathan

View GitHub Profile
@leviathan
leviathan / heroku dyno_worker setup
Created September 14, 2010 17:34
heroku dyno & worker setup from within the rails app
require "heroku"
client = Heroku::Client.new("username", "password")
# Update the number of dynos used by the application
# app_name = the name of the application
# x = the integer number of dynos you want to set, e.g. 3
client.set_dynos("app_name", x)
# Update the number of workers used by the application
@leviathan
leviathan / NSNotificationCenter+MainThread.h
Created November 6, 2010 16:40
A category to send NSNotifications in the UI thread
// NSNotificationCenter+MainThread.h
@interface NSNotificationCenter (MainThread)
- (void)postNotificationOnMainThread:(NSNotification *)notification;
- (void)postNotificationOnMainThreadName:(NSString *)aName object:(id)anObject;
- (void)postNotificationOnMainThreadName:(NSString *)aName object:(id)anObject userInfo:(NSDictionary *)aUserInfo;
@end
@leviathan
leviathan / Load UIView with nib
Created January 7, 2011 14:53
Loading a custom UIView class with a custom nib file.
QPickOneView* myView = nil;
NSArray* nibViews = [[NSBundle mainBundle] loadNibNamed:@"QPickOneView" owner:self options:nil];
for (id currentObject in nibViews) {
if ([currentObject isKindOfClass:[QPickOneView class]]) {
myView = (QPickOneView *) currentObject;
break;
}
}
// Initialize namespaces ---------------------
if (!window.mm) {
mm = {};
}
// avoid window. use this if you "think" you are in root closure. makes encapsulation possible and code executable without DOM (like node...)
if (!this.mm) {
mm = {};
}
@leviathan
leviathan / mountain-lion-brew-setup.markdown
Created September 27, 2012 09:17 — forked from myobie/mountain-lion-brew-setup.markdown
Get Mountain Lion and Homebrew to Be Happy

Get Mountain Lion and Homebrew to Be Happy

1) Install XCode 4.4 into /Applications

Get it from the App Store.

2) Install Command Line Tools

In XCode's Preferences > Downloads you can install command line tools.

@leviathan
leviathan / SectionArray.h
Last active December 17, 2015 08:49
Objective-C Grid Array Wrapper
//
// Created by Jörg Polakowski on 25/04/13.
// Copyright (c) 2013 Jörg Polakowski. All rights reserved.
//
@interface SectionArray : NSObject
#pragma mark -
#pragma mark Factory
@leviathan
leviathan / UIImage+Offscreen.m
Last active May 10, 2023 17:50
UIImage offscreen rendering
// Define callback blocks
// Success
__block typeof (self) weakSelf = self;
void (^successBlock)(NSURLRequest *, NSHTTPURLResponse *, UIImage *) =
^(NSURLRequest *request, NSHTTPURLResponse *response, UIImage *image) {
// Assigning an image that has not yet been decoded leads
// to stuttering in UI animations
// Forcing image decoding on a background thread fixes this
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_LOW, 0), ^(void) {
@leviathan
leviathan / NSObject+AssociatedObject.h
Created November 29, 2013 06:56
Categories are a well-known feature of Objective-C, allowing new methods to be added to existing classes. Much less well known is that with some objc runtime hacking, you can add new properties as well.
@interface NSObject (IndieBandName)
@property (nonatomic, strong) NSString *indieBandName;
@end
@leviathan
leviathan / MeasureBlockExecutionTime.m
Created November 29, 2013 06:59
Macro for Measuring Execution Time
NS_INLINE void MVComputeTimeWithNameAndBlock(const char *caller, void (^block)()) {
CFTimeInterval startTimeInterval = CACurrentMediaTime();
block();
CFTimeInterval nowTimeInterval = CACurrentMediaTime();
NSLog(@"%s - Time Running is: %f", caller, nowTimeInterval - startTimeInterval);
}
#define MVComputeTime(...) MVComputeTimeWithNameAndBlock(__PRETTY_FUNCTION__, (__VA_ARGS__))
@leviathan
leviathan / CacheFormatter.m
Created December 2, 2013 08:24
Cache NSDateFormatter on Class level for performance. http://nshipster.com/nsformatter/
+ (NSNumberFormatter *)numberFormatter {
static NSNumberFormatter *_numberFormatter = nil;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
_numberFormatter = [[NSNumberFormatter alloc] init];
[_numberFormatter setNumberStyle:NSNumberFormatterDecimalStyle];
});
return _numberFormatter;
}