Elixir Meetup #5 ▶ hosted by Curiosum ▶ Miguel Cobá & Michał Buszkiewicz

5th Elixir Meetup hosted by Curiosum We discussed 2 presentations of our Elixir experts:

  • Miguel Cobá: Elixir, Kubernetes and minikube
  • Michał Buszkiewicz: A Framework for Unified Authorization in Elixir

Check the video!

REGISTER FOR THE NEXT ELIXIR MEETUP: ▶ https://curiosum.com/meetups/elixir

Using IO.puts and IO.inspect in ExUnit tests

By default in the test env, Phoenix doesn’t show IO.puts/IO.inspect outputs in the console. Debugging without access to these two functions may be a pain in the neck. Fortunately, there is a simple solution, you can apply in just a few seconds. Check the TIL: https://curiosum.com/til/io-puts-and-inspect-in-exunit-tests

Elixir is taking over! 5 Elixir Meetups behind us - check how was it!

Five Elixir Meetups are behind us! Who were the speakers, how many people attended, what is the idea? https://curiosum.com/blog/elixir-is-taking-over-meetups-curiosum-behind

Read raw request body from Plug.Conn after parsers

If you ever tried to use Plug.Conn.read_body/2 and it returned nil, you now know that it can only be used once. If you have :json in your Plug.Parsers, you cannot read the raw body again, because it was already used by the parser. That’s a trick Plug does to save memory as request bodies can be of any size. However there’s a way to cache the raw body when you need it:

Read more: https://vinibrasil.com/plugrawbody

Showing how to use LiveView with Nerves

These are a few of my favorite things, as they say. I had no voice but it turned out quite artistic. Love to my editor for that. https://youtu.be/Fude1tM3kg0

ThinkingElixir 100: 10 Years of Elixir with José Valim

The 100th episode of Thinking Elixir is spent with José Valim celebrating 10 years of Elixir. We close out our 5-part series talking about the recent 1.13 release, the upcoming 1.14 release and looking into the future and v2.0. We learn that many features were created with Nx in mind but are still broadly helpful to Elixir developers. José gives a 1-minute explanation of how ex_unit works, explains what usually makes it into a point release, and how adding stepped ranges meant changes to many Enum functions and so much more! In addition to Elixir, we talk about his journey with Dashbit and we end up learning how the song “The Final Countdown” by Europe might actually be teaching functional programming and recursion?? A super packed episode!


Livebook for Elixir: Just What the Docs Ordered

Check out some top tips for using Livebook in Elixir and find out how to create interactive docs. https://blog.appsignal.com/2022/05/24/livebook-for-elixir-just-what-the-docs-ordered.html

Using parcel as the build tool for Phoenix

I have written a walk-through for integrating parcel as the build tool in phoenix applications. https://blog.cvkmohan.com/using-parcel-as-build-tool-for-phoenix

Phosphoricons Elixir

Published an hex.pm package for the fantastic @_phosphoricons. Now you can use them juicy icons in LiveViews and Surface. Special thanks to @mveytsman for paving the way with the @HeroIcons lib. https://hex.pm/packages/phosphoricons

Owl v0.3.0 - a toolkit for writing command-line user interfaces in Elixir

A new version of the library has been released.




  • Support marking args in Owl.System.cmd/3 as secret
  • Add Owl.System.shell/2
  • Change order of arguments in Owl.IO.puts/2
  • Add Owl.IO.inspect/3
  • Support ranges in Owl.IO.multiselect/2
  • Add solid_rounded borders style
  • Add Owl.Data.slice/3
  • Add Owl.Data.truncate/2
  • Add Owl.System.daemon_cmd/4 and Owl.Task.run/1


  • Send :rendered immediately on empty buffer
  • Don’t recreate timer on empty buffer
  • Printing tag structs in autoselect

Shining Access

Blogged on how Access is great, and how it has been used to produce LazyMap, the structure which allows lazy evaluation of values, with caching and transparent access.


10 Years of Elixir

This event celebrates the tenth anniversary of the Elixir programming language. https://adolfont.github.io/service/events/10YearsOfElixir/

TIL: Cancel the scheduled send_after message

Sending a message to yourself as a process is an easy way to schedule an action to retry. However, it is not always necessary to send this message. Find out how easy it is to cancel a scheduled message.

More on: https://bartoszgorka.com/til-cancel-scheduled-send-after-message

Ecto's uniqueness constraint vs Rails' uniqueness validation

I really like how Ecto’s uniqueness constraints integrate with our database’s unique index. Having come from Rails, it was a pleasant surprise to know we could use the power of database constraints from within our app.

With Rails, we can add uniqueness validations, but there’s always a chance we’ll have race conditions. So, it always felt like a somewhat incomplete solution. Ecto solves that nicely by rescuing the database error and turning it into a nice error message.

✍️ https://www.germanvelasco.com/blog/ecto-uniqueness-constraint-vs-rails-uniqueness-validation

ThinkingElixir 099: Slipstream and Tree-Sitter with Michael Davis

In episode 99 of Thinking Elixir, Michael Davis explains Slipstream, a Phoenix channels websocket client library that enables Elixir applications to become a client of a Phoenix channel on another server. Out of this work, an underlying websocket library was created built on mint, which has now officially become part of the mint project. We talk about other libraries in the same space and why Slipstream was created. Michael was also involved in the recent Tree-Sitter Elixir work that Github celebrated and he shares some insight into that work as well!


(pt-BR) Criando aplicação com Phoenix Channels and NodeJS https://youtu.be/hdS7a8x5vdE

Criamos uma aplicação usando Phoenix Channels https://youtu.be/hdS7a8x5vdE

React and Phoenix LiveView in 2022

ReactJS in a LiveView world https://blog.nootch.net/post/react-and-phoenix-liveview-2022/

A library for writing readable regexes in functional style

Elixir library for writing regular expressions in functional style.


  • Readable and human-friendly.
  • Less error-prone.
  • 100% compile-time, no overhead in runtime.
  • Will fallback to runtime if needed (if you use dynamic content like variables).
  • Well documented with lots of examples.
  • Optimized and readable output.


Elixir meetup talk: Elixir, Kubernetes, and minikube

This Wed, May 11th, at 18:00 CET I’ll present my talk:

“Elixir, Kubernetes, and minikube”

This is a free & online meetup so you can join from everywhere.

I’ll have a surprise for the attendants, so don’t miss it.


Classifying Data Center IP Addresses in Phoenix with Radix Trees

When a new client connects to your web application, are they coming from a data center IP address? This is a common signal the client is a bot, and not a human user. If you own a ticket sales website, and hundreds of clients from data center IP addresses are buying tickets before real users, that’s a problem. Learn how to solve it in this blog post!


Next page