News for hackers. Stuff that matters.

robinvdvleuten

Re:Jelly Sheet on Wednesday November 04, 2026 @02:37AM (#50362468)
Awesome! Not only that one can build this in JavaScript, but also that your browser on a mobile phone can render this.
Re:The Origin Story of Kid Pix on Wednesday October 14, 2026 @04:33PM (#50094744)
So much hours spent with Kid Pix at our macintosh back in the days! Still remember all the sounds and effects, especially this weird magic gum thing.

Show HN: Tiny and CSP-safe expression language for JavaScript

https://github.com/robinvdvleuten/xprsn

For a feature on project I was working on, I needed a simple way to have some business logic like "expressions" evaluated at runtime. I only found a handfull packages either very old (e.g. expr-eval) or very Math oriented (e.g. Mathjs).I wanted a way to have a very simple core "compile then evaluate" package that I could easily extend with custom functions needed for the project (so in theory I...

( Read More... | no comments | on HN )
The observability part is the most interesting bit to me.

With agent systems, logs get bad pretty quickly. You want to know what is alive, what spawned what, what it's waiting on, what retried, what died, etc.

Since this is Elixir, are you planning to show the actual BEAM process/supervision structure in WeaveScope, or mostly the higher-level workflow graph?

Feels like both are useful. The graph shows what you meant to run, the process tree shows what is actually running.

This is a neat LiveView use case. The bit that jumped out to me is "each game as its own process", which feels very BEAM-y in the good way.

Curious how you're handling abandoned games. Do they just sit around until some timeout kills them, or are you persisting after each move so they can be rebuilt after a deploy/restart?

Re:Ubiquiti: Enterprise NAS, Built on ZFS on Thursday June 18, 2026 @11:23AM (#48586815)
What do you know now then?
Re: on Friday December 05, 2025 @08:05AM (#46160743)
Modern front-ends often need a tiny bit of server-rendered data to kick-start hydration or to configure a widget. The usual answer is an inline <script> that hydrates a global variable—but that approach triggers strict Content Security Policies, can’t be cached independently, and forces you to hand-roll parsing and error handling for every page. json-from-script smooths out that workflow by treating <script type="application/json"> tags as a simple, declarative data transport that is safe under CSP.
There are some other countries using this format as well. I know at least Belgium, Luxembourg, Ireland, Spain, Germany, Denmark, Sweden, Finland, and Hungary, though compatibility can vary.
If you are really into the hardware stuff, you can combine this package quite easily with Elixir’s nerves and make your own esp32 p1 reader yourself!
I own one as well and actually flashed it with my DSMR library combined with nerves. Another way is to let the slimmelezer-plus expose a TCP server and let Elixir’s genserver just parse the incoming telegrams through this package (see the livebook examples)
Re:A package for presenting person names on Wednesday December 09, 2020 @08:19AM (#25358150)
You are totally right! But it would make the logic way more complex than it is right now. I have as "tussenvoegsel" already two words, but how to handle also last names containing two words as well.

Most of the time a distinct between first and last name is already enough for presentational purposes.