ThinkingElixir 096: Reviewing Elixir with José Valim - Part 4

In episode 96 of Thinking Elixir, José Valim returns for part 4 in our 5 part series as we count down to the 10 year anniversary of the Elixir project we know and love! In Part 4, we talk through the Elixir releases of 1.10, 1.11, and 1.12. We go deeper on the philosophy of “explicit vs implicit” and how that informs many design decisions about the language. We learn about how Elixir and Erlang loggers were unified, how matching on map keys in guards enabled receives block enhancements, how common date sorting bugs were solved with Enum.sort improvements (that you should really listen to), the improvements to application config, how exceptions work in Erlang and Elixir and much more! A packed episode!

https://podcast.thinkingelixir.com/96

Using Profiling in Elixir to Improve Performance

In this post, we explore three profiling tools you can use to find performance issues in Elixir — cprof, eprof, and fprof: https://blog.appsignal.com/2022/04/26/using-profiling-in-elixir-to-improve-performance.html

Adding traceability to Elixir applications with Spandex: our experience

In November 2021, we decided to give the Spandex library a try after reading an interview with its author on the Datadog website. After a successful initial setup, we identified one main improvement that needed to be done, which was to be able to distinguish the different layers. Also, there were a few issues: a lack of links between traces and logs, incorrect Datadog statuses with HTTP errors, and trace losses in asynchronous tasks. In this article, we will describe how we fixed these issues using existing pull requests, reported issues, and articles written by Spandex maintainers. https://medium.com/wttj-tech/adding-traceability-to-elixir-applications-with-spandex-our-experience-1b97978146e2

Refresh your development workflow

If you are tired of calling recompile within the interactive elixir shell and want to have a similar experience as with phoenix, give lettuce a try!

Autocomplete field in Phoenix Live View, Surface, and TailwindCSS

I know it’s a mouthful, but hear me out:

I’ve been looking for an autocomplete field that worked for my purposes (lookup in the database, not in memory, and support multiselect and the ability to limit the number of items a field could support.

Since it couldn’t find it and being the dumb dev that i am, i obviously wrote my own.

https://pedroassuncao.com/posts/autocomplete-field-in-phoenix-live-view-surface-and-tailwindcss

(pt-br) Adopting elixir - https://youtu.be/oxNQ5gLW6hU

A story of elixir adoption.

Page Specific Javascript with Phoenix LiveView and Esbuild

Learn how to split your LiveView Javascript pagewise with esbuild, so your main app.js file stays small and people only download and execute the javascript they require.

https://aswinmohan.me/pagewise-js-liveview

Don’t Write Exploding Streams

Discusses issues that arise when creating streams that throw exceptions for mundane failure conditions. https://tylerayoung.com/2022/04/25/dont-write-exploding-streams/

Loosely Coupled Phoenix Contexts

It’s great to be blogging again. I’ve put a short post together about how to achieve low coupling in Phoenix contexts with Kafka!

https://mikeybower93.github.io/posts/loosely_coupled_phoenix_contexts

Self-hosting Web Analytics with Plausible

Plausible Analytics is of course built with Elixir and I’ve wanted to poke it for a long time. I don’t do any analytics on my site though so this one is for you all out there that might be eyeing Google suspiciously or simply trying to obey the law.

https://youtu.be/KgyEQpCsUXw

[Elixir Wizards S8E2] Devon Estes on The Power of Functional Programming

The latest episode of Elixir Wizards just hit your feed! Check it out at https://smartlogic.io/podcast/elixir-wizards/s8e2-estes/

Elixir StyleGuide part 2: even more tips and tricks

What are the other possibilities of organizing, structuring and formatting your Elixir code? Part 2 of tips&tricks regarding code alignment: https://k.lelonek.me/elixir-styleguide

Inflating Git objects with Elixir

In this post I explore inflating Git commit objects using Elixir. https://hidnasio.github.io/elixir/2022/04/20/inflating-git-objects-with-elixir.html

Pagination with Phoenix LiveView

In episode 142 we’ll look at how easy it is to add pagination to an Phoenix LiveView.

https://elixircasts.io/pagination-with-phoenix-liveview

ThinkingElixir 095: Rustler Precompiled with Philip Sampaio

In episode 95 of Thinking Elixir, we talk with Philip Sampaio to understand the Rustler Precompiled project he created and what problem it helps solve. The project helps lower the bar for using Rust libraries for NIFs in Elixir making it possible to see more libraries using Rustler in the future. He explains what prompted the work initially and how projects can benefit from it. We discuss what it means for internal company projects and especially for libraries. He explains how the project addresses the many architecture and platform combinations too. We end with learning about his sample CI project that shows us how to set up our own CI systems to use it.

https://podcast.thinkingelixir.com/95

Elixir Meetup #4 ▶ hosted by Curiosum ▶ Michael Lubas & Bartosz Górka

https://youtu.be/4BHHhSvrQdo

SPEAKERS:

Michael Lubas is the founder of ▶ https://paraxial.io - a company focused on detecting and blocking malicious bots targeting Elixir and Phoenix applications. Michael has worked with Elixir for several years, and his professional background is in software security.

Bartosz Górka ▶ https://bartoszgorka.com is a Software Engineer looking for challenging problems to solve. His mission is to help people build their businesses based on well-built software. He is the author of a blog where he publishes information related to the world of Elixir, productivity and the team management.

IntellIJ Elixir v12.2.1

Changelog

v12.2.1

Bug Fixes

  • #2579 - @KronicDeth

    • Don’t call .navigationElement to prevent unnecessary decompilation when resolving references or showing completions.
      • Don’t call navigationElement in ChooseByNameContributor
      • Don’t decompile Protocols to get their specific t type
      • Don’t call .navigationElement when resolving built-in types in :erlang
      • Don’t use navigationElement in CallDefinitionClause.implicitImports for Kernel and KernelSpecial.Forms.
      • Don’t call .navigationElement in reference.resolver.Module.multiResolveProject Prevents decompiling modules when doing completion.
      Handle PsiCompiledElement in places that previously only handled source and decompiled Calls
      • getElementDescription for ModuleImpl
      • Complete call definition under binary modules
      • Don’t look for variables in compiled elements
      • Don’t assume elements have a non-null node Decompiled elements don’t
      • Index TypeDefinitions in .beam files Only supported built-in types faked in :erlang for now
      • Walk ModuleImpl for scope.Type

Installation Instructions

if !Enum.member?(satisfied_employees, you), do: you.read()

ISO several Lead Elixir Engineers to lead development for a game-changing SaaS platform! This is a full time, 100% remote (within the US) position with a highly ranked Forbes best startup! Come Join Boulevard! https://jobs.lever.co/boulevard/4caa90a8-4f25-45a0-98f6-4032a9ca8642

if !Enum.member?(satisfied_employees, you), do: you.read()

ISO several Lead Elixir Engineers to lead development for a game-changing SaaS platform! This is a full time, 100% remote (within the US) position with a highly ranked Forbes best startup! Come Join Boulevard! https://jobs.lever.co/boulevard/4caa90a8-4f25-45a0-98f6-4032a9ca8642

Animating error tags in Phoenix LiveView

Adding animations to your error handling with function components and slots 🦥

https://blog.mave.io/animating-error-tags-in-phoenix-liveview-71ffbaefc9d6

Previous page Next page