I hereby claim:
- I am leikind on github.
- I am leikind (https://keybase.io/leikind) on keybase.
- I have a public key ASDfZ5OGmfASmpWp5FyIxWP0wwPHAP3YNEp0D4Xn6SQ54go
To claim this, I am signing this object:
| test "ets match, select, and select_delete" do | |
| ets_table_name = :bar | |
| :ets.new(ets_table_name, [: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 Connection.open(amqp_url) do | |
| {:error, reason} -> # pattern matching | |
| Logger.error(["Cannot establish connection to RabbitMQ, reason:", inspect(reason)]) | |
| {:error, reason} | |
| {:ok, connection} -> # pattern matching | |
| {:ok, channel} = Channel.open(connection) # pattern matching | |
| Exchange.declare(channel, @exchange, :fanout) |
I hereby claim:
To claim this, I am signing this object:
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: https://www.youtube.com/watch?v=tMO28ar0lW8
To use the new phx.new project generator, you can install the archive with the following command:
$ mix archive.install https://github.com/phoenixframework/archives/raw/master/phx_new.ez
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 < Struct.new(:x, :y) | |
| def inspect; "#{x}:#{y}"; end | |
| end | |
| class Line < Struct.new(:p1, :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) | |
| [v] | |
| end | |
| class Array | |
| def unpack | |
| self[0] | |
| end |
| def string_to_number(str) | |
| Integer('0b' + str.unpack('B*')[0]) | |
| end | |
| def number_to_utf8_string(num) | |
| str = [num.to_s(2)].pack('B*') | |
| str.force_encoding(Encoding::UTF_8) | |
| end | |
| p string_to_number("мудак") |
| package main | |
| import ( | |
| "fmt" | |
| "github.com/nfnt/resize" | |
| "image/jpeg" | |
| "io" | |
| "os" | |
| ) |
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