Skip to content

Instantly share code, notes, and snippets.

View elbrujohalcon's full-sized avatar
🇪🇸
Working from Catalunya

Brujo Benavides elbrujohalcon

🇪🇸
Working from Catalunya
View GitHub Profile
@elbrujohalcon
elbrujohalcon / kvs.erl
Created October 7, 2017 19:59
Examples for my Blog
-module(kvs).
-behavior(gen_server).
-include_lib("mixer/include/mixer.hrl").
-mixin([{ base_server
, [ handle_info/2
]
}]).
@elbrujohalcon
elbrujohalcon / kvs.erl
Last active October 7, 2017 19:48
Examples for my Blog
-module(kvs).
-behavior(gen_server).
-export([start/0, store/2, retrieve/1]).
-export([init/1, handle_call/3, handle_cast/2]).
-type from() :: {pid(), Tag :: term()}. %% gen_server doesn't export a from/0 type
-type key() :: atom().
-type value() :: term().
@elbrujohalcon
elbrujohalcon / kvs_SUITE.erl
Created October 7, 2017 19:22
Examples for my blog
-module(kvs_SUITE).
-export([basic_test/1]).
-export([all/0]).
all() -> [basic_test].
basic_test(_) ->
{ok, _} = kvs:start(),
@elbrujohalcon
elbrujohalcon / kvs.erl
Last active October 6, 2017 12:55
Examples for my Blog Post
-module(kvs).
-behavior(gen_server).
-export([start/0, store/2, retrieve/1]).
-export([init/1, handle_call/3, handle_cast/2]).
start() -> gen_server:start({local, ?MODULE}, ?MODULE, #{}, []).
store(K, V) -> gen_server:cast(?MODULE, {store, K, V}).
@elbrujohalcon
elbrujohalcon / maybe_server.erl
Created September 26, 2017 03:01
Maybe Server v4
-module(maybe_server).
-behaviour(gen_server).
-export([start_link/0, sleep/0, stop/0]).
-export([init/1, terminate/2, handle_call/3, handle_cast/2]).
%% EXTERNAL API ------------------------------------------------------------------------------------
start_link() -> gen_server:start_link({local, ?MODULE}, ?MODULE, #{}, [{debug, [log, trace]}]).
@elbrujohalcon
elbrujohalcon / maybe_server.erl
Created September 26, 2017 02:40
Maybe Server v3
-module(maybe_server).
-behaviour(gen_server).
-export([start_link/0, stop/0]).
-export([init/1, terminate/2, handle_call/3, handle_cast/2]).
%% EXTERNAL API ------------------------------------------------------------------------------------
start_link() -> gen_server:start_link({local, ?MODULE}, ?MODULE, #{}, [{debug, [log, trace]}]).
@elbrujohalcon
elbrujohalcon / maybe_sup.erl
Last active September 26, 2017 02:28
Maybe Supervisor
-module(maybe_sup).
-behaviour(supervisor).
-export([start/0, stop/0]).
-export([init/1]).
%% EXTERNAL API ------------------------------------------------------------------------------------
start() -> supervisor:start_link({local, ?MODULE}, ?MODULE, #{}).
@elbrujohalcon
elbrujohalcon / maybe_server.erl
Created September 26, 2017 02:17
Maybe Server v2
-module(maybe_server).
-behaviour(gen_server).
-export([start_link/0, stop/0]).
-export([init/1, terminate/2, handle_call/3, handle_cast/2]).
%% EXTERNAL API ------------------------------------------------------------------------------------
start_link() -> gen_server:start_link({local, ?MODULE}, ?MODULE, #{}, [{debug, [log, trace]}]).
@elbrujohalcon
elbrujohalcon / maybe_server.erl
Created September 26, 2017 02:09
Maybe Server v1
-module(maybe_server).
-behaviour(gen_server).
-export([start/0, stop/0]).
-export([init/1, terminate/2, handle_call/3, handle_cast/2]).
%% EXTERNAL API ------------------------------------------------------------------------------------
start() -> gen_server:start({local, ?MODULE}, ?MODULE, #{}, [{debug, [log, trace]}]).
@elbrujohalcon
elbrujohalcon / expand.erl
Created June 5, 2017 12:23
Sample for my new blog post
-module(expand).
-export([good/0, bad/0, wat/0]).
good() ->
ListIn = [a, b, c],
Expansions = [{a, [expanded]}, {b, [expanded, too]}],
proplists:expand(Expansions, ListIn).
bad() ->