Learn about Elixir, the exotic concurrent language which may take over the world in a few years

First impressions, feature summary and many resources to get started.

http://cfenollosa.com/blog/the-elixir-of-concurrency.html

Recursively iterating in the wild with Elixir

Here is the quick blog post on recursion in Elixir and when to use it:

http://novarac.com/recursion-in-the-wild-elixir/

Building Phoenix Battleship (pt. 3)

The third part of the Building Phoenix Battleship series where I cover the game setup phase, including joining a game and creating player boards.

http://codeloveandboards.com/blog/2016/05/21/building-phoenix-battleship-pt-3/

Merkle Trees in Elixir

The Merkle hash tree is an incredibly useful data structure used in a wide range of modern applications. Merkle trees are used in the IPFS file system, BitTorrent protocol, Git, Bitcoin, Ethereum, and a number of NoSQL systems like Apache Cassandra and Riak.

Read more about Merkle Trees in Elixir

Eikōn v0.0.2 ~ An Elixir image parsing library

Today has been released Eikōn v0.0.2, an image parsing library that provides a read-only interface. PNG and GIF files are now supported !

You can find it on GitHub and Hex.

ElixirConfEU 2016 videos have started going up on Youtube

As the title really, thanks to the Erlang Solutions channel.

Erlang Solutions - ElixirConfEU 2016 Playlist

Simple Markov Chains using Elixir

As a toy project to learn Elixir, I ported a Markov Chain written in Ruby to Elixir.

It generates funny tweets, like:

iex(1)> ExChain.create_filtered_sentence
{:ok, "I'm not a Food Social Network?", 0.4668037713169559, 4}
iex(2)> ExChain.create_filtered_sentence
{:ok, "I am in churros.", 0.30839889769910056, 2}

Suggestions are welcome.

The source code and instructions on how to use it are on github.com/eljojo/ex_chain

How to config environment variables with Elixir and Exrm

A useful technique to config an Elixir (Exrm) release with environment variables.

How to config environment variables with Elixir and Exrm « Plataformatec Blog

Family Ties part 4, discussing variable scoping in Erlang and Elixir

Posted the fourth of a continuing series of articles on similarities and differences between Erlang and Elixir. This article covers variable scoping in the two languages, comparing Elixir’s caret operator with Erlang’s single assignment, and exploring a few surprises in the scoping rules.

http://daniel-azuma.com/blog/2016/05/17/family-ties-4-scoping-out-the-scene

Index of previous articles in the series: http://daniel-azuma.com/articles/family-ties/

Strip feature in #EDIB (Elixir Docker Image Builder) makes images even smaller!

edib-tool 1.3.0 now includes a tiny but awesome tool which helps to minimize the image size even further: ExStripZip.

With mix-edib v0.7.0 you can utilize it pretty easily:

$ mix edib --strip

and your images will become up to 40 - 45 % smaller. (If you can squeeze out more, tell me about your success.)

Chris’ Phoenix Chat Example App (with Ecto stuff removed): demo for strip feature

The lower barrier is around 10 MB (empty app without any hex dependencies) for stripped releases (unstripped: ~ 18 MB).

Furthermore there is also the option –zip, but you should use it only if you know that there are no NIFs in your app or its dependencies. (The savings of this compression are pretty small and not really worth the effort, as docker images are compressed anyway.)

Happy (tiny) image building!

Fluxter v0.3.1—an InfluxDB writer for Elixir—has been released

New version supports “batching”: a batch is a metric aggregator designed to locally aggregate an numeric value and flush the aggregated value only once to the storage, as a single metric.

This is very useful when you have the need to write a high number of metrics in a very short amount of time. Doing so can have a negative impact on the speed of your code and can also cause network packet drops.

Full documentation is available online.

Elixir's Behaviours vs Protocols

I often see people ask about the difference between Behaviours & Protocols. They exist in the same topic space of bringing polymorphic attributes to Elixir, but they do so by working with different parts of the language.

If you’d like to read more: Behaviours vs Protocols: what’s the difference anyway?

Process name registration in Elixir

https://www.amberbit.com/blog/2016/5/13/process-name-registration-in-elixir/

Creating Elixir libraries as OTP applications

I wrote a blog post about the topic https://www.amberbit.com/blog/2016/5/10/creating-elixir-libraries-as-otp-applications/

Chronic 1.1.0 released

Chronic is a natural language date time parser written in Pure Elixir. It’s a re-implementation of the Chronic gem from Ruby-land.

You can use it to parse times like:

Chronic.parse("Tuesday 9am")

Into their Calendar.NaiveDateTime versions.

tqdm 0.0.2 released

Hi everyone!

I have just released tqdm, a (partial) Elixir port of the popular Python library of the same name.

tqdm allows you to add CLI progress bars to your long running processes in a second. Just wrap your enumerables (that is, Lists, Maps, Streams, Ranges, and anything else that has an Enumerable implementation) in Tqdm.tqdm, and it will look something like this:

tqdm

Check out the docs and start adding progress bars to your CLI apps today!

ex_cli 0.1.0 released

I just released ex_cli 0.1.0, a library to build user friendly CLI applications.

It provides a nice DSL to define a CLI app, takes care of parsing arguments, displaying meaningful error messages and formatting usage. More cool stuff, such as per-command help and man page generation, is coming. See the roadmap for more info.

Here is a small screencast of the generated CLI app.

screencast

which is generated by writing a module like this:

defmodule MyApp.xCLI do
  use ExCLI.DSL, escript: true

  name "mycli"

  command :hello do
    description "Greets the user"
    argument :name
    option :from
    run context do
      if from = context[:from] do
        IO.write("#{from} says")
      end
      IO.puts("Hello #{context.name}!")
    end
  end
end

For more info, checkout the repository:

https://github.com/tuvistavie/ex_cli

couchdb_connector 0.3.0 released

Just one day after ElixirConf.EU, here comes a new release of couchdb_connector \o/

Version 0.3.0 sports basic authentication as its biggest new feature, plus some small improvements and enhancements.

Family Ties part 3 posted - conventions and tricks around names in Erlang and Elixir

Posted the third of a continuing series of articles on similarities and differences between Erlang and Elixir. This article covers naming rules and conventions in the two languages, and some tricks for getting around their differences.

http://daniel-azuma.com/blog/2016/05/12/family-ties-3-its-all-in-a-name

Let's Build Something: Elixir, Part 5b - Testing Our Data Validation and Logging

Finishing up Part 5 with some more tests, particularly around capturing log events. http://tech.strofcon.org/2016/05/lets-build-something-elixir-part-5b.html

Previous page Next page