Skip to content

Instantly share code, notes, and snippets.

leikind / ets.ex
Created January 7, 2021 16:37
some ETS features
test "ets match, select, and select_delete" do
ets_table_name = :bar, [:named_table, :set, :private])
expires_at1 = ~U[2021-01-07 15:00:00.000000Z]
# ~U is just a syntax sugar for struct DateTime
IO.inspect(~U[2021-01-07 15:00:00.000000Z], structs: false)
# I would convert DateTime to unix seconds and put it as a separate field to the ets record
case do
{:error, reason} -> # pattern matching
Logger.error(["Cannot establish connection to RabbitMQ, reason:", inspect(reason)])
{:error, reason}
{:ok, connection} -> # pattern matching
{:ok, channel} = # pattern matching
Exchange.declare(channel, @exchange, :fanout)
leikind /
Created September 27, 2017 21:07

Keybase proof

I hereby claim:

  • I am leikind on github.
  • I am leikind ( on keybase.
  • I have a public key ASDfZ5OGmfASmpWp5FyIxWP0wwPHAP3YNEp0D4Xn6SQ54go

To claim this, I am signing this object:

leikind /
Last active March 14, 2017 09:13 — forked from chrismccord/
Phoenix 1.2.x to 1.3.0 Upgrade Instructions

If you want a run-down of the 1.3 changes and the design decisions behidn those changes, check out the LonestarElixir Phoenix 1.3 keynote:

To use the new project generator, you can install the archive with the following command:

$ mix archive.install

Bump your phoenix dep

Phoenix v1.3.0 is a backwards compatible release with v1.2.x. To upgrade your existing 1.2.x project, simply bump your phoenix dependency in mix.exs:

require 'set'
module Shapes
class Coordinate <, :y)
def inspect; "#{x}:#{y}"; end
class Line <, :p2)
def inspect
defmodule Efrontback.AuthExamples do
alias Efrontback.Device
alias Efrontback.User
alias Efrontback.Repo
use Efrontback.Web, :model
def no_schema() do
real_device_token = "abcdefg"
# kinda library code
def pack(v)
class Array
def unpack
leikind / pack_string_in_number_and_back.rb
Created November 4, 2016 09:31
pack a UTF8 string in a huge number, and unpack it
def string_to_number(str)
Integer('0b' + str.unpack('B*')[0])
def number_to_utf8_string(num)
str = [num.to_s(2)].pack('B*')
p string_to_number("мудак")
package main
import (


Let's build a small distributed system to mine a new cryptocurrency and become millionaires in ElixirCoins!

An ElixirCoin is a {secret_string, positive_integer} pair for which the MD5 digest of the concatenation of the secret string with the given integer is a hash whose hexadecimal representation starts with at least 5 consecutive zeroes.

For instance:

  • {"foo", 123} is not an ElixirCoin because the MD5 hash of foo123 is ef238ea00a26528de40ff231e5a97f50
  • {"Serun+u", 1} is a valid ElixirCoin because the MD5 hash of Serun+u1 is 00000011f4de73238f12fb2c57d5dc56