Elixir Blog Posts

Tags: #<Tag:0x00007f114a0811c0> #<Tag:0x00007f114a080ea0> #<Tag:0x00007f114a0804c8>


Using Elixir’s GenStage and Flow to build product recommendations. A real-world example of building a computational parallel pipeline using Flow. Step-by-step guide to building, visualising and optimising a pipeline built with the new Flow library.

Crowdsourcing product mentions, applying sentiment analysis, and scoring to rank products. Used to build the Start learning Elixir recommendation website. I’ve used this forum to source product mentions and recommendations for learning Elixir.


I’m the author of that article. Ping me if you have any questions about CQRS/ES and Elixir.


btw, I created a to collect top resources about Elixir. After all, there’re too many resources. Check out it: https://github.com/tony612/the-zen-of-elixir


@mkunikow posted a link to this article earlier, it has some flattering comments about Elixir :003:

Elixir appeals largely to those with Ruby or Erlang backgrounds. Its creator, José Valim, was a Rails Core developer, so it’s no surprise his creation draws much of its inspiration from Ruby. Because of its esoteric syntax, Erlang has been one of the least approachable programming languages. Yet it sits atop an incredible piece of technology. It’s the same technology which handles most of the phone calls in the world with 99.9999999% uptime. That is 32 milliseconds of downtime a year. The creators of WhatsApp scaled to hundreds of millions of users with only a few developers in part thanks to its robustness. Elixir brings this technology to the broader public.

Thanks to the Phoenix framework, Elixir will attract a lot of Rails developers. It feels like the next generation of Rails in a functional flavored Ruby. It does things with ease that Ruby has been hacked into doing: long-running processes, multi-core processing, and WebSockets, among others. I think we’ll see Elixir use grow for both monolithic-style minimum viable products and for apps that require high user concurrency like chat, messaging, and audio/video calls. The platform can also see interesting uses in Internet of Things and machine-to-machine applications because of its ability to handle large numbers of connections.[/quote]



Wrote a blog post on the value of multiple changesets:

Hope you find it helpful. Any feedback is a welcome.


A post was split to a new topic: CodeSchool’s new Try Elixir


Blogged some of my recent thoughts:



Hi Everyone,
I just wrote a blog about using Elixir processes as aggregate roots in DDD. Please let me know your views about it.


What’s the added value of GenServer in this example? If read caching is what you’re looking for, I think ETS would be a much better idea. Using GenServers to represent objects makes your application complicated and brittle. For instance, since you’re using casts, in a high load situation the message queues can keep growing until the VM runs out of memory.

It’s similar to the discussion on To spawn, or not to spawn? and the Functional Web Development with Elixir, OTP, and Phoenix book thread.


Here is a blogpost about some not so basic aspects of Elixir, https://blog.10pines.com/2017/05/11/dissecting-elixir/ hope you enjoy it


I really like that, a great description overall and I’m still only part-way through. :slight_smile:


I just published an article about refactoring std_json_io library, hope will be of interest for some of you: https://medium.com/@chvanikoff/lets-refactor-std-json-io-e444b6f2c580.


Hmm, that’s a cool read, I love seeing how such things change and develop. :slight_smile:


This is a great summary. I think it could be improved even further by mentioning one important aspect - naming things.

In particular the naming conventions around packages that build on top of other packages, e.g. ecto extensions, some reusable plugs, etc. It’s tempting to put your library under the Ecto.Whatever namespace, but that’s a bad idea. The Ecto namespace is already owned by the Ecto package itself and it’s easy to see what problems it might cause if it decides to add a module called Ecto.Whatever itself. It’s usually a much better idea to make the main namespace WhateverEcto or EctoWhatever - something unique to the new package.


Firstly Thanks for taking time and having a look. That means a lot to me. :bouquet:
what you mentioned is highly important . I don’t how I missed that.
Thanks a lot for pointing out.


Medium article was great.

However tbqh the youtube audio sounds like you are speaking orcish with your head stuck in a toilet bowl. You might want to flush that one and re-record.


This was interesting:

wish = fn -> fn -> fn -> IO.write "this is chain" end end end
wish.().().()   # usage

Are there any examples of this being useful/being used in e.g. elixir lang or other well-written projects?


Thanks for that … definitely will take care of that … Thanks for the feed…