2,161 karma · joined April 7, 2013
"Is there a doctor on this plane???"
"Well yes, but I defended my thesis in comparative literature..."
[1] Yes, the ribald jokes have already been made
Match play at the World Championship (where the two players play each other repeatedly for many games) involves a ton of inter-game coaching and work as each player's team goes over what went well, what went wrong, and how the next game should be approached.
Round robin play in small fields also has a significant amount of preparation because the schedule is known in advance, so players will know whom they have to play the following morning and will prepare accordingly.
I'm not comfortable saying that Hikaru does exactly 0 preparation for 3-minute Chess.com blitz games, but it's probably pretty close to 0.
let last xs = List.fold_left (fun x y -> Some y) None xs
This is of type last : 'a list -> 'a option = <fun>
Neat, `'a` is generic. Let's η-reduce out the `xs` and make the function point-free (ignoring the lambda): let last = List.fold_left (fun x y -> Some y) None
This doesn't work the way that we want: last : '_weak1 list -> '_weak1 option = <fun>
The moment that we call this weakly polymorphic function, its type is fixed and is no longer generic. In the toplevel: # last [1;2;3];;
- : int option = Some 3
# last['x';'y';'z'];;
Error: This expression has type char but an expression was expected of type
int
Haskell, of course, is totally happy to let you do point-free mania with Kleisli arrows and all of the rest of it. #include <ranges>
#include <numeric>
#include <vector>
#include <iostream>
int main() {
std::vector<int> vec = {1, 2, 3};
// map, using `std::views::transform`. Implemented in C++20
for(int elem :
std::views::transform(vec, [](int x) { return x + 1; })) {
std::cout << elem << " "; // 2 3 4
}
std::cout << "\n";
// `std::ranges::fold_left` will be available with C++23.
// Until then, we're stuck using the <numeric> iterator version, which was
// implemented in C++20.
std::cout << std::accumulate(vec.begin(), vec.end(), 1,
[](int x, int y) { return x * y; })
<< "\n"; // 6
return 0;
}
Building and running with the following: $ g++ --std=c++20 test.cpp
$ ./a.out
2 3 4
6I don't like bullet, but 15-minute and 3-5 minute chess is wonderful to watch.
Think of a sports fan complaining that their favorite player is rated too low by Madden or FIFA's video game representation of the stats. "Whaddya mean that Justin Herbert is only rated 91, he should be rated 97!" Except instead of pointing to some box scores on ProFootballReference to attack the naysayers, you leak classified intelligence.
An American tank using American combined-arms doctrine? Well, it's not going to be a risk-free experience, but I'd rather be in the tank than be one of the bullet sponges who are fighting house-to-house to prevent the enemy bullet sponges from sticking an AT-4 out of a window.
As other people have noted, "survivability" doesn't really factor into military thinking so much as capabilities. Bullets are extremely lethal to infantrymen, but we still have infantry because infantrymen have capabilities that other equipment platforms do not have. The existence of machine guns doesn't remove the need for infantry; it just changes how they have to be used (more cover and concealment, more need for air, artillery, and tank support). The same is true for tanks - they have capabilities that no other platform can satisfactorily fulfill, so we will continue to have tanks even if anti-armor weapons become even more effective than they already are.
Imagine my surprise when our troop went to SeaBase and ran into a bunch of other troops where everyone got Eagle at age 14.
But more importantly, there is no actual shortage of potential recruits. There is a shortage of recruits who meet the current military standards. You can very easily lower your standards and get more recruits from the pool that is currently disqualified for medical issues, criminal record, and general stupidity (that is, more stupid than the military currently is).
The reason why this isn't currently done is that the military doesn't need the bodies that badly, certainly not badly enough to justify the increased expense and frustration of increased shitbaggery.
The recruiting budget is huge, and I'm sure that the military is happy to mull this over in hopes of getting more high-quality candidates. If it doesn't work, they'll try something else.
She's been punched in the face by a patient, she's had coworkers who sabotage each other due to personal vendettas, she's had bosses go on racist tirades in meetings, and on and on and on. As I remind my wife whenever she has a particularly awful day, there's a reason why the classic NP-hard CS problem is literally named the Nurse Scheduling Problem[1]. And yes, she's considering a career change.
Thanks for providing more context for what's going on - all of this stuff is neato.
* made a big rant on his company Facebook page about Starbucks and law enforcement, advocating for a boycott
* made another big rant about the local pride parade
* made a rant that was half "woe is me" and half "everyone is a sensitive snowflake" after people started boycotting his business for his remarks
Unfortunate political views aside, I was tickled by the prompt response from the public and his visible confusion of "Wait, I can be boycotted??"
To use a hypothetical example - a cereal company puts some tasteless comment in an unobtrusive corner of the box. You don't have to look at it if you don't want to - you can turn the box, or put the cereal into another container, or just not read the box that closely. But why would you want to when there are 45 other brands of cereal on the supermarket shelf?
This was a pain for me when I started college at 23; I'd been programming as a hobby since I was 16, but was shoved into intro-level classes anyway. I spent the classes learning tooling, so it wasn't a complete waste of time, but it wasn't very productive.