ExVenture Updates for April 2018
This month ExVenture, a text based multiplayer game server, started going distributed! There were a few other game updates but the biggest news is being able to use distributed Erlang clustering for load balancing.
Connecting an Elixir Node to the Bitcoin Network
The first step in participating in Bitcoin’s peer-to-peer network is connecting to your first peer node. Check out how we can use Erlang’s :gen_tcp to connect to a node, and send hand-crafted packets to kick off communication.
Hammer v4.0.0
Hammer is a rate-limiter with pluggable backends.
Version 4.0.0 introduces a new worker-pool implementation for backends:
Thoughtful Logging in Elixir: A Phoenix Story
The choices you make at foundational points of your architecture can have massive implications down the road for your Elixir applications. By taking an informed approach to logging, you can set yourself up for success.
https://www.verypossible.com/blog/thoughtful-logging-in-elixir-a-phoenix-story
Migration script supports migrate/rollback/seed when releasing Phoenix/OTP app by Distillery
Writing a migration script to run migrate/rollback/seed when releasing Phoenix/OTP app by Distillery
https://thefirstapril.com/2018/04/23/Running-migration-in-Distillery/
ModestEx - First major release v1.0.0
ModestEx - Pipeable transformations on html strings (with CSS selectors), e.g. find(), prepend(), append(), replace(), remove(), insert_after(), insert_before(), etc.
Raxx.Kit micro framework for web applications, 0.4.3 released.
Get started in seconds with Elixir web applications using Raxx.
Generated project includes a lightweight web layer and automatic recompilation. Options include support for bundling JavaScript and using Docker.
plymio_codi v0.1.0
Last one from me this week is first release of plymio_codi. Codi is a tool for building and compiling quoted forms for common code patterns. Think: bang functions, delegations. For example create bang functions for one or more functions in a module.
plymio_funcio v0.1.0
Another new package plymio_funcio. Lots of utility functions, especially for enumerables - including mapping elements concurrently in separate tasks.
plymio_fontais v0.1.1
First release of plymio_fontais) this week. It was written as a support package for the Plymio and Harnais package families but all the functions are general purpose.
Encoding Ecto structs into JSON
Today’s episode covers one simple problem—how to encode Ecto structs into JSON.
There are a few ways to do it, but using @derive in the struct’s definition to implement the Poison.Encoder protocol is the cleanest way.
Elixir, Phoenix, CSRF tokens and gloomy foreteller
Mateusz wrote a blog post which explains CSRF protection in Phoenix.
elasticsearch-elixir v0.3.0
The :elasticsearch
package now has better support for Elasticsearch 6.x+. Read more in the Upgrading Guide.
Bubblescript - beyond the DSL
Blog post explaining how Botsquad.com’s interpreted DSL for writing conversational apps and chatbots works, from an Elixir point of view.
Asynchronicity in Elixir - Best effort vs. Guaranteed execution
Talking about pragmatic approaches to asynchronicity in Elixir and introducing Rihanna, a brand new database-backed job queue.
http://samueldavies.net/2018/04/18/asynchronicity-in-elixir-best-effort-vs-guaranteed-execution/
elasticsearch-elixir v0.2.0
New release supports connecting to multiple Elasticsearch clusters in a single OTP app or umbrella.
Accent - Developer-oriented translation tool built with Elixir
We open-sourced a tool we use to manage translations in web applications, iOS app and Android apps. The app is built with GraphQL, Absinthe, Ember.JS and Apollo.