Elixir Blog Posts

A while back I wrote a post on BEAM Process Labels, which is becoming more relevant now that Elixir 1.17 is nearing release and OTP 27 is already out.

TL;DR you can now put non-unique labels on processes, which will show up in Observer and in some error messages.

1 Like

While I sympathise with some of the ideas recently discussed in a simpler web framework without plug phoenix, this post goes through an issue I encountered when trying to simplify things rather than using what phoenix provides: On the dangers of minimalism.

1 Like

I wrote down some advice for junior programmers pairing with more experienced folks based on things Iā€™ve learned from people on both sides of those scenarios: Junior Pairing Scripts :: The Programmer's Stone

2 Likes

Hi all,

I think asdf is a common tool for managing Elixir and Erlang versions, but I recently explored various version managers and was really pleasantly surprised by pkgx. Itā€™s a newer tool, so it might not be as well known, but I found it really straightforward and efficient.

Iā€™ve written an article detailing my experience and setup process with asdf, nix, and pkgx. Iā€™d love to hear your thoughts and any feedback as I continue to learn and grow in the Elixir community:

Perfect Elixir: Environment Setup

You might want to add mise to your article. asdf is old news. :slight_smile:

1 Like

Haha great, thanks, Iā€™ll add that in next I have some time.

Surprisingly I donā€™t manage to get mise working. I wrote down my steps, would you have time to give them a look-over to spot what I do wrong?

Not sure you need that global config file, mise creates it for you if memory serves.

This is what I have in my ZSH init script:

eval "$(mise activate zsh)"
eval "$(mise direnv)"

And it works just fine.

If you only install it + include this in your shell init file(s) (the latter only if you use direnv), you should be just fine. Are you getting any error?

2 Likes

I installed mise (on Linux via curl) as a drop-in replacement for asdf last week and it works great.

mise activate is needed in order for mise to find the correct path for all installs. Itā€™s used during shell initaliziation - if you put it in your .bashrc/.zshrc everything should be fine.

mise picks up existing .tools-versions (or .mise.toml). In a project folder you can type mise use to install all tools specified in the file and use them in the local folder.

You can also install a tool globally e.g. mise use -g elixir@latest. This adds a global .mise.toml, so no need to create a .mise.toml in the home folder (this is not the default place, but if it exists then mise will use this instead of the default global .mise.toml and also warn you about it).

Hope that helps!

2 Likes

Oh wow I had misunderstood the documentation even more, I didnā€™t realize that was the command to add to .zshrc. Thanks for the clarification, I got mise to work now and have added it as a new section to the article. Thanks for the suggestion!

1 Like

Turbocharge your Ecto Schemas with This One Trick (Allowing special characters in schema field names)

A quick and easy read. Hope you enjoy :slight_smile:

1 Like

Just got through your article. One remark: youā€™re putting too much responsibility in the hands of these tools while you yourself correctly point out that part of the issues are social and canā€™t be solved with technology.

Example: youā€™re saying that with mise you can have the latest version of rg but that your colleague may not.

This is irrelevant to any such version manager due to:

  1. It canā€™t enforce what your colleagues are doing unless the company mandates the same tools and practices for everyone (IMO a good idea, we the programmers suffer from despairingly high levels of individuality at times).

  2. It overemphasizes the usually extremely minor
    / rare issues of backwards incompatibilities of tools. I can assure you that the authors of e.g. rg and jq are extremely conscious of how many people rely on them and they very rarely allow themselves such frivolities.


I understand you want to be thorough. For a reader like myself however, Iā€™d prefer if you weighted the potential issues you wanted to point outā€¦ and outright skip those that are highly unlikely to happen (a 2-line footnote is more than enough). Makes for a more engaging and shorter read thatā€™s also denser with useful actionable information.

My $0.02.

1 Like

New blog post about Elixir, Phoenix, and the OWASP Top 10. A frequently recommended security guide, the Top 10 is a useful resource for developers. Learn how to use it effectively in your own work!

1 Like

banner
About a month ago, I wrote an article on how to use the cross-platform version management tool vfox to install and manage multiple Erlang/OTP and Elixir version under Linux system ā†’ Install mutiple Erlang and Elixir with vfox. the demonstration operation system used in the article is Ubuntu 20.04 Linux operation system.

Recently, the latest version of the vfox-erlang and vfox-elixir plugins has supported the installation and management of multiple version of Erlang/OTP and Elixir under Windows platforms. and has passed the End to End test ā†’ Testing.

E2E testing

This article will use the Windows 10 operation system as an example to teach you how to install and manage multiple Erlang/OTP and Elixir version on Windows platforms.

> Get-ComputerInfo
WindowsBuildLabEx                                       : 22621.1.amd64fre.ni_release.220506-1250
WindowsCurrentVersion                                   : 6.3
WindowsInstallationType                                 : Client
WindowsProductName                                      : Windows 10 Pro
......

article link (read more details) ā†’ https://dev.to/yeshan333/amazing-how-to-manage-and-install-multiple-versions-of-erlangotp-and-elixir-via-vfox-in-windows-32bp

2 Likes

A short posts with thoughts about new Efx library that has been published recently

5 Likes

Not my blog, but a neat post anyways - walks through bringing up a World of Warcraft-compatible private server from scratch.

https://pikdum.dev/posts/thistle-tea/

6 Likes

Hey everyone, I published a blog mini-series on creating ā€œSDKsā€ with Req:

Any feedback is very welcome!

15 Likes
3 Likes

Wouldnā€™t you be better off controlling the visibility of the editor rather than the entire element? Youā€™re pushing the entire content down each time you toggle. That content is not going to change when youā€™re in preview mode.

Just published this very beginner-friendly guide: Test-driven Development in Elixir: Building a Rate Limiter with ExRated, ExUnit, and Doctests

I am eager to improve this with feedback, let me know what yā€™all think!

1 Like