Skip to content

Instantly share code, notes, and snippets.

@jfacorro
jfacorro / elvis-config.erl
Last active August 29, 2015 14:07
Elvis Config
Config = [#{dirs => ["src"],
filter => "tt_important_stuff.erl",
rules => [{elvis_style, line_length, [80]},
{elvis_style, no_tabs, []},
{elvis_style, macro_names, []},
{elvis_style, macro_module_names, []}
%% more rules...
]
}],
elvis:rock(Config).
@jfacorro
jfacorro / atomic-append.py
Created November 17, 2014 05:58
Check atomic operations on Python
import threading
import time
import random
a = []
def add(x):
for i in range(100):
print x
print len(a)
(defn timeout-channel
"Creates a channel and a go block that takes from it. The go block keeps
an internal status with two possible values, `:wait` and `:receive`.
In ':wait' status, execution is blocked until there's a value available in the
channel, it then enters the ':receive' status, until the timeout wins.
Returns the channel where events need to be pushed."
[timeout-ms f]
(let [c (async/chan)]
(async/go-loop [status :wait
args nil]
@jfacorro
jfacorro / brepl.clj
Created May 29, 2015 22:03
brepl.clj
(require
'[cljs.repl :as repl]
'[cljs.repl.browser :as browser])
(repl/repl (browser/repl-env)
:watch "src"
:output-dir "out"
:optimizations :none
:cache-analysis true
:source-map true)
@jfacorro
jfacorro / HTTP.md
Last active August 29, 2015 14:22
HTTP Serpents

RESTful API for Serpents

Endpoints

POST /api/games/:game_id/serpents

To create a serpent (i.e. join a game)

Parameters

All parameters are required

Serpents

Multi-Player Game on top of HDP protocol

The Protocol

The HDP protocol consists on 5 different messages types that share a common header with some basic user information. The protocol is defined with BNFs where ALL_CAPS_IMPLY_CONSTANTS, camelCaseImplyPrimitives and the '&' is used to denote "bitwise or" (super intuitive right?) while '|' denotes that one of multiple options can be chosen.

The Client Message Header

@jfacorro
jfacorro / mapa.erl
Created June 8, 2015 18:29
Campeones - Erlang Dojo 2105
-module(mapa).
-behaviour(gen_server).
-compile(export_all).
init (_) ->
process_flag(trap_exit, true),
{ok, []}.
terminate(R, S) ->
io:format("R = ~p, S = ~p~n", [R, S]),

Keybase proof

I hereby claim:

  • I am jfacorro on github.
  • I am facorro (https://keybase.io/facorro) on keybase.
  • I have a public key whose fingerprint is 0764 32BC 4F55 907C F9EF C768 C126 40D0 BB42 3FC6

To claim this, I am signing this object:

@jfacorro
jfacorro / BPMDetect in Android.c
Created July 17, 2012 17:51
Usage of soundtouch's BPMDetect for android
#include <jni.h>
#include <android/log.h>
#include <stdlib.h>
#include <BPMDetect.h>
#include "FMODSystem.h"
#include "FMODSound.h"
#include "FMODDspBpm.h"
#include "fmod.h"
#include "fmod_dsp.h"
#include "fmod_errors.h"
@jfacorro
jfacorro / missing_otp_17.5.txt
Created November 25, 2015 15:04
Erldocs - OTP 17.5 - Missing .erl source files (and specs)
====== /Users/jfacorro/.kerl/builds/17.5/otp_src_17.5/erts ======
driver_entry
erl_driver
erl_nif
erl_prim_loader
erlang
erts_alloc
init
zlib
====== /Users/jfacorro/.kerl/builds/17.5/otp_src_17.5/lib/tools ======