shachaf
3.3K posts

shachaf
@shachaf
@[email protected]; @shachaf.net
London, England Katılım Mart 2009
0 Takip Edilen1.2K Takipçiler
shachaf retweetledi
shachaf retweetledi

@reubenbond But also I think it's impossible to get a quorum of accepts with ballot n and also a reject with accepted_ballot>n in the first place (but highest_ballot_seen might be >n, of course).
English

@shachaf Yeah, it's safe either way. We can learn that a value was previously committed even if we don't get a quorum of ACK votes, so we are leaving less info on the table by also considering those NACKs when they're available
English

@reubenbond I guess the argument is that if you have a quorum of success responses, the other responses don't matter, because you're permitted to behave as if you never received them (which would have still let you proceed).
English

@shachaf The toy impl was ignoring the (accepted_ballot, accepted_value) returned in Prepare rejections, only considering the values returned in success responses.
English

This follow-up is fun and I hadn't encountered it before: buttondown.com/jaffray/archiv…
English

Justin Jaffray on linearity of expectation and copysets: buttondown.com/jaffray/archiv…
English

@jamesacowling I'm surprised at how successful a compression algorithm with no entropy coding has been! I wouldn't have expected that.
English

@TommyYesItsMe I mean, I think it's a reasonable name for either of these things, it's just funny when people say things like "you think your CPU has 16 registers, but actually it has hundreds" when they're comparing two different things that happen to have the same name.
English

@shachaf I'm aware of register renaming and the register file, but does the ambiguity matter in practice?
99% of people aren't designing a new CPU, so when normies say "register RBP" it seems good enough to me.
English

@TimSweeneyEpic Not uniquely! (0, ℕ) represents the same number as (1, {}) in this scheme.
English

This is a misconception. A real number can be uniquely described as a pair of an integer part, and an infinite set of natural numbers each standing for the index of a nonzero bit.
MatLab crashes@memecrashes
English

@machinamentum Smaller reproduction: godbolt.org/z/bzEYoc8jT
I don't know if MSVC claims to support C23, which I think was the first version that supported {} initialization (and I'm not sure what the standard says about {} initialization for unions?).
English

MSVC has broken(?) global initialization when initializing subfields with '{}' instead of '{0}', I've created a minimal reproduction here: gist.github.com/machinamentum/…
English

@FelixCLC_ @corsix @AravindSitham As a US citizen who moved to the UK last year, I'm really not looking forward to dealing with having two overlapping tax years.
English

@FelixCLC_ @corsix @AravindSitham I think almost everywhere in the world except the UK is reasonable in this specific way.
English
shachaf retweetledi

In hindsight I came close, when I tried to derive Sattolo's algorithm but ended up with the “other” variant: news.ycombinator.com/item?id=149716…—noticed the difference but hand-waved it away; did not think to relate it to the shuffle. A reminder that paying attention is usually worthwhile :)
English

This is such a cool observation! I must have coded this shuffle dozens of times, but the permutation variant/idea never occurred to me AFAIR. It's even easier to prove and reason about IMO.
shachaf@shachaf
This is interesting: dotat.at/@/2025-12-25-s… In one shuffle algorithm, on step i, you have a sample (without replacement) of i elements. In the other algorithm, on step i, you have a permutation of the first i elements. I've only ever thought of the sampling-based algorithm!
English

This is interesting: dotat.at/@/2025-12-25-s…
In one shuffle algorithm, on step i, you have a sample (without replacement) of i elements. In the other algorithm, on step i, you have a permutation of the first i elements.
I've only ever thought of the sampling-based algorithm!
English
shachaf retweetledi

Performance Hints
Over the years, my colleague Sanjay Ghemawat and I have done a fair bit of diving into performance tuning of various pieces of code. We wrote an internal Performance Hints document a couple of years ago as a way of identifying some general principles and we've recently published a version of it externally.
We'd love any feedback you might have!
Read the full doc at: abseil.io/fast/hints.html

English








