Skip to content

Instantly share code, notes, and snippets.

View seansawyer's full-sized avatar

Sean Sawyer seansawyer

View GitHub Profile
@seansawyer
seansawyer / response.json
Last active August 29, 2015 14:08
Response format for post creation
{
"cloned": true,
"content": "---\nlayout: post\ntitle: \"Welcome to the Dirty\"\ndate: 2014-11-08 13:27:37\n\n# user-defined metadata\nimage:\n url: http://instagram.com/p/tO77AKB5QU/\n numdogs: 2\n numgirls: 1\n names:\n - Rebel\n - Dirty\n - Dog\n---\n\n\n## Dirty's Staff\n\nThere are {{page.image.numdogs}} dogs and {{page.image.numgirls}} babe work at Dirty's.\n\nTheir names are:\n{% for names in page.image.names %}\n* {{names}}\n{% endfor %}\n\n### Company Photo\n\n{% assign url={{page.image.url}} %}\n{% include embedly.html url=url %}\n",
"front_matter_json": {
"date": "Sat, 08 Nov 2014 13:27:37 GMT",
"image": {
"names": [
"Rebel",
"Dirty",
"Dog"

Can I make a game in a Gist?

I'll write the world in YAML first, and write the code to stitch it together last.

Maybe I can use Mermaid to draw the map.

@seansawyer
seansawyer / ThriftIdl.scala
Last active August 29, 2015 14:16
Parboiled parser definition for Thrift IDL
package com.rsglab.chimpquery.consumer.thrift
import org.parboiled.scala._
/**
* Parboiled parser definition for Thrift IDL
* @see https://thrift.apache.org/docs/idl
*/
class ThriftIdl extends Parser {
/**
@seansawyer
seansawyer / socket_lock.php
Last active August 29, 2015 14:20
Interprocess locking in PHP with Unix domain sockets
<?php
/**
* Try to acquire an arbitrarily-named lock by binding a Unix
* (family AF_UNIX) datagram (type SOCK_DGRAM) socket to an
* abstract address corresponding to the lock name. On success,
* the bound socket resource is returned (or null, on
* failure). You may either call unlock() with that resource to
* release the lock explicitly, or rely on the operating system
* to clean up the socket when the process exits.
@seansawyer
seansawyer / gist:88a16373a3d2c2a939b1
Last active September 21, 2015 22:11
Vagrant + Ansible crash course

Install Virtualbox, Vagrant and Ansible.

Create a new directory for your first Vagrant VM. In that directory, create a Vagrantfile using vagrant init, and enable the Ansible provisioner by adding the following.

config.vm.provision "ansible" do |ansible|
  ansible.playbook = "playbook.yml"
end

Now you can create an Ansible playbook named playbook.yml file in the same directory as your Vagrantfile, and vagrant provision will run it. Here's an easy one to start with that will update NSS and add the EPEL and IUS repositories.

git clone git@github.com:vitrue/synchole.git
cd synchole
rebar clean compile generate
%% extract version number from reltool.config
mv rel/synchole rel/synchole_VSN
scp rel/synchole_VSN deploy@dest:/data/synchole/rel
@seansawyer
seansawyer / gist:983715
Created May 20, 2011 20:19
Extract an OTP application version number from an Erlang .app file
awk "/\\{vsn, \"([0-9]+)\"\\}/" src/synchole.app.src | sed -En "s/[^[:digit:]]*([[:digit:]]+)[^[:digit:]]*/\1/p"
@seansawyer
seansawyer / .tmux.conf
Created October 5, 2011 20:27
my tmux configuration
# Prefix
set -g prefix C-j
# Copy mode
unbind [
bind Escape copy-mode
# Use Vi mode
setw -g mode-keys vi
# Make mouse useful in copy mode
setw -g mode-mouse on
@seansawyer
seansawyer / coolness.sh
Created January 15, 2016 18:50
Cool Shell Things
# Meta Man
man man
# When your last commit has some garbage author info - maybe you committed in a VM or something
git commit --amend --reset-author
# Sudo do the last thing I said
sudo !!
# Remove an item from your history - maybe you typed your password by accident