> The mathematician and the blog author are not the same person
> (as you seem to understand). Nathanson (the mathematician) is
> the one who is the expert verifier. He is the person who has
> the higher value and won't be fired in some hypothetical.
The article's author is https://en.wikipedia.org/wiki/Timothy_Gowers > It seems that JPEG can be decoded on the GPU [1] [2]
Sure, but you wouldn't want to. Many algorithms can be executed on a GPU via CUDA/ROCm, but the use cases for on-GPU JPEG/PNG decoding (mostly AI model training? maybe some sort of giant megapixel texture?) are unrelated to anything you'd use CBZ for. > According to smhasher tests [3] CRC32 is not limited by memory bandwidth.
> Even if we multiply CRC32 scores x4 (to estimate 512 bit wide SIMD from 128
> bit wide results), we still don't get close to memory bandwidth.
Your link shows CRC32 at 7963.20 MiB/s (~7.77 GiB/s) which indicates it's either very old or isn't measuring pure CRC32 throughput (I see stuff about the C++ STL in the logs). > The 32 bit hash of CRC32 is too low for file checksums. xxhash is definitely
> an improvement over CRC32.
You don't want to use xxhash (or crc32, or cityhash, ...) for checksums of archived files, that's not what they're designed for. Use them as the key function for hash tables. That's why their output is 32- or 64-bits, they're designed to fit into a machine integer. > Why would you need to use a cryptographic hash function to check integrity
> of archived files? Quality a non-cryptographic hash function will detect
> corruptions due to things like bit-rot, bad RAM, etc. just the same.
I have personally seen bitrot and network transmission errors that were not caught by xxhash-type hash functions, but were caught by higher-level checksums. The performance properties of hash functions used for hash table keys make those same functions less appropriate for archival. > And why is 256 bits needed here? Kopia developers, for example, think 128
> bit hashes are big enough for backup archives [4].
The checksum algorithm doesn't need to be cryptographically strong, but if you're using software written in the past decade then SHA256 is supported everywhere by everything so might as well use it by default unless there's a compelling reason not to. > Don't worry about 4-KiB alignment restrictions
> * Win32 has a restriction that asynchronous requests be aligned on a
> 4-KiB boundary and be a multiple of 4-KiB in size.
> * DirectStorage does not have a 4-KiB alignment or size restriction. This
> means you don't need to pad your data which just adds extra size to your
> package and internal buffers.
Where is the supposed 4 KiB alignment restriction even coming from? > ZIP/RAR use CRC32, which is aging, collision-prone, and significantly slower
> to verify than XXH3 for large archival collections.
> [...]
> On multi-core systems, the verifier splits the asset table into chunks and
> validates multiple pages simultaneously. This makes BBF verification up to
> 10x faster than ZIP/RAR CRC checks.
CRC32 is limited by memory bandwidth if you're using a normal (i.e. SIMD) implementation. Assuming 100 GiB/s throughput, a typical comic book page (a few megabytes) will take like ... a millisecond? And there's no data dependency between file content checksums in the zip format, so for a CBZ you can run the CRC32 calculations in parallel for each page just like BBF says it does. > While JSON numbers are grammatically simple, they're almost always distinct
> from how you'd implement numbers in any language that has JSON parsers,
> syntactically, exactness and precision-wise.
For statically-typed languages the range and precision is determined by the type of the destination value passed to the parser; it's straightforward to reject (or clamp) a JSON number `12345` being parsed into a `uint8_t`. > Let's assume I run a survey company, and I invite a
> bunch of people over for a BBQ. I then monitor their
> interactions and sell that data. Did the guest pay for
> the BBQ?
If you told them ahead of time that you would do this, then yes, they paid for the food by giving you some information about who they like to talk to at lunch. They would be customers. > As for voluntariness, it is arguable that the fish
> enters into the transaction voluntarily, if perhaps not
> fully informed.
> [...]
> my cat provides certain intangible benefits to me in
> exchange for food. I can assure you that my cat is
> entering into this exchange voluntarily. Who is the
> customer?
A fish or cat or any animal, cannot consent to anything due to lack of intelligence. Consent is only meaningful when all parties have roughly equal information about what's involved in the relationship, the consequences, and the alternatives. > Fine. Two kids collect baseball cards. They agree to
> trade a Hank Aaron for a Babe Ruth. Who is the customer?
If only one kid knows that one card is much more valuable than the other, then it's not a customer relationship, it's a scam. > Unlike a barter relationship, a customer-provider
> relationship is necessarily asymmetric. The only way
> to reliably identify which way the asymmetry runs is
> to follow the money.
I don't buy into this idea that a customer relationship is inherently imbalanced. In fact, the ideal of such a relationship assumes perfect balance -- two people with things worthless to themselves, but valuable to the other. > No they do not. I personally use T-Mobile $30 monthly
> prepaid plan with 100 minutes/5 GB/unlimited text. The
> service is no way inferior to any regular service that
> T-mobile provides.
By using this plan, you're choosing to save money by having very little talk time. That is most certainly an inferior service compared to the post-paid plans, which typically offer unlimited talk time.
[email protected]
Currently semi-retired; formerly at Google (2011-2017) and Stripe (2017-2022)