Domain: evanmiller.org
Stories and comments across the archive that link to evanmiller.org.
Comments · 7
-
the honest ruth about value
You would have to remove things from it, not just keep adding every paradigm from every other language.
You're addressing inherent simplicity: simplicity that inheres in the object itself. Inherent simplicity is overrated.
Not so simple: maintaining your own fork of a major development language, because a recent major release— in pursuit of round-fingered, bent-legged enlightenment—gored your ox on a multi-million-line code base.
Our quest for simplicity is quite primal. It's often just a power move to demonstrate that you occupy the summit of the power hierarchy. Because your vaunted simplicity usually amounts to making something ugly (but very, very real) into somebody else's ugly (and very, very soul-destroying) daily slogathon.
The C++ culture is what you get when there's an iron-clad social contract that Peter does not rob Paul.
The direct consequence of this is that nobody can stand on the summit and gloat about their immensely refined slickitude (to hell with the peons working the actual trenches).
As has been remarked once or twice in the history of Slashdot, C++ lacks any semblance of pointy summit of slickitude; no—father forgive me, for I have sinned—C++ lacks any possibility of a semblance of so much as a stubby, manicured outcropping of soapbox sainthood.
The only other language I know with a similar value system is Perl 6.
Evan Miller: A Review of Perl 6 — 13 August 2017
It doesn't help that the purveyors of Perl 6 provide few hints as to what you should actually do with the language, besides the facile answer of whatever you want. Perl 6 is multi-paradigm, maybe omni-paradigm; it claims to support object-oriented programming, functional programming, aspect-oriented programming, array programming, and (good old) procedural programming.
It's a new language, and not just a cleaned-up version of Perl 5, any more than English is German minus the umlauts.
Knowledge of previous versions, alas, won't get you very far. By the same token, prejudices regarding the preceding incarnations don't necessarily hold today's water.
The difference between C++98 and C++11 is roughly the same thirteen years that the Perl 6 development effort went almost entirely offline. Perl 6 probably shaved off no end of warts to achieve its grand synthesis of becoming all things to all people (forsaking mainly performance, though this is prudently localized—in many cases—to quality of implementation). Meanwhile, C++ dragged its crufty ass through tens of millions of battle-hardened hours in the deep trenches. Will Perl 6 ever achieve the quality of implementation required to obtain a community of critical mass, to justify the immense implementation burden? This remains hard to judge.
I've long taken a Band of Brothers attitude toward C++.
Yes, you can shoot yourself in the foot, if your team is some random unit of random grunts.
But if your team is elite, and cares about being elite, you just don't shoot yourself in the foot on a daily basis, and you don't shoot your teammates in the foot hardly ever, and you go into the worst battles with the best people, and mostly you come back out alive. With C++, there's no such thing as bad weather, there's only bad clothing. The clothing is your job. Other languages do have bad weather—tasks for which the language is fundamentally unsuited—and then there's no clothing at all that will save you, and then you're fucked.
If the guy you're sitting beside has recently graduated from a puppy mill, and has no respect for the game, you probably want to steer clear of C++ with a vengeance of extreme scorn.
If the guy you're sitting beside has recently graduated from an ivory tower—with a raging case of L
-
I'd start with real problems, probably in C-alike
Get 'em an Adruino and get 'em started with something like C. I know that sounds "hard" compared to picking up Python, but they'd get to really do things immediately. And then if they're destined to become "real" programmers, it's a better start, based on the you can't dig upwards principle. Low level languages encourage programmers to learn more, high level languages do not.
-
Re:Good for the consumer?
"Average score" is a stupid metric for comparing ratings anyway. Here's a little discussion about several different utterly wrong ways to make sense of ratings, "average score" being #2.
Your "average score" would rate a product with a single 5 star rating higher than one with 45,000 ratings averaging out to 4.999. Their "proprietary algorithm" is likely to be more useful to everybody than a bunk rating system like "average score".
Anyway, if all of the ratings go up, then you just continue to compare them to each other like you did before. It's not like anyone bases purchases on the absolute star rating of any particular product.
-
Frequentist inference is bullshit. Bayes rules.
Ok, so let me get this straight, we have an article basically rehashing citing a bad explanation of Wilson score interval as a suggested fix for interpreting multi level ranking data? That is really stupid. If you are having data quality problems (saturated scores in this case) the first thing you don't do is throw away most of your data. So whats he do? Reduce each ranking to a positive vs negative ranking (1 bit).
Summery of algorithm (I think, correct me if I'm wrong here):
Reduce scores to to 1 bit (0 or 1) based on threshold. Implicitly assume all ratios of 1 vs 0 scores are equally likely (Frequentist bullshit). Use lower bound of 95% confidence interval as ranking factor. Even the sources own page on a Bayesian approach calls this "a hack"! It has no statistical justification.Sure, cited source suggests a Bayesian approach in the footnote (see previous link) but he wimps out again and still does a reduction to positive vs negative ratings! Why? I have no idea: its not hard.
Also, "Bayesian statistics, like quantum theory, sounds completely nuts on its face". Really? I never thought assuming probability distributions for the unknowns sounded nuts... (I mean how can that even be on par with treating the state of all particles as a complex wave function? If you can't take bayes' rule, you shouldn't even go near the Copenhagen interpretation of quantum mechanics!). I don't recommend getting your explanation of trivial topics from a guys who finds them confusing.
If you want an example of a decent and not overly complex Bayesian estimator used for rankings, you can check out anime news network. Just hit the little formula link for details (quoted below). IMDb seems to use a similar approach but is less clear about it.
This rating only includes titles that have at least 13 votes. The bayesian estimate is a statistical technique used to reduce the noise due to low sample counts. In effect, the less a title has votes, the more it is pulled towards the mean (7.5354). In other words, these are the titles that many people agree are great. (formula)
bayesian rating = (v ÷ (v+m)) × R + (m ÷ (v+m)) × C
where:
R = average for the anime
v = number of votes for the anime
m = minimum votes required to be listed (currently 13)
C = the mean vote across the whole report (currently 7.5354)In practice, I've found their rankings to work very well. They have similar saturation problems to steam, but it works out fine.
-
Frequentist inference is bullshit. Bayes rules.
Ok, so let me get this straight, we have an article basically rehashing citing a bad explanation of Wilson score interval as a suggested fix for interpreting multi level ranking data? That is really stupid. If you are having data quality problems (saturated scores in this case) the first thing you don't do is throw away most of your data. So whats he do? Reduce each ranking to a positive vs negative ranking (1 bit).
Summery of algorithm (I think, correct me if I'm wrong here):
Reduce scores to to 1 bit (0 or 1) based on threshold. Implicitly assume all ratios of 1 vs 0 scores are equally likely (Frequentist bullshit). Use lower bound of 95% confidence interval as ranking factor. Even the sources own page on a Bayesian approach calls this "a hack"! It has no statistical justification.Sure, cited source suggests a Bayesian approach in the footnote (see previous link) but he wimps out again and still does a reduction to positive vs negative ratings! Why? I have no idea: its not hard.
Also, "Bayesian statistics, like quantum theory, sounds completely nuts on its face". Really? I never thought assuming probability distributions for the unknowns sounded nuts... (I mean how can that even be on par with treating the state of all particles as a complex wave function? If you can't take bayes' rule, you shouldn't even go near the Copenhagen interpretation of quantum mechanics!). I don't recommend getting your explanation of trivial topics from a guys who finds them confusing.
If you want an example of a decent and not overly complex Bayesian estimator used for rankings, you can check out anime news network. Just hit the little formula link for details (quoted below). IMDb seems to use a similar approach but is less clear about it.
This rating only includes titles that have at least 13 votes. The bayesian estimate is a statistical technique used to reduce the noise due to low sample counts. In effect, the less a title has votes, the more it is pulled towards the mean (7.5354). In other words, these are the titles that many people agree are great. (formula)
bayesian rating = (v ÷ (v+m)) × R + (m ÷ (v+m)) × C
where:
R = average for the anime
v = number of votes for the anime
m = minimum votes required to be listed (currently 13)
C = the mean vote across the whole report (currently 7.5354)In practice, I've found their rankings to work very well. They have similar saturation problems to steam, but it works out fine.
-
Re:Weighted averages
Why are they suggesting skipping straight to this hot mess instead of using a simple and well tested algorithm?
Nor sure I understand? The article explicitly argues for using this simple and well tested algorithm.
-
Be sure to click evan miller link
http://www.evanmiller.org/how-... This was linked before on slasdot IIRC. This is basically a blog post saying "hey this can be used on steam too, not just amazon!"