Skip to content

Instantly share code, notes, and snippets.

@rayfix
rayfix / GroupTests.m
Created Mar 16, 2014
Groups from NSArray
View GroupTests.m
//
// GroupTests.m
//
// Created by Ray Fix on 3/15/14.
//
#import <XCTest/XCTest.h>
#import "NSArray+Groups.h"
@interface GroupTests : XCTestCase
@rayfix
rayfix / gist:02ca4d9537af011dd12f
Created Jun 22, 2014
Compute Probability of Ace of Diamonds in a Poker Hand
View gist:02ca4d9537af011dd12f
func testPokerAceOfDiamonds()
{
let handsWithAceOfDiamonds = Binomial(n: 51, choose: 4)
let allPossibleHands = Binomial(n: 52, choose: 5)
let probabilityOfAceOfDiamonds = handsWithAceOfDiamonds / allPossibleHands
XCTAssertEqual(probabilityOfAceOfDiamonds, Rational(5,52))
let probabilityOfNoAceOfDiamonds = Rational(1) - probabilityOfAceOfDiamonds
@rayfix
rayfix / didSet_on_array.swift
Created Apr 7, 2015
didSet on array crashes my playground
View didSet_on_array.swift
// Playground - noun: a place where people can play
import UIKit
var str = "Hello, playground"
struct Thing {
var arr: [Int] = [] {
didSet {
@rayfix
rayfix / ctor.cpp
Created Apr 8, 2015
How to construct C++11
View ctor.cpp
//
// main.cpp
// forward
//
// Created by Ray Fix on 4/8/15.
// Copyright (c) 2015 Pelfunc, Inc. All rights reserved.
//
#include <iostream>
@rayfix
rayfix / subscriptions_spec.rb
Created Apr 22, 2015
Multiple expect invocations inside a single test example
View subscriptions_spec.rb
require 'active_support/all'
class Subscription
def initialize(created_at:)
@created_at = created_at
end
attr_reader :created_at
def months_subscribed
((Date.today - created_at.to_date) / 30).round
View taggedType.swift
struct TaggedThing<Tag, Thing> {
var value: Thing
}
protocol A {} // Phantom Type
protocol B {} // Phantom Type
var a = TaggedThing<A, Int>(value: 1)
var b = TaggedThing<B, Int>(value: 2)
View gist:ea2595e5b1e123e849ec
import UIKit
// Rather than a generic type with constraints on being a UIView and conforming to Extra
// you could do something like this.
protocol UIViewConvertable {
var uiview: UIView { get }
}
extension UIView : UIViewConvertable {
var uiview: UIView { return self }
}
View InitRestKit.m
- (void)mapObjects:(RKObjectManager*)objectManager
{
RKObjectMapping* widgetMapping = [RKObjectMapping mappingForClass:[widget class]];
[widgetMapping mapKeyPath:@"id" toAttribute:@"widgetID"];
[widgetMapping mapAttributes:@"name", @"description", nil];
[widgetMapping mapKeyPath:@"public" toAttribute:@"isPublic"];
[widgetMapping mapKeyPath:@"created_at" toAttribute:@"createdAt"];
[widgetMapping mapKeyPath:@"updated_at" toAttribute:@"updatedAt"];
[objectManager.mappingProvider setMapping:widgetMapping forKeyPath:@"widget"];
}
@rayfix
rayfix / gist:1135157
Created Aug 9, 2011
mapping problem ... crud operations
View gist:1135157
RKObjectMapping* channelMapping = [RKObjectMapping mappingForClass:[Channel class]];
// Core data
//channelMapping.primaryKeyAttribute = "channelID";
// For now using NSObject derived thing
[channelMapping mapKeyPathsToAttributes:
@"id", @"channelID",
@"created_at", @"createdAt",
@"updated_at", @"updatedAt",
@rayfix
rayfix / gist:1150539
Created Aug 17, 2011
What is the best format for RestKit?
View gist:1150539
RestKit allows a great deal of customization and can probably be made to handle most formats.
Since I have full control over the server (now), I want to put the onus on the server as much
as possible and reduce unnecessary bandwidth. However, I want to keep the RestKit side code
as easy, and concise as possible.
So suppose I have a set of widget classes with ids and names with standard CRUD operations.
I have an index action which could potentially return a large number of widgets and so need
to be paginated. Here is one way I thought of.
Create Action