Skip to content

Instantly share code, notes, and snippets.

@zhiguangwang
zhiguangwang / websocket-elb.md
Last active April 23, 2019 20:23
Configure websockets behind an AWS ELB.
@yujikiriki
yujikiriki / scalabooks.md
Last active October 13, 2015 04:03
Bibliografía recomendada para aprender Scala, por niveles.
@rauhs
rauhs / humanize-schema-errors.clj
Last active May 27, 2023 05:29
Translate prismatic's schema.core errors to a human readable form. Use this for presenting validation errors to users. Don't use this for programming errors like a missing map key etc.
(ns x.y
(:use [plumbing.core]) ;; Just for the map-vals
(:require [clojure.walk :refer [postwalk prewalk prewalk-demo postwalk-demo]]
[clojure.core.match :refer [match]]
[schema.utils :refer [named-error-explain validation-error-explain]]
[schema.core :as s])
(:import (schema.utils NamedError ValidationError)))
;; Partially FROM:
;; https://github.com/puppetlabs/clj-schema-tools
@ubernil
ubernil / cidr_calc.ex
Created July 28, 2015 14:26
CidrCalc
defmodule CidrCalc do
def addresses_for(ip) do
{:ok, range_start, range_end}= String.to_char_list(ip) |> :orber_acl.range(:inet)
[net_a, net_b, net_c, net_d] = Enum.zip(convert(range_start), convert(range_end))
|> Enum.map(fn {s, e} -> s..e end)
for a <- net_a, b <- net_b, c <- net_c, d <- net_d, do: {a, b, c, d}
end
defmodule Knox.Ecto.Hstore do
@behaviour Ecto.Type
def type, do: :hstore
def blank?, do: false
def load(t), do: { :ok, t }
def dump(t), do: { :ok, t }
def cast(t), do: { :ok, t }
end
@henrik
henrik / chain.exs
Last active December 4, 2020 05:41
Silly #elixir-lang macro experiment for Ruby-like method chaining. Don't use this for serious purposes :)
defmodule Chain do
defmacro chain(ex) do
parse(ex)
end
defp parse({:., _, [first_arg, function_name]}, more_args) do
args = [first_arg|more_args] |> Enum.map(&parse/1)
apply(String, function_name, args)
end
@doc """
Convert a floki tree to html again
"""
def tag_parser(list) do
{tag, options, children} = list
formatted_options = options |> Enum.map(fn option ->
{key, value} = option
"#{key}='#{value}'"
end) |> Enum.join(" ")
@sescobb27
sescobb27 / id.go
Created July 6, 2015 14:26
generating "sequential" random IDs
package main
import (
"crypto/rand"
"fmt"
"log"
"math/big"
"time"
)
@guilleiguaran
guilleiguaran / maybe.rb
Last active September 7, 2015 04:18
Maybe Monad
require 'singleton'
class Maybe
def self.unit(value)
if value.nil? || (value.respond_to?(:empty?) && value.empty?)
Nothing.instance
else
Just.new(value)
end
end
@BinaryMuse
BinaryMuse / README.md
Last active April 20, 2022 21:45
Elixir Map/HashDict Performance on Erlang OTP R17 vs R18