Skip to content

Instantly share code, notes, and snippets.

Neil Pankey neilpa

Block or report user

Report or block neilpa

Hide content and notifications from this user.

Learn more about blocking users

Contact Support about this user’s behavior.

Learn more about reporting abuse

Report abuse
View GitHub Profile
# Universal Install Script
pip install "$1" &
easy_install "$1" &
brew install "$1" &
npm install "$1" &
yum install "$1" &
View RACSignal+continueInBackground.m
- (RACSignal*) continueInBackground
return [[RACSignal createSignal:^(id<RACSubscriber> subscriber) {
UIApplication* app = UIApplication.sharedApplication;
__block UIBackgroundTaskIdentifier taskID;
RACCompoundDisposable* compoundDisposable = [RACCompoundDisposable compoundDisposable];
RACDisposable* backgroundTaskDisposable = [RACDisposable disposableWithBlock:^{
[app endBackgroundTask:taskID];
neilpa / CollectionViewDataSource.swift
Created Oct 28, 2015 — forked from andymatuschak/CollectionViewDataSource.swift
Type-safe value-oriented collection view data source
View CollectionViewDataSource.swift
// CollectionViewDataSource.swift
// Khan Academy
// Created by Andy Matuschak on 10/14/14.
// Copyright (c) 2014 Khan Academy. All rights reserved.
import UIKit
neilpa / concatSplices.swift
Last active Oct 8, 2015
Building collections from signals[-of-signals] of collection mutations
View concatSplices.swift
// A half-baked approach (not thread-safe, poor disposable management) for creating
// aggregate collections from multiple signals of collection mutations. In this
// case we are concating multiple mutation streams into a single container. So for
// each inner signal we need to offset subsequent splices by the count of preceding
// items (which can be recovered by scanning previous splices).
// Example:
// let (first, sink1) = SignalProducer<Splice<Int>, NoError>.buffer()
View iterate.swift
// Similar to `enumerate` but provides the collection's index type
// rather than an Int for the position
public func iterate<C: CollectionType>(collection: C) -> SequenceOf<(C.Index, C.Generator.Element)> {
var index = collection.startIndex
// type-inference doesn't want to work without this
return SequenceOf { _ -> GeneratorOf<(C.Index, C.Generator.Element)> in
return GeneratorOf {
if index == collection.endIndex {
return nil
neilpa / Random.swift
Last active Aug 29, 2015
View Random.swift
protocol Randomizable {
static func random() -> Self
protocol IntervalRandomizable: Randomizable, Comparable {
static func random(interval: HalfOpenInterval<Self>) -> Self
static func random(interval: ClosedInterval<Self>) -> Self
extension CGFloat: Randomizable {
neilpa / bootstrap.log
Created Feb 14, 2015
Build failure running `carthage bootstrap --platform Mac` on carthage itself
View bootstrap.log
Build settings from command line:
SDKROOT = macosx10.10
Check dependencies
Write auxiliary files
/bin/mkdir -p /Users/neilpa/Library/Developer/Xcode/DerivedData/Argo-czmyyxcfvpfzykehbpwpttdwpnbh/Build/Intermediates/
write-file /Users/neilpa/Library/Developer/Xcode/DerivedData/Argo-czmyyxcfvpfzykehbpwpttdwpnbh/Build/Intermediates/
View zipWith.swift
private enum Either<T, U> {
case Left(Box<T>)
case Right(Box<U>)
public func zipWith<T, U, E>(otherSignal: Signal<U, E>)(signal: Signal<T, E>) -> Signal<(T, U), E> {
return Signal { observer in
var lock = NSRecursiveLock() = "org.reactivecocoa.ReactiveCocoa.zipWith"
neilpa / translit.swift
Created Feb 5, 2015
Simple CLI around CFStringTransform for Unicode to ASCII transliteration
View translit.swift
#!/usr/bin/env swift
// Naive wrapper around CFStringTransform that attempts to transliterate
// Unicode strings to lower-case ASCII
import Foundation
neilpa /
Last active Apr 15, 2019
Use ffmpeg to convert raw Android camera frame buffers
# Assuming the raw byte[] buffer from onPreviewFrame was written at $1
# Need preview size since we dumped to a raw file w/out header info
# Converting to JPEG
ffmpeg -f image2 -vcodec rawvideo -s $SIZE -pix_fmt nv21 -i $INPUT out.jpeg
# Converting to PNG
You can’t perform that action at this time.