Skip to content

Instantly share code, notes, and snippets.

View zambal's full-sized avatar

Vincent Siliakus zambal

  • Amsterdam, Netherlands
View GitHub Profile
defmodule IOListTest do
use Marker
Application.put_env(:marker, :result_type, :iolist)
component :simple_list do
items = for c <- @__content__, do: li c
ul items
end
@zambal
zambal / import_text.exs
Created April 17, 2015 16:54
False unused import warning
defmodule ToImport do
def hello do
"Hello"
end
end
defmodule Test do
import ToImport
defmacrop precompile(expr) do
@zambal
zambal / test.ex
Created March 28, 2015 10:20
Binding issue with eval_quoted and quote/unquote
defmodule P do
defmacro precompile(call, block) do
{ expr, _ } = Code.eval_quoted(block[:do], [], __CALLER__)
quote do
def unquote(call) do
unquote(expr)
end
end
end
end
@zambal
zambal / dirty_scheduler_test
Last active August 29, 2015 13:56
Dirty scheduler tests with markdown parsing
Performed on a MacBook Pro (2009) with a Intel® Core™2 Duo CPU P8700 @ 2.53GHz × 2, running Ubuntu 13.10
doc_size: Mardown document size in KB
doc_times: Number of times document is parsed
ring_multiplier: Number of rounds messages are passed between 1000 processes
dirty_scheduler: Use NIF dirty scheduler true/false
TEST1 (two schedulers):
@zambal
zambal / sendfile.erl
Created December 12, 2013 13:04
Minimalistic example that exposes unexpected file:sendfile/5 behaviour.
-module(sendfile).
%API
-export([server/0, clients/0]).
%Internal loops
-export([client/1, acceptor/2, loop/2]).
server() ->
@zambal
zambal / xmerl_demo.ex
Last active December 31, 2015 00:29 — forked from sasa1977/xmerl_demo.ex
defrecord :xmlAttribute, Record.extract(:xmlAttribute, from_lib: "xmerl/include/xmerl.hrl")
defrecord :xmlText, Record.extract(:xmlText, from_lib: "xmerl/include/xmerl.hrl")
defrecord XmlNode, element: nil do
def from_string(xml_string, options // [quiet: true]) do
{doc, []} =
xml_string
|> to_unicode_char_list
|> :xmerl_scan.string(options)
@zambal
zambal / gist:5792462
Last active December 18, 2015 13:49
Enum with lots of sugar
defmodule Enex do
defmacro map enum, clauses do
fnc = {:fn, [], [clauses]}
quote do: Enum.map(unquote(enum), unquote(fnc))
end
defmacro reduce enum, acc, clauses do
fnc = {:fn, [], [clauses]}
quote do: Enum.reduce(unquote(enum), unquote(acc), unquote(fnc))
end