Navigation Menu

Skip to content

Instantly share code, notes, and snippets.

View SaganRitual's full-sized avatar
:octocat:
Realizing daily I'm not a mathematician

Rob Bishop SaganRitual

:octocat:
Realizing daily I'm not a mathematician
View GitHub Profile
@SaganRitual
SaganRitual / CoreStoreNotificationsExample.swift
Last active March 2, 2018 07:59
Working, bare-bones example of how to use CoreStore's notification mechanism
// Figuring out how CoreStore's monitor/observer mechanism works was a painful
// experience. This is a working example of how to use list object observers and
// single object observers. You'll need CoreStore, of course, to run this.
// Instantiate a Database object and call the .go() method. The reason for the
// Timers is that I wanted to make sure the code would run in asynchronous pieces,
// rather than all on one execution thread, to more-or-less simulate mouse
// clicks in a real app.
//
// https://github.com/JohnEstropia/CoreStore -- don't get me wrong, it was
// worth the pain. But with any luck this example will spare you some headaches.
@SaganRitual
SaganRitual / SequenceDiff.swift
Last active March 15, 2018 00:35 — forked from sergiosette/diff5.swift
Compare two sequences, report back the common elements, plus deletes/inserts required to make the sequences match
// See how to use it at the bottom of this file
// Helper struct for sequenceDiff
public struct SequenceDiff<T1, T2> {
public let common: [(T1, T2)]
public let removed: [T1]
public let inserted: [T2]
public init(common: [(T1, T2)] = [], removed: [T1] = [], inserted: [T2] = []) {
self.common = common
self.removed = removed
@SaganRitual
SaganRitual / PricelessGenericBuilder.swift
Last active October 31, 2018 21:36
A generic builder that allows me to inject dependencies into the built objects
// With gratitude to David Harris http://davidharris.io/
// for his article on making generic factories. I might keep some of my hair.
//
// http://davidharris.io/ios/swift/2018/03/19/generic-factory.html
import Foundation
open class Builder<DependencyType> {
public typealias DependencyCreator = () -> DependencyType
//
// Permission is hereby granted, free of charge, to any person obtaining a
// copy of this software and associated documentation files (the "Software"),
// to deal in the Software without restriction, including without limitation
// the rights to use, copy, modify, merge, publish, distribute, sublicense,
// and/or sell copies of the Software, and to permit persons to whom the
// Software is furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in
// all copies or substantial portions of the Software.
@SaganRitual
SaganRitual / lldb_cheat_sheet.md
Created January 21, 2019 18:16 — forked from ryanchang/lldb_cheat_sheet.md
LLDB Cheat Sheet

LLDB Cheat Sheet

A complete gdb to lldb command map.

Print out

  • Print object
(lldb) po responseObject
(lldb) po [responseObject objectForKey@"state"]
  • p - Print primitive type
@SaganRitual
SaganRitual / GameScene.swift
Created January 29, 2019 13:40
In case it helps anyone, a SpriteKit starter with physics turned on and a couple of sprites demonstrating collision detection
import SpriteKit
import GameplayKit
class GameScene: SKScene {
var box1: SKShapeNode?
var box2: SKShapeNode?
override func didMove(to view: SKView) {
let b1 = SKShapeNode(circleOfRadius: 50.0)
@SaganRitual
SaganRitual / Box.swift
Created January 29, 2019 15:36
Another SpriteKit starter, some examples of how to use physics and actions
import Foundation
import SpriteKit
func getColorName(_ color: NSColor) -> String {
switch color {
case .black: return "black"
case .white: return "white"
case .gray: return "gray"
case .red: return "red"
case .green: return "green"
@SaganRitual
SaganRitual / Box.swift
Created February 4, 2019 14:37
SpriteKit starter, draw grid, detect touches on sprites, cause neighboring sprites to react
import Foundation
import SpriteKit
class Box {
let sprite: SKShapeNode
let cellAddress: XYPair
var position: CGPoint {
get { return sprite.position }
set { sprite.position = newValue }
import SpriteKit
import GameplayKit
class GameScene: SKScene {
static var shared: GameScene?
var frameCount = 0
var bigSprite: SKSpriteNode?
var bigSpriteIsSetup = false
var spriteTexture: SKTexture?
@SaganRitual
SaganRitual / MoreBadKarmaFromGenerics.swift
Created March 13, 2019 14:33
I'm not a bad person. Why must the universe punish me so with Swift generics?
struct ProtoOrder<T> {
var quantity: T
init(_ quantity: T) { self.quantity = quantity }
}
protocol ItemProtocol {
associatedtype HowCounted: Numeric
typealias Order = ProtoOrder<HowCounted>