frontpage.
newsnewestaskshowjobs

Made with ♥ by @iamnishanth

Open Source @Github

fp.

Canada's bill C-22 mandates mass metadata surveillance

https://www.michaelgeist.ca/2026/03/a-tale-of-two-bills-lawful-access-returns-with-changes-to-war...
597•opengrass•9h ago•167 comments

The 49MB web page

https://thatshubham.com/blog/news-audit
442•kermatt•11h ago•212 comments

Chrome DevTools MCP (2025)

https://developer.chrome.com/blog/chrome-devtools-mcp-debug-your-browser-session
439•xnx•11h ago•182 comments

How I write software with LLMs

https://www.stavros.io/posts/how-i-write-software-with-llms/
95•indigodaddy•5h ago•32 comments

Electric motor scaling laws and inertia in robot actuators

https://robot-daycare.com/posts/actuation_series_1/
53•o4c•3d ago•9 comments

Lies I was told about collaborative editing, Part 2: Why we don't use Yjs

https://www.moment.dev/blog/lies-i-was-told-pt-2
35•antics•3d ago•15 comments

What every computer scientist should know about floating-point arithmetic (1991) [pdf]

https://www.itu.dk/~sestoft/bachelor/IEEE754_article.pdf
37•jbarrow•4d ago•2 comments

LLM Architecture Gallery

https://sebastianraschka.com/llm-architecture-gallery/
352•tzury•14h ago•27 comments

LLMs can be exhausting

https://tomjohnell.com/llms-can-be-absolutely-exhausting/
169•tjohnell•10h ago•124 comments

How far can you go with IX Route Servers only?

https://blog.benjojo.co.uk/post/how-far-can-you-get-with-ix-route-servers
18•ingve•3d ago•0 comments

Stop Sloppypasta

https://stopsloppypasta.ai/
240•namnnumbr•13h ago•106 comments

Separating the Wayland compositor and window manager

https://isaacfreund.com/blog/river-window-management/
267•dpassens•15h ago•124 comments

The Linux Programming Interface as a university course text

https://man7.org/tlpi/academic/index.html
73•teleforce•7h ago•6 comments

//go:fix inline and the source-level inliner

https://go.dev/blog/inliner
131•commotionfever•4d ago•55 comments

SpiceCrypt: A Python library for decrypting LTspice encrypted model files

https://github.com/jtsylve/spice-crypt
28•luu•23h ago•4 comments

Glassworm is back: A new wave of invisible Unicode attacks hits repositories

https://www.aikido.dev/blog/glassworm-returns-unicode-attack-github-npm-vscode
248•robinhouston•17h ago•154 comments

Quillx is an open standard for disclosing AI involvement in software projects

https://github.com/QAInsights/AIx
19•qainsights•5h ago•21 comments

What makes Intel Optane stand out (2023)

https://blog.zuthof.nl/2023/06/02/what-makes-intel-optane-stand-out/
196•walterbell•15h ago•140 comments

The emergence of print-on-demand Amazon paperback books

https://www.alexerhardt.com/en/enshittification-amazon-paperback-books/
132•aerhardt•21h ago•94 comments

Federal Right to Privacy Act – Draft legislation

https://righttoprivacyact.github.io
64•pilingual•4h ago•35 comments

Bandit: A 32bit baremetal computer that runs Color Forth [video]

https://www.youtube.com/watch?v=HK0uAKkt0AE
51•surprisetalk•3d ago•2 comments

Cannabinoids remove plaque-forming Alzheimer's proteins from brain cells (2016)

https://www.salk.edu/news-release/cannabinoids-remove-plaque-forming-alzheimers-proteins-from-bra...
99•anjel•6h ago•59 comments

A Visual Introduction to Machine Learning (2015)

https://r2d3.us/visual-intro-to-machine-learning-part-1/
347•vismit2000•20h ago•30 comments

Bus travel from Lima to Rio de Janeiro

https://kenschutte.com/lima-to-rio-by-bus/
151•ks2048•4d ago•60 comments

ASCII and Unicode quotation marks (2007)

https://www.cl.cam.ac.uk/~mgk25/ucs/quotes.html
8•exvi•2h ago•0 comments

Learning athletic humanoid tennis skills from imperfect human motion data

https://zzk273.github.io/LATENT/
142•danielmorozoff•15h ago•29 comments

Nasdaq's Shame

https://keubiko.substack.com/p/nasdaqs-shame
281•imichael•8h ago•93 comments

A Plain Anabaptist Story: The Hutterites

https://ulmer457718.substack.com/p/a-plain-anabaptist-story-the-hutterites
38•gaplong•3d ago•3 comments

What is agentic engineering?

https://simonwillison.net/guides/agentic-engineering-patterns/what-is-agentic-engineering/
124•lumpa•5h ago•73 comments

An experiment to use GitHub Actions as a control plane for a PaaS

