frontpage.
newsnewestaskshowjobs

Made with ♥ by @iamnishanth

Open Source @Github

fp.

At Age 25, Wikipedia Refuses to Evolve

https://spectrum.ieee.org/wikipedia-at-25
1•asdefghyk•2m ago•1 comments

Show HN: ReviewReact – AI review responses inside Google Maps ($19/mo)

https://reviewreact.com
1•sara_builds•3m ago•0 comments

Why AlphaTensor Failed at 3x3 Matrix Multiplication: The Anchor Barrier

https://zenodo.org/records/18514533
1•DarenWatson•4m ago•0 comments

Ask HN: How much of your token use is fixing the bugs Claude Code causes?

1•laurex•7m ago•0 comments

Show HN: Agents – Sync MCP Configs Across Claude, Cursor, Codex Automatically

https://github.com/amtiYo/agents
1•amtiyo•8m ago•0 comments

Hello

1•otrebladih•9m ago•0 comments

FSD helped save my father's life during a heart attack

https://twitter.com/JJackBrandt/status/2019852423980875794
2•blacktulip•12m ago•0 comments

Show HN: Writtte – Draft and publish articles without reformatting, anywhere

https://writtte.xyz
1•lasgawe•14m ago•0 comments

Portuguese icon (FROM A CAN) makes a simple meal (Canned Fish Files) [video]

https://www.youtube.com/watch?v=e9FUdOfp8ME
1•zeristor•16m ago•0 comments

Brookhaven Lab's RHIC Concludes 25-Year Run with Final Collisions

https://www.hpcwire.com/off-the-wire/brookhaven-labs-rhic-concludes-25-year-run-with-final-collis...
2•gnufx•18m ago•0 comments

Transcribe your aunts post cards with Gemini 3 Pro

https://leserli.ch/ocr/
1•nielstron•22m ago•0 comments

.72% Variance Lance

1•mav5431•23m ago•0 comments

ReKindle – web-based operating system designed specifically for E-ink devices

https://rekindle.ink
1•JSLegendDev•25m ago•0 comments

Encrypt It

https://encryptitalready.org/
1•u1hcw9nx•25m ago•1 comments

NextMatch – 5-minute video speed dating to reduce ghosting

https://nextmatchdating.netlify.app/
1•Halinani8•26m ago•1 comments

Personalizing esketamine treatment in TRD and TRBD

https://www.frontiersin.org/articles/10.3389/fpsyt.2025.1736114
1•PaulHoule•27m ago•0 comments

SpaceKit.xyz – a browser‑native VM for decentralized compute

https://spacekit.xyz
1•astorrivera•28m ago•0 comments

NotebookLM: The AI that only learns from you

https://byandrev.dev/en/blog/what-is-notebooklm
2•byandrev•28m ago•1 comments

Show HN: An open-source starter kit for developing with Postgres and ClickHouse

https://github.com/ClickHouse/postgres-clickhouse-stack
1•saisrirampur•29m ago•0 comments

Game Boy Advance d-pad capacitor measurements

https://gekkio.fi/blog/2026/game-boy-advance-d-pad-capacitor-measurements/
1•todsacerdoti•29m ago•0 comments

South Korean crypto firm accidentally sends $44B in bitcoins to users

https://www.reuters.com/world/asia-pacific/crypto-firm-accidentally-sends-44-billion-bitcoins-use...
2•layer8•30m ago•0 comments

Apache Poison Fountain

https://gist.github.com/jwakely/a511a5cab5eb36d088ecd1659fcee1d5
1•atomic128•31m ago•2 comments

Web.whatsapp.com appears to be having issues syncing and sending messages

http://web.whatsapp.com
1•sabujp•32m ago•2 comments

Google in Your Terminal

https://gogcli.sh/
1•johlo•33m ago•0 comments

Shannon: Claude Code for Pen Testing: #1 on Github today

https://github.com/KeygraphHQ/shannon
1•hendler•34m ago•0 comments

Anthropic: Latest Claude model finds more than 500 vulnerabilities

https://www.scworld.com/news/anthropic-latest-claude-model-finds-more-than-500-vulnerabilities
2•Bender•38m ago•0 comments

Brooklyn cemetery plans human composting option, stirring interest and debate

https://www.cbsnews.com/newyork/news/brooklyn-green-wood-cemetery-human-composting/
1•geox•38m ago•0 comments

Why the 'Strivers' Are Right

https://greyenlightenment.com/2026/02/03/the-strivers-were-right-all-along/
1•paulpauper•40m ago•0 comments

Brain Dumps as a Literary Form

https://davegriffith.substack.com/p/brain-dumps-as-a-literary-form
1•gmays•40m ago•0 comments

Agentic Coding and the Problem of Oracles

https://epkconsulting.substack.com/p/agentic-coding-and-the-problem-of
1•qingsworkshop•41m ago•0 comments
Open in hackernews

