frontpage.
newsnewestaskshowjobs

Made with ♥ by @iamnishanth

Open Source @Github

Postgres IDE in VS Code

https://techcommunity.microsoft.com/blog/adforpostgresql/announcing-a-new-ide-for-postgresql-in-vs-code-from-microsoft/4414648
683•Dowwie•10h ago•286 comments

Modification of acetaminophen to reduce liver toxicity and enhance drug efficacy

https://www.societyforscience.org/regeneron-sts/2025-student-finalists/chloe-lee/
65•felineflock•1h ago•11 comments

Find Your People

https://foundersatwork.posthaven.com/find-your-people
383•jl•9h ago•161 comments

The Way of Code: The Timeless Art of Vibe Coding

https://www.thewayofcode.com/
16•CharlesW•1h ago•4 comments

Mermaid: Generation of diagrams like flowcharts or sequence diagrams from text

https://github.com/mermaid-js/mermaid
39•olalonde•2d ago•18 comments

Show HN: Genetic Boids Web Simulation

https://attentionmech.github.io/genetic-boids/
97•vimgrinder•6h ago•28 comments

Root for your friends

https://josephthacker.com/personal/2025/05/13/root-for-your-friends.html
72•rez0123•2h ago•19 comments

The world of Japan's PC-98 computer

https://strangecomforts.com/the-strange-world-of-japans-pc-98-computer/
56•ecliptik•5h ago•17 comments

Show HN: I built a more productive way to manage AI chats

https://contextch.at
57•tapeo•5h ago•30 comments

A Formal Proof of Complexity Bounds on Diophantine Equations

https://arxiv.org/abs/2505.16963
59•badmonster•5h ago•6 comments

Positional preferences, order effects, prompt sensitivity undermine AI judgments

https://www.cip.org/blog/llm-judges-are-unreliable
103•joalstein•8h ago•56 comments

Show HN: DoubleMemory – more efficient local-first read-it-later app

https://doublememory.com
88•randomor•6h ago•27 comments

UndoDB – The interactive time travel debugger for Linux C/C++ for debugging

https://undo.io/
42•droideqa•5h ago•21 comments

Beyond Semantics: Unreasonable Effectiveness of Reasonless Intermediate Tokens

https://arxiv.org/abs/2505.13775
101•nyrikki•9h ago•48 comments

John Carmack talk at Upper Bound 2025

https://twitter.com/ID_AA_Carmack/status/1925710474366034326
486•tosh•20h ago•327 comments

Visual Studio Code: Text Buffer Reimplementation (2018)

https://code.visualstudio.com/blogs/2018/03/23/text-buffer-reimplementation
20•stefankuehnel•3d ago•0 comments

A Bead Too Far: Rethinking Global Connections Before Columbus

https://peterfrankopan.substack.com/p/a-bead-too-far-rethinking-global
16•themgt•11h ago•0 comments

Startup enables 100-year bridges with corrosion-resistant steel

https://news.mit.edu/2025/allium-engineering-enables-100-year-bridges-corrosion-resistant-steel-0520
3•rbanffy•2d ago•2 comments

Caesar's Last Breath

https://charliesabino.com/caesars-last-breath/
123•charliesabino•11h ago•54 comments

Types of optical systems in a lens designer's toolbox (2020)

https://www.pencilofrays.com/lens-design-forms/
55•picture•7h ago•10 comments

How to live on $432 a month in America

https://shagbark.substack.com/p/how-to-live-on-432-a-month-in-america
192•cactusplant7374•9h ago•333 comments

Why I no longer have an old-school cert on my HTTPS site

https://rachelbythebay.com/w/2025/05/22/ssl/
241•mcbain•14h ago•232 comments

Into The Tunnel: The secret life of wind tunnels

https://jordanwtaylor2.substack.com/p/into-the-tunnel
57•iamwil•8h ago•6 comments

The metre originated in the French Revolution

https://www.abc.net.au/news/science/2025-05-20/metre-treaty-anniversary-metric-system-measurement-metrology/105302024
78•Tomte•10h ago•132 comments

Japan and the Birth of Modern Shipbuilding

https://www.construction-physics.com/p/how-japan-invented-modern-shipbuilding
41•m463•7h ago•31 comments

Show HN: High-resolution surface analysis with Lidar data

https://github.com/r-follador/delta-relief
6•folli•2d ago•0 comments

Show HN: GetStack.dev – Track GitHub open-source trends

https://getstack.dev
16•h1fra•18h ago•4 comments

