Smooth Token Emission for Elixium

We’ve recently implemented smooth token emission for the Elixium Network, which means that block rewards for miners will be more evenly distributed and will scale down without massive downward spikes. The algorithm for smooth emission is also weighted to distribute more tokens early on in order to incentivize early adopters.

ElixirMix Podcast 026 - Higher Level Functions with Bill Peregoy

In this episode of Elixir Mix, the panel talks with Bill Peregoy. We talk about coming to Functional Programming, GenStage, good macro hygiene, and much more!

Podcast Episode

How DeltaCrdt can help you write distributed Elixir applications

I created DeltaCrdt to help me build Horde, and this blog post is about how you can use DeltaCrdt to build your own distributed applications in Elixir.

https://medium.com/@derek.kraan2/how-deltacrdt-can-help-you-write-distributed-elixir-applications-dc838c383ad5

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

Why you should not miss CodeBEAM Lite Amsterdam

The CodeBEAM lite Amsterdam edition is fully packed with great talks. Check out this blogpost for a sneak peak into the programme.

https://www.botsquad.com/beam/events/2018/11/06/codebeam-lite/

Unit testing functions that interact with other processes

In part 1 of this series I went over a couple rules that I follow when writing unit tests. Now I’m going to dig in to some of the specifics of how to unit test certain types of behavior that can be a little tricky to do properly. In part 1 I said that unit tests test all functionality within a single process. But then how can we unit test something that talks to another process?

http://devonestes.herokuapp.com/unit-tests-in-elixir-part-2

CyberSource Payment System — The implementation guide using Elixir

The guide we wanted to have before integrating the Cybersource payment system into an Elixir module -> blog post.

Anise helpers/assertions for Absinthe Testing

Anise helpers/assertions for testing Absinthe Queries/Mutations/Subscriptions.

The Actor model for web clients using GenBrowser

GenBrowser enables web clients to send and receive messages like an Elixir process.

I have written the following introduction, including a brief comparison to Phoenix Channels

http://crowdhailer.me/2018-11-04/introducing-genbrowser/

Going Bare Metal with Elixir and GRiSP

A blinking light tutorial on how to use Elixir on the GRiSP platform.

https://medium.com/@toensbotes/going-bare-metal-with-elixir-and-grisp-8fa8066f3d39

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.

Phoenix 1.4 Chat Server: Part 2

In this episode we generate the needed contexts, schemas, migrations, controllers, views, and templates for users, their credentials and chat rooms. We also create relations between users and their credentials and set up password hashing.

Unlike Part 1, nothing in this one was specific to Phoenix 1.4.

TMIB-22: This October, the short form of `committer` was fixed

https://bors.tech/newsletter/2018/11/01/tmib-22/

Jupyter Notebooks with Elixir and RDF

I just published a post today ‘Jupyter Notebooks with Elixir and RDF: Using IElixir in JupyterLab with the SPARQL.Client package’.

The post very briefly touches on the role of Jupyter Notebooks as computational notebooks which integrate live code, text, math and media.

It then shows how we can use the IElixir kernel to run a Jupyter Notebook with Elixir as our language of choice. Using the TestQuery module developed in an earlier post it shows how this can be used within a Juyter Notebook context to run SPARQL queries using the SPARQL.Client package directly from the notebook and to process the SPARQL query result sets.

Mafia game using Elixir + Elm

https://github.com/igor-drozdov/mafia is a web application for playing Mafia game offline

This is the blog post about the backend architecture behind this game: https://ihar.me/elixir/2018/10/26/mafia-werewolf-game-elixir-phoenix-elm/

𝕰𝖝𝖛𝖆𝖑𝖎𝖇𝖚𝖗 → Smart Validation In Elixir

Exvalibur is the generator for blazingly fast validators of maps based on sets of predefined rules.

Under the hood, it generates a module with many different clauses of the same valid?/1 function with direct hardcoded pattern matches and guards on the input.

Here is the blog post shedding a light on what goodness it provides and h)ow is it implemented → https://dev.to/mudasobwa/--smart-validation-in-elixir-4bcm

POA Network, Compound, and ConsenSys announce collaboration on Ethereum client written in Elixir

NEW YORK, NY, October 31, 2018 — Today POA Network, Compound, and ConsenSys announce that they have formed a collaboration on an open-source Ethereum client called Mana written in Elixir.

https://medium.com/poa-network/poa-network-compound-and-consensys-announce-collaboration-on-ethereum-client-written-in-elixir-b265d048402?fbclid=IwAR1uQmTRRrTS7WJ60z6tsAONhry0XRBwtIPHrTe8OeR_C11ahqhNM--_aBY

The Dangers of Genservers

When I first started Elixir, I had a hard time figuring out if I should wrap all my code in a GenServer, or what the boundaries were while utilizing them.

In my new blog post I go over the pitfalls of using GenServers and potential strategies to avoid them.

https://lure.is/blog/elixir/dangers-of-genservers

#Spawnfest 2018 is less than a month away!! Get your team ready!

#spawnfest is happening in less than a month!!

The annual 48-hour free online development competition for the BEAM community around the world where you have exactly one weekend to create the best applications you can.

Participation in 100% Free of Charge and you can win some amazing prizes.

Register your team or just yourself and join us on November 24th-25th, 2018 :)

Don't Repeat Your Domain Knowledge

I often feel that we are not using modules/classes/functions to extract domain knowledge often enough.

In this post, I discussed why we need DRY and when is the best time to do it: https://dsdshcym.github.io/blog/2018/10/26/dont-repeat-your-domain-knowledge/

TL;DR:

  • We need DRY because we need to eliminate the duplication of knowledge.
  • Both “abstract later” and “abstract early” are bad.
  • What we really should do is to look out for our domain knowledge and persist them as part of our code.

ElixirMix Podcast 025 - Rethinking Config with Saša Jurić

In this episode of Elixir Mix, the panel talks with Saša Jurić. We talk about Elixir configuration management best-practices, his new Elixir in Action (2nd Edition) book, and much more!

Podcast Episode

Offset and Cursor Pagination explained

https://www.jackmarchant.com/articles/offset-and-cursor-pagination-explained