ThinkingElixir 106: Coding Music Live in SonicPi with Sam Aaron

In episode 106 of Thinking Elixir, we learn how the SonicPi project has been letting people live code musical performances for years. Sam Aaron joins us to talk about the project and how Elixir is playing an increased role. The project uses multiple languages and frameworks, in fact, Joe Armstrong created the Erlang portion for handling the concurrent IO needs. We talk about where the project is, what’s new in the upcoming release, and more about the future of Elixir with the project. LiveView as a UI for jamming with your friends in a distributed musical performance tool? Cool! We also talk about SonicPi being used in the education space and introducing kids to coding and much more!

Building Facebook Chat BOT | Elixir Experts

Developing Facebook Chat Bot

Header Image This is a series of 5 articles the guides you in developing the facebook chat bot from scratch from creating Facebook Developer account to Sending and Receiving Messages to Bot by adding Webhooks.

The following links are the parts of this series.
PART-1 | PART 2 | PART-3 | PART-4 | PART-5

Ecto.ERD v0.5.0 - Entity Relationship Diagram generator

Added Mermaid support


A more advanced wxErlang "Hello World"

In this post I explore a more advanced wxErlang “Hello World” example.

Siblings — Uniform Recurrent Tasks Based on Finite Automata

Published a library for managing hundreds of thousands of uniform recurrent tasks almost without code.

Elixir Outlaws Latest Episode 117: Honey Potion and Problem Solving

Last week’s Elixir Outlaws podcast episode with Amos King and Sean Cribbs.

Elixir Outlaws is an informal discussion about interesting things happening in Elixir. Our goal is to capture the spirit of a conference hallway discussion in a podcast.

The Twelve-Factor App methodology

Probably not strict Elixir related but often our apps use Heroku (or similar) and are cloud-native. It is worth knowing these rules.

The Twelve-Factor App methodology is a methodology for building software-as-a-service applications. It allows you to eliminate the most common problems with our applications. Some of them have already become the industry standard, so you should get to know them all. The methodology constitutes design guidelines strongly focused on cloud-native, portable, and resilient applications.

More on:

ThinkingElixir 105: Plausible Analytics, Elixir, and Privacy with Uku Taht

In episode 105 of Thinking Elixir, we learn about Plausible Analytics, a privacy respecting alternative to Google Analytics that is cloud or self-hostable, OpenSource and written in Elixir! Uku Taht shares how he founded the company, the mission he is on, and what he prioritizes. The company practices a “transparent by default” approach. This means they share a lot about what’s going on, this includes how they recently reached $1m ARR, some of their growing pains, and dealing with the weight of being “the one who has to fix things.” We end with a candid discussion about wellness in our profession and how when we are too close to the problems, we become blind to our own successes. A great, transparent conversation with Uku!

Web Scraping with Elixir

In this article, you’ll learn how to implement web scraping with Elixir. You’ll use two Elixir libraries, Crawly and Floki, to scrape available graphic cards at the lowest price. You can read more here:

Creating a function with inputs from a file at compile time using Elixir AST

A function body (returning a list of tuples) was being generated manually via a script from a CSV file, which was run in an iex shell manually. That was fine until we needed to translate the strings from the CSV using gettext/1 macro which was not possible with the script anymore.

This blog post shows how to create a function with inputs from a file at compile time using Elixir AST so you don’t need any manual work to keep your function body up to date!

Read more here:

Rate Limiting Server Requests in Elixir

We allow our customers to test PSPDFKit API for free. To prevent resource congestion and uncontrollable infrastructure fees, we decided to rate limit these test API calls. My post provides some background on the rate limiting and explains our rate limiting implementation in our Elixir backend.

Read more here:

Exogiri 0.3.0

Today is the first major (usable) release of Exogiri.

I got tired of not having access to the awesome power of Ruby’s Nokogiri in Elixir, so I ported it. It’s also my first major C project in a while, and my first NIF. So if you’re looking for a project to rip a new one - I encourage you to dig on in.

