Skip to content

Instantly share code, notes, and snippets.

@msanders
msanders / RandomBackoff.swift
Created October 30, 2017 22:49
Exponential Backoff And Jitter
extension CountableClosedRange {
var randomElement: Element {
let distance = self.distance(from: startIndex, to: endIndex)
let offset = arc4random_uniform(UInt32(distance))
return self[index(startIndex, offsetBy: Bound.Stride(offset))]
}
}
enum Random {
### Keybase proof
I hereby claim:
* I am msanders on github.
* I am mkskm (https://keybase.io/mkskm) on keybase.
* I have a public key whose fingerprint is 879D 9776 6369 9CBB 5225 A842 A4EC D720 95C1 EA72
To claim this, I am signing this object:
import UIKit
extension UIImage {
convenience init?(uncachedName name: String) {
let deviceScale: Double = Double(UIScreen.mainScreen().scale)
let scaleFactors = [1.0, 2.0, 3.0].sort { x, y -> Bool in
let distanceA = abs(x - deviceScale)
let distanceB = abs(y - deviceScale)
return distanceA == distanceB ? x > y : distanceA < distanceB
}
import Foundation
final class GCDLock<Value> {
var value: Value
let queue = DispatchQueue(label: "")
init(value: Value) {
self.value = value
}
func read() -> Value {
@msanders
msanders / ArbitraryExtensions.Swift
Last active March 3, 2017 19:10
ArchivableSpec.swift
//
// ArbitraryExtensions.swift
// InstaShopper
//
// Created by Michael Sanders on 6/18/16.
// Copyright © 2016 Instacart. All rights reserved.
//
import Curry
import Mockingjay
import Nimble
import Quick
import SwiftCheck
final class StringTransformSpec: QuickSpec {
override func spec() {
describe("chopPrefix<Int>") {
it("should remove prefix of given length") {
property("result is of expected length") <- forAll { (string: String) in
@msanders
msanders / Archivable.swift
Last active June 3, 2016 00:20
NSCoding in Swift
import Foundation
import Mapper
protocol Archivable: Mappable {
func encode(archive: Archiver)
}
final class Archiver {
private var mapping: [String: AnyObject] = [:]
required init(_ object: Archivable) {
#import <Foundation/Foundation.h>
int main() {
NSNumber *a = @1;
NSNumber *b = @2;
NSNumber *c = @200;
NSLog(@"%d", a < b); // Prints 1 (true)
NSLog(@"%d", a < c); // Prints 1 (true)
}
@msanders
msanders / example.py
Last active March 3, 2017 19:12
Optional argument in click
import click
def set_global_domain(ctx, param, value):
if value:
ctx.params["domain"] = "NSGlobalDomain"
return value
@click.group()
def cli():
pass
@msanders
msanders / pair.sh
Last active August 29, 2015 14:06
Pair session setup
#!/usr/bin/env sh
# From http://collectiveidea.com/blog/archives/2014/02/18/a-simple-pair-programming-setup-with-ssh-and-tmux/
set -eu
HELP=false
for flag in "$@"; do
case "$flag" in
-h|--help) HELP=true;;
esac
done