8,661 karma · joined March 18, 2011
Rust, for all its faults, at least engages with its critics. I've long faulted Rust's use of Result over exceptions, for example, but the maintainers at least acknowledge that other options exist and each has trade-offs. Not Pizlo and his fans.
To be clear, I like Fil-C. It's a practical implementation of something that should have existed a long time ago. And Pizlo is, in fact, a great programmer. It just rubs me the wrong way that he can't be content with having done excellent work --- he has to claim things that his system doesn't provide (like memory safety under data races --- minor fault, but still) and claim that other systems are worse in ways they are not (e.g. with respect to Rust having unsafe blocks).
Is genuine excellence not enough? Why must he persist in claiming a false perfection?
You can remotely attest the input devices. You can do it anonymously (long story, but doable) and without requiring some kind of pre-signed image for the while OS. (The OS passes through recent-input attestations.)
What's the difference between running a Tor exit node and a "residential proxy" except optics?
Look: I'm 100% for banning secret proxies that hide from the user, but stopping people knowingly and voluntarily running these proxies is a violation of fundamental software freedom tenets.
I can accept the idea of specializing a circuit for a specific model shape, but I'm not seeing a need to specialize a circuit for the weights inside the shape.
They are fast, but they're still programmable accelerators, not a model burned into the gates.
Likewise, for compute, is the ASIC somehow going to beat a systolic array? You can't have one circuit per weight: the die area and electrical fan-out would be insane. I'm not seeing how an ASIC specialized for a specific model would actually help much.
I mean, sure, we can build more specific accelerators, e.g. for softmax, but these work fine in the context of a programmable pipeline.
Yes, there are more exotic things out there, like optical matrix multiplication systems. Those are different. But above, aren't you talking about just doing conventional digital linear algebra, but with a model-specific set of circuits?
For example: upstream recently changed the effort level hotkeys so M-. would stop at xhigh, not max. If you want max, upstream, you go to the /model menu. I didn't like this change, so I undid it locally. Easy peasy.
They are aspects of the same thing.
Debate implies that things aren't already perfect. "Why would positive people argue", a Californoid might ask, "instead of working together to make something great?".
My chief problem with California tech is that it's structured to reward schmoozing at the expense of ideas themselves and marketed as the opposite. It's unreality.
This norm is terrible. It's a chief reason California tech companies become dysfunctional. Debate spreads common knowledge and ensures ideas get tested before execution. Hiding discussions is selfish, antisocial behavior that prioritizes your social image over idea quality and everyone's benefit. If you're working for someone who can't tolerate debate, leave.
It's weak leadership indeed that feels like debate undermines authority. A recipe for hell is
1. eradicating formal levels and hierarchy so everyone is "equal" and "ideas win", then
2. establishing a norm that debate never occur in public so that "ideas win" doesn't actually threaten whatever tyranny-of-structurelessness primate power dynamics emerge.
Thoroughly poisonous culture. A strong leader welcomes debate because his authority is secure.
For an object-level example, look at the difficulties the Russians had reconstituting their industrial base in the post-apocalyptic wasteland they found themselves after the 90s. It took them a decade to figure out how to restart production of the Tu-160M bomber, and they had all the original blueprints! Likewise, for a while, we forgot how to make this "FOGBANK" substance that's somehow important for nuclear weapons.
It's all too easy to forget how to do something if you stop doing it for a while.
You're worried about SQL injection attacks? Why are you allowing untrusted clients to do anything other than call stored procedures? They can attack the DB? Why can't they attack the backend?
And sure: cryptographically binding a password to a username in storing a durable credential doesn't hurt, I guess, and it's cheap enough. (But why are you using bearer tokens in the first place?)
My objection is only the tacit assumption in the article that a "database" is some kind of distinct object that somehow accrues special superpowers and vulnerabilities relative to any other kind of service.
A database engine is just one choice of service implementation technology, like Go or Python. A database is just a service. Any service can be insecure.
Maybe you can write a carefully-tuned arena-and-slotmap that beats the pants off any GC. GC doesn't have to compete against P99.9 systems programming excellence. It has to compete against an endless soup of Arc, Box, and clone, and it will win this match without breaking a sweat.
Me: You're right. Java has come a long way. Let's download...
Rust: No! No no on. Not like that!
---
Memory safety is a worthwhile goal, but combining it with manual memory management is wrong for most tasks. Just use a damn GC. Rust's safety-plus-malloc niche should be much smaller than it is.
It's only a matter of time before EU-skeptical opposition parties achieve absolute majorities in critical EU constituency states. They're aware of this fact and are trying to adopt as much of their agenda as possible in the time they have remaining.
Suppose you start with a true belief. This belief, like any other, has to propagate from person to person to sustain itself. The truth is messy. During each hop, people present the best, cleanest version of the truth in the belief. After enough hops, the belief stops being the best version of the truth and starts being a truth-flavored falsehood.
If you want to optimize for your beliefs being true, you can't just prohibit their opposite. Even if you don't care about truth per se and want only for your beliefs to spread fastest, you should want to make sure your beliefs stay true-ish, because if you decouple your beliefs from truth, then they become so mutated and useless that they prompt people to whom you propagate the idea to seek out other ideas on their own.
Yes, it's easier than ever for bad ideas to spread. What people who use words like "disinformation" miss is that this ease cuts both ways. What makes it easy for opposite beliefs to spread makes it easier for false mutations of their own beliefs to spread.
Even if you can ban opposite beliefs, you can't ban mutated forms of your own beliefs: attacking the mutants looks like attacking the truth forms, yet, because the mutations smooth over the messy parts of the truth, the mutant versions of your belief will out-compete the original within the bubble of your ban.
Truth alone doesn't stop the mutants because it operates on long time horizons and small gradients. Only strong contrast can distinguish truth from appealing falsehood, and only competition with opposite beliefs can establish it. Trying to establish this contrast within your belief's framework against a near-mutant looks like gatekeeping, pedantry, or disloyalty. The near-mutant is always too close to its parent to justify the social cost of an all-out fight.
Furthermore, once a mutant version of your belief has taken over, the original version itself looks like heresy. Deformation occurs in small steps because it happens unwittingly in response to intuitive incentives. Reformation occurs in large steps because it happens wittingly in response to observing incoherence. You can't ban near-mutants, but you can ban far-mutants, and reformers trying to jump from the endpoint of a long line of near-mutations back to the original form get the original form and themselves banned.
So now what? If you think it's hard to defend your true beliefs against opposite beliefs, think how much harder the job will be once you can't wield truth as defense. By default, beliefs win and lose as they become extractive and appealing in cycles. Truth allows an idea to win despite being costly. Without truth as a benchmark, why would anyone prefer your belief over upstarts that promise fewer rules and more fun?
If anything, people will prefer opposite beliefs to yours because you've been the one calling false beliefs true just because they descended from true beliefs and because you're the one telling them to shut up and get in line. Even if you start out with the true belief and the opposite beliefs are all false, you lose.