@hendric In (high quality) production lines, QA failures don't result in just throwing out the sample that fails to meet the standards, but are part of a feedback cycle that can start by stopping production. From that point of view, tests are a signal that the development process let through more (or maybe not) issues than desired; iterate on the process, not directly on the code itself. The latter overfits on the test set.
Same difference as updating decisions VS the decision making process after observing an outcome.
Oh my goodness I've just learned a thing about The Matrix that causes it to make a lot more sense: In the original script the humans were used as neural network compute clusters by the Machines and as a crucial component of The Matrix itself.
Which is why humans who were aware of the simulation could control aspects of The Matrix - their minds were part of its foundation.
Unfortunately the test audiences had trouble understanding this concept so the studio changed the human role to "batteries".
My file formats dissection repository:
https://github.com/corkami/pics/blob/master/binary/README.md
@glaebhoerl This is beautifwl:
"For most of its being, mankind did not know what things are made of, but could only guess. With the growth of worldken, we began to learn, and today we have a beholding of stuff and work that watching bears out, both in the workstead and in daily life."
Uncleftish Beholding: an overview of atomic theory by Poul Anderson written in Anglish, which is English without any non-Germanic loanwords (and with new words sometimes invented in their stead).
https://www.ling.upenn.edu/~beatrice/110/docs/uncleftish_beholding.html
https://en.wikipedia.org/wiki/Uncleftish_Beholding
In case folks aren't aware, the Internet Archive now has a scholar version with a huge collection of academic work available.
#academicchatter #academicmastodon #academic #education #open
Dating back to 1969, this song has been an anthem of the Israeli peace movement for decades.
Yitzhak Rabin was the last Israeli PM who genuinely tried to work towards peace and coexistence. He had sung this song to the crowd at a peace rally in 1995 just minutes before he was shot by a far-right Israeli Jew.
The lyrics had been in his pocket.
I feel that peace died that day.
Another great post by matklad on the strengths and weaknesses of LSP's design: https://matklad.github.io/2023/10/12/lsp-could-have-been-better.html
Just posted a blog post about some work I've done on SpiderMonkey and JavaScript performance over the past year: https://cfallin.org/blog/2023/10/11/spidermonkey-pbl/
Various use-cases run SpiderMonkey *inside* a Wasm module; this brings JS to new platforms and is a nice sandboxing technique. Wasm doesn't allow JIT, however. I wrote a new interpreter tier for SM that *interprets* inline caches, and am contributing it upstream. Also touches briefly on future plans (partial evaluation, ...). It's been a very fun project!
I wrote a thing! About using the AVX-512 instruction set (and its predication registers!) to implement a GPU's programming model ("single instruction multiple thread") on a CPU. Specifically, about making a compiler for a toy C-like language that emits AVX-512 code that runs the given program 8 times at once.
https://litherum.blogspot.com/2023/10/implementing-gpus-programming-model-on.html
@fgaz At a job long in the past, I had a coworker who was very enamored of a particular do-everything Python library which I will not name at this time. This library included some built-in logging facilities, but he didn't actually need the log for the thing he was making, so he set it to log to `/dev/null`.
It turns out that this library had automatic log rotation built in. The way it worked was that it kept track of the number of bytes written to a log, and when it crossed a certain threshold, it would rename the file it was logging to, and open a new log file.
Unfortunately, the thing my coworker built ran as `root`. It started up and ran fine for a while, merrily logging to `/dev/null` as instructed. After a while, though, it noticed "oh hey I've written more than a megabyte of logs, time to rotate the log file" - it then renamed `/dev/null` to `/dev/null.YYYY-mm-dd.HH:MM:SS` and created a new `/dev/null` that was just a regular text file. From that point onward, anything that got written to `/dev/null` actually got written to disk. Chaos ensued.
That one took a whole day to figure out...
I think this is basic folklore for researchers, but here's some simple rules of thumb about hashing a set of keys to a universe of integers that I find useful for designing data structures:
1. If you want to bound the probability of at least one collision to a constant (say 0.5), you need a universe quadratic in the set size.
2. If you want to avoid collisions "with high probability" (i.e., 1 - poly(1/N), where N is set size), you need a universe cubic in the set size.
3. If your universe is the same size as the set, you can expect a fraction of 1/e empty buckets and a fraction of 1/e buckets containing a single key. That means that if you've sized your buckets for just one key, a fraction 1 - 2/e ~= 26% will overflow!
4. If your universe is the same size as the set and you want to avoid overflow, you can use the fact that the max load is bounded WHP by 3 * (ln N/ln ln N)[0].
5. For the same case, the "power of two choices"[0] tells us that if we always pick the less loaded of 2 randomly chosen bins, max load is bounded WHP by lg lg N + O(1)! (I don't know a formula for the additive constant, but you can always approximate it by simulation.)
[0] http://old.corelab.ntua.gr/courses/rand-alg/slides/balls-bins.pdf
Changing the rules of Rust
https://without.boats/blog/changing-the-rules-of-rust/
Discussions: https://discu.eu/q/https://without.boats/blog/changing-the-rules-of-rust/