Free applicatives, the handle pattern, and remote systems

https://exploring-better-ways.bellroy.com/free-applicatives-the-handle-pattern-and-remote-systems.html
94•_jackdk_•3mo ago

Comments

rich_sasha•3mo ago
Bellroy, the maker of quirky travel accessories and wallets, has a software stack written in Haskell?? TIL
titanomachy•3mo ago
The second-to-last post[0] talks about how they decided to migrate their stack from Ruby on Rails to Haskell, and are now in the seventh (!) year of that migration.

[0] https://exploring-better-ways.bellroy.com/designing-for-the-...

oncallthrow•3mo ago
Seems like an insane choice to me
bobnamob•3mo ago
They're based in Collingwood, any Australian would tell you that an n year Haskel rewrite is the most normal thing about them
rswail•3mo ago
Speaking as someone from there (Collingwood), we're proudly weird.
pklausler•3mo ago
Hello from Portland, Oregon!
cosmic_quanta•3mo ago
I'd love to hear more about why you think this is insane.
internet_points•3mo ago
My first thought was: does that mean they've been actively migrating for seven years, or just "we migrated the most important stuff and can't see any strong business reasons to move some of these microservices that do their job just fine"? But reading the post, it seems the main reason is they no longer understand all the Ruby code!
bobbylarrybobby•3mo ago
I thought this couldn't be correct, but... nope:

> We adopted a pragmatic approach: maintain the Ruby code but only port functionality to Haskell when we could add meaningful value in the process. This meant our Ruby codebase gradually became legacy code, maintained but not actively developed. This transition — which we expected to take a couple of years — has now stretched into its seventh year. > > Here’s where the Clean Architecture approach began to work against us. As we hired more Haskell-focused developers and our institutional knowledge of Ruby faded, those carefully crafted abstraction layers became archaeological puzzles. Reverse-engineering what a piece of code actually did — especially complex, multi-step operations with side effects — became a nightmare.

riwsky•3mo ago
So is Costar, the horoscope app, of all things
rich_sasha•3mo ago
At least the product is pretty esoteric too.
throwthrow0987•3mo ago
They must be making a lot of money!
nikita2206•3mo ago
Also was surprised to see their logo on the blog website.

I have had one of their cardholders for 10 years now, it is incredible how durable and practical that thing is.

spiffytech•3mo ago
I'm very happy with my Bellroy Card Sleeve wallet. You know, just in case anyone's checking the comments on a functional programming article for wallet recs. As one does.
PaulHoule•3mo ago
My Bellroy wallet is great too.
leohonexus•3mo ago
And they even use Nix, to add to the craziness.

[0] https://flox.dev/nixinthewild/nix-in-the-wild-bellroy/

cosmic_quanta•3mo ago
Nix isn't so exotic anymore. Every company for which I interviewed about a year ago used Nix
YuukiRey•3mo ago
And every person I met today had a parrot on their shoulder. Doesn't really mean it applies to the general public (here meaning most developers out there).

I'd say <1% of all developers world wide have even heard of Nix.

ameliaquining•3mo ago
It is used in production much, much more widely than Haskell is, though it remains far from the most common way to do builds or deployments.
chaboud•3mo ago
I thought this was a joke about two things having the same name… nope!

One funny thing about software is that beautiful things can emerge from the most unexpected places. I appreciate that there are folks out there with the bravery to share their journey.

ksec•3mo ago
I am really really surprised Bellroy could afford to hire developers for their own store. I guess they are now much bigger than I thought? I watch them grow from an unknown brand that focus on slimming your wallet in the early 10s, to now I bump into people who have actually heard of used it. Or at least seen the online ads. Pretty amazing.

I remember Gwyneth Paltrow said something along the line moving away from Shopify was the biggest mistake she made with her online shop. I think that was before Pandemic and Shopify have improved a lot since then.

Which makes me wonder if it make sense for Bellroy to continue their path.

fwlr•3mo ago
I believe this is a case of “developers who went into the wallet business”, actually.
farhanhubble•3mo ago
I have loved their bags and mobile cases for their aesthetics and their website too and now the blog!
tinyspacewizard•3mo ago
Weird feeling knowing that an ecommerce / wallet store has employees with more advanced programming knowledge than most financial institutions.
vjerancrnjak•3mo ago
A recurring problem, somehow making it very easy to write code that deals with 1 thing from start. When time comes , somehow hard to write code that deals with N things.

I wonder how different the code would look if it was just written to deal with N things from the start.

I’m also not sure how far this code can go, if I have queries that depend on responses of preceding queries , how will my runAp_ give me this? It probably won’t.

always wondered where are http frameworks that just give me a batch of requests to deal with from the start.

_jackdk_•3mo ago
> I have queries that depend on responses of preceding queries , how will my runAp_ give me this? It probably won’t.

