HNHacker News
TopNewBestAskShowJobs

prydt

198 karma · joined November 15, 2017

long time hn lurker

Hyperdrive @ Cloudflare

interested in distributed systems and programming language theory.

submissionscomments
prydt··on Delta: Highly available, strongly consistent storage using chain replication (2022)
I'm a big fan of Chain Replication (the CRAQ paper [1] mentioned is one of my favorites)

Something I'm curious about: How does a recovering node know that it is healthy enough to serve requests? Is there some anti-entropy protocol used between the tail and the recovering node?

[1] https://www.usenix.org/legacy/event/usenix09/tech/full_paper...

prydt··on Chopping up books when they're physically too big
I came to a similar realization recently. I used to care so much about how pristine my books looked and then I realized that some of my favorite books I have found in used bookstores are ones which are written all over and have a well-worn feel to them. I now annotate all my books with pencil and also write my name in them. I love seeing a history of who's owned a given book when I open the front cover and see a name and phone number.
prydt··on Distributed Systems Classics (2017)
> Chain replication is how a huge percentage of real-world cloud-scale data replication is done

Is this still true today? I know that Facebook does [1], but I don't have references for any other places which use it.

[1] https://engineering.fb.com/2022/05/04/data-infrastructure/de...

prydt··on Distributed Systems Classics (2017)
Some of these probably aren't exactly classics but I do love:

- rendezvous hashing / consistent hashing

- Hybrid logical clocks

- "Don’t Settle for Eventual: Scalable Causal Consistency for Wide-Area Storage with COPS"

- "Scaling Replicated State Machines with Compartmentalization" (much more recent but really one of my favorite papers)

prydt··on Principles for Fast Tokio Applications
Do you have any references for these principles for writing Tokio servers? Or just a high level summary of what best practices look like?
prydt··on A few good ideas in programming languages
I didn't expect this to get posted here. Long time lurker here.

I'm really interested in programming language design and ergonomics. What niche PL features would you like to see have more adoption?

prydt··on A few good ideas in programming languages
At least in my understanding of SSA, its a compiler implementation detail which makes writing optimizations simpler. I imagine you can implement flow typing without SSA.

Can you elaborate what you mean?

prydt··on A few good ideas in programming languages
What's the nice short paper? (I'd be interested in reading it!)
prydt··on A few good ideas in programming languages
The contract programming in D is pretty much syntactic sugar for placing asserts at different parts of your program.

Refinement types can be used as compile time checks for preconditions and postconditions, while this contract programming is inserting runtime checks.

Here's a good post on the type state pattern in Rust (we don't actually have refinement types in something like Rust but the type state pattern is somewhere closer to refinement types on this spectrum): https://cliffle.com/blog/rust-typestate/

prydt··on A Few Good Ideas in Programming Languages
The syntax is correct but I made a logical error since balance is being compared to itself (as opposed to the new balance at the end).
prydt··on A few good ideas in programming languages
Looks like its a typo :(

The correct way to go about this would be to return the new balance and capture the return value in the first part of the out postcondition like:

```D double deposit(double amount) in (amount > 0, "Deposit amount must be positive") out (result; result == balance) { balance += amount; return balance; } ```

My mistake!

https://dlang.org/spec/function.html#postconditions

prydt··on Dwarf Fortress is getting the mother of all magic updates
Yeah my biggest issue has been that none of my muscle memory transfers over and it adds another hurdle to ever getting back into the game.
prydt··on Philosoph Jürgen Habermas Gestorben
+1 These are incredible lectures and there's another series from Rick Roderick on the history of western philosophy that I also love: https://youtube.com/playlist?list=PLxPmwaGMOAvsZp9vavFkyxYFZ...
prydt··on GPT-5.4
I no longer want to support OpenAI at all. Regardless of benchmarks or real world performance.
prydt··on People Loved the Dot-Com Boom. The A.I. Boom, Not So Much
I think this is because the prevailing narrative around this bubble is:

A) AI gets very good and you'll lose your job.

OR

B) This whole thing is a bubble and because of how many eggs have been put in this single basket, when the bubble pops, you'll lose your job as we head into a recession.

