Skip to content

Instantly share code, notes, and snippets.


Keybase proof

I hereby claim:

  • I am mcroydon on github.
  • I am mcroydon ( on keybase.
  • I have a public key whose fingerprint is C765 426F 3BBA 6092 72CB 9EC5 3EF0 1933 64B0 BAAB

To claim this, I am signing this object:

View serf-join-on-start.txt
[14:16:36] <rgarcia_> is there a reason why you can't start a serf agent and simultaneously tell it to join a cluster?
[14:16:56] <rgarcia_> seems awkward to have to run another cmd to tell it to join
[14:17:43] <Kyle> thought you could?
[14:18:41] • Kyle: looks
[14:19:20] m0hit (~mohit@ joined the channel.
[14:19:27] <Kyle> heh, guess you can't
[14:20:05] <Kyle> rgarcia_: could use a member join event, look for you, and serf join then?
[14:20:06] <Kyle> *shrug*
[14:20:43] <jacques_> could open a GI for it
[14:20:46] <@mitchellh> rgarcia_ So I originally coded that in
mcroydon / noflo.json
Created Oct 8, 2013
NoFlo Hello World with a never-ending network. View it at
View noflo.json
"properties": {
"environment": {
"runtime": "html",
"src": "./preview/iframe.html",
"width": "300",
"height": "300",
"content": "<div id='content'></div>"
"name": "Hello World"
View gist:5666964

Context: I was asked for a list of interesting reading relating to "distributed databases, behavior under partitions and failures, failure detection." Here's what I came up with in about an hour.

For textbooks, "Introduction to Reliable and Secure Distributed Programming" is a superb introduction to distributed computing from a formal perspective; it's really not about "programming" or "engineering" but about distributed system fundamentals like consensus, distributed registers, and broadcast. Used in Berkeley's Distributed Computing course (and HT to @lalithsuresh) Book Site

Notes from courses like Lorenzo Alvisi's Distributed Computing class can be great.

There are a bunch of classics on causality, [Paxos](ht

View fingure.clj
(ns fingure.core
(use 'lamina.core 'aleph.tcp 'gloss.core)
(defn response [query]
(println (str "Received a request for " (if (clojure.string/blank? query) "index" query) "."))
(if (clojure.string/blank? query)
"Greetings from the fingure finger daemon."
(str "Greetings from the fingure finger daemon.\r\nNo information about " query " found.")))
mcroydon / finger.lua
Created Mar 24, 2012
Basic finger with Lua and Luasocket.
View finger.lua
$ lua
Lua 5.1.4 Copyright (C) 1994-2008, PUC-Rio
> local socket = require("socket")
> client = socket.tcp()
> client:connect("", 79)
> client:send("\r\n")
> print(client:receive("*a"))
Student data loaded as of Mar 24, Staff data loaded as of Mar 24.
Notify Personnel or use WebSIS as appropriate to change your information.
mcroydon / tcpfing.pas
Created Feb 10, 2012
A finger implementation in Pascal using Trumpet TCP in DOS. Retrieved from
View tcpfing.pas
program TCPFing;
DOS, TrumpTCP, Crt, StrTools;
NulAddr: TIPAddr = (S_B1:0; S_B2:0; S_B3:0; S_B4:0);
var Result: Byte;
TmpAddr: TIPAddr;
mcroydon / sillyproto.go
Created Jan 12, 2012
Performance-oriented silly text-based protocol server in go.
View sillyproto.go
package main
import (
mcroydon / finger.go
Created Dec 23, 2011
Simplest finger client possible in go.
View finger.go
package main
import (
func main() {
// Create connection
mcroydon /
Created Nov 11, 2011 — forked from ryansch/
Command-line s3 uploader that uses the MultiPart (chunked) S3 upload functionality to parallelize and speed up large file uploads.
#!/usr/bin/env python
# coding=utf-8
# 2010-2011, Mike Tigas
# Usage:
# s3up filename
# Uploads the given file to the DEFAULT_BUCKET (see below)
You can’t perform that action at this time.