Currently accepting feedback on:

  • Unimplemented minimum viable project features (stuff that would prevent you from even using the library)
  • Features from libxml2 I forgot to document as unfinished
  • Possible memory leaks
  • Gotchas with NIFs I just plain missed
  • There are platforms the extension doesn’t build on
  • Dude that just isn’t how you do things in C

Grab it here:

Let know where I might have biffed it here:

PostgreSQL Queries on JSONB Fields with Ecto

Ecto is a great library for making composable queries, but to query a JSONB field within a schema, it requires falling back to native PostgreSQL functions. Check out our story while working on features for theScore Bet

Controlling Supervisors at runtime with feature flags

At Knock we needed a way to be able to gracefully degrade our system by turning off our Broadway Kinesis consumers at runtime, without needing to redeploy our service. This post explores how we did that using feature flags via LaunchDarkly.

Lisbon Elixir meetup back June 29th

the @LisbonElixir meetup will be back on June 29th after a long hiatus, at @pagerduty’s office 🥳 come nerd out about @elixirlang and @NervesProject #elixir #myelixirstatus #meetup #lisbon

Add Toaster in Phoenix LiveView application

This blog demostrate how to add Toaster message in Phoenix LiveView application.

Avoid test setup pollution (and 4 problems it creates)

I’m not big fan of using shared setups in Elixir such as setup [:create_user]. I often feel that it adds more problems at the cost of a somewhat debatable convenience.

For example, it sometimes creates unused data or introduces mystery guests, or the data created needs to be updated anyway. Or it simply obscures the test by separating the context in which the test runs from the exercise and verification.

I wrote a bit about that in a post.

ThinkingElixir 104: Exploring Our Data with Chris Grainger

In episode 104 of Thinking Elixir, Chris Grainger explains Explorer, Nx’s recent addition. It’s a “Data Frame” library which sounds far more nebulous than it is. It lets us explore and manipulate two-dimensional data like we already do with DB tables, spreadsheets, CSV files, etc. Only this works in memory, is faster, and has predefined functions that make it very powerful. Explorer fills an important slot in the overall pie for data science and ML in Elixir. However, Explorer is also one of the tools that “regular” Elixir devs can take advantage of today.

IntelliJ Elixir 13.1.1


Bug Fixes

  • Fix Project Initialization Failed from New > Project > Elixir
    • Catch and log IOExceptions swallowed by Project Initialization Failed.
    • Recursively delete project directory before running mix new. Previously, the directory was only deleted if empty, but whether the .idea directory is written when setupProject is called differs between IDE versions, so to be safe, recursively delete.
  • Fix Go To Definition for function in compiled modules. When switching over to delayed decompilation, ModuleImpl did not have processDeclaration overloadded, so the PsiScopeProcessor was never called on it and so the CallDefinitionClause scope processor did not check the ModuleImpl#callDefinitons.
  • Implement Deprecated metadata handling for docs from BEAM files.
  • Don’t assume Elixir SDK sdkAdditionalData is non-null.
  • Don’t restrict Run Configurations to Run in Modules to Elixir modules. The docs for ModuleType say the concept is meant to be deprecated, so don’t enforce it and trying to load ElixirModuleType in RubyMine breaks as it tries to load ElixirModuleBuilder and therefore JavaModuleBuilder, which only works in IntelliJ.
  • Add the facet in a write action in addition to setting the SDK.
  • Increase SUSPECT_NAME_SET_SIZE to 20. Increased to cover the 15 impls of String.Chars in the geo hex package.
  • Log if erl binary is not found when trying to run mix format. Log instead of letting it throw up the stack and cause an error report since the SDK not being set will be very common.

Installation Instructions

Poznań Elixir Meetup #14

The long awaited Poznan Elixir meet-up, vol.14

We’ll be covering trending Elixir topics, with industry experts sharing their knowledge & opening the floor for discussion. BBQ / grill & beer will be catered for🔥🍻

Next page