Welcome! Submit your posts for the next ElixirWeekly!

Win a copy of “Phoenix for Rails Developers” book

Visit https://twitter.com/plataformatec/status/966674101673873408 for more details about how to participate. Good luck!

Pattern matching on dynamic struct types

mod = MyMod
%^mod{} = %MyMod{foo: 42, bar: 3.14}
#⇒ %MyMod{bar: 3.14, foo: 42}

http://rocket-science.ru/hacking/2018/02/23/pattern-matching-on-dynamic-struct-types

Automated deployment setup using Distillery and Edeliver without Docker

Starting from a Unbuntu server with Nginx installed and set up with Let’s Encrypt HTTPS, we install Postgres, Elixir and Phoenix and then make an automated deployment system using Distillery and Edeliver.

After setting everything up, deployment can be done entirely from your local machine and upgrades take only only a single command.

Previously in this series:

Setting up Virtual Box with Ubuntu (on Win10)

Setting up Ubuntu on Digital Ocean

Setting up Nginx and Let’s Encrypt for free https on Digital Ocean

Digital Ocean discount link

Alchemist Camp: https://Alchemist.Camp

ElixirWeekly: The Elixir Community Newsletter, covering community news you easily miss, shared on ElixirStatus and the web, in one email every Thursday.

From Bytes to Mnemonic using Elixir

Bitcoin BIP-39 style wallet seed mnemonics sounds like a mouthful, but the underlying ideas are simple. The process of generating these mnemonics gives us an excellent opportunity to flex our Elixir muscles.

HTTP is message passing. Or - Why I stopped using Plug

I think an idiomatic Elixir web framework should be based on message passing. This post explains how to do that and why I have built an alternative to the Cowboy/Plug/Phoenix web stack.

http://crowdhailer.me/2018-02-23/http-is-message-passing/

sun_times.ex v0.1.2 released!

We have released a new version of sun_times.ex and are looking forward for your feedback and/or contributions. https://github.com/ahtung/sun_times.ex

5 tips for GDPR compliancy & protecting user data in Elixir/Phoenix

https://medium.com/heresy-dev/5-tips-for-gdpr-compliancy-protecting-user-data-in-elixir-phoenix-8952de819533

Weave 3.1.2 Released

Elixir’s bestest (that’s a real word!) config loader, Weave, releases v3.1.2 :) Now supporting :only configuration

https://hexdocs.pm/weave/readme.html

Feature Flags for Elixir

I’ve released FunWithFlags v1.0.0, a feature toggle library for Elixir with support for global state, actors, groups and percentage of time or actors (great for AB testing). It persists the data with an Ecto or Redis adapter and maintains local caches for fast lookups. Also, FunWithFlags.UI v0.4.0, its optional web GUI available as a Plug for Phoenix.

Shameless plug: Check out @elixirstatus' other community project:

Credo, a new static code analysis tool that acts as a code linter, but also focusses on teaching coding practices and code consistency.

Ecto type for IPv4 and IPv6 addresses

Blog post that shows how to implement a custom Ecto type for IP addresses:

Ecto type for IPv4 and IPv6 addresses

Ecto type for IPv4 and IPv6 addresses

Blog post that shows how to implement a custom Ecto type for IP addresses:

Ecto type for IPv4 and IPv6 addresses

Ecto type for IPv4 and IPv6 addresses

Blog post that shows how to implement a custom Ecto type for IP addresses:

Ecto type for IPv4 and IPv6 addresses

Emphatis

Tiny library to convert text into unicode bold/italic/script. Includes escript to install locally.

https://github.com/amotion-city/emphatis

Emphatis.sans_serif_bold("Hello, 2018 year!")𝗛𝗲𝗹𝗹𝗼, 𝟮𝟬𝟭𝟴 𝘆𝗲𝗮𝗿!

Flexible Dockerized Phoenix Deployments

A detailed and explanatory guide to building and running zero-dependency Phoenix (Elixir) deployments with Docker.

Works with Phoenix 1.2 and 1.3.

https://gist.github.com/jswny/83e03537830b0d997924e8f1965d88bc

ReceiptDecoder v0.3.0 has been released!

ReceiptDecoder v0.3.0 has been released, which ships with a new Verifier.


ReceiptDecoder is a tool to decode iOS App receipt in Elixir.

https://github.com/linjunpop/receipt_decoder

Example: https://hexdocs.pm/receipt_decoder/ReceiptDecoder.html#decode/1-example

format_parser.ex v0.9.0 released!

We have released a new version of format_parser.ex and are looking forward for your feedback and/or contributions. https://github.com/ahtung/format_parser.ex

AlloyCI v0.3.0 has been released!

A new version of the AlloyCI coordinator has been released. It now includes support for secret variables, only and except constraints for jobs and support for pipelines created from a fork, when a PR is submitted. Read more about it here: https://github.com/AlloyCI/alloy_ci/releases/tag/v0.3.0

Another “why immutability rules” post

A tiny blog-post on why immutability helps not only developers (which is fine,) but also compilers (which is great.) 3 minutes to read, beginners level.

TL;DR: immutability ships an immortal forget-the-invalidation application lifetime cache.

http://rocket-science.ru/hacking/2018/02/20/why-immutability-rules

Server Sent Events with Elixir/Plug

Server Sent Events with Elixir/Plug

Server-Sent Events (SSE) is a lightweight and standardized protocol for pushing notifications from an HTTP server to a client. In contrast to WebSocket, which offers bi-directional communication, SSE only allows for one-way communication from the server to the client. If that’s all you need, SSE has the advantages to be much simpler, to rely on HTTP 1.1 only and to offer retry semantics on broken connections by the browser.

https://github.com/mustafaturan/sse

Cachex v3.0.0 released!

The next major version of Cachex has been released, with many new features such as complex streaming and proactive cache warmers, and other improvements such as short-circuiting fallbacks. Check it out!