ElixirStatus gets a Dark Theme!

I migrated the ElixirStatus server today and thought this necessary change in hardware was a great opportunity to put a coat of fresh paint on this old ship.

ElixirStatus now honors your preference for “dark” or “light” themes. You can also overwrite this via the “Use (Dark|Light) Theme” link at the bottom of the page (inspired by ExDoc).

Slurp - An EVM block ingestion toolkit for Elixir

Stream blocks & events from multiple EVM blockchains with a near-uniform API

https://github.com/fremantle-industries/slurp

PhoenixLiveSessions: LiveView Integration for Phoenix Sessions

PhoenixLiveSessions is a new library for integrating Phoenix sessions with LiveViews. Store session data from LiveViews and receive session updates via PubSub. https://pentacent.com/blog/phoenix-live-sessions/

High Level Ethereum Library Gets a Stability Release

Connect and communicate via JSON-RPC to Ethereum or EVM based blockchains

https://github.com/hswick/exw3

Display nginx logs in live dashboard

Parse logs with nimble parsec and display in live dashboard https://dev.to/dkuku/nginx-logs-in-live-dashboard-jk9

display linux ps output in live dashboard

Create custom live dashboard using the table component https://dev.to/dkuku/phoenix-live-dashboard-custom-page-4chj

Elixir Wizards S5E5 Shawn Vo on Elixir as a Competitive Advantage

Latest episode of Elixir Wizards is out today! Check it out here: https://smartlogic.io/podcast/elixir-wizards/s5e5-vo/

ThinkingElixir 028: DepViz and ElixirLS with Jason Axelson

In episode 28 of Thinking Elixir, we talk with Jason Axelson who created the DepViz tool that can help improve your Elixir compile-time experience. Jason explains how to use the tool to identify where compile time dependencies may be causing issues in your project and provides tips on what to do about it. We also cover recent improvements in Elixir 1.11 and coming improvements in 1.12 and what those will mean for you! Jason is also a member of the Elixir-LSP github organization and explains the history of the Elixir-LS project and how it has grown and developed. Jason shares some tips with how to fix Elixir-LS issues when it stops working for you. He also shares some glimpses of where things may go in the future, and more!

Podcast Episode

Best practices of comprehensions in Elixir

In this article I explain tips and tricks of using for-comprehension in Elixir https://k.lelonek.me/elixir-comprehensions

Writing Rust NIFs

https://www.badykov.com/elixir/2020/12/27/rust-nifs/

Elixir and Erlang are not the most performant options for number-intensive calculations. Fortunately, they provide NIFs (Native Implemented Functions) for delegating such tasks to languages like C and Rust that good at number crunching.

Recently, I had an opportunity to work with / write Rust NIFs. Surprisingly, it’s not as hard as I thought it would be. The only skill you need to do that is the basic knowledge of Rust. In this post, I’ll explain simple steps for writing Rust NIFs and I’ll describe a couple of real-world NIFs as examples.

sync_primitives: synchronize processes using higher-level abstractions than messages

sync_primitives is an Elixir library to make it easier to synchronize processes using higher-level abstractions than messages, such as CyclicBarrier and CountDownLatch, which are inspired from the Java APIs.

Personally, I have found them are very useful in testing agent-based and multi-process Elixir apps.

sync_primitives is on Hex and on HexDocs

Client-Side Drag and Drop with Phoenix LiveView

In this tutorial, I walk you through adding SortableJS to a @elixirphoenix project to create a drag and drop interaction that makes event data available to the Phoenix LiveView using hooks.

https://www.headway.io/blog/client-side-drag-and-drop-with-phoenix-liveview

I'm giving away 5 copies of 5 Little Potions!

Ho, ho ho! 🎅 🎄🎁

This year, I’m giving the internet 5 copies of my ebook for Christmas!

It’s called, “5 Little Potions”, and it’s guide for programmers to learn Elixir by building 5 games. It’s currently about 40% finished and in early access.

https://twitter.com/AlchemistCamp/status/1341783321534025729

ExCheck 0.13: re-run failed, detect unused deps & more

Hello alchemists. I’m glad to let you all know that I’ve released ex_check v0.13, full of useful new features to supercharge your Elixir code checking workflow even further. Many of these features come from @asummers so thanks Andrew!

  • New :unused_deps curated tool runs mix deps.unlock –check-unused to ensure that there are no unused dependencies in the project’s mix.lock file (e.g. after removing a previously used dependency. This should keep your lockfiles nice & clean.

  • It’s now possible to quickly re-run checks that have failed in the last run with the –failed command line option akin to one in ExUnit, making the fixing loop even faster.

  • Manifest file backing the above feature is a plain text that may optionally be saved at path given with –manifest option so it may be easily used to produce PR comments on CI etc.

  • New –config command line option allows to point to arbitrary configuration file path e.g. for cases when you’d like to share the defaults across projects.


As a side note, to celebrate 100 stars on GitHub I’ve recently reworked the project with new logo and demo embedded in README to quickly show how mix check works. You can witness it along with my poor vim skills below :) Cheers and happy Holidays!

Renaming column and table in database migrations with Elixir and PostgreSQL

Deploying a new version of our application, with a migration which renames either column or table, on more than one node.

https://patrykbak.com/2020/12/21/renaming-column-and-table-in-migrations.html

Using Tailwind 2.0 with Phoenix

Short guide on adding Tailwind 2.0 to new or existing Phoenix projects

https://s2g.io/using-tailwindcss-with-phoenix

Elixir Wizards S5E4 Viktória Fördős on Erlang

Latest episode of Elixir Wizards is out today! Check it out here: https://smartlogic.io/podcast/elixir-wizards/s5e4-fordos/

Using has_element?/3 for better LiveViewTest assertions

It’s tempting to write LiveViewTest assertions that specify too much of our HTML. But that couples our tests to the implementation specifics. There’s a better way: the has_element?/3 helper can help us be specific without adding coupling.

https://www.germanvelasco.com/blog/using-has-element-for-better-liveviewtest-assertions

ThinkingElixir 027: Ash Framework with Zach Daniel

In episode 27 of Thinking Elixir, we talk with Zach Daniel, the creator of the Ash Framework, a declarative, resource-oriented application framework for Elixir that lets you build out JSON or GraphQL APIs in minutes. In this episode he explains the history, guiding doctrine of Declarative Design how it can give developers a huge boost without boxing them into a corner! Check it out!

Podcast Episode

Manage the Elixir application environment within a test context

https://github.com/fremantle-industries/with_env

defmodule HelloTest do
  use ExUnit.Case
  use WithEnv

  test "can put values into the env" do
    assert Application.get_env(:hello, :saying) == nil

    with_env put: [hello: [saying: "galaxy"]] do
      assert Application.get_env(:hello, :saying) == "galaxy"
    end

    assert Application.get_env(:hello, :saying) == nil
  end

  test "can delete values from the env" do
    Application.put_env(:hello, :saying, "world")

    with_env delete: [hello: [:saying]] do
      assert Application.get_env(:hello, :saying) == nil
    end

    assert Application.get_env(:hello, :saying) == "world"
    assert Application.delete_env(:hello, :saying) == :ok
  end
end
Previous page Next page