Show HN: hcker.news – an ergonomic, timeline-based Hacker News front page

https://hcker.news
134•postalcoder•7h ago•58 comments

Writing A Job Runner (In Elixir) (Again) (10 years later)

https://github.com/notactuallytreyanastasio/genstage_tutorial_2025/blob/main/README.md
126•rhgraysonii•15h ago•32 comments

MCP is the coming of Web 2.0 2.0

https://www.anildash.com//2025/05/20/mcp-web20-20/
190•freediver•10h ago•160 comments
Open in hackernews

Writing A Job Runner (In Elixir) (Again) (10 years later)

https://github.com/notactuallytreyanastasio/genstage_tutorial_2025/blob/main/README.md
126•rhgraysonii•15h ago

Comments

rhgraysonii•15h ago
I wrote this up after having written a tutorial on doing this in GenStage around a decade ago, and thought it was interesting to have the two of them side by side to consider. I linked the original in the document linked to here.

Overall, I'm wildly impressed at how this Elixir code held up, and it was a joy to revisit this.

freedomben•7h ago
Great write up, thanks for sharing! Nothing against Oban, but it is nice seeing someone in the Elixir community not just say, "run Oban" and drop the mic
dangerousnight•12h ago
As someone who has been learning Elixir on and off for over a year, this looks really exciting on first skim through. Excited to give this a deep read this weekend!
rhgraysonii•11h ago
If you have any feedback or anything is unclear feel free to open an issue. I am thinking I am going to take this and expand the concepts to start as a beginners primer going through the primary concepts in brief akin to Elixir School, and then expand it into building this and a web service that is using it and offering some real time features.
sbrother•11h ago
FYI if anyone is looking for a production ready job runner in Elixir, I strongly recommend Oban. They have a paid pro version but the open source version is still absolutely fantastic.
victorbjorklund•11h ago
Just to add to the parent the Open Source version and the Pro Version just differs in that the Pro Version has a few plugins that the normal version has (for example workflows where you can have multiple workers working together) but it is not something you need for most use-cases.
pikdum•9h ago
It's more than just a few - even more basic things like rate limiting or concurrency controls are gated behind Pro. It works extremely well, but I've been reluctant to use it in open source projects because there's quite a bit in there I'd need to rebuild.
throwawaymaths•8h ago
im curious about your use case -- it seems weird (to me) to use it in an open source project unless its some kind of turnkey full app -- is there a way to just release it and encourage people to bring their own oban keys? that way it looks good for the elixir ecosystem that it has found a way to support hybrid open source libraries and expands the obam ecosystem
pikdum•8h ago
My open source projects are generally more applications than libraries, yeah.
rhgraysonii•11h ago
Oban is great! This is definitely just met to be a learning exercise. But it could go quite a ways on its own in prod.
freedomben•7h ago
Do you worry about enshittification down the road?
cpursley•11h ago
I’d love to see one for Elixir built around the Postgres pgmq and pg_crom extensions similar to what pgflow is doing: https://www.pgflow.dev/
rhgraysonii•11h ago
That would be super cool. Pretty much everything Supabase is up to is awesome.
cpursley•10h ago
Yeah, their realtime thing is powered by Elixir (listens to Postgres WAL).
jumski•7h ago
pgflow can be used with any language/runtime, I just started with TypeScript and Supabase, as that's what I'm using.

The worker is stateless and "dumb" by design (currently it runs on serverless functions) - it just calls SQL functions: "poll_for_tasks" to get some tasks from the queue and then either "complete_task" or "fail_task" after executing user code - that's it, nothing more, so it should be relatively easy to adopt it to other runtimes.

I have written a small architecture primer on pgflow if anyone is interested in its simple but flexible design https://www.pgflow.dev/concepts/how-pgflow-works/

jamal-kumar•10h ago
The absolute facility with which you can do distributed applications in Elixir is the big thing that sold me in the first place. Nice to see this tutorial!
hmmokidk•10h ago
Incredibly well written. You clearly put a lot of thought and effort into this. Thank you.

Also FOR UPDATE SKIP LOCKED is interesting.

rhgraysonii•10h ago
You also could use an advisory exact lock, which would serialize the order of input and force everyone to wait in line, but the advantage here is that we are allowed shared concurrent reads while maintaining our lock. Thank you for the feedback. It was fun to revisit after 10 years. The initial piece came after a Columbus, OH Ruby meetup that Jose attended. It was quite fun to see him put it together as a whole and I ran with things a bit further than his first ideas with this.
sarchertech•6h ago
SKIP LOCKED is amazing for this kind of thing. I used it to build a transaction outbox a few years ago.