It definitely won't, which is what I was trying to get at with the discussion of monads and data dependencies. Applicatives by definition cannot have one "effectful" computation depend on the result of another. You could do a large bunch of parallel work until you need to pass a result into a function that decides what additional work to perform, at which point you need a monad. More advanced frameworks like Haxl apparently make this distinction explicit, so your computation proceeds as a sequence of batched parallel options, combining as much work as possible.

vjerancrnjak•3mo ago
I guess we just need pipelining systems that batch.

These patterns constantly appear yet we continue writing code step by step.

Joker_vD•3mo ago
> We want to build a structure that is essentially a syntax tree of the operations we want to perform.

A-a-and so we went from programming in Haskell to creating a new DSL, with an interpreter for it in Haskell, and programming in that DSL. Which kinda begs a question: you already have a perfectly serviceable programming language (i.e. Haskell) at hand; why not just use it?

kqr•3mo ago
That's what I also don't quite get. I would build it as the parsing step mapped directly over the query. I suppose their approach lets them build a tree of operations but I'm skeptical it provides all that much benefit.
_jackdk_•3mo ago
That would work if the API we were querying could return results of different types in response to a single query. But we might have a single operation that needs to know a couple of FooIds, a BarId, and a BazId, and they all need to be at least three requests against the remote system.
lkey•3mo ago
Creating specialized and constrained DSLs is a common and useful pattern for folks that write Haskell (or really any FP lang that has ADTs).
cryptonector•3mo ago
jq was originally a Haskell-coded, in-Haskell DSL.
marcosdumay•3mo ago
I don't understand your complain. Haskell is entirely aimed at creating those small languages and interpreting them. While at the same time the compiler they have in hand implements a DSL for describing imperative programs that do not allow the kind of analysis the author is doing.

What exactly you expected them do write?

cryptonector•3mo ago
Eh, Haskell is not "entirely" aimed at creating DSLs.
marcosdumay•3mo ago
Ok, it's not entirely.

It's just its main differentiator. But there's way more to the language.

_jackdk_•3mo ago
This is a really good question. If you write all the queries directly in Haskell, you get an IO action which you can't inspect: all you can do is execute it and see what it does. It might make requests, it might repeat requests it didn't need to make, it could do literally anything else.

Other programming traditions also have this pattern of inventing minilanguages and interpreters for them; regular expressions are by far the most successful example. You could hand-roll string matching by writing your matching functions by hand, but it's often much easier to ask a regex library to run an interpreter over a string describing the pattern to match.

In Haskell, it's really cheap to invent data structures, so using the same language to describe the work is quite convenient. Laziness also means you almost never materialise the entire intermediate "work to be done" structure - you build little bits as the interpreter demands them. So it doesn't feel as heavyweight as an eDSL in some other language.

Joker_vD•3mo ago
> If you write all the queries directly in Haskell, you get an IO action which you can't inspect.

Of course you can inspect it: open the source code you wrote and read it. Also, don't write the code you don't want to be executed?

> but it's often much easier to ask a regex library to run an interpreter over a string describing the pattern to match.

Which, I might notice, you never inspect. You execute it blindly and look at the outputs of the match() method falling out of it. In fact, most regex libraries compile your regex into an opaque data structure which you can't inspect — and nobody complain about it.

tinyspacewizard•3mo ago
> Of course you can inspect it: open the source code you wrote and read it. Also, don't write the code you don't want to be executed?

This is not what they meant by inspection.

What they mean is that you can write a function, in Haskell, that given a value in the DSL, it returns the list of all requests it will perform on execution.

This can be useful for tests, security, caching, performance, debugging...

throwthrow0987•3mo ago
> is quite convenient

It's not principally about convenience though is it? It's about defining the semantics of your program through the DSL. Then you can verify the program logic, prove properties about it if you wish. It is denotative.

munchler•3mo ago
I love me some functional programming, and spend most of days happily immersed in F#, but when I see Haskell programmers casually discussing the lengths they’ll go to to avoid side-effects, I am always in awe. It’s like overhearing monks in the Middle Ages talking about their favorite techniques for copying the Bible by hand.
tome•3mo ago
> when I see Haskell programmers casually discussing the lengths they’ll go to to avoid side-effects

Can you give an example of that happening?

tinyspacewizard•3mo ago
This seems like a cool article, but it isn't readable without Haskell background knowledge.

> For an intuition why this is true, consider that the constant functor Const r has an Applicative instance whenever r is a monoid, because pure stores a mempty value and (<*>) combines the held values with (<>). For a fun exercise, implement runAp_ in terms of runAp and Const.

Really?

ronef•3mo ago
Bellroy is. very cool and deep in tech. We actually did a Nix in the Wild with them a while back! https://flox.dev/nixinthewild/nix-in-the-wild-bellroy/