Mario Meets Pareto
mayerowitz.io
mayerowitz.io
One aspect for developers that I see quite often is the assertion that "We can't have X without giving up more Y", most commonly "we can't have more security without giving up on user experience". With the Pareto idea in mind, we can see that that statement is true, if and only if you are in fact on the Pareto frontier of security and user experience already.
However, many times these confident pronouncements are being made when the system under question is quite evidently not on the Pareto frontier in the first place and indeed you can get more of one without giving up the other.
Making it more tricky is that in business, you can never discard "money" as a dimension, so unless you're taking "money" as one of the dimensions in the original comparison you want to do, it sneaks its way in. Or, a composite time/money, or "cost to business", or some other similar concept, time & money aren't orthogonal and don't need to be treated as two separate dimensions in general, though you can if you want. Which puts you into the 3D case, and as the page says, that grows the frontier quite a lot, which is good in some ways and bad in others. Nevertheless, in my opinion it is still often the case that even in that space we are often making "tradeoffs" without checking that we're on the Pareto frontier in the first place.
One should keep in mind though that not all problems have a neat solution. Many spaces have multiple efficient points that still need to be chosen from, and many pareto optimization problems actually become NP hard computationally when the problem is large enough.
From there I would round things out with general systems theory books and even dabble in some non-software engineering texts just to get a sense of how people reason about designing systems and evaluating trade-offs. That's just my two cents on it.
Any technological and societal progress is going to have negative consequences. To give just one example, completely curing cancer will put many doctors (and other healthcare professionals who aren't paid as well as doctors are) out of a job. It will definitely cause at least a few children to go hungry. It will probably cause a few suicides when some oncologists start to "feel useless." This does not mean we shouldn't cure cancer if the opportunity arises.
Our society, driven by clickbait, rage and social media hot takes, tends to overweight the dimensions at which new technology makes things worse. There are many news stories about social-media-fueled teen suicides or AI datacenter water use, very few about how talking to family abroad no longer requires astronomical long-distance bills.
From where I stand, the industry is obsessed with security, way past the point of rational thought.
you know how japanese oni would roll human souls into soba noodles? [1]
that's what modern corporate software company management does :)
[1] i learned about this from the very funny gintama funeral episode
I ended up using a divide-and-conquer style approach, where I 1) pruned items that weren't on the Pareto frontier individually for each slot, 2) took the two slots X and Y that had the least items after pruning and grouped them by calculating Z:={x+y|x∈X,y∈Y}, 3) pruned items that weren't on the Pareto frontier in Z, and 4) repeated steps 2-3 until there was only one group remaining, comprised of the full Pareto-optimal item builds.
This ran in a couple of seconds, as opposed to the other solutions I tried that took somewhere between minutes and years. The downside was that including set bonuses into the model took extra work.
A "Pareto front represents the set of solutions where no solution outperforms any other solution in the set at every objective, and every solution not in the set is outperformed by at least one solution in the Pareto front in every objective"
In general Wikipedia isn't a great way to learn new concepts; it's a good reference when you're already familiar with something and need to brush up on it.
for super mario kart speedruns go with bowser/dk: https://www.speedrun.com/smk/runs/zp68nr8m
That seemed to hold up for Mario Kart 8 too going with Bowser at the edge of their pareto frontier, https://www.speedrun.com/mk8
needing acceleration is a skill issue
If you're playing normally (with other people and items), even the most skilled player can't avoid getting hit by some universal items and will benefit from acceleration.
Hence, as the author notes, the balanced build with Peach being favored among competitive players.
People do speedrun the individual tracks solo in other categories.
The speedrun category build can be worse on average but make up for it by providing higher peaks when you get lucky.
Also, miniturbo is the single most important stat in the game, not top speed
(Mario Kart World, which isn't covered in this article, has a more standard speed vs acceleration trade off but in that game high-max-speed (heavy) combos have even worse problems due to the way the rail grind mechanic was implemented and what seems to be an unforeseen interaction with the coin curve see e.g. https://www.youtube.com/shorts/sPyur6BkiOs)
Skill level is an attribute you use to weight the dimensions. Sure, if you're an expert player who rarely gets hit (and can optimally use a mini boost to recover when you do), acceleration doesn't matter as much. But most people are not expert players, and play too casually to ever get to that level. Ignoring acceleration just won't create a fun experience for them.
One, that more of something is always better, e.g. it is always better to have more speed.
Maybe, but what if having too much speed causes you to run off the track and perform worse? It could be that there is actually a peak in the utility of speed that declines as it increases.
There could also be important relations between attributes that make determining a Pareto frontier impossible or at least more difficult. For example, some pairs of attributes work best when they are a specific ratio, and increasing one or the other will actually decrease utility unless the other is increased at the same time.
I'm reminded of two things that in a way support your premise with the second example being more relevant. Both are outside what’s being discussed exactly, more about knock-on effects maybe, anyway:
The first is that Angry Birds found the speed of launching birds into structures was important for engagement: it cannot be too fast.
The second is from a commenter somewhere who said they had or worked on software that took ten minutes to boot in the morning, which is when employees made coffee and talked and brainstormed. Everyone was disappointed when after refactoring, the software booted immediately.
Eventually, almost every attribute we can practically and objectively measure is at best a proxy measure for the thing we actually want to know, which is, in this case, "Most likely to win races." The thing we actually want to measure is often hard, impossible, or impractical to objectively measure, which is why we resort to proxies in the first place. By "proxy measure" we mean, not a perfect 1:1 to the thing we want to measure, but containing some amount of signal about it.
So yes, sometimes there's a peak in the utility of speed. But perhaps that trade-off can be modeled by another attribute called "Proneness to fly off the track" which increases as speed does, and is weighted such that the peak and then taper-off of benefit in speed is captured between the combination of the two of them.
But then, any vehicle that has the same speed but lower "Proneness to fly off the track" would be objectively preferable to any equally-fast vehicle with greater "Proneness to fly off the track." And so it continues.
I think to truly do a deep dive into the best overall character in Mario Kart would be a fairly complex task. We'd need data from years of real games and players to even get started. As an ML engineer/software engineer who played a lot of Mario Kart back in the day, this post was a very enjoyable read for me.
When my oldest was first trying Mario Kart, his uncle came over and played against him blindfolded (and still won). It was very entertaining to watch.
Yes, trivially. Just look at the opposite end of each metric. Pareto optimality doesn't know/care what each metrics means, since it keeps them all separate.
"We're often faced with similar trade-offs. You want a meal that's both cheap and delicious? A job that's both well-paid, easy, and fulfilling?"
I really don't feel like "easy" is a dimension I wish to optimize for in a job. It almost feels opposite to what I've actually optimized for - since for me a fulfilling job usually means full of deep technical challenges. I want a job without unnecessary friction, without interpersonal drama, even one that's low stress. But definitely not easy.
But I definitely want a job without stress, danger, or physical strain on my body. Perhaps I am just looking for a similar word which doesn't imply anything about the complexity of the task at hand.
(And please note that I do not mean to imply that there are no challenges in manual labor or that software engineering is more important.)
> I want a job without unnecessary friction, without interpersonal drama, even one that's low stress.
That's part of how I see an "easy" job. Where I can focus on working on the actual tasks at hand.Doesn't matter if the actual job is filling glasses of water or building rockets; as long as I can focus on it for 100% of my working hours, I'd see it as an "easy" job.
I don't think I've ever seen an example of pareto that wasn't pseudo scientific drivel.
build a card here: https://requirement5.com/create (and the CLI instructions are there too)
OG credit to: Henry Hinnefeld 2015: https://hinnefe2.github.io/python/tools/2015/09/21/mario-kar...
[0] A redshell wall break is when you point your vehicle near a wall to break a redshell without using a defense item. [1] Drifting style is either inward or outward. Inward drift has more intuitive controlls and is way better for intermidiate players, but pro players dislike it because is removes various difficult tricks.
I recommend yoshi on the yoshi bike with azure rollers and the paper glider.
The analysis comes before the meta settles, so of course it’s consistent :)
ServicePointManager
.ServerCertificateValidationCallback +=
(sender, cert, chain, sslPolicyErrors) => true;
But it was using TLS1.2!EDIT: If you mean that Rosalina looks slightly higher on the graph, I believe that's just a visual effect to allow multiple characters to occupy the same square - the stats are all integers.
Ah, yeah. That is what I meant. Thanks!
It’s called scrollytelling. For this particular project, I borrowed a lot from https://mlu-explain.github.io/. For the 3D elements, I used Threejs and a custom vertex shader for the 3D plot.
I get that this form of presentation may be great for many people, but for my brain, it makes it extremely hard to engage with the content.
I appreciate your work to make this topic accessible in an interactive format. Somehow, in this case, it's too much for me.
I think the ratio of information to interactivity is too low. It's like I have to push around a tiny keyhole to slowly access information. The graphs look fun, but their fancifulness is distracting me.
I don't usually mind interactivity, but I think usually it is embedded in the text, instead of gating it, if that makes sense.
Coincidently, this Pareto Front concept is currently on the front page on HN at #10 (https://news.ycombinator.com/item?id=49096439) and apparently, it was posted before this post.
Also, wonderful visualizations, but the change between blue and white backgrounds is really jarring to me.
If you get hit by a blue shell with a build fully optimized for speed at the cost of acceleration, it's likely to cost you the race.
I switched him to the meta build and suddenly boom, he went from like 10th to 2nd against the AIs.
It's kinda weird that you can shoot yourself in the foot so much when picking your kart in this game.
Nintendo optimises for fun, not competitive play. Infamously, to curb the competitiveness of Super Smash Bros (SSB) Melee, they introduce a random tripping mechanic in the following SSB (Brawl). Everyone hated it so they removed it in the one after that.
That's why certain tracks were played with the Torpedo/Spear in that game. It's very fast, but has the turning radius of a bus on ice. Great on something like Mario Circuit, probably a complete catastrophe on something like Bowser's Castle or Rainbow Road.
There's also battle mode, but I have no idea which karts are preferred there.
What do you mean "play for Bowser"?
This page has some elements that scroll and some elements that don't scroll. And some elements that switch between scrolling and not scrolling. And some animations are controlled by scroll position, meaning they bounce back and forth while I try to find my bearings on the scroll wheel. Everything is fighting for my attention all at once, which prevents me from focusing on anything in particular. Most of all, it prevents me from focusing on the scrolling itself - and scrolling requires extreme focus here considering you never know what will happen and how much you need to scroll for it to happen. Is text going to slide in? Is a picture going to suddenly pop up? Is an existing picture going to transform to something else? Will it transform gradually as I scroll, or is it going to do it all suddenly in one step?
In short - it breaks the UI metaphor of scrolling an infinite roll of paper, and that in turn breaks my brain. I just can't follow what's happening, there's too much non-scrolling action happening when I scroll. There's also too much empty space between paragraphs.
Besides, if something doesn't work in reader mode, it's also likely to not work with screen readers. People who use those don't have much of a choice in what they can enable or not.
Did you even read the post?