elixirboy's profile picture. Have *you* fallen for #ElixirLang yet? TILs and reflections from my 10 years with Elixir.

Cranking out Elixir for Jump on weekdays. Cooking on my days off.

Max ▷ Elixir

@elixirboy

Have *you* fallen for #ElixirLang yet? TILs and reflections from my 10 years with Elixir. Cranking out Elixir for Jump on weekdays. Cooking on my days off.

مثبتة

TIL: You can define `fetch/2` in your struct-defining module and have it return anything you want for the `[]` operator: #ElixirLang

elixirboy's tweet image. TIL: You can define `fetch/2` in your struct-defining module and have it return anything you want for the `[]` operator:

#ElixirLang

Neovim geeks 🫶 — this helps me debug in #ElixirLang: With the cursor inside a function, :ElixirCopyFuncFqn copies its fully qualified name (FQN) to the clipboard — ready to paste into IEx, local or remote. github.com/mxgrn/dotfiles…


My favorite application of AI? Sharpening my tools. Just vibe-coded this toggle for #ElixirLang maps in Neovim.


Want to disable all unmocked HTTP calls from Req at once during #ElixirLang tests? Simply add this to test/test_helper.exs: Req.default_options( adapter: fn req -> raise "Unmocked call to #{req.url}" end ) (replace `raise` with a log warning if that's more useful)


It's easy to keep nudging the AI until it 'fixes' the tests, and it feels like achieving something, while the value of such tests may be plainly negative. Seeing too many false positives like that lately.


Isn’t it neat that Elixir’s AST is valid Elixir? What other languages besides Lisp can claim that?


A very nice, concise introduction to Elixir and BEAM. Share it with anyone who's willing to understand why you're so lucky to work with the tech. youtu.be/_5B_B_IgtAg

elixirboy's tweet card. Practical Arguments for Erlang / Elixir - Shawn McCool

youtube.com

YouTube

Practical Arguments for Erlang / Elixir - Shawn McCool


Me: What's your current favorite escape hatch when LiveView doesn't quite cut it? Chris McCord: Web components with Lit. #ElixirConfEU cc @atomkirk


Using two screens, I find it tiresome not to quickly see which screen is currently active. I googled it and found HazeOver. Quickly felt relief, recommended. #protip


At work, just submitted my first PR which is 100% vibe-coded. It literally saved me a couple hours of codebase research and coding. AMA.


Vibe Mitigation Engineer. Full-time, on-site.


When to name your #ElixirLang function with a bang? Only if the function is *expected* to throw errors during normal execution. Do not simply 'inherit' bangs from what’s inside that function (`Repo.update!`) if those exceptions would signal a bug (that is, should never happen).


AI won't create anything fancy itself. It's good at producing building blocks, though, from which you, human, can build the fancy.


Just published my first Hex package—one that no one else should even consider using. It was simply the easiest way to get its documentation into Dash. Am I doing it wrong? #elixirlang Still picked a fancy name for it, just in case.


As much as I enjoy vibe coding with the Claude Code CLI, it hasn't been able to write a simple LiveView with just a single-field form in it. Someone needs to teach it best practices.


Apparently, there's already put_private for that: hexdocs.pm/phoenix_live_v…

LiveView pros, have you considered using Process.put/2 and Process.get/1 instead of socket assigns in those cases when that data wouldn't change during the lifetime of a LiveView? Example: I pass something in a session to a LV that I want to be accessible from its components.



Today is the day I, too, moved to Ghostty. Big thanks to Alacritty for serving me well over the years! Feel free to discover a cool trick or two from those I've collected in the last few hours: github.com/mxgrn/dotfiles…


Woke up to this. LiveView 🎉

elixirboy's tweet image. Woke up to this. LiveView 🎉

Loading...

Something went wrong.


Something went wrong.