frontpage.
newsnewestaskshowjobs

Made with ♥ by @iamnishanth

Open Source @Github

fp.

Elixir v1.20 released: now a gradually typed language

https://elixir-lang.org/blog/2026/06/03/elixir-v1-20-0-released/
164•cloud8421•1h ago•41 comments

Gemma 4 12B: A unified, encoder-free multimodal model

https://blog.google/innovation-and-ai/technology/developers-tools/introducing-gemma-4-12b/
475•rvz•4h ago•175 comments

I was recently diagnosed with anti-NMDA receptor encephalitis

https://burntsushi.net/encephalitis/
281•Tomte•6h ago•66 comments

ESP32-S31

https://www.espressif.com/en/products/socs/esp32-s31
195•volemo•4h ago•94 comments

DaVinci Resolve 21

https://www.blackmagicdesign.com/products/davinciresolve/whatsnew
290•pentagrama•5h ago•135 comments

Gooey: A GPU-accelerated UI framework for Zig

https://github.com/duanebester/gooey
79•ksec•3h ago•10 comments

Artificial intelligence is not conscious – Ted Chiang

https://www.theatlantic.com/philosophy/2026/06/no-artificial-intelligence-is-not-conscious/687378/
52•lordleft•2h ago•21 comments

Hacking your PC using your speaker without ever touching it

https://blog.nns.ee/2026/06/03/katana-badusb/
556•xx_ns•9h ago•94 comments

Stop Killing Games

https://jxself.org/stop-killing-games.shtml
61•amcclure•2d ago•52 comments

Launch HN: Hyper (YC P26) – Company brain to power agentic development

33•shalinshah•2h ago•27 comments

A Post-Quantum Future for Let's Encrypt

https://letsencrypt.org/2026/06/03/pq-certs
162•SGran•5h ago•84 comments

Skyvern (YC S23) Is Hiring Open-Source Loving DevRel Engineers

https://www.ycombinator.com/companies/skyvern/jobs/1qRTlVx-founding-developer-marketing-open-sour...
1•suchintan•3h ago

Uber's $1,500/month AI limit is a useful signal for AI tool pricing

https://simonwillison.net/2026/Jun/3/uber-caps-usage/
180•pdyc•7h ago•236 comments

Rootshell: A new E2EE email service hosted in Iceland

https://rootshell.is
15•sc0rt•1h ago•5 comments

Angular v22

https://blog.angular.dev/announcing-angular-v22-c52bb83a4664
56•Klaster_1•3h ago•31 comments

Embryos shape their limbs: a key discovery of "genetic brakes"

https://nouvelles.umontreal.ca/en/article/2026/06/02/how-embryos-shape-their-limbs-a-key-discover...
20•gmays•2h ago•0 comments

Fluid Simulation for Dummies

https://www.mikeash.com/pyblog/fluid-simulation-for-dummies.html
45•sebg•4d ago•10 comments

Every Byte Matters

https://fzakaria.com/2026/06/01/every-byte-matters
208•ingve•9h ago•102 comments

PlayStation Architecture

https://www.copetti.org/writings/consoles/playstation/
208•gregsadetsky•9h ago•43 comments

Meta workers can opt out of being tracked at work up to 30 min

https://www.bbc.com/news/articles/c93x0k194yno
575•reconnecting•7h ago•537 comments

Mathematicians issue warning as AI rapidly gains ground

https://www.science.org/content/article/mathematicians-issue-warning-ai-rapidly-gains-ground
101•pseudolus•10h ago•137 comments

Brume is a 24-voice multi-timbral desktop synth for the CM5

https://brume.aftertone.co/
4•oceanwaves•34m ago•1 comments

What I've learned about the trombone

http://bryanhu.com/blog/posts/what-ive-learned-about-the-trombone/
67•bookofjoe•9h ago•58 comments

Bot vs human traffic

https://radar.cloudflare.com/traffic#bot-vs-human
107•jmsflknr•2h ago•47 comments

New Texas Instruments 5532 chips are not the 5532's we've used for decades

