Skip to content

Instantly share code, notes, and snippets.

View eyeplum's full-sized avatar
👀
U+1F440 EYES

Yan Li eyeplum

👀
U+1F440 EYES
  • Auckland, New Zealand
View GitHub Profile
Vagrant.configure(2) do |config|
config.vm.box = "hashicorp/precise64"
# ...
# This mess of B.S., constructed mostly from <http://apt.llvm.org>, is, as far as I can tell, The
# Right Way to get non-ancient clang installed on Precise. (Why am I using Precise again? 'cuz
# Vagrant says so? ಠ_ಠ)
#
# Yes, non-ancient clang requires slightly-less-ancient gcc to build ... which isn't available on
@andymatuschak
andymatuschak / States-v3.md
Last active May 17, 2026 19:29
A composable pattern for pure state machines with effects (draft v3)

A composable pattern for pure state machines with effects

State machines are everywhere in interactive systems, but they're rarely defined clearly and explicitly. Given some big blob of code including implicit state machines, which transitions are possible and under what conditions? What effects take place on what transitions?

There are existing design patterns for state machines, but all the patterns I've seen complect side effects with the structure of the state machine itself. Instances of these patterns are difficult to test without mocking, and they end up with more dependencies. Worse, the classic patterns compose poorly: hierarchical state machines are typically not straightforward extensions. The functional programming world has solutions, but they don't transpose neatly enough to be broadly usable in mainstream languages.

Here I present a composable pattern for pure state machiness with effects,

@phausler
phausler / build.sh
Last active June 24, 2016 19:34
Swift Toolchain Build Script
#!/usr/bin/env bash
set -e
# This should live in the same directory that contains the swift repository and other tools.
SRC_DIR=$PWD/swift
RUN_TESTS=
if [[ "$1" == "-t" || "$1" == "--test" ]] ; then
RUN_TESTS="-t"
@aleclaws
aleclaws / seckeyrefnsdata.c
Last active September 1, 2021 05:32
SecKeyRef to NSData
// HELPER QUERIES
void queryValueToData(NSMutableDictionary *query, void * value) {
query[(__bridge id)kSecValueRef] = (__bridge id)value ;
query[(__bridge id)kSecReturnData] = @YES ;
}
void queryDataToValue(NSMutableDictionary *query, id data) {
@kaishin
kaishin / snapshot.swift
Created January 10, 2016 14:29
NSView Snapshot
extension NSView {
var snapshot: NSImage {
guard let bitmapRep = bitmapImageRepForCachingDisplayInRect(bounds) else { return NSImage() }
bitmapRep.size = bounds.size
cacheDisplayInRect(bounds, toBitmapImageRep: bitmapRep)
let image = NSImage(size: bounds.size)
image.addRepresentation(bitmapRep)
return image
}
}
@crazytonyli
crazytonyli / GenericType.swift
Created September 27, 2015 13:14
Get generic type
struct Stack <Element> {
let values: [Element]
var elementType: Any {
get {
return Element.self
}
}
}
@neonichu
neonichu / code-signing.md
Last active April 16, 2023 02:34
A few ways of checking code signatures on OS X.

Code Signing

A few ways of checking code signatures on OS X.

Simple

$ /usr/bin/codesign --verify --deep --verbose /Applications/Xcode.app
/Applications/Xcode.app: valid on disk
/Applications/Xcode.app: satisfies its Designated Requirement
@Gubarev
Gubarev / .gitignore
Last active December 2, 2021 22:10 — forked from BennettSmith/.gitignore
Google Protobuf v2.6.0 Build Script for iOS
protobuf
protobuf-2.6.0
protobuf-master
@husa
husa / pre-commit.sh
Created September 8, 2015 14:39
Git pre-commit hook to run JS Unit Test before every commit
#!/bin/sh
red="\033[0;31m"
yellow="\033[1;33m"
green="\033[1;32m"
reset="\033[0m"
read -a changed_files <<< $(git diff --cached --name-only --raw)
# check if there're any JS related files in commit
runTests=false
@quellish
quellish / FBClasses.txt
Created August 15, 2015 01:50
Facebook iOS App Class List
headers:
_ASAsyncTransaction.h
_ASAsyncTransactionGroup.h
_ASDisabledPanUITextView.h
_ASDisplayLayer.h
_ASDisplayLayerDelegate-Protocol.h
_ASDisplayView.h
_ASImageNodeDrawParameters.h
_ASPendingState.h
_ASTextNodeCachedMetrics.h