Skip to content

Instantly share code, notes, and snippets.

View lxcid's full-sized avatar

Stan Chang lxcid

View GitHub Profile
@JadenGeller
JadenGeller / Value Semantic Linked List.swift
Last active December 30, 2015 08:53
Swift Value Semantic Linked List
// DEPRECATED!!!
// NEW VERSION HERE: https://github.com/JadenGeller/Linky/
class NodeBacking<T> {
var backing: T
init(backing: T) {
self.backing = backing
}
}
/*
Erica Sadun, http://ericasadun.com
GameplayKit Available 10.11, iOS 9
*/
import Foundation
import GameplayKit // only available on OS X 10.11, iOS 9
@andymatuschak
andymatuschak / States-v3.md
Last active May 1, 2025 11:28
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,

@Dillion
Dillion / intuitionRef.md
Last active August 29, 2016 15:49
References and links for Scaling Software Architecture meetup topic: Intuition
@ianstormtaylor
ianstormtaylor / slate-node-portal.js
Created September 13, 2016 18:21
A React component example that makes it simple to position an element relative to a Slate node.
import React from 'react'
import Portal from 'react-portal'
import getOffsets from 'positions'
import { findDOMNode } from 'slate'
/**
* No-op.
*
* @type {Function}
import React, { Component } from 'react'
import logo from './logo.svg'
import './App.css'
import { Route, Link, Redirect } from './Zero'
const paths = [ 'one', 'two', 'three' ]
class App extends Component {
render() {