Skip to content

Instantly share code, notes, and snippets.

View bbatsell's full-sized avatar

Brock Batsell bbatsell

View GitHub Profile
@timriffe
timriffe / GameofLife.R
Created February 21, 2012 14:03
Model Thinking- Aggregation- Game of Life- Experiments in R
# define a set of functions for iterating through the Game of Life, as described (err, as I understood it) by Scott Page in the 2012 Model Thinking course:
# queenNeighbors()
# given the status of the cell located and index 'ind'
# in matrix 'M' with 'n' columns, what are the statuses
# of its neighbors
# *neighborhoods to NOT wrap left and right but they DO wrap up and down...
queenNeighbors <- function(ind,M,n){
inds <- ind+outer(c(-1,0,1),c(-n,0,n),"+")
M[inds[inds > 0 & inds <= length(M) & inds != ind]]
@andkerosine
andkerosine / raskell.rb
Created August 15, 2012 05:56
Haskell-like list comprehensions in Ruby
$stack, $draws = [], {}
def method_missing *args
return if args[0][/^to_/]
$stack << args.map { |a| a or $stack.pop }
$draws[$stack.pop(2)[0][0]] = args[1] if args[0] == :<
end
class Array
def +@
@bomberstudios
bomberstudios / sketch-plugins.md
Last active January 2, 2026 16:22
A list of Sketch plugins hosted at GitHub, in no particular order.
@nicklockwood
nicklockwood / Hacking UIView Animation Blocks.md
Last active August 24, 2024 17:08
This article was originally written for objc.io issue 12, but didn't make the cut. It was intended to be read in the context of the other articles, so if you aren't familiar with concepts such as CALayer property animations and the role of actionForKey:, read the articles in that issue first.

Hacking UIView animation blocks for fun and profit

In this article, I'm going to explore a way that we can create views that implement custom Core Animation property animations in a natural way.

As we know, layers in iOS come in two flavours: Backing layers and hosted layers. The only difference between them is that the view acts as the layer delegate for its backing layer, but not for any hosted sublayers.

In order to implement the UIView transactional animation blocks, UIView disables all animations by default and then re-enables them individually as required. It does this using the actionForLayer:forKey: method.

Somewhat strangely, UIView doesn't enable animations for every property that CALayer does by default. A notable example is the layer.contents property, which is animatable by default for a hosted layer, but cannot be animated using a UIView animation block.

@grugq
grugq / gist:03167bed45e774551155
Last active June 11, 2026 18:15
operational pgp - draft

Operational PGP

This is a guide on how to email securely.

There are many guides on how to install and use PGP to encrypt email. This is not one of them. This is a guide on secure communication using email with PGP encryption. If you are not familiar with PGP, please read another guide first. If you are comfortable using PGP to encrypt and decrypt emails, this guide will raise your security to the next level.

@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,

@fbartho
fbartho / 0. Synology RAID Expansion-Resync Performance.md
Last active June 30, 2026 05:43
Walkthrough of what I did to increase performance on my Synology NAS box during an expansion, and afterwards.

Performance on Synology RAIDs

(especially while expanding)

Warning: The exact commands may not match for your particular linux OS / Synology(NAS) device. I had to customize the commands after exploring my particular system's setup.

If you're new to linux, or this is a new piece of hardware / a new synology device, jump down to the section called "Inspecting a setup"

Contents

@merlinmann
merlinmann / wisdom.md
Last active June 15, 2026 22:54
Merlin's Wisdom Project (Draft)

Merlin's Wisdom Project

Or: “Everybody likes being given a glass of water.”

By Merlin Mann.

It's only advice for you because it had to be advice for me.