HN user

nly

11,444 karma
Posts38
Comments4,092
View on HN
xania.org 8mo ago

The Advent of Compiler Optimisations 2025

nly
3pts0
www.bbc.com 3y ago

One million cancel broadband as living costs rise

nly
287pts512
monevator.com 4y ago

Bear markets: what they are, how long they last, and how to invest during them

nly
2pts0
symless.com 5y ago

Apple copied us, and that's a good thing

nly
2pts1
www.ukvalueinvestor.com 5y ago

S&P 500 CAPE ratio says the US index is in an epic bubble

nly
2pts0
symless.com 5y ago

My C++ journey and how I found Synergy

nly
2pts0
www.bloomberg.com 5y ago

Bill Gates Shows How Hard It Can Be to Divest from Fossil Fuel

nly
3pts0
www.bloomberg.com 5y ago

London Metal Exchange Wants to Close Its Iconic Trading Floor

nly
1pts0
en.wikipedia.org 6y ago

Mozart and Scatology

nly
2pts0
news.ycombinator.com 6y ago

FastMail is ungrandfathering legacy users

nly
5pts1
twitter.com 7y ago

7.5 years to find out how to close a file descriptor in a multithreaded process

nly
10pts1
augeas.net 7y ago

Augeas – a configuration API for everything

nly
1pts0
symless.com 7y ago

On charging for FOSS – The Synergy Story

nly
3pts0
lists.boost.org 7y ago

Twenty years and time to retire

nly
1pts0
www.youtube.com 8y ago

C++ Exception Handling – The gory details of an implementation

nly
10pts0
archive.org 10y ago

Online, No One Knows You’re Dead

nly
1pts0
www.youtube.com 10y ago

C++ vs. C: the embedded perspective

nly
3pts0
www.computerworld.com 10y ago

A second dangerous Dell root certificate discovered

nly
5pts0
news.ycombinator.com 10y ago

If anything, what do you listen to while you work and why?

nly
1pts1
github.com 10y ago

Served: A C++11 RESTful web server library

nly
3pts0
scotthelme.co.uk 10y ago

How widely used are security based HTTP response headers?

nly
2pts0
www.youtube.com 10y ago

What Killed Smalltalk Could Kill Ruby (2009)

nly
3pts0
www.youtube.com 11y ago

Civilizing the Barbarians Lecture 1: Introduction [video]

nly
13pts1
gcc.gnu.org 11y ago

GCC: Patch to change default C++ dialect to C++14

nly
129pts50
www.exploringbinary.com 11y ago

Visual C++ strtod(): Still Broken

nly
38pts6
www.bbc.co.uk 11y ago

MSF is calling on the pharmaceutical giants to make vaccination more affordable

nly
4pts2
permalink.gmane.org 11y ago

9 Password Hashing Competition Finalists Announced

nly
2pts0
github.com 11y ago

Small string optimisation proof-of-concept

nly
33pts8
blogs.opera.com 11y ago

Opera 26 marks return of Opera for Linux

nly
1pts0
groups.csail.mit.edu 11y ago

How to Make a Mint: The Cryptography of Anonymous Digital Cash (1996)

nly
3pts0

Some cemeteries in London reuse graves after just 75 years

https://en.wikipedia.org/wiki/City_of_London_Cemetery_and_Cr...

I have very vivid memories as a child of walking through Brookwood Cemetary in south east England seeing a big machine crunching up headstones. Vast swathes of the place was flattened. The cheat code here seems to be "topple testing" for health and safety reasons.

It's the UKs largest cemetery and in a shocking state:

https://lostlcp.com/brookwood-cemetery-reburials/

I live in a London terrace, originally built circa 1900.

There's plenty of evidence the rear gardens were used for growing food and drying laundry back then

Children would also play there where they could be seen from the kitchen (which was always in the rear), rather than playing in the road (as much)

Rear gardens also served as a space where you would converse with your neighbour. Typically fences between neighbours were low and wire (tall 6ft wooden fences came later)

The other thing is the only toilet in a 4 bedroom property would also be out there, as an outdoor WC, accessible from outside

I doubt much read space was reserved for lawn back then

What's important is you know the trade-offs you are making.

You can't have a bounded queue that is always non-blocking because slow consumers can block producers.

You can't have a global FIFO order + multiple producers without slow producers blocking consumers.

You can't have a global FIFO order + have have non-atomic reserve and commit without a interrupted/de-scheduled producer thread being able to block the consumer

If you want atomic commit then you lose separate reserve which means either unbounded memory or atomic fixed-size data with sentinel values, ABA problems etc.

There are trade-offs everywhere, and it's best to pick the data structure that fits your needs just like any other problem.

In well thought out C++ software lifetime rarely becomes an issue because deciding on ownership and object lifetime is unavoidable as part of the design process.

If the code is mapped readable and not mutated how does it make a difference?

The code will be prefetched in to local (executing) CPU cache just the same. No invalidations will take place across NUMA zones.

Modern DLLs on e.g. Linux use PIC and not mutable relocations.

Doesn't matter!

You still need to send a digital image from the id, signed by an authority, saying "this person is 18"

You then still need a trusted ID service or algorithm to capture an image of the user _at the time of use_ to compare that to.

Just having access to your digital ID credentials proves nothing

The zero knowledge proof only helps prevent tracking between the ID service and the website you're logging into. This is valuable but requires standardisation and client side support, which doesn't exist.

All the time the client side is implemented by JavaScript served from the server side you're just trusting these parties to behave and not snoop

But to be effective you need to prove that the person presenting the ID is the person the ID belongs to.

In person that falls to a human being, and it's an easy and intuitive task that takes seconds.

On the internet this involves some kind of video recording being sent to some agency somewhere being paid a fee, who may later be asked to prove the efficacy of their service. This agency needs a digital copy of the photo from your ID for matching purposes. They'll be tempted to store this for auditing purposes... they'll also be tempted to store correlation IDs etc if the architecture allows.

The issue is trust. You just can't trust these first and third parties not to collaborate for commercial gain or at government demand or request.

And ultimately you're still exchanging verification at registration for a shareable credentials: I could use my ID to sign up to pornhub premium and then sell the username and password to a 16 year old if I wished, just like those buying alcohol can go and give it to the underage. A black market for digital credentials is even easier to establish than material goods

However, I've heard that in HFT, they don't do that because the overhead itself is too costly.

I've worked at several HFTs and 2 had independently settled on 64bit signed fixed point with a implied 10^9 scaling factor between internal systems.

However in-process one just used 'double' for all FX conversions, scaling etc. With 15 digits of precision and careful rounding choices it's fine.

Dealing with the outside world you'd obviously just convert as cheaply as possible - and there are some crazy fast algorithms doing fast binary float -> correctly rounded decimal conversions these days

I worked on a trading system dealing with transaction limits expressed in USD but trading in many currencies.

FX rates and prices were expressed in fixed point because it was more efficient to handle in FPGA. A lot of thought went in to making the system accurate enough based on real FX rates while falling on the right side of the limit

My goto these days (and afaik the state of the art) is boost::unordered_flat_set paired with rapidhash for hashing (since the GNU std::hash functions based on murmurhash are ridiculously slow)

The cacheline performance is pretty hard to beat (SIMD optimised linear scan before hopping), which is where all the wins come in the real world.

But basically any of the faster hash maps from absl, boost or folly are going to wreck the standard library in terms of perf