Skip to content

Instantly share code, notes, and snippets.

View gist:d6d2dcc0961405352d01
### Keybase proof
I hereby claim:
* I am afarnham on github.
* I am afarnham ( on keybase.
* I have a public key whose fingerprint is 96B3 8D77 96D4 F6D3 3081 881B 3C38 2A68 DF5B 32FE
To claim this, I am signing this object:
afarnham / gist:1e80647c23eb36cf99f2
Created Jun 26, 2015
Dynamic instantiation of Swift classes conforming to a specific protocol
View gist:1e80647c23eb36cf99f2
import UIKit
protocol FooProtocol {
func description() -> String
class Bar : FooProtocol {
required init() {
View gist:391205
MKCoordinateRegion region;
if ([locations count] > 0) {
CLLocation *firstLoc = [locations objectAtIndex:0];
CLLocationCoordinate2D southWest = firstCoord.coordinate;
CLLocationCoordinate2D northEast = southWest;
for (CLLocation* loc in founds) {
southWest.latitude = MIN(southWest.latitude, loc.coordinate.latitude);
southWest.longitude = MIN(southWest.longitude, loc.coordinate.longitude);
View gist:135073
//Find the process ID for your iPhone app, attach the debug to it and hit continue. When you reach the first break point
//set "more" to "NO". Hit continue and you will stop at the second break point.
//Taken from here:
- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url {
BOOL more = YES;
while (more) {
[NSThread sleepForTimeInterval:1.0]; // Set break point on this line
//your read code goes here. Set a second break point where you want to break at
View shapes.m
#import <Foundation/Foundation.h>
@interface Square : NSObject {
NSNumber *width;
NSNumber *height;
CGPoint center;
- (id)initWithJSON:(NSDictionary *)jsonData;
View gist:113924
class CounterMetric(Metric):
def values(self):
if self.virtual:
return True
if 'call' in self.options:
return self._snapshot()
View gist:33808
>> inq.choices = [1,2,3]
=> [1, 2, 3]
=> true
>> inq.choices
=> "123"
View gist:21193
uninitialized constant Merb::Rack::StreamWrapper
/data/merb/dp-site/current/bin/../gems/gems/merb-core-0.9.10/lib/merb-core/controller/merb_controller.rb:348:in `rack_response'
/data/merb/dp-site/current/bin/../gems/gems/merb-core-0.9.10/lib/merb-core/dispatch/dispatcher.rb:79:in `handle'
/data/merb/dp-site/current/bin/../gems/gems/merb-core-0.9.10/lib/merb-core/dispatch/dispatcher.rb:35:in `handle'
/data/merb/dp-site/current/bin/../gems/gems/merb-core-0.9.10/lib/merb-core/rack/application.rb:17:in `call'
/data/merb/dp-site/current/bin/../gems/gems/merb-core-0.9.10/lib/merb-core/rack/middleware/static.rb:26:in `call'
/data/merb/dp-site/current/bin/../gems/gems/merb-core-0.9.10/lib/merb-core/rack/handler/mongrel.rb:75:in `process'
/data/merb/dp-site/current/gems/gems/mongrel-1.1.5/lib/mongrel.rb:159:in `process_client'
/data/merb/dp-site/current/gems/gems/mongrel-1.1.5/lib/mongrel.rb:158:in `each'
/data/merb/dp-site/current/gems/gems/mongrel-1.1.5/lib/mongrel.rb:158:in `process_client'
View gist:9973
class Group
include DataMapper::Resource
property :id, Integer, :serial => true
property :name, String, :length => 256
has n, :states, :through => Resource
class State
View gist:4891
~/work/dp-admanager $ merb
~ Loaded DEVELOPMENT Environment...
~ Connecting to database...
~ loading gem 'merb_datamapper' ...
~ Compiling routes...
/usr/lib/ruby/1.8/pathname.rb:205:in `dup': can't dup Symbol (TypeError)
from /usr/lib/ruby/1.8/pathname.rb:205:in `initialize'
from /usr/lib/ruby/1.8/pathname.rb:582:in `new'
from /usr/lib/ruby/1.8/pathname.rb:582:in `+'
from /usr/lib/ruby/gems/1.8/gems/extlib-0.9.4/lib/extlib/pathname.rb:3:in `/'