Skip to content

Instantly share code, notes, and snippets.

protocol DelegateOwningType {
typealias DelegateType
var delegate : DelegateType { get set }
}
class DelegatedOperation <T : DelegateOwningType, TDelegate where T.DelegateType == TDelegate.Type>: NSOperation {
let authority : T
var delegate : TDelegate
#!/usr/bin/ruby
require 'rubygems'
require 'twitter'
require 'sqlite3'
client = Twitter::Streaming::Client.new do |config|
config.consumer_key = "..."
config.consumer_secret = "..."
config.access_token = "..."
/*! This protocol is reserved for Contacts framework usage. */
protocol CNKeyDescriptor : NSObjectProtocol, NSSecureCoding, NSCoding, NSCopying {
}
extension NSString : CNKeyDescriptor {
}
var keys : [CNKeyDescriptor]
keys.join([CNContactGivenNameKey, CNContactFamilyNameKey])
@thekarladam
thekarladam / gist:1198427
Created September 6, 2011 17:54
GradientView
@interface GradientView : UIView
@end
@implementation GradientView
+ (Class)layerClass {
return [CAGradientLayer class];
}
@thekarladam
thekarladam / gist:1174535
Created August 26, 2011 22:04
Cocoa commandments
1. Thou shalt always use Key Value Observing
2. Thou shalt not block the main thread
3. Thou shalt compile with zero errors or warnings
4. Thou shalt use #pragma mark to separate code into groups based on related functionality
@thekarladam
thekarladam / gist:1120857
Created August 2, 2011 18:36
Extract a jpeg photo from your dslocal user file
#import <Foundation/Foundation.h>
#import <AppKit/AppKit.h>
int main(int argc, char **argv) {
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
NSString *sourceFile = [NSString stringWithCString:(const char *)argv[1] encoding:NSUTF8StringEncoding];
NSData *fileData = [NSData dataWithContentsOfFile:[sourceFile stringByExpandingTildeInPath]];
NSDictionary *plist = [NSPropertyListSerialization propertyListWithData:fileData options:0 format:NULL error:NULL];
@thekarladam
thekarladam / gist:1095943
Created July 20, 2011 21:09
[A, A->B, A->C] => {A & B} & {A & C}
NSManagedObject *itemA = [NSEntityDescription insertNewObjectForEntityForName:@"Group" inManagedObjectContext:self.managedObjectContext];
NSManagedObject *itemB = [NSEntityDescription insertNewObjectForEntityForName:@"Subgroup" inManagedObjectContext:self.managedObjectContext];
NSManagedObject *itemC = [NSEntityDescription insertNewObjectForEntityForName:@"Folder" inManagedObjectContext:self.managedObjectContext];
NSFetchRequest *aAndBFetch = [[NSFetchRequest alloc] initWithEntityName:@"Group"];
NSFetchRequest *aAndCFetch = [[NSFetchRequest alloc] initWithEntityName:@"Group"];
[aAndBFetch setIncludesSubentities:YES];
[aAndCFetch setIncludesSubentities:YES];
[aAndBFetch setPredicate:[NSPredicate predicateWithFormat:@"entity.name == \"Group\" OR entity.name == \"Subgroup\""]];
@implementation XXNavigationBar
- (void)layoutSubviews {
[super layoutSubviews];
MPLog(@"navBar: %@", [self recursiveDescription]);
}
- (void)pushNavigationItem:(UINavigationItem *)item animated:(BOOL)animated {
MPLog(@"[%@:%p %@]:%@, %@", NSStringFromClass([self class]), self, NSStringFromSelector(_cmd), item, animated ? @"YES": @"NO");
Loading development environment (Rails 3.0.1)
>> Time.zone = "Mountain Time (US & Canada)"
>> start = Time.parse("2/9/11 12:30 PM")
=> Wed Feb 09 12:30:00 -0800 2011
>> start.zone
=> "PST"
>> Time.zone
=> #<ActiveSupport::TimeZone:0x1020592b0 @utc_offset=nil, @current_period=nil, @name="Mountain Time (US & Canada)", @tzinfo=#<TZInfo::TimezoneProxy: America/Denver>>
{
"endTime" : "2/9/11 12:30 PM",
"id" : "1",
"location" : "Fandango",
"sessionEndTime" : "2/9/11 12:30 PM",
"sessionStartTime" : "2/9/11 9:30 AM",
"startTime" : "2/9/11 9:30 AM",
},