Skip to content

Instantly share code, notes, and snippets.

View evanmcc's full-sized avatar
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
View GitHub Profile
miner changes:
Merge pull request #1517 from helium/rg/audit-123
Merge pull request #1509 from helium/rg/audit-122
Merge pull request #1504 from helium/jg/timeout_port_restart
Merge pull request #1503 from helium/adt/fix-txn-sorting
Merge pull request #1499 from helium/jma/deb-diagnostics
Merge pull request #1387 from helium/andymck/h3dex
Merge pull request #1484 from helium/jg/update_mux_092
Merge pull request #1486 from helium/jg/move_embedded_config_into_base_sysconfig
Merge pull request #1485 from helium/jsc/format-errors-0
evanmcc /
Created October 24, 2020 21:16
linux bandcamp bulk unpacking script
mkdir -p $HOME
cp *zip $HOME
cd $HOME

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.

load_sounds/0, load_sounds/1
-define(default_path, "sound_data/").
load_sounds() ->
evanmcc /
Created March 2, 2019 01:35
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 February 13, 2019 22:46
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 January 1, 2015 00:43
tempo template for lighter gen_server + with lager integration
(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>
#!/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.