There is the story that von Neumann flew off the handle the first time he saw an assembler.
That was in the 1940s when labour was very cheap and compute was insanely expensive. We’re talking hundreds to thousands of programmers’ salaries for the cost of one computer.
No, it doesn’t assume an array at all. It’s a data structure that maintains a totally ordered set with 3 operations:
insert(X), delete(X), label(X)
Where label extracts the label of element X (which had previously been inserted but not deleted). The label is a number from 0 to n-1, where n is the number of elements currently stored.
Of course! If you’ve played Codenames and introspected on how you play you can see this in action. You pick a few words that feel similar and then try to justify them. Post-hoc rationalization in action.
Yes and you may search for other words that fit the rationalization to decide whether or not it's a good one. You can go even further if your teammates are people you know fairly well by bringing in your own knowledge of these people and how they might interpret the clues. There's a lot of strategy in Codenames and knowledge of vocabulary and related words is only part of it.
The problem for restaurant-employed delivery staff is nearly the same as the customer-employed delivery staff mentioned above. The driver sits around in the restaurant parking lot twiddling his thumbs and then 10 lunch orders come in over the course of an hour, most of which while the driver’s out delivering the first order. The last order ends up taking 2 hours to get to the customer who is not at all pleased with cold, soggy food long after the lunch break ended.
The food delivery app business works like the insurance business: the aggregate drivers form a risk pool [1] to protect restaurants from the variability of demand. This allows a single restaurant to be able to accept 10 food delivery orders in a matter of minutes just as easily as they would for orders coming in from the tables in their dining room. The app would dispatch up to 10 drivers to handle those orders and even automatically batch them according to proximity of destination.
Of course the app can also handle multiple restaurants in a similar area in the same way so that drivers can be dispatched most efficiently to handle all the demand for an entire city. The more drivers, restaurants, and customers centralize on a single delivery app, the more efficient the system can be (assuming the app developers know how to optimize the transshipment problem [2]).
If the business has a delivery driver, that driver should get priority on the app. But that'll never happen, because that's a slippery slope to just being an ordering platform - a much smaller moat.
I was a driver. When not delivering,
we waited, checked out, cooked food, got ahead on end-of-night cleaning, etc.
If the orders piled in, we made them ourselves then delivered them. If it was a slow night, they let a line cook go and we took over, while the manager filled in while we were out on delivery.
We were the ones who stayed late to clean the kitchen, because we delivered right up until close. On slow nights, we got out the door right at close. On busy nights, it might be two hours later as we handled the backlog of cleanup / closeout.
Delivery drivers are efficient flexible resources with less overhead than the apps.
I thank the lord I got to have a driver job as you describe in the 2000s before the gig economy. I would have ground myself to dust for an extra dollar under the current conditions.
You can't really fix the problem that everyone tends to order during lunch and dinner hours. No matter how you arrange the delivery staff, there will be too much demand during those times, and too little the rest of the day.
There's arguably been some efficiency lost, as some restaurants had the drivers cross trained to help with making the food.
The problem for restaurant-employed delivery staff is nearly the same as the customer-employed delivery staff mentioned above.
And yet somehow we had restaurant delivery for 50 years before the invention of the cell phone. And grocery delivery for a hundred years before that.
Both pizza joints, and the Chinese place I order from employ their own people.
The only thing that's changed is that a certain cohort of people are terrified to pick up a phone and speak to another human being, and so delegate that most basic of human functions to a computer program.
The only actual utility of these apps is the ability to track and obsess over the precise location of my food, as if I'm going to die of starvation if I don't know exactly where it is.
Both pizza joints, and the Chinese place I order from employ their own people.
This is the crux of the matter. We're not living in the "2 pizza joints and a Chinese place" world anymore. In my city there are hundreds of restaurants serving cuisines from half the countries on the planet. Portuguese, Spanish, Italian, French, British, Nigerian, Ethiopian, Eritrean, Mexican, Salvadoran, Peruvian, Brazilian, Korean, Japanese, Chinese (including Cantonese, Sichuanese, Shanghainese, Taiwanese, and Hakka), Indian (too many to count, likely from every province in the country), Pakistani, Bangladeshi, Sri Lankan, Thai, Vietnamese, ...
We also have movie theatres selling popcorn, Dairy Queen selling Blizzards, StarBucks selling frappuccinos, and McDonald's selling McFlurries, doughnut shops selling Boston creams, dessert shops selling matcha roll cakes, ... I didn't even mention pizza joints!
In other words, the delivery apps bring customers an explosion of options they never had before. That is their highest utility for customers (while offering the risk pool solution to restaurants).
In my city there are hundreds of restaurants serving cuisines from half the countries on the planet. Portuguese, Spanish, Italian, French, British, Nigerian, Ethiopian, Eritrean, Mexican, Salvadoran, Peruvian, Brazilian, Korean, Japanese, Chinese (including Cantonese, Sichuanese, Shanghainese, Taiwanese, and Hakka), Indian (too many to count, likely from every province in the country), Pakistani, Bangladeshi, Sri Lankan, Thai, Vietnamese, ...
In my city, too. But I don't presume that I have the right to have every single cuisine that exists delivered to me at near-zero cost. Sometimes you have to make an effort in life.
What do rights have to do with it? We’re talking about supply and demand. There is supply, there is demand, and the delivery apps provide the logistics to connect the two.
If we go back to the way things were 30 years ago then we have fewer restaurants, less economic activity, less diversity, and a less interesting life for everyone!
No, we don't. People still have to eat. If anything, we have fewer restaurants today because of consolidation in the industry and the way massive-scale delivery enables ghost kitchens that take customers away from actual restaurants.
less economic activity
Uber Eats barely generates any "economic activity." It doesn't rate against the economic activity generated when people go outside.
less diversity
Now you're just making things up. People don't become Ethiopian because they sat on their couch to eat at Ethiopian delivery compared with actually going to an Ethiopian restaurant.
a less interesting life for everyone!
Leaving your house is more interesting than being inside. It's pretty much the definition of "living."
It’s -15 C outside here and the snow is blowing sideways. NO ONE is going outside to grab lunch. They’re all ordering Uber Eats. If Uber Eats didn’t exist they’d be eating egg salad sandwiches for lunch, not ordering a pizza from a place that pays a full time driver.
Sure someone is. The Uber Eats guy. Because of you. Not considering other people to be equal human beings is the root of the problem.
Part of being an adult is to be prepared. Surely you knew it was going to be -15 more than an hour before you got hungry. You DO have a smart phone, after all. It comes with a weather app built in.
What do you think people did before we had smartphones? They didn't sit around and whine about the temperature and not eat lunch. They bought stuff ahead of time, including egg salad sandwiches.
Oh, the horror of having to pack a lunch like a caveman, and not a self-entitled knowledge worker!
I hope you somehow manage to recover. Perhaps clutching your emotional support water bottle will help.
And for that I am happy with simple web site. List of options I can have, basic modifications like remove or add. Some extras, and option to pay there and then.
Not only do a few of my local restaurants employ their own drivers, but they also use websites to allow for online ordering so I do not have to pick up the phone anyway.
Unfortunately it’s management is opaque and manipulative, in the hands of a one self-interested actor.
If anything, this sort of market would be well served by a publicly funded (not necessarily by a Government, let’s throw blockchains into the mix) neutral and transparent platform
It's not. The language of mathematics is prose, usually written in English. The formulae are meant to illustrate the relationships in a very concise way but they're meaningless without the accompanying prose.
You know… when I took the SATs I surprised myself by scoring higher on verbal than math. But it has explained so much about my subsequent interactions with my fellow nerds. So many people don’t realize prose is part of their job description and it shows. Doubly so for mathematicians. I feel like I’m taking crazy pills until I have to talk to customers or consumers and I see how they think we are all collectively nuts. They’re not wrong.
In software, restating the problem or the bullshit plainly is usually the first step to eliminating or mitigating it. George Carlin and his rants about softening words until they mean nothing comes to mind all too often.
I love the math pages on Wikipedia but I have a math degree. They are written (written clearly and concisely) for mathematicians.
If you're a programmer (but don't have a math degree) then I would offer up API docs as a comparison. They are written for you, the user of the API, to be as concise and straightforward as possible so that you can get up and running with the API. API docs are definitely not written for beginners who have never written a line of code (or a line of code in the language the API is written in) before.
If there's one complaint I may entertain, it's that Wikipedia isn't supposed to be a resource for specialists. It's intended to be an encyclopedia for a general audience. But then by that reasoning, many of these math pages on Wikipedia probably ought to be deleted outright because they're simply too specialized in the first place. So we're left with the dilemma: do we keep these articles as-is (and keep mathematicians happy) or do we delete them outright because they're too specialized?
The third option, rewriting them for a general audience, is likely to run afoul of Aesop's fable #721 "The miller, his son, and the donkey" [1]. You'll get a highly technical and complex article that explains far too much and buries its insights in overly verbose and cumbersome prose (which cannot assume any prerequisite mathematical knowledge). It'll please neither the mathematician nor the general audience member.
Maybe at its core, but Haskell in the wild is monstrously complex because of all the language extensions. Many different people use different sets of extensions so you have to learn them to understand what’s going on!
Not really, the vast majority of extensions just relax unnecessary restrictions. And these days it's easy to just enable GHC2021 or GHC2024 and be happy.
I am a StarCraft fan and I have no idea what a courtyard or a frontyard is supposed to be! However I do know that the names of buildings, units, technologies, and strategies are usually heavily abbreviated in English. Perhaps the same is true in Korean? A 12 barracks build would usually just be called "12 rax", a two hatchery mutalisk build would be called "2 hatch muta", and a three hatchery hydralisk timing attack / all-in would be called "3 hatch hydra bust".
I believe the equivalent term used in English (exhibited in the new translation) is "natural", short for "natural expansion", which refers to the obvious location where the player should build their first expansion. It sounds like the term used in Korean for this concept literally means "front yard" rather than matching the English term.
Not the parent commenter but not always. 9 pool just means you build a spawning pool at your main, for instance. This worker-prefix building build-order naming system also breaks down once people start referencing builds like 2 rax academy, 3 hatch muta, etc.
I think strictly "9 pool" means you build the pool when you have 9 supply. However, before you build a spawning pool, the only thing you can build that consumes supply is workers.
A lot of Korean slang is a little different. Source: not Korean but have been in the English community a long time and picked some stuff up.
"1rax double" is equivalent to "1rax expand" or "1rax CC". They use multi or double to mean expand in the early game. Instead of "cheese" or "all-in" they use "pil-sal-gi" which means ace/joker card or "han-bang" which means an army or attack on few resources.
I am not sure what short-hand they use for barracks, gateway, etc.
Instead of "cheese" or "all-in" they use "pil-sal-gi" which means ace/joker card
That’s a really interesting one to me! One thing I’ve noticed is that Koreans do not seem to have the same hangups / negative attitude towards cheese strategies as westerners do!
As far as I can tell, there's no hang up about 'cheese' at the higher levels of competition even among westerners. But that might just be from the extreme Korean influence at that level?
The attitude seems to be that throwing in the occasional cheese is not so much meant to win the game, as it is meant to make sure your opponent wastes resources on defending against a potential cheese at all the other times.
This is very similar to the function of a bluff in a theoretical analysis of poker. Very simplified, the optimal frequency of bluffing is when bluffing just about breaks even against optimal play from your opponents. But throwing the bluffing in masks when you actually have good cards.
A failed cheese usually leaves the attacker so weak that the game is already lost. Cheeses are intended to win the game.
But if you are known to never cheese, your opponent might bet on greedy strategies, sometimes known as "economic cheese": you don't prepare any defense, and skip scouting, to build an overwhelming army all of a sudden at some given time like just after an important couple of upgrades that boost the army (a timing attack).
The "normal" play (economic growth plus scouting) is usually the superior strat, but if your scouting fails to detect a cheese attempt that must be countered with a very specific defense, the game is lost. The occasional cheese keep the players honest so they spend resources in scouting, instead of going greedy.
StarCraft has its own bluffing scheme, that is faking a build so the opponent goes for a specific counter, but actually going for something else.
> A failed cheese usually leaves the attacker so weak that the game is already lost. Cheeses are intended to win the game.
> But if you are known to never cheese, your opponent might bet on greedy strategies, sometimes known as "economic cheese": you don't prepare any defense, and skip scouting, to build an overwhelming army all of a sudden at some given time like just after an important couple of upgrades that boost the army (a timing attack).
Yes, that's exactly what I was trying to say.
And the optimal cheese frequency is when cheesing has the same expected win-rate as 'normal' play.
> StarCraft has its own bluffing scheme, that is faking a build so the opponent goes for a specific counter, but actually going for something else.
Yes. I didn't say cheese was bluffing. Just that the strategic considerations around cheese frequency are similar to the math for bluffing in poker.
Westerners do use cheese but many of them are very unhappy about it. Probably its biggest detractor is Dan 'Artosis' Stemkosky, a man who has dedicated his life to StarCraft and who sees cheese strategies as a betrayal of the beauty of the game. He nevertheless grudgingly engages in the occasional cheese, though his opponents nearly always see it coming because he saves it for when he's truly on tilt (another poker term).
I think the real issue is that, like learning to play the piano, StarCraft demands extreme levels of practice to master its physically demanding control scheme. To then lose to an inferior opponent who merely bluffed you feels profoundly unfair. For whatever reason, Koreans seem to be better equipped to handle the cognitive dissonance associated with such an unfair system. Perhaps the Korean school system (and its infamous final exam) has something to do with it?
Is there any link to “ace” meaning a tennis serve that the defending player fails to make any contact with? I could see the parallel with a “cheese” strategy being an unexpectedly fast attack.
Streaming is a major use case where the camera may be recording continuously for several hours at a time. Another one is for video meetings, though in that case I’d prefer it if my camera forced the end of the meeting after 30 mins.
Does remind me when I talked to a chef from a big restaurant about wine and cooking. He said, a lot of people who work in a kitchen have often an smaller or bigger alcohol problem. He said, as soon as wine is opened in the kitchen for cooking, he does add just a bit salt, so people in the team don't even try to drink some cooking wine.
That doesn't seem like a good idea as a lot of people would try to reduce salt intake due to blood pressure concerns, where the alcohol in this wouldn't be a concern for that as it would likely be cooked off
That’s going to be tough. Shaoxing wine and soy sauce both have lots of sodium in them because they’re intended for seasoning dishes without the need to add salt separately. Even dòuchǐ (fermented black soybeans), which offer a similar flavour profile to soy sauce in solid form, have a lot of salt.
That was in the 1940s when labour was very cheap and compute was insanely expensive. We’re talking hundreds to thousands of programmers’ salaries for the cost of one computer.