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
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
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.
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.
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.
#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!
ActiveRecord Smell With Elixir/Ecto
A quick how-to on bringing some ActiveRecord goodness into Elixir/Ecto.
A lot of unnecessary macro tweaking included :)
→ https://dev.to/mudasobwa/activerecord-smell-with-elixirecto-6dc
Generated Module As A Guard
Better and faster way to implement validation of incoming data than just looking it up in the global config map. An example of hot module generation and reload.
How to use Elixir LS with Vim
Elixir LS is the Language Server Protocol implementation for Elixir. Vim is the greatest text editor of all time. Now it’s time to combine the two.
https://www.mitchellhanberg.com/post/2018/10/18/how-to-use-elixir-ls-with-vim/
How many functions do you have in your #erlang / #elixirlang VM?
The latest article on Erlang Battleground: https://medium.com/erlang-battleground/code-server-erlang-elixir-6faa86206f70
IntelliJ Elixir 10.0.1
-
Eliminate freezes when calculating Module and Library dependencies during project import and dependency updates.
-
Run library syncing in tasks: When importing projects, run sync as a modal task while when
VirtualFileSystemevents occur, run sync as background tasks. Either style of task is cancellable and importantly, it allows to show what is happening during the syncing. This converts the unresponsive UI beachball on macOS during import to an updating progress bar. - Calculate dep sets iteratively with a work queue instead of recursively to limit the calculation of dep set for a root to 1 time. Then use normal transitive walk to get complete dep set for module. Vastly speeds up project import.
-
Cache dep set on package
PsiFileto allow faster refreshes when indirect dependencies don’t change.
-
Run library syncing in tasks: When importing projects, run sync as a modal task while when
-
Log
nameSetwhen it reaches suspect size (10) to allow triaging if it is a real bug or just something with a lot of valid names. -
Fix inverted condition around when to warn and when to error and use
readAheadLength.
Add extra security to your image handling
Improve image handling whitelist with Elixir, https://medium.com/coletiv-stories/add-extra-security-to-your-image-handling-in-elixir-45db69aab008
