233 karma · joined January 1, 2018
Bottom posting is so useful that even Outlook users reinvent it, badly of course, using different text colours etc.
It's been decades now, why have none of the advocates of HTML emails fixed this really basic problem?
I don't think we have enough information to say for certain what really happened.
It could also have been an intentional trial balloon, to test the waters to see how much they can get away with. Politicians do that kind of thing all the time.
The more common approach is via SOCs though.
It's kind of an interesting situation since it looks like source code even though it really isn't.
I would say that BitTorrent just fits is particular design constraints fairly well, so I don't see anything replacing it without changing the use case patterns.
They don't go up to that insane frequency, but still. There's plenty of opportunity to shop around if you want really beefy systems, which is a very refreshing state of affairs compared to just two years ago.
In a way I find your comment contradictory: on the one hand, you appreciate and embrace that the body of common knowledge can change. On the other hand, you use the current state of common knowledge as an argument against doing things that can improve the common knowledge.
To me and many others, having an else associated to an if that ends in break/continue/return is a code smell, because it misleadingly suggests that there are two possible paths of control flow that reach the code after the if/else, when in reality you can only reach that point through the else block.
Also, it only happens to work due to Python's variable scoping rules. I have wished for a for-else construct in C and C++ many times: having to broaden the scope of a loop iteration variable just to duplicate a loop break check really sucks.
First of all, the core of a linear search loop always has two exits: the break and the normal (unsuccessful) loop exit.
But in a lookup-or-insert pattern, a regular for loop has two possible states that the system can be in at the end of the loop. With a for-else loop, you can put the or-insert part into the else block, so that there is a simpler invariant: after the loop construct, the element always exists and has been found.
I was honestly surprised by all the negativity in this thread. To offer an alternative opinion, there have been plenty of times when I missed having for-else while writing C.
Even a single triangle is harder than a sphere, but with a triangle mesh you can't avoid thinking about acceleration structures and having a watertight intersection test, which includes worrying about floating point precision issues.
So what you're saying may be less about raytracing vs. rasterization and more about spheres vs. triangles.
But yes, embedded compilers are usually a nightmare.
Really expressing creativity in computing requires a richer interface, at least a keyboard and a mouse.
In practice, the fundamental difference is probably more about a person's radius of empathy (progressives tend to apply their empathy to a larger group of people), and then lots of vaguely related things flow from that, e.g. different outlooks on power (conservatives prefer a strong man - obviously only assuming he's from their own "tribe" - and therefore strongly tend towards authoritarianism) and economics (empathy with more people tends to make one prefer more equal distributions of wealth and income).
The terms progressive and conservative simply arose at a time when the world was largely shaped the way conservatives like. Since then, the world has changed more towards the progressive vision, so today conservatives do want to change creating things.
I do have one follow-up question though: I was under the impression that clock trees contain repeaters in the form of CMOS inverters. Wouldn't those have dynamic leakage which the transmission line stuff doesn't account for?
With buses, you have different clocks and data moves between them. Like you said: CPU core 1 has its own clock, the bus between them has its own and different clock, and then CPU core 2 has its own clock which is yet again different. And in those cases you actually want different clocks, because you want to be able to boost CPUs independently from each other.
What I meant goes in another direction: instead of having a single powerful clock source for e.g. a CPU core, you have multiple smaller clock sources distributed throughout the core, but synchronized to each other so they run at the same frequency and phase. So data can move freely like it does today, but clock signals don't have to be distributed as far, which would hopefully make clock distribution easier and less power hungry.
It seems like such a thing should be possible, but perhaps there are good reasons why it isn't done?
I've always wondered why you can't generate clocks locally, but in a synchronized way. So basically like clock regions, but without having to add extra logic for data that goes between regions.