https://towlion.github.io
15•baijum•6h ago•8 comments
Open in hackernews

Lies I was told about collaborative editing, Part 2: Why we don't use Yjs

https://www.moment.dev/blog/lies-i-was-told-pt-2
31•antics•3d ago

Comments

presspot•2d ago
Replacing CRDT with 40 lines of code. Amazing.
GermanJablo•21h ago
I remember reading Part 1 back in the day, and this is also an excellent article.

I’ve spent 3+ years fighting the same problems while building DocNode and DocSync, two libraries that do exactly what you describe.

DocSync is a client-server library that synchronizes documents of any type (Yjs, Loro, Automerge, DocNode) while guaranteeing that all clients apply operations in the same order. It’s a lot more than 40 lines because it handles many things beyond what’s described here. For example:

It’s local-first, which means you have to handle race conditions.

Multi-tab synchronization works via BroadcastChannel even offline, which is another source of race conditions that needs to be controlled.

DocNode is an alternative to Yjs, but with all the simplicity that comes from assuming a central server. No tombstones, no metadata, no vector clock diffing, supports move operations, etc.

I think you might find them interesting. Take a look at https://docukit.dev and let me know what you think.

freekh•16m ago
Cool! We also build client-server sync for our local-first CMS: https://github.com/valbuild/val Just as your docsync, it has to both guarantee order and sync to multiple types of servers (your own computer for local dev, cloud service in prod). Base format is rfc 6902 json patches. Read the spec sheet and it is very similar :)
samlinnfer•1h ago
Just use OT like normal people, it’s been proven to work. No tombstones, no infinite storage requirements or forced “compaction”, fairly easy to debug, algorithm is moderate to complex but there are reference open source implementations to cross check against. You need a server for OT but you’re always going to have a server anyway, one extra websocket won’t hurt you. We regularly have 30-50k websockets connected at a time. CRDTs are a meme and are not for serious applications.
chrisweekly•33m ago
"CRDTs are a meme and are not for serious applications."

That is one hot take!

bawolff•1h ago
Reminds me a bit of google-mobwrite. I wonder why that fell out of favour.
truetraveller•48m ago
Very likely AI slop, very hard to read. Too many indications. HN should have another rule: explicitly mention if article was written (primarily) by AI.
utopiah•44m ago
Funnily enough I had 2 HN tabs open, this one and https://news.ycombinator.com/item?id=47394004
antics•39m ago
I'm the author. Literally 0% of this was written with AI. Not an outline, not the arguments, not a single word in any paragraph. We agonized over every aspect of this article: the wording, the structure, and in particular, about whether we were being fair to Yjs. We moved the second and third section around constantly. About a dozen people reviewed it and gave feedback.

EDIT: I will say I'm not against AI writing tools or anything like that. But, for better or worse, that's just not what happened here.

comex•32m ago
It doesn’t strike me as AI. The writing is reasonably information-dense and specific, logically coherent, a bit emotional. Rarely overconfident or vague. If it is AI then there was a lot more human effort put into refining it than most AI writing I’ve read.
kaiwenwang•40m ago
It appears Moment is producing "high-performance, collaborative, truly-offline-capable, fully-programmable document editor" - https://www.moment.dev/blog

There seems to be a conflict of interest with describing Yjs's performance, which basically does the same thing along with Automerge.

antics•35m ago
Author here. To be clear, we do not in ANY WAY compete with Yjs! We are a potential customer of Yjs. This article explains why we chose not to be a customer of Yjs, and why we don't think most people building real-time collaborative text editors should be, either.
antics•32m ago
Hi folks, author here. I thought this was dead! I'm here to answer questions if you have them.
drpotato•20m ago
Just wanted to say thanks! This is a great write up and resonates with issues I encountered when trying to productionise a yjs backed feature.
samwillis•6m ago
It's disingenuous to suggest that "Yjs deletes and recreates the whole document on each keypress" and that this is "by design" of Yjs. This is a a design limitation of the official y-Prosemirror bindings that are integrating two distinct (and complex) projects. The post is implying that this is a flaw in the core Yjs library and an issue with CRDTs as a whole. This is not the case.

It is very true that there are nuances you have to deal with when using CRDT toolkits like Yjs and Automerge - the merged state is "correct" as a structure, but may not match your scheme. You have to deal with that into your application (Prosemirror does this for you, if you want it, and can live with the invalid nodes being removed)

You can't have your cake and eat it with CRDTs, just as you can't with OT. Both come with compromises and complexities. Your job as a developer is to weigh them for the use case you are designing for.

One area in particular that I feel CRDTs may really shine is in agentic systems. The ability to fork+merge at will is incredibly important for async long running tasks. You can validate the state after an agent has worked, and then decide to merge to main or not.

There is some good content in this post, but it's leaning a little too far towards drama creation for my tast.