Skip to content

Instantly share code, notes, and snippets.

status is a bad idea, github is not a social network

Evan Vigil-McClanahan evanmcc

status is a bad idea, github is not a social network
Block or report user

Report or block evanmcc

Hide content and notifications from this user.

Learn more about blocking users

Contact Support about this user’s behavior.

Learn more about reporting abuse

Report abuse
View GitHub Profile

aleph comparison notes


tl;dr (from an incomplete reading)

NB: I read this over the weekend and am probably confused on some of the points, but I wanted to get what I did retain down before I forgot.

Aleph is a fully asyncronous multimode protocol for building a blockchain-style over a DAG of “units”.

A unit is a list of parent signatures, a list of transactions, and some other metadata. A unit must point to other units from other nodes that are in prior rounds. This is the DAG, pointing back to some genesis unit. Once a unit is produced, it is broadcast using RBC over all units.

View bb_wav.erl
load_sounds/0, load_sounds/1
-define(default_path, "sound_data/").
load_sounds() ->
evanmcc /
Created Mar 2, 2019
talk on the politics of introducing beam services at jvm shops.

how to replace the jvm and win

  • the business side of things is completely terrible
  • executives at big companies can totally ruin your company, and not care, when they acquire you
  • just went ahead and rewrote it, whee
  • identify the target
  • don’t let people know what you’re doing at first or try to convince people beforehand
    • 1. show, don’t tell
    • 2. forgiveness, not permission
  • people get locked into the JVM mindset
  • 100% political problem
evanmcc /
Created Feb 13, 2019
test program to show that iterators within transactions on an optimistic transaction db don't honor iterator bounds
// Copyright (c) 2011-present, Facebook, Inc. All rights reserved.
// This source code is licensed under both the GPLv2 (found in the
// COPYING file in the root directory) and Apache 2.0 License
// (found in the LICENSE.Apache file in the root directory).
#include <cstdio>
#include <iostream>
#include <string>
#include <vector>
#include "rocksdb/db.h"

Keybase proof

I hereby claim:

  • I am evanmcc on github.
  • I am evanmcc ( on keybase.
  • I have a public key ASAD-PXn66s_8N8mc_FQCwvdvLcvKh1-CdEuqMSM3uIJxgo

To claim this, I am signing this object:

evanmcc / tempo.el
Created Jan 1, 2015
tempo template for lighter gen_server + with lager integration
View tempo.el
(tempo-define-template "gen-server"
'((erlang-skel-include erlang-skel-small-header)
"-behaviour(gen_server)." n n
"%% API" n
"-export([start_link/0])." n n
"%% gen_server callbacks" n
"-export([init/1, handle_call/3, handle_cast/2, "
"handle_info/2," n>
View emacs-cleanup.el
#!/usr/bin/env emacs --script
;; should likely be called with 2</dev/null to suppress the various
;; output to the shell.
;; I think that this is going to fail non-emacs24 installs, since
;; 'package isn't installed by default there. You'll see this error:
;; "Symbol's function definition is void: package-initialize"
;; `brew install emacs` should fix you up, though.
evanmcc / ainfo.txt
Created Dec 8, 2014
simpler gen-server for lager-using projects
View ainfo.txt
This file provides a simpler gen-server template for emacs' tempo mode.
To use it, drop the following:
`(load-file "/path/to/gen-server.el")`
in your .emacs or init.el or whatever somewhere after your erlang-mode initialization (so after package init if you're using packages).
It defines a function called `tempo-template-gen-server` which you can access from M-x as per usual.
evanmcc /
Created Sep 21, 2014
notes on implementing queue bounds



  • in bif.c
  • calls do_send
  • otherwise handles the erlang side of things, returning the right thing, bumping reductions, etc.


  • in bif.c
  • also calls do send and seems to have some overlap with erl_send
  • can likely do this without understanding the difference fully
You can’t perform that action at this time.