Welcome! Submit your posts for the next ElixirWeekly!

A More Type-Driven Elixir Workflow? Maybe

Let’s see how Dialyzer can help us ensure correctness of our types, by exploring how we could model an optional value of a struct field.

https://well-ironed.com/articles/a-more-type-driven-elixir-workflow-maybe/

Running in Production Podcast 001: Using Phoenix at a Medical University with Gabriel Robertson (OvermindDL1)

In this episode of Running in Production, Gabriel Robertson talks about how he uses Phoenix and Elixir to build and deploy an ever changing internal web application that medical University employees, health officials and students use to access various systems and resources.

Listen to the Show

ElixirMix Podcast 077: Elixir at PepsiCo eCommerce with Jason Fertel

In this episode of ElixirMix, we talk with Jason Fertel about how Elixir is used at PepsiCo. We discuss his ElixirConf sponsor presentation, solving supply chain management with Elixir, how using Elixir had a positive effect on hiring, their tech stack, and much more!

Podcast Episode

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

Lexers and Parsers: Letting Business Write Business Logic

Using Erlangs built-in lexing and parsing libraries we can easily define restricted and safe grammars that will let your business team define simple rules in your system. Essentially offloading arbitrary business logic to the business team themselves.

https://by.ben.church/Lexers-and-Parsers:-Letting-Business-Write-Business-Logic

Phoenix LiveView Tutorial, Part 2: Bootstrap Your Messenger App

In the latest episode of our Modern Talking with Elixir series, Michał explains how to create DB structure and first LiveView pages for a Messenger app.

There is an overview of Ecto schemas behind the app’s data model, and essential LiveView callbacks are explained on a practical example.

The Primitives of Phoenix LiveView

The Primitives of Phoenix LiveView

This episode is focused on LiveView’s primitives, exploring the necessary bricks to build an app with this technology. A special look at what happens behind the scenes, understanding the Life-cycle while inspecting websocket messages and DOM updates.

Using Nested Phoenix Templates

In this episode we’ll look at how to precompile Phoenix templates in nested directories.

https://elixircasts.io/how-to-create-nested-phoenix-templates

Caching with Elixir and ETS

Get started using ETS as a caching mechanism in your Elixir applications and pick up some useful tips and tricks.

https://blog.appsignal.com/2019/11/12/caching-with-elixir-and-ets.html

Highlights from the Big Elixir 2019

We had a great time at the Big Elixir – check out our recap for highlights on some of our favorite talks and moments from the conference.

https://blog.smartlogic.io/highlights-from-the-big-elixir-2019/

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.

Broadway, RabbitMQ, and the Rise of Elixir Part 1

In this blog post I cover how to setup RabbitMQ along side Broadway to create a powerful yet simple data processing pipeline. Check out Part 1!

https://akoutmos.com/post/broadway-rabbitmq-and-the-rise-of-elixir/

RabbitMQ Admin Dashboard

Introducing fast_html

After 2 years of great service from HtmlSanitizeEx in Pleroma, we started to work on a faster HTML sanitization engine because people were doing things like making multi-megabyte posts which HtmlSanitizeEx has had problems handling.

The first part of this work was released for the general public today as the fast_html module, a C-Node which wraps the Myhtml library.

Elixir users may be familiar with Myhtmlex, another module which wraps the Myhtml library as a NIF or C-node, but fast_html was forked and rewritten from the ground up to be as performant a C-node as possible.

In most synthetic benchmarks, fast_html outperforms both the Myhtmlex and html5ever NIFs and uses the newer ei library over the legacy erl_interface one.

How to use data spanning multiple data sources in Elixir

We use Ecto to talk to our databases, which is the de facto standard in Elixir. In this post, we’re going to focus on advanced usage of one of its features: “preloading” of the related data.

https://rekki.dev/how-to-use-data-spanning-multiple-data-sources-in-elixir-50f39c87d8fc

Adopting Elixir at FindHotel

Elixir is the “new kid on the block” in Findhotel’s tech stack. I explain why we decided to use Elixir at FindHotel and how we approached its adoption.

https://blog.findhotel.net/2019/11/adopting-elixir-at-findhotel

Rete algorithm implementation in Elixir, a journey into Logic programming

I just wrote about my latest challenge https://medium.com/elixir-bytes/logic-programming-the-infamous-rete-algorithm-in-elixir-b2fb4de85e5e?sk=7bb7ada651b422992604dba7a667960e

Intro to Phoenix LiveView for web developers who don't know Elixir

Should it be a Multi Page App or a Single Page App?

Multi Page Apps are relatively simple, but you’re limited in what you can achieve.

Single Page Apps allow you to build a much richer UX, but you pay for it in terms of increased complexity and lower productivity.

It would be nice if there was an option that allowed you to build a rich UX, without all the complexity associated with Single Page Apps, right?

Well, that’s exactly what Phoenix LiveView offers.

Want to learn more about Phoenix LiveView?

Checkout my new screencast which provides an introduction to LiveView for web developers who don’t know Elixir. (If you do know Elixir, I think you’ll still find this video helpful)

Elixir Trickery: Using Macros & Metaprogramming Without Superpowers

Metaprogramming sounds scary, but in Elixir you don’t need supernatural powers to use it to great success. Read Michał’s article at Curiosum.dev to learn about how macros work & see some useful macro writing techniques.

Using Dataloder.KV to call APIs lazily

A short post on getting started with Dataloader.KV - example code included.

Using Dataloder.KV to call APIs lazily

Oban Recipes Part 7: Splitting Queues

The seventh Oban recipe outlines a technique for running a distinct subset of queues on each node in a cluster.

Oban Recipies Part 7: Splitting Queues

ElixirMix Podcast 076: MUD Development and Grapevine

In this episode of ElixirMix, we catch up with Eric Oestrich about his project Grapevine and his live coding online. Grapevine is open source and a great resource for people to look at. We cover the different OTP concepts employed, how it is architected, deployed, what people can learn from it, and much more!

Podcast Episode

IntelliJ Elixir v11.3.0

Enhancements

  • Show Parameter Info (⌘+P/Ctrl+P)

Bug Fixes

  • Fix must specify non-empty ‘commandLine’ parameter
  • GeneralCommandLine’s escaping for Windows can’t handle the parentheses in a way that both works for the Windows shell and Elixir running the code the shell hands off. Removing the parentheses leaves runnable code even if it is no longer formatted.

    Fixes “Unknown Version” naming for Elixir SDKs and the “Probably SDK installed in … is corrupt” dialog from appearing.

Installation Instructions