https://groupdiy.com/threads/the-new-ti-5532-chips-are-not-5532s-weve-used-for-decades.93707/
29•SpikedCola•3h ago•7 comments

Show HN: Edsger – A handwritten Clojure REPL for the reMarkable 2

https://handwritten.danieljanus.pl/2026-06-01-edsger.html
216•nathell•1d ago•29 comments

32GB of DDR5 now costs $375 – AI shortage continues to squeeze PC building

https://www.tomshardware.com/pc-components/ddr5/32gb-of-ddr5-now-costs-usd375-minimum-ai-shortage...
327•papersail•7h ago•299 comments

GoPro warned it may not survive

https://thenextweb.com/news/gopro-going-concern-ai-memory-crisis-default
16•mmh0000•1d ago•6 comments

Nabokov's pale fire: the lost 'father of all hypertext demos'? (2011)

https://dl.acm.org/doi/pdf/10.1145/1995966.1996008
109•aragonite•2d ago•26 comments

MacBook Neo Is So Popular That Apple Doubled Production

https://www.macrumors.com/2026/06/03/macbook-neo-production-doubled-says-kuo/
183•tosh•3h ago•176 comments
Open in hackernews

Elixir v1.20 released: now a gradually typed language

https://elixir-lang.org/blog/2026/06/03/elixir-v1-20-0-released/
155•cloud8421•1h ago

Comments

sevenzero•56m ago
Oh shit here I go (and learn Elixir for a whole year (again)) again.

I love everything about Elixir, but Elixir constantly makes me doubt myself like no other language. My brain isnt made for functional stuff, but this makes me want to try again.

Sucks that it's not really a beginner friendly ecosystem and usually, when having questions answered, people assume you already know a lot about the language.

pdimitar•52m ago
I invite you to ask on ElixirForum. I have never seen a truly hostile response.

Sometimes posts don't get traction due to ambiguity, and some smelled like "do my homework" so people ignored them.

But every post with a genuine curiosity in it gets answered, as far as I can tell.

sevenzero•47m ago
Yea I've posted there twice as far as I remember. You will absolutely get help, whether you understand the answers is a whole different story.

Elixirs community is great. Its just hard to learn because it's not yet widely adopted, there are no (non senior) roles for it and it's a lot of work understanding all the BEAM concepts. A thing just being interesting isn't enough motivation for me to learn, I need a bigger goal but with Elixir there do not seem to be any.

My last experience with it was building something with Phoenix Liveview until I noticed how easily you can hijack the websocket and just spam random commands to your server or temper with payloads (with regular webapps ive built i never had this issue). Which made me quit that project.

pdimitar•44m ago
Fair. If you have this friction then it's not worth pursuing.

One thing that really helped me pick it up was saying YOLO and rewriting one part of the business stack from Ruby on Rails to Elixir. It taught me quickly and well.

The official guides are also great and IMO you can get through them all without a rush in two weekends. But again, if you don't want to then don't.

You can also try asking right here in this HN thread. Maybe I or others would be willing to give you a more detailed response.

sevenzero•28m ago
When building I couldn't get "what if I have ghost processes", "what if I spawn too many processes", "what if this architecture is bad compared to...", "when to kill processes", "whats the correct restart strategy for this" out of my head... It's so confusing to build for the BEAM that I ultimately gave up on it.
pdimitar•26m ago
Ah, true. You are right this assumes some familiarity. Definitely a gap.

Check this out: https://www.theerlangelist.com/article/spawn_or_not

Written by one of the very best Elixir mentors. I believe it will dispel most (hopefully all) of your doubts and clear things up.

ch4s3•40m ago
> whether you understand the answers is a whole different story.

You can always ask follow up questions for clarification, people there are generally really friendly.

qaq•50m ago
community is super nice I am sure you will get help.
ai_critic•49m ago
What functional stuff is throwing you off? A whole bunch of it can be written procedurally when starting out.
sevenzero•34m ago
With Elixir specifically it was the learning experience I had with Phoenix. I didn't understand how a Phoenix app booted, didn't know where to edit my config. Syntax like:

``` socket "/ws/:user_id", MyApp.UserSocket, websocket: [path: "/project/:project_id"]

```

Elixir gives you too much freedom on how to write something on a syntax level which really annoyed me.

ch4s3•27m ago
> Elixir gives you too much freedom on how to write something on a syntax level

This is true perhaps compared to python or go, but not compared to Java, JS/TS, or some others.

> socket "/ws/:user_id", MyApp.UserSocket, websocket: [path: "/project/:project_id"]

Socket is a behavior, which is like a trait or interface. MyAppWeb.UserSocket implements the behavior. It's basically a convenience over having to write a bunch of repetitive WS or long poll handling every time you want a socket like thing. Its pretty well documented https://phoenix.hexdocs.pm/Phoenix.Socket.html.

solid_fuel•14m ago
I love Elixir and Phoenix, but Phoenix especially uses a lot of compile-time macros and it can be a steep learning curve when you need to pull apart the skeleton framework to figure out how things are actually wired.

I pretty frequently find myself needing to open up the source to understand what's actually going on, the docs aren't bad but it often feels like they assume a lot of existing familiarity with phoenix.

In this example, `socket` is a compile time macro and it's being called with

    path = "/ws/:user_id"
    module = MyApp.UserSocket
    args = [
      websocket: [
        path: "/project/:project_id"
      ]
    ]
and what is does is register that data with the `phoenix_sockets` attribute inside the module you called `socket` from. At compile time that gets turned into a lookup inside your module, and presumable then the UserSocket module is invoked when a websocket request hits the specified path.

Would you find it more clear if socket was called like this?

    socket("/ws/:user_id", MyApp.UserSocket, [websocket: [path: "/project/:project_id"]])

Or, alternatively, would it help if the endpoint was more specifically defined like

    defmodule MyApp.Endpoint do
      use Phoenix.Endpoint, 
        otp_app: :my_app,
        web_sockets: [
          socket("/ws/:user_id", MyApp.UserSocket, [websocket: [path: "/project/:project_id"]])
        ]
    end
mihaelm•47m ago
Do you maybe know some Rust? I'm also not that experienced with FP languages, but Gleam felt familiar enough, due to some Rust-isms, to allow me to focus more on the concepts rather than the syntax. Granted, I spent a few afternoons with it, but if I were to pick a FP language again to wrestle my brain into submission, I'd probably go with Gleam due to familiarity.
sevenzero•25m ago
I gave up on Rust even quicker than on Elixir haha.

But yea I know about Gleam and I did build some fourier transform stuff with Rust a while back. I like Gleam generally. I am just much much slower with FP and think its extremely unintuituve compared to, say, Go for example.

pjm331•46m ago
https://pragprog.com/titles/lhelph/functional-web-developmen...

don't let the title fool you - the first half of the book is just elixir

over the past 8 years this is the book i've used to ramp back up on elixir and it works like a charm every time - i've never finished it

for me, a mark of a good programming book in this tutorial-project style is that I have started it half a dozen times and never finished it because at some point before the end I've been equipped w/ the tools to go off and do my own thing

sevenzero•40m ago
Yea I've worked through Elixir in Action and appreciate all book recommendations. My issue is, tutorial style books rarely cover security related concerns.
kajman•16m ago
I've heard that Phoenix has changed a lot since that book was written. How relevant are those framework specific parts still?
cpursley•18m ago
I find beginners respond well to this resource: https://joyofelixir.com/toc.html
jimbokun•15m ago
Comments like this always confuse me as object oriented programs riddled with state are much harder to reason about to me.
sph•10m ago
I'm working on a game engine right now (written in object oriented language, of course) and I keep itching to design a compiled functional language for games, because state spread in thousand of objects, eldritch class hierarchies, are complete hell.

Once you taste Elixir/Erlang, there is no going back to the madness.

sevenzero•10m ago
The confusing state riddling here happens in the background as your whole app basically is a state. The thing that really throws me off with Elixir is having to handle (possibly) hundreds of thousands of processes. Doing this correctly seemed impossible to learn for me.
sph•5m ago
[delayed]
sestep•54m ago
I've seen various posts about Elixir's gradual type system pop up on HN, but haven't been following too closely. Does anyone know whether this particular gradual type system can change the asymptotics of programs vs untyped code? As far as I'm aware, most gradual type systems (e.g. Racket) can make programs run asymptotically slower, although there are some exceptions [1].

[1] https://doi.org/10.1145/3314221.3314627

eben-vranken•47m ago
Elixir's gradual type system cannot change the asymptotic complexity of your programs. The design explicitly rules out mechanism that causes slowdowns in other gradual type systems (runtime casts at static/dynamic boundaries)

Most gradual type systems insert coercions when values cross the types/untyped boundary (checking every element of a list, wrapping values in typed proxies, etc) but Elixir's team published a "strong arrows" result specifically to achieve soundness without those runtime checks. The bytecode the compiler emits is semantically identical to untyped code.

dnautics•46m ago
i think the design can push people into writing unnecessary matches/guards just to trigger the typechecker.

that said, I'm a fan

ch4s3•38m ago
This is great, and it looks like 1.20 is compiling our large umbrella app quite a bit faster.
7bit•26m ago
Found elixir intriguing and so Phoenix.

Two reasons I put it aside again are:

You need Beam and the Elixir. I find that really weird, because I'm used to just the language like in Python, Java, C, Rust. Not something underneath it, too.

There is no debugger. The way to debug Elixir is to print stuff to the console, like 40 years ago. No thanks.

lionkor•24m ago
Java has the JVM the same way that Elixir has Beam/OTP/...
hackyhacky•21m ago
And CPython runs Python bytecode, which is basically running in a Python virtual machine.

I am not sure what GP is objecting to.

7bit•18m ago
Read again...

Here's what you need to do for elixir:

Download and run the Erlang installer Download and run the Elixir installer

Here for Java: Download and run the Java SDK

And for Python: Download and run the Python installer

WolfeReader•6m ago
Here's what you need for Java:

Download SDKMan/Jenv

Install the version(s) of Java you need for your projects

Make sure your JAVA_HOME environment variable is set

Ensure your IDEs locate the correct Java home

Compared to all that, Elixir's two installers are trivial.

And if you have a competent package manager, you can just tell it to get Elixir and it'll handle Erlang for free.

WolfeReader•12m ago
Wonderful. I know several devs who were turned off of Elixir because of bad experiences with dynamic typing. Hopefully this helps!
sevenzero•7m ago
I think the lack of parentheses is whats throwing me off regularly with Elixir.
victorbjorklund•20m ago
That is just wrong.

> You need Beam and the Elixir. I find that really weird, because I'm used to just the language like in Python, Java, C, Rust. Not something underneath it, too

The beam is a VM. You get that Java requires a VM too right? It’s called JVM for a reason. And Python requires an interpreter.

> There is no debugger. The way to debug Elixir is to print stuff to the console, like 40 years ago.

That is false. https://www.erlang.org/doc/apps/debugger/debugger_chapter.ht... and you have observer. And you have a lot of other debugging tools. I hear Java has a good one and maybe it’s better (I never used it) but it’s not true there exist no debuggers for the beam.

Spixel_•9m ago
Almost nobody uses it though, which is too bad, especially since multi-head functions sometimes make it difficult to follow the execution path.

I'd like to do step by step but I cannot plug the debugger to VScode from inside a docker container.

hmmokidk•12m ago
I genuinely needed that laugh. Thank you
wkrp•12m ago
To be fair, there is more than just print debugging. You have access to tools like red(x)bug https://github.com/nietaki/rexbug, the Elixir-LS project has Debug Adapter Protocol support. And in my opinion, the REPL (and decent software architecture) makes it easy to investigate your code by just running the functions as needed (even if your live production system if you want).