GenServers and Memory Images: A Match Made in Heaven

Who needs a database when you have GenServers? Check out how you can use GenServers to implement a Memory Image architecture in your Elixir application!

Spandex - A platform agnostic tracing library

An adapter based tracing library that supports creating adapters for any platform. Currently, the only adapter is a Datadog APM adapter, but building and configuring new ones is easy.

https://github.com/zachdaniel/spandex

Elixir Barcelona - José Valim & Xavier Noria

A recording of the streaming emitted during the meetup of Elixir Barcelona user group with a Q&A with José Valim and a talk of Xavier Noria (A Tour of the Elixir Source Code).

https://www.youtube.com/watch?v=i0iy4mo83v8

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.

String.Naming to call UTF8 by name

In this post we’ll build the relatively same to Elixir’s String.upcase/1 stuff to address fancy UTF8 symbols by their names. The whole codebase contains 119 LOCs. In the end we’ll yield a bundle of modules, providing functions returning the UTF8 symbol given it’s name as a function name. The practical use of this package is beyond the scope of this post, but I am positive there could be many.

— http://rocket-science.ru/hacking/2017/06/20/string-naming-module

Security Scanning Your Phoenix App

Do you have a Phoenix web project that you do not want hacked? Is PCI Compliance important for your project? Wouldn’t it be great if automated security scans happened on every code change?

This post is an intro to using the new Phoenix security scanning project “sobelow”. Covering using with umbrella projects and running the scans with a Continuous Integration system.

http://bit.ly/2sW9zab

Elixir for Java Developers, Episode II

Here goes the second episode to help Java developers to better undestand how Elixir works. This post covers how we control flows, do loops and handle exceptions in Elixir compared to Java.

https:[email protected]/elixir-for-java-developers-episode-ii-a75c368c6e13

Integrate PayUMoney Payment Gateway In Node.js and Meteor.js

In Skyward we keep exploring new things and keep sharing things with developers. This post will help you to integrate payumoney payment gateway integration in Node.js and Meteor.js.

When we started integrating we have not found any node.js code from payumoney so we decided to study their PHP and ASP.net code and implemented the same in Meteor technology. Which you can easily use in node.js also. For more http://www.skywardsoftwares.co.in/blog/integrate-payumoney-payment-gateway-in-node-js-and-meteor-js/

Going real-time with Phoenix Channels and RethinkDB

Ever wondered what would happen if you combine Phoenix Framework, RethinkDB, Elm and Webpack? Let’s find out. The first part shows how to set up your project from the very beginning, add dependencies and glue it all together. The second one describes database interactions and real-time updates.

OpenCagex - OpenCage Geocoder API client

OpenCagex v0.1.0

Just published OpenCagex, OpenCage Geocoder API wrapper. It provides simple and easy to use reverse (coordinates to address) and geocode (address to coordinates) via OpenCage Geocoder API.

https://github.com/dsantosmerino/open-cagex

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

Page-Specific Titles in Phoenix

I just made a DailyDrip episode on Page-Specific Titles in Phoenix free in response to someone asking about them on Slack. Hope you like it!

Multi Tenancy in Phoenix 1.3

http://www.schmitty.me/multi-tenancy-in-phoenix/

Giving Phoenix Contexts some Context

Because of the recent debate and confusion on what the new Phoenix Contexts that are going to be added in Phoenix 1.3 do for you, I wrote a blog post explaining my vision regarding Contexts: https://panache.nu/blog/giving-phoenix-contexts-some-context

WebSockex 0.3.0

WebSockex Version 0.3.0 Released!

There’s one breaking API change in this release:

  • The parameters for the handle_connect/2 callback have been reversed. The order is now (conn, state).

Take a look at the Release Notes or the v0.2.0..v0.3.0 diff for more information.

MIX task to decompiling Elixir modules to Erlang

Sometimes, to debugging, it is very interesting to see low-level Erlang code generated by Elixir compiler. This simple task can help with it.

$ mix debeam Some.Module > some_module.erl
$ cat some_module.erl
-compile(no_auto_import).

-file("lib/simple_module.ex", 1).

-module('Elixir.Simple.Module').

-export(['__info__'/1]).
...

https://hex.pm/packages/mix_debeam

exmqttc - Your trusty MQTT client

exmqttc is my wrapper library for the emqttc Erlang MQTT library that sprinkles on some callback magic and nice Elixir API - it could also serve as a nice example of how to used travis.ci for hex.pm release automation, test integration and so on.

https://hex.pm/packages/exmqttc

Ex Manga Downloadr - Part 7: Properly dealing with large Collections

If you read my small post about using Flow I stumbled upon a performance problem, but José Valim showed me the correct way with Task.async_stream and I just posted about it here

A basic OpenTracing demo in Elixir with Otter

I made a quick example showing how to get started with OpenTracing and Elixir. It uses the wonderful Otter library for Erlang. The example code has a mix.exs file and shows off a couple of cool features like tagging spans and adding logs.

https://gist.github.com/yonkeltron/ceb500d5f3a19c1a9ce1bed4e6298817

BetterParams for Phoenix

BetterParams is a simple Elixir Plug that lets you pattern match on Request params in controllers using Atom keys instead of String ones.

# web/controllers/some_controller.ex

def show(conn, %{id: id}) do
  # do something
end

Yep, that’s it. I wrote it because of my OCD. 😛

Ex Manga Downloadr - Part 6: The Rise of FLOW

I just posted a new blog post on how I moved my pet project code from using a custom Task.Supervisor, Poolboy and custom GenServer to control batches into the new GenStage-based Flow library. The results are quite good but not as good as I expected. If anyone have any insights, let me know.

Testing Absinthe with ExUnit

I was playing about with Absinthe and wanted to write some tests for it, I wrote up how I went about it. Testing Absinthe with ExUnit.