[Elixir Wizards S7E10] Meryl Dakin on Changing Lanes and Switching Gears with Elixir
Meryl Dakin returns to the show this week to discuss her current work as software engineer at Knock.app, and the ways that learning Elixir had a radical impact on her programming career. https://smartlogic.io/podcast/elixir-wizards/s7e10-dakin
Building a simple Calendly clone with Phoenix LiveView (pt. 7)
👋🏼 Here’s part seven of the Building a simple Calendly clone with Phoenix LiveView series, in which we will create and update event types.
https://bigardone.dev/blog/2022/01/11/building-a-simple-calendly-clone-with-phoenix-live-view-pt-7
Happy coding!
Publiquei um curso de Elixir no Youtube https://bit.ly/elixir-na-pratica
Começamos o ano indo além e criando o curso “Elixir na prática” para apresentar a linguagem e atrair mais desenvolvedores para comunidade. https://bit.ly/elixir-na-pratica
ThinkingElixir 082: Reviewing Elixir with José Valim - Part 1
In episode 82 of Thinking Elixir, José Valim joins us to kick off part 1 of a 5 part series as we count down to the 10 year anniversary of the Elixir project we know and love. In Part 1, we talk through the Elixir releases of 1.1, 1.2, and 1.3. We cover the significant changes in each release, what instigated the change, the thinking behind it, and more. We cover some long-present features that people may not be aware of and recall what these changes meant to us.
I have launched a free cast series: Intro to Elixir
I have created a free intro to Elixir series on CodeCast: https://www.codecast.io/series/58-intro-to-elixir
It contains about 7.5 hours of video content and It’s ideal for developers with some experience who want to get into Elixir.
Who watches Watchmen - Part 1
First article of the series about integrating systemd features with Elixir (and other BEAM languages).
Conrex | An Elixir tool for isochrone and topographical maps
Conrex uses a convergent isochrone to calculate real traffic and topographic conditions. An implementation of the CONREC contouring subroutine in Elixir, Conrex is now released to the open source community.
The little story of Elixir programming language
https://curiosum.com/blog/story-of-elixir-programming-language
The Elixir language, operating on an Erlang machine, is constantly gaining more and more followers. How was Elixir created and what does it have in common with Erlang?
IntelliJ Elixir 12.2.0
Changelog
v12.2.0
Enhancements
-
Test against support IDEA versions in CI to prevent another Find Usage regression
- 2021.2.3 FindUsageTests differ from manual testings, so don’t test 2021.2.3
- Make FindUsagesTest UsageViewTreeText work for both 2021.1.3 and other versions
- Add kernel.ex to all Find Usage Tests to ensure it doesn’t work because it can’t resolve primary element
- Add find usages for def test
Bug Fixes
-
Work-around Find Usage bug due to temporary change in JetBrains API only in versions that have that change.
- Restore old find_usages.handler.Call
-
Determine whether to resolve
FindUsageHandler
primary element based on application build number Assume that are 213.* builds have the already resolved call. This excludes 2021.3, but not 2021.3.1, which includes the fix to restore the 2021.1.3 behaviour.
-
Fix HTML errors in
description.html
. - Add card one-liner.
[Installation Instructions](https://github.com/KronicDeth/intellij-elixir/blob/v12.2.0/README.md#installation
[Elixir Wizards S7E9] Brooklyn Zelenka and The Exciting World of Edge Computing
The latest episode of Elixir Wizards is out today!
Brooklyn Zelenka, co-founder and CTO at Fission, joins us in this high level conversation about edge computing, tech equity, anti-entropy, witchcraft, and the Elixir language. https://smartlogic.io/podcast/elixir-wizards/s7e9-zelenka
[blog] My experience learning Elixir as a JavaScript developer
Not many junior devs get into Elixir but I decided to learn it just 6 months after graduating a bootcamp while building my first real project, Work Happy. No regrets.
I’ve loved it and have learned so much but not without a lot of struggles. I’ve written about my experience learning Elixir as a JavaScript developer: https://medium.com/@zahradeenie/building-work-happy-learning-elixir-part-one-f3abbfbbaea9
Build Interactive Phoenix LiveView UIs with Components
Learn how to make use of functional components to create complex Phoenix LiveView UIs.
https://blog.appsignal.com/2022/01/11/build-interactive-phoenix-liveview-uis-with-components.html
[Blog] Phoenix File Uploading via Javascript
Uploading files with Phoenix and Javascript? Stephanie Vizzi has created a step-by-step reference to guide you through the process: https://smartlogic.io/blog/phoenix-file-upload-via-javascript/
S3 Storage Provider for Elasticlunr (Elixir)
I just published an S3 storage provider for Elasticlunr. You can now store your indexes to an S3 bucket aside the Disk storage provider included in the base project.
The storage API is flexible, so writing to any storage provider (Google Cloud Storage, DB and so on) shouldn’t be a problem. it’s just a matter of grabbing the right provider or implementing one yourself.
ThinkingElixir 081: Elixir in a Burrito with Quinn and Digit
In episode 81 of Thinking Elixir, we talk with Digit and Quinn Wilton about the Burrito project. It wraps up Elixir to a single binary, enables cross-platform builds using Zig to help while also enabling NIFs! They share how the security focused software they create uses this to run in isolated environments where Elixir can’t be installed. A really cool project that can be used for things like one-off scripts to long running CLI applications with full OTP features and more. They share some of the challenges they had to overcome in creating Burrito and how it being OpenSource helps the company and their project.
Elasticlunr Query DSL
Like every other search engine, you can make more advanced search queries depending on your requirements. In the remaining part of this post, I will be highlighting the available query types provided by Elasticlunr.
Read more: https://atandarash.me/blog/elasticlunr-query-dsl
Note: This is a continuation of the introductory post
IntelliJ Elixir 12.1.0
Changelog
v12.1.0
Enhancements
- Add MacPorts SDK locations to README.
-
Add support for
**
operator to lexer and parser. - Color settings for each sigil name. Both the interpolating (lower case) and literal (upper case) name use the same settings.
- Add support for stepped ranges
Bug Fixes
-
Decompile
{:|, …, …}
as cons operator in Elixir Dbgi. -
Fix missing guards when decompiling Elixr DbgI clauses using special decompiler
Guards where missing because only
decompiler.appendSignature
was used. -
Fix module.Reference.calculateDefaultRangeInElement
element.textOffset
instead ofelement.textLength
was used for end of range. -
Render
OtpErlangExternalFun
correctly as remote captures (&Mod.fun/arity
). Fixes decompilingEcto.Changeset.validate_number
. -
Protect ExUnit configuration
Producer
fromElixirFile
withoutVirtualFile
. -
Unquote.treeWalkUp
no longer assumes that the final argument tounquote
is aCall
. -
Fix Find Usages for call definitions
-
Don’t resolve primary Find Usages element.
The primary element passed to
FindUsageHandler
is now already resolved, so resolving it again for call definitions finds usages ofdef
,defmacro
, etc. -
Since the element passed to
FindUsagesProvider#canFindUsageFor
, definers can no longer be excluded, so remove that check.
-
Don’t resolve primary Find Usages element.
The primary element passed to
-
Don’t highlight
Quote
orSigil
as normal text if part of documentation. Since the annotators will run in arbitrary order, theTextual
annotator has to avoid annotating the same nodes as theModuleAttribute
annotator or the colors can get interleaved. -
Put
ENTRANCE
and Initial Visited Element in__module__.Resolver
. - Keep searching when resolving type parameters if bitstring is encountered.
-
Fix
UnaliasedName.unaliasedName
for atoms. -
Restore
ElixirAtom#getName
Lost when parser was regenerated when Elixir <= 1.6 support was dropped in 679a9689cfe097018b9baa4e894d4550a84d7aac.
Meaningful config keys in Elixir projects
A quick reminder that using a meaningful key (eg. a module name instead of an arbitrary atom) to store configuration in Elixir is quite simple and often leads to more maintainable code.
https://craft.mirego.com/2022-01-06-meaningful-config-keys-in-elixir-projects