552 karma · joined September 5, 2014
Also yeah, the recommendation system is pretty bad. I can't believe they can't do better with all the ratings data they have. I get recommendations externally, but track them in goodreads.
Whats the point of turning off the gas as leverage if it *stays off*? That would be no leverage at all.
But in any case, of course we don't know. But we should attempt to find what is and isn't a reasonable explanation, and what may be most reasonable.
And pressure Germany into what exactly? Think this one through. How does removing the possibility of re-opening the pipeline pressure Germany into anything from the point of view of the Russians?
What Russia would want to pressure Germany into is "stop your sanctions and we will sell you gas". A possibility removed by blowing up the pipeline.
The "Russia blew up the pipeline" idea makes absolutely no sense. And if there was any evidence to support it, you know that the whole of Western media would be shouting it from every rooftop.
But instead we have silence, and concerns over "national security"
Why would Russia want to even get out of those contracts? If Europe is willing to pay, they will gladly supply gas, as they have done for many many decades. Even at the peak of the cold war, they were reliably supplying gas to Western Germany for example. It is very lucrative for them. And in any case, why do contracts between Russia and Europe even matter at this point. Any party can just do whatever they want.
There is no point is "sending a message", it's very obvious that it is possible to blow up an underwater pipeline. Anyone worth sending a message to would have already known its possible.
The obvious real motivation here is to prevent any negotiation over re-opening the pipeline.
Did you just update Java? Looks like a new browser you've never used is your default now.
We just do what you describe now, and don't even really want automated type checking. We just write our own assertion functions. The weakness of writing your own is that you have to sort of "manually" upgrade them when there type changes, or they drift and your editor won't tell you about it.
But the solution really is to assume `: unknown` at API boundaries and run the values through assertion functions: `isSomeType(x: unknown): asserts x is SomeType`.
After using this sort of pattern, I don't think I would want automatic runtime checks anymore, because creating your own explicitly and calling it explicitly works out not so bad.