David Bernheisel

David Bernheisel

@david.bernheisel.com

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

1.1K followers170 following289 posts

David Bernheisel reposted

Fresh new release of jump_credo_checks is out now (v0.6). 🎉 Highlights: - Big improvements to the Oban Pro best practices check - A new check that catches places where your code modifies a struct *before* passing it to a changeset (with surprising results!) github.com/Jump-App/cre... #ElixirLang

github.comGitHub - Jump-App/credo_checks: A collection of opinionated Credo checks aimed at improving code quality and catching common mistakesA collection of opinionated Credo checks aimed at improving code quality and catching common mistakes - Jump-App/credo_checks

David Bernheisel reposted

David Bernheisel reposted

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

David Bernheisel reposted

Replying to @macromayhem.fm

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....

David Bernheisel reposted

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.

David Bernheisel reposted

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...

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.

David Bernheisel reposted

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 😎

David Bernheisel reposted

Replying to @tylerayoung.com

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 😅

David Bernheisel reposted

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.orgElixir v1.20 released: now a gradually typed languageFrom Elixir v1.20, every program is now gradually type checked in search for verified bugs and typing violations.

David Bernheisel reposted

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

David Bernheisel reposted

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!

David Bernheisel reposted

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.comGitHub - nerves-project/nerves_desktop: Desktop app for managing Nerves devicesDesktop app for managing Nerves devices. Contribute to nerves-project/nerves_desktop development by creating an account on GitHub.

David Bernheisel reposted

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:

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.

I've been annoyed with doc hovers in Neovim being just raw markdown. This is fine but could be better. Eg, docs in Elixir are often written for ex_doc/hexdocs.pm which supports some extensions like admonition blocks and tabs. This renders like crap though in Neovim So I fixed it.

I added a markdown pre-processor just for `nofile` markdown buffers. Renders with markview.nvim but pre-processed to reflow paragraphs, adjust spacing, and process md extensions. This shows a rendered info admonition block. 4-indented code in exdoc is assumed to be Elixir.