Skip to content

Instantly share code, notes, and snippets.

View leviathan's full-sized avatar

Jörg Polakowski leviathan

  • Lund, Sweden
  • 06:55 (UTC +01:00)
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 / 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 / UICustomTableViewController.m
Created December 5, 2013 07:29
UITableViewCell scaling animation
- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath {
// setup initial state (e.g. before animation)
cell.layer.shadowColor = [[UIColor blackColor] CGColor];
cell.layer.shadowOffset = CGSizeMake(10, 10);
cell.alpha = 0;
cell.layer.transform = CATransform3DMakeScale(0.5, 0.5, 0.5);
cell.layer.anchorPoint = CGPointMake(0, 0.5);
// define final state (e.g. after animation) & commit animation
[UIView beginAnimations:@"scaleTableViewCellAnimationID" context:NULL];
@leviathan
leviathan / UIKit+Benchmark.h
Created January 14, 2014 13:13
UIKit Benchmarking Drawing
CADisplayLink *displayLink = [CADisplayLink displayLinkWithTarget:self selector:@selector(refresh:)];
[displayLink addToRunLoop:[NSRunLoop currentRunLoop] forMode:NSDefaultRunLoopMode];
counter = 0;
previousTimestamp = displayLink.timestamp;
- (void)refresh:(CADisplayLink *)displayLink {
counter++;
if (counter > 60) {
__weak __typeof__(self) weakSelf = self;
// some api that takes blocks, when you give the block do
^{
__strong __typeof__(weakSelf) self = weakSelf;
}
// Taken from the commercial iOS PDF framework http://pspdfkit.com.
// Copyright (c) 2013 Peter Steinberger. All rights reserved.
// Licensed under MIT (http://opensource.org/licenses/MIT)
//
// You should only use this in debug builds. It doesn't use private API, but I wouldn't ship it.
#import <objc/runtime.h>
#import <objc/message.h>
// Compile-time selector checks.