Skip to content

Instantly share code, notes, and snippets.

//
// CPUViewController.m
// Cue Point Usage
//
// Created by Robert Crooks on 11/14/13.
// Copyright (c) 2013 Robert Crooks. All rights reserved.
//
#import "CPUViewController.h"
// import the SDK master header and RAC EXTScope header
//
// CPUViewController.h
// Cue Point Usage
//
// Created by Robert Crooks on 11/14/13.
// Copyright (c) 2013 Robert Crooks. All rights reserved.
//
#import <UIKit/UIKit.h>
// import the SDK master header
//
// CPPViewController.h
// Catalog Playlist Playback
//
// Created by Robert Crooks on 10/9/13.
// Copyright (c) 2013 Brightcove. All rights reserved.
//
#import <UIKit/UIKit.h>
//
// CPPViewController.m
// Catalog Playlist Playback
//
// Created by Robert Crooks on 10/2/13.
// Copyright (c) 2013 Brightcove. All rights reserved.
//
#import "CPPViewController.h"
@erikprice
erikprice / gist:9360897
Created March 5, 2014 03:58
Graham Scan in Haskell
grahamScan :: [Point] -> [Point]
grahamScan pts
| length pts < 3 = error "Not a polygon"
| otherwise = reverse $ scan rest (b:[a])
where (a:b:rest) = pts
scan [] acc = acc
scan pts acc = case d of
TurnsRight _ _ _ -> scan ps (c:a:stack)
_ -> scan ps (c:b:a:stack)
where (c:ps) = sortBy sortByYThenX pts

Keybase proof

I hereby claim:

  • I am erikprice on github.
  • I am erik_price (https://keybase.io/erik_price) on keybase.
  • I have a public key whose fingerprint is 12E5 0EFF CEA1 BD87 DE0A E362 7DF0 A230 7331 5642

To claim this, I am signing this object:

(use 'clojure.core.async)
(def output (atom []))
(defn producer [ctrl k]
(go (loop [i 0]
(when-let [c (<! ctrl)]
(>! c [k i])
(>! ctrl c)
(recur (inc i))))))
(ns datasifter)
;; Write a data sifter, sift, that partitions a string into a list of lists.
;; Start with the case of using letters as a delimiter, and numbers as data.
;; There can be any number of repetitions of numbers & letters.
;;
;; user=>(sift "a1b2cd34")
;; (("a" ("1")) ("b" ("2")) ("c" ()) ("d" ("3" "4")))
;;
;; from http://fulldisclojure.blogspot.com/2010/01/code-kata-data-sifter.html
// 1.
// “Safe” but retain cycle.
[self setCompletionBlock:^{
NSLog(@"1: %@", self->_foo);
}];
// 2.
// Unsafe. Could dereference nil.
__weak BCThing *weakSelf = self;
@erikprice
erikprice / 2.0-development_ReactiveCocoa.podspec
Created July 30, 2013 11:34
Interim podspec for the `2.0-development` branch of ReactiveCocoa. To use this podspec: 1. Fork the ReactiveCocoa project, clone it locally, and tag the 2.0-development branch as `v2.0-development` (note the leading `v`, it's important). 2. Copy this gist into a file called `ReactiveCocoa.podspec` and place it in the root of your local clone of …
Pod::Spec.new do |s|
s.name = "ReactiveCocoa"
s.version = "2.0-development"
s.summary = "A framework for composing and transforming sequences of values."
s.homepage = "https://github.com/ReactiveCocoa/ReactiveCocoa"
s.author = { "Josh Abernathy" => "josh@github.com" }
s.source = { :git => "https://github.com/YOUR_GITHUB_NAME/ReactiveCocoa.git", :tag => "v#{s.version}" }
s.license = 'Simplified BSD License'
s.description = "ReactiveCocoa offers:\n" \
"1. The ability to compose operations on future data.\n" \