One thing worth looking into if you do this in production is adding a way to add partitions such that each partition is single threaded. It’s the only way to guarantee ordering if your jobs are doing anything non-deterministic.

boruto•6h ago
We have a system where each pod spins up around 30 scheduled job instances of one job each processing a "partition", then transaction outbox is queried with hash of identifier equating it to partition.

We increased partition counts on sale days and it works well for us.

Couple of gotchas we had were.

1) Using hashtext from postgres is sketchy.

2) Increasing partiton count is an orchestra which requires stopping the partition.

oxidant•3h ago
FOR UPDATE SKIP LOCKED is great, but it needs to be in a transaction. In the example code it won't "do" anything because it selects for update then immediately loses the lock.

Claude says you can use a CTE to select and the run your update with the locked rows, but I have only ever used transactions.

huqedato•9h ago
Years ago I built something similar, a Pub/Sub notification system: https://github.com/huqedato/qnotix. It is still running (with small modifications), in production, at my ex-customer.

Such a pity the industry (customers) reacts with skepticism every time I propose solutions based in Elixir/Erlang. I always hear: "Elixir, what? We want Java/.Net/Python/php"

jbverschoor•9h ago
It means they don't trust your judgement, aka you're just there to execute their plans. You're the floor guy, not the architect, owner, or developer of a house.
huqedato•9h ago
Not really. I am usually the one they pay to solve their problems. It's not a matter of trusting my judgement, rather they are trapped in an institutional/corporate mindset (old patterns are most suitable, 'best practice', 'reliable, proven tech' and such)
stonemetal12•8h ago
> I am usually the one they pay to solve their problems.

In the context that doesn't really say a lot, they pay the floor guy and the architect to solve problems, just different problems.

>they are trapped in an institutional/corporate mindset (old patterns are most suitable, 'best practice', 'reliable, proven tech' and such)

While true, it is also correct. From their perspective Elixir is an exotic material, the next "one they pay to solve their problems" is not going to know how to work with it, scrap it, and start over. Therefore the Elixir solution isn't a good solution for them.

As a business man once told me, "I never saw a feature I liked so much that I was wiling to pay for it twice."

icedchai•9h ago
The problem is finding other people to work in less mainstream languages. Probably not an issue right now, but during better times...
atonse•2h ago
Yup I would be concerned about how easy it is to find people.

And I say this as an elixir employer and whose company has done only elixir projects for 8 years.

In all cases though, our client just wanted us to solve a problem and didn’t care how we did it. So we’ve been very lucky. But have also earned their trust over the years by delivering.

freedomben•7h ago
I've run into this a few times before too. Sometimes discussing maintenance/ongoing costs and how minimal they are with an Elixir/Phoenix app can be compelling, though not always. I prefer to be over-transparent with clients so I'll usually add that if they plan to switch contractors often then it's probably not (tho sometimes still is) a good idea to go with Elixir. When I compare the amount of ongoing effort to keep a PHP, Node, or Python app running securely in prod with the ongoing effort with a Phoenix app, it's usually a better deal for them.

The one Danger Zone area though is when they want something between WordPress and a "real" app. A lot of the clients I've talked to already have WordPress and are really trying to stretch the framework to places it isn't really made to go. Those customers often think "I should be able to get a full app built for <=$10,000" and often shop around until they find someone who will accept it, and then they usually end up getting a bad/buggy product that is slow as dirt. At that point it's often too late as well because nobody wants to pay to start over. For those clients though I wouldn't recommend Elixir because they would almost rather spend more in maintenance costs than in initial development because the numbers feel smaller when spread out, even if they add up to more in the long run and with a much worse product.

That is not to say of course that any Elixir app is going to be better - there are bad Elixir devs just like any stack, though I think Elixir's relative lack of popularity actually leads to an overall more skilled dev pool.

epolanski•2h ago
Well, you might be leaving them with the burden of having to maintain it themselves or finding elixir talent so it's a valid concern.
udkl•4h ago
Just want to say thank you for the detailed write up. I am enjoying the article a lot!
rhgraysonii•4h ago
Thanks!
1oooqooq•1h ago
pure HN comedy that the article is about the disgust of running acme tools that cram all buzzwords just for the lulz, and most comments are pushing even worse tools with even more buzzwords ("still the torment Nexus, but in elixir!")

sigh. anyway. i had the same reaction to acme. but I'm lazier. i just ran ngix and the acme client in qemu and picked the certs out. i applaud the author for her tenacity.