Sign in

David Bernheisel

@david.bernheisel.com
1.2K followers 168 following 288 posts

erlef.org Board Member | Working at tv-labs | bernheisel.com | Founder of zest.dev (consultancy) #ElixirLang

PostsRepliesMedia
Reposted by David Bernheisel
Brian Meeker @brianmeeker.bsky.social · 11/09/2026
Big thanks to everybody who came out to #ElixirConf lightning talks tonight. My repo for verified pub/sub is available at github.com/CuriousCurmu.... Feedback welcome before I publish the first version of the Hex package. #ElixirLang
github.com
GitHub - CuriousCurmudgeon/verified_pubsub: Builds compile-time checks on top of Phoenix.PubSub, similar to Phoenix.VerifiedRoutes. Define your topics and messages up front and get compile-time valida...
Builds compile-time checks on top of Phoenix.PubSub, similar to Phoenix.VerifiedRoutes. Define your topics and messages up front and get compile-time validation. - CuriousCurmudgeon/verified_pubsub
1216
Reposted by David Bernheisel
Erlang Ecosystem Foundation @erlef.org · 01/09/2026
We are happy to announce that Oban Pro oban.pro has joined in financial support for the EEF. com.erlef.org/wg/sup/2026/... @oban.pro
com.erlef.org
Oban Pro Support
Oban Pro, offering and supporting Oban, the most widely used Elixir queuing system, has become a sponsor of the EEF by providing financial support. Oban Pro layers on the advanced features needed to…
0266
Reposted by David Bernheisel
Tobias Pfeiffer @pragtob.bsky.social · 20/08/2026
TIL: hex now has built-in dependency cooldown support! 🎉 Thanks team! 💚 hex.pm/blog/hex-v25...
hex.pm
Hex v25 released
A package manager for the Erlang ecosystem
0257
Reposted by David Bernheisel
Tyler A. Young ⚗️🧑🏻‍💻 @tylerayoung.com · 20/08/2026
TIL `Phoenix.PubSub.subscribe` is not idempotent; if your process calls it twice for a given topic, you'll get two notifications for each message posted to it. Or... if you call it 4,000 times, once on each update to your LiveComponent, you'll get 4,000 messages. Ask me how I know. 🫠 #ElixirLang
4264
Reposted by David Bernheisel
Steffen Deusch @steffend.me · 19/08/2026
There are no major CVEs for latest Phoenix 1.5+. We provide security patches for the last 4 minor versions, which include 1.5, 1.6, 1.7 and 1.8 at the moment. Apps using old Phoenix should still update, for sure, but not necessarily for security reasons. See github.com/phoenixframe....
152
David Bernheisel @david.bernheisel.com · 14/08/2026
New #ElixirLang ERLEF sponsor site is up, hopefully providing much clearer impact sponsors have on the community sponsor.erlef.org If you're at a company that uses the BEAM, send the site to your CFO and give back!
sponsor.erlef.org
Support the Erlang Ecosystem Foundation
Sponsorship powers our working groups, security advisories, and the events the BEAM community runs on.
01212
David Bernheisel @david.bernheisel.com · 04/08/2026
Yeah. It's caused some problems for me by hiding real bugs. I have a rule set (and I think there's a credo rule too) to never blind rescue, always rescue/catch specific terms and to exercise it to verify which it would be.
010
David Bernheisel @david.bernheisel.com · 28/07/2026
@gworkman.bsky.social @peterullrich.com glad to see ya'll starting up Macro Mayhem! warms my little heart Let me know if y'all want a guest sometime :)
240
Reposted by David Bernheisel
Peter Ullrich @peterullrich.com · 28/07/2026
🚨 Announcing our new Podcast 🚨 Gus (@gworkman.bsky.social) and I have started a new #ElixirLang Podcast Macro Mayhem - @macromayhem.fm We cover Elixir news and general industry topics every 2 weeks. Our first episode is out now, available on all podcast players or on our website: macromayhem.fm
macromayhem.fm
Macro Mayhem
The latest Elixir news and general software industry topics
35922
David Bernheisel @david.bernheisel.com · 24/07/2026
Next time you're upgrading Phoenix and you're using AI assistance, try pointing it to elixirstream.dev/gendiff/api and tell me how it goes. cc @steffend.me #ElixirLang
elixirstream.dev
https://elixirstream.dev/gendiff/api
# gendiff — Markdown API for coding agents Generate a diff of a project generator's output between two versions, rendered as Markdown built for LLMs. Fetch one URL, get the diff — no UI needed. ## E...
0164
Reposted by David Bernheisel
Tyler A. Young ⚗️🧑🏻‍💻 @tylerayoung.com · 23/07/2026
Semi-serious proposal: can we make open source sustainable by offering maintainers $x00/hr to review PRs opened against their projects? I think I could legitimately make the business case to get work to fund this on projects that are otherwise very quiet.
251
Reposted by David Bernheisel
ElixirConf @elixirconf.bsky.social · 22/07/2026
Can the BEAM handle intensive scientific computing? Join Jacob Johnson at ElixirConf US to see an engine processing NASA planetary data in pure Elixir. No NIFs or C bindings. Don’t miss his live 3D celestial sphere demo and architecture deep dive! 📍Chicago & Virtual elixirconf.com/participants...
082
Reposted by David Bernheisel
razorgirl @razorgirl.diy · 18/07/2026
hooked my datalog engine into the LSP too and now it renders statically computed supervision trees for the application by analyzing the compiled bytecode
The supervision tree for Oban
1231
David Bernheisel @david.bernheisel.com · 17/07/2026
Added crt-lotte filter client side for beamicom_phx so it looks authentic
020
David Bernheisel @david.bernheisel.com · 17/07/2026
Is it synchronicity or just a good classic game? ;)
110
David Bernheisel @david.bernheisel.com · 17/07/2026
yeah, bsky re-encoded it to webp :|
000
David Bernheisel @david.bernheisel.com · 17/07/2026
Check this out, this png is a save file. I don't know if bsky will re-encode it and lose the info, but around the border is encoded dots with the save state of the game. Load that in beamicom and pick up where you left off.
161
Reposted by David Bernheisel
Zach Daniel @zachdaniel.dev · 15/07/2026
Announcing our Keynote speaker for #AshConf! @ajetha.bsky.social has built an award winning CRM, daylite.app, which was featured at WWDC, all while migrating a mature and complex codebase to #ElixirLang and #AshFramework. Come to Sweden on October 3rd (the day after Goatmire) to hear all about it 😎
2185
David Bernheisel @david.bernheisel.com · 16/07/2026
and now a WebRTC web client with AV1 encoding/relaying (with Membrane). Haven't deployed it yet, so not really "working" yet, but plays great locally right now. github.com/dbernheisel/...
050
David Bernheisel @david.bernheisel.com · 15/07/2026
gameplay (couldn't capture audio, but it's there)
161
David Bernheisel @david.bernheisel.com · 15/07/2026
oh hey, I wrote an NES emulator in Elixir 60fps (on my machine) with sound. This is Castlevania 3 which might be the toughest one to emulate. github.com/dbernheisel/... #ElixirLang
Castlevania 3 running in an Elixir-native NES emulator
1112825
Reposted by David Bernheisel
Tyler A. Young ⚗️🧑🏻‍💻 @tylerayoung.com · 29/06/2026
OMG, latest version of Hex (`mix local.hex --force`) prints out CVEs that affect your packages any time you run `mix deps.get` 🤩 #ElixirLang
mix deps.get output, showing Earmark 1.4.48 marked as "RETIRED!" and "VULNERABLE!" due to CVE-2026-48591, "Stored XSS via unescaped HTML attribute values in earmark"
05111
Reposted by David Bernheisel
ThinkingElixir @thinkingelixir.com · 23/06/2026
The final episode! After 6 years, we close with news on LiveView 1.2 colocated CSS, Earmark’s retirement, Sagents v0.8.0, #Postgres 19, SpaceX buying Cursor AI for $60B, and what’s next for David and Mark! @elixir-lang.org #ElixirLang www.youtube.com/watch?v=p5FW...
youtube.com
Thinking Elixir Podcast 309: The Final Episode
YouTube video by Mark Ericksen
53113
David Bernheisel @david.bernheisel.com · 22/06/2026
Me too :)
020
Reposted by David Bernheisel
Leandro Pereira @leandrocp.bsky.social · 18/06/2026
Earmark has been retired. First, I want to highlight the impressive work of everyone maintaining it for so many years, really valuable work! MDEx has a migration guide if you choose it mdex.hexdocs.pm/earmark_to_m... and contributions are welcome. #MyElixirStatus
mdex.hexdocs.pm
Earmark to MDEx Migration — MDEx v0.13.0
1194
Reposted by David Bernheisel
ThinkingElixir @thinkingelixir.com · 16/06/2026
Elixir v1.20 is officially a gradually typed language, HexDocs moves to per-package subdomains, the #Miasma worm hits 73 @microsoft.com @github.com repos, and more! @elixir-lang.org #ElixirLang #security www.youtube.com/watch?v=mlSq...
youtube.com
Thinking Elixir Podcast 308: Elixir Goes Gradually Typed
YouTube video by Mark Ericksen
0102
Reposted by David Bernheisel
German Velasco @germsvel.com · 16/06/2026
The mix task, as you might guess, is `mix crap` 🤷 It'll show you potential crap in your codebase. My goal is for @david.bernheisel.com to say it out loud in the last Thinking Elixir podcast 😅
1112
Reposted by David Bernheisel
johanna @jola.dev · 09/06/2026
In my continuing struggle to find a way to use LLMs while staying firmly engaged in the design of the code, here's a blog post about using LLMs like dynamic programming books. It suggests code, you type it out jola.dev/posts/treati...
jola.dev
Treating LLMs as programming books | jola.dev
Thoughts on an approach for using LLMs effectively for coding without losing engagement and cognitive effort.
2192
David Bernheisel @david.bernheisel.com · 05/06/2026
Nah. It's good enough.
010
Reposted by David Bernheisel
Davide Aversa @davideaversa.it · 04/06/2026
I always liked Elixir, but I never gave it a real shot because I never really enjoyed working with dynamic languages. In recent years, they have done amazing work on gradual typing, and now I officially have zero complaints. elixir-lang.org/blog/2026/06...
elixir-lang.org
Elixir v1.20 released: now a gradually typed language
From Elixir v1.20, every program is now gradually type checked in search for verified bugs and typing violations.
0162
David Bernheisel @david.bernheisel.com · 05/06/2026
that one was just the CI pipelines for dialyzer. The next ones will be obliterating the `@spec`
110
Reposted by David Bernheisel
Christophe @genserver.be · 05/06/2026
Finally got around to getting env-guard.hexdocs.pm/EnvGuard.html published on hex.pm! :) I've been using it a lot, but never managed to get it into a package.
env-guard.hexdocs.pm
EnvGuard — env_guard v1.0.0
293
David Bernheisel @david.bernheisel.com · 05/06/2026
Removed Dialyzer. Thank you Elixir 1.20.0 #ElixirLang
chore(ci): remove dialyzer
Merged by dbernheisel
merged 7 commits into mainfeels good meme man
3251
Reposted by David Bernheisel
ThinkingElixir @thinkingelixir.com · 02/06/2026
It’s true! After 6 years of weekly episodes, the Thinking Elixir Podcast will be ending on June 23rd. Three episodes left. It’s been an incredible run and I’m grateful for every listener who came along for the journey. #podcast #MyElixirStatus #ElixirLang
245812
Reposted by David Bernheisel
Peter Ullrich @peterullrich.com · 25/05/2026
🚨 Update hackney 🚨 A **bunch** of vulnerabilities I reported in hackney were just disclosed. Please upgrade to 4.0.1 ASAP. I know this is gonna start dependency hell so please take some time for this. Please RT for reach. #ElixirLang cna.erlef.org/cves/
cna.erlef.org
List of Issued CVE’s
This project handles the CVE Numbering Authority (CNA) for the Erlang Ecosystem Foundation (EEF).
43023
David Bernheisel @david.bernheisel.com · 20/05/2026
Oh hey! Look at that! I'm a board member of the ERLEF now! Thank you for your votes!! Very happy to serve! erlef.org/blog/eef/ele... #ElixirLang
erlef.org
Erlang Ecosystem Foundation - Supporting the BEAM community
7423
Reposted by David Bernheisel
Parker & Shannon @oban.pro · 12/05/2026
A solid day optimizing Oban's metrics layer. We sped up a common operation used in Web by ~1200x, and all other operations are < 1ms!
3252
Reposted by David Bernheisel
ThinkingElixir @thinkingelixir.com · 12/05/2026
EEF 2026 election candidates are out, Elixir-Vibe launches tools to fight #AI code #slop, erlang_python 3.0.0 embeds CPython into the BEAM, ElixirConf EU 2026 videos are dropping, and more! @elixir-lang.org #ElixirLang #python @elixirconf.bsky.social www.youtube.com/watch?v=t-Vu...
youtube.com
Thinking Elixir Podcast 303: The Taming of the Slop
YouTube video by Mark Ericksen
0104
Reposted by David Bernheisel
Gus Workman @gworkman.bsky.social · 04/05/2026
After watching @wojtekmach.bsky.social's ElixirConf EU talk about creating desktop apps with ElixirKit, I was inspired to give it a try. Introducing Nerves Desktop - an app for discovering and managing Nerves devices on your network github.com/nerves-proje... #ElixirLang #Nerves
github.com
GitHub - nerves-project/nerves_desktop: Desktop app for managing Nerves devices
Desktop app for managing Nerves devices. Contribute to nerves-project/nerves_desktop development by creating an account on GitHub.
5277
Reposted by David Bernheisel
Parker & Shannon @oban.pro · 30/04/2026
Oban Pro v1.7.0 is out with: 📡 Signals and awaiting 🫆 Unique workflows ⚖️ Rate limiting overhaul 📦 Chunking overhaul 🪝 Global cancel/discard hooks 📇 Improved indexes Plus dozens of other improvements, and it unlocks all the features in Web v2.12. oban.pro/docs/pro/1.7... Signaling shown here:
1295
Reposted by David Bernheisel
Ben Collins @bencollins.bsky.social · 01/05/2026
Goodbye, get lost, and we'll see you soon.
Infowars.com -- Off Air
391302923597
David Bernheisel @david.bernheisel.com · 17/04/2026
161
David Bernheisel @david.bernheisel.com · 17/04/2026
I wrote a small little Ghostty app to register `ssh://` URLs on macOS. Hopefully this helps someone :) github.com/dbernheisel/...
github.com
GitHub - dbernheisel/ghostty-ssh: Ghostty SSH URL handler for mac
Ghostty SSH URL handler for mac. Contribute to dbernheisel/ghostty-ssh development by creating an account on GitHub.
110
David Bernheisel @david.bernheisel.com · 16/04/2026
there are other options if mine doesn't look good to you github.com/zsh-users/zs... github.com/erikareads/m...
github.com
zsh-completions/src/_mix at master · zsh-users/zsh-completions
Additional completion definitions for Zsh. Contribute to zsh-users/zsh-completions development by creating an account on GitHub.
000
David Bernheisel @david.bernheisel.com · 15/04/2026
Easy! chsh -s $(which zsh)
130
David Bernheisel @david.bernheisel.com · 15/04/2026
A little bit different. It's a single cache globally and doesn't update on its own afaik. It supports bash. And since it's a mix task it can more intelligently get mix task info.
010
David Bernheisel @david.bernheisel.com · 15/04/2026
a difference with this is that it actually runs `mix help` and `mix help ...` on things and parses the output. The other completions I've seen are static.
000
David Bernheisel @david.bernheisel.com · 15/04/2026
lotta awk and lotta sed. It caches by project since your project might have more mix tasks than others. Also, I realized that `mix help credo` is useless -- why do they have to be different and put that in `mix credo --help` ? Credo's handled as a special case.
100
David Bernheisel @david.bernheisel.com · 15/04/2026
I always do this: `mix <tab> <tab> <rage tab>` and then realize completions aren't built in for mix. so I hacked together something truly awful, but it works github.com/dbernheisel/... Add this ^ to your zsh fpath and then you have more helpful completions, including flags. #ElixirLang
mix deps.unlock --unused
 -- switch --
--all           -- unlocks all dependencies
--check-unused  -- checks that the `mix.lock` file has no unused dependencies. This is useful in pre-commit hooks and CI sc
--filter        -- unlocks only deps matching the given name
--unused        -- unlocks only unused dependencies (no longer mentioned in the `mix.exs` file)
5164
David Bernheisel @david.bernheisel.com · 15/04/2026
It's a bit brute-forced, but here it is github.com/dbernheisel/... then use it like this ``` require('reflow-markdown').setup({ per_client = { expert = { fence_indented_code = 'elixir', strip_exdoc_autolinks = true }, }, }) ```
030