It really does just seem like pure downside to the average person, not even to mention all the slop everywhere, deepfake revenge porn being democratized, and generally just having bad gpt wrappers shoved down your throat.

Edit: There really isn't a sense that AI is going to help the common person. Inequality is rising and AI seems to only fuel this fire. I hope that we as a society can actually distributed the fruits of AI to everyone... but I'm not holding my breath.

prydt··on Building a TUI is easy now
I think the implicit assumption here is that you are using a terminal-based code editor like neovim... which is not necessarily true.
prydt··on Tiny C Compiler
I would highly recommend Wirth's Compiler Construction. Great, short book with a lot to say.
prydt··on Ask HN: Share your personal website
https://prydt.xyz

I've been really inspired to blog more thanks to HN. -- not much, but it's a start.

prydt··on Anthropic blocks third-party use of Claude Code subscriptions
Came here to say this. Using opencode with the API works fine.
prydt··on Rust in the Linux kernel: part 2
My interest in Rust comes from getting frustrated with C's type system. Rust has such a nice type system and I really enjoy the ownership semantics around concurrency. I think that C++ written "correctly" looks a lot like Rust and libkj [1] encourages this, but it is not enforced by the language.

[1] https://github.com/capnproto/capnproto/blob/v2/kjdoc/tour.md

prydt··on Writing your own C++ standard library part 2
Have you seen libkj [1]? I've used it and really enjoy working with it. It has a rust-like owned pointer and the whole library uses these smart pointers.

It has proper container classes based on B-trees and its also got an async runtime.

[1] https://github.com/capnproto/capnproto/blob/v2/kjdoc/index.m...

prydt··on Immutability Changes Everything (2016) [pdf]
One of my favorite papers! This reminds me of Martin Kleppmann's work on Apache Samza and the idea of "turning the database inside out" by hosting the write-ahead log on something like Kafka and then having many different materialized views consume that log.

Seems like a very powerful architecture that is both simple and decouples many concerns.

prydt··on Merry Christmas Everyone
Merry Christmas!
prydt··on Raft: Understandable Distributed Consensus (2014)
Ah thank you. That is a good list although I personally dislike the "Paxos Made Moderately Complex" paper... I think it adds too many different roles for very little benefit. When implementing multi-Paxos for class, I used that paper and felt it was more trouble than it needed to be.

I'll check out the other two papers though! Also just looking around and I found this paper https://arxiv.org/pdf/1103.2408 [PDF] which looks useful as well.

prydt··on Raft: Understandable Distributed Consensus (2014)
I think the CALM theorem and this whole line of research is so interesting and it is still carried on by the CRDT people. But I would love to see more of this.

I feel like it doesn't get as much attention as it deserves.

prydt··on Raft: Understandable Distributed Consensus (2014)
I've run a reading group for distributed systems for the last 2 years now and I do think that Raft is a better introduction to Consensus than any Paxos paper I have seen (I mean the Paxos Made Simple paper literally has bugs in it). But when I learned consensus in school, we used Paxos and Multi-Paxos and I do believe that there was a lot to be gained by learning both approaches.

Heidi Howard has several amazing papers about how the differences between Raft and Multi-Paxos are very surface level and that Raft's key contribution is its presentation as well as being a more "complete" presentation since there are so many fragmented different presentations of Multi-Paxos.

As a bonus, one of my favorite papers I have read recently is Compartmentalized Paxos: https://vldb.org/pvldb/vol14/p2203-whittaker.pdf which is just a brilliant piece on how to scale Multi-Paxos

prydt··on Backdoor in upstream xz/liblzma leading to SSH server compromise
I'm curious now. What is ifunc? (Had difficulty finding it through a search)
prydt··on Linux Crisis Tools
Love the list and the eBPF tools look super helpful.
prydt··on How does a B-tree make queries fast?
LSM trees are a good example of a data structure optimized for memory hardware (both hdds and ssds).
prydt··on High Scalability is up for sale
High Scalability has always been a very fun read, and I've enjoyed it a lot over the years. I hope the site still stays up.

Does anyone know any other resources that are about similar topics?

Page 1 of 2Next →