Prius' transmission doesn't have the advantage here, since it's efficiency is much lower than manual's.
Most transmissions lose to a manual. So what? The efficiency of the whole system is what matters.
Besides: I can't imagine the system is particularly inefficient. It's a planetary gear setup with no shifting gear ratios, no clutch, and no torque converter. I don't have the numbers handy, but I'm guessing it'd beat a conventional automatic handily.
As for Prius', it's economy is mostly talk, all the European tests have shown that modern diesel consumes less fuel than the Prius.
My fuel savings for me are very real, actually. The Prius simply has the best fuel economy available. If, where I lived, I could find a turbodiesel comparable to the Prius that could beat its fuel economy, I'd drive that. But such a car doesn't exist in New York.
Consider a car moving at a steady speed along a level highway. It will slowly lose energy to rolling resistance and aerodynamic resistance. The Prius is highly streamlined, which helps with the latter. The former is essentially constant for any vehicle.
Also, a smaller engine is an asset, not a liability. An engine is more efficient when working closer to its maximum capacity. A huge BMW engine still has to move heavy cylinders around rapidly and lubricate components designed for a high power output even when only a small portion of that power is needed. On the other hand, a Prius' smaller engine is sized precisely correctly for the average load it handles. Larger peak demands are supplemented by the battery.
Also, the Prius' transmission is an advantage here: it's a continuously variable design, meaning that the engine can operate at precisely the most efficient speed all the time, whereas the BMW's engine speed is dictated by a combination of road speed and transmission gear ratio. That speed is likely not optimal.
As for diesel hybrids: I'd love one. But manufacturers have had difficulty making diesel engines meet strict emissions standards imposed by states like California and New York. Besides: I spend so little on gasoline these days that the incremental advantage of using diesel doesn't make me miss it much.
Tell me why Dubai is booming again? I can't figure it out. Sure, lots of petrodollars are pouring into the city, but that just builds infrastructure. Why would a random non-construction, non-petrochemical business set up shop in Dubai?
Except real microwave power installations wouldn't work like that. The power would be so diffuse, and the collecting area so vast, that any misalignment would be harmless.
You want to reduce the number of people? You go first. At the least, don't have kids.
The fact is that if you want to reduce population growth, the best way to do that is to make everyone rich. Prosperity always leads to declining fertility.
Yes, you can use threads well. But with less effort (taking into account synchronization and debugging), you can make the asynchronous tasks independent programs instead of threads. Your video and sound processing threads sound like perfect candidates for being made into independent programs.
A task being an independent program affords several advantages. For example, it's easier to test an independent program, especially in a test harness. An independent program can be run by itself. And it's very clear what an independent program's data dependencies are. There is no risk of accidentally racing in memory access, assuming the programs don't share memory. Don't do that.
Performance simply is not a problem. Any modern operating system will have IPC primitives that are more than good enough.
For something like a video processing application, all three programs sharing file descriptors open to a video buffer sounds ideal. And before you complain that "disk access" is slow: on modern operating systems, main memory is just a cache for the disk anyway. With a modern page cache, using a disk file well be just as efficient as pretending you can keep arbitrarily large data structures in memory. See Varnish's architecture.
Even if you must use threads, you should always program them as if they were independent programs, use message-passing, sockets, and so on for communication, and treat the shared address space more as a dangerous misfeature than a communication medium.
You're still missing the OP's point. Let me spell it out for you:
Say you have four videos to encode, and four cores.
1) You can either use one core at a time and encode one video at a time. Let's say that takes time T. 2) You can encode one video at a time, but use all four cores while doing it. Your total time is T/4. 3) You can encode four videos at a time, one on each core. Your total time is T/4.
The OP was advocating strategy #3. It's a fine approach.
It works tolerably well for X.509. What's your proposed alternative?
You're like those environmentalists who say "no" to nuclear, coal, wind (birds), dams (fish), solar (semiconductor manufacturing), and everything else, but who say "yes" to nothing.
We have a UPS that works fine, but one day I decided to stress-test it by plugging it in and unplugging it repeatedly. If I do it often enough, I can the thing to drop power long enough for connected computers to die. Design bug?
Excellent analysis. I wish more people were able to step into a non-geek's shoes and look at the world.
When it comes down it, most people don't care about free software ideals, open protocols, or avoiding monoculture. They just want to get through their boring jobs, come home, be entertained, and try to get laid.
Anything that makes these things easier or better is going to become popular with the masses. Anything that doesn't is going to remain confined to a core of people who've been able to see the world differently. Ultimately, we only make progress when we make the right thing the easy thing.
"All theories are wrong. Some are useful."
Read Thomas Kuhn's influential book, The Structure of Scientific Revolutions.
Most transmissions lose to a manual. So what? The efficiency of the whole system is what matters.
Besides: I can't imagine the system is particularly inefficient. It's a planetary gear setup with no shifting gear ratios, no clutch, and no torque converter. I don't have the numbers handy, but I'm guessing it'd beat a conventional automatic handily.
My fuel savings for me are very real, actually. The Prius simply has the best fuel economy available. If, where I lived, I could find a turbodiesel comparable to the Prius that could beat its fuel economy, I'd drive that. But such a car doesn't exist in New York.
You're totally and completely wrong.
Consider a car moving at a steady speed along a level highway. It will slowly lose energy to rolling resistance and aerodynamic resistance. The Prius is highly streamlined, which helps with the latter. The former is essentially constant for any vehicle.
Also, a smaller engine is an asset, not a liability. An engine is more efficient when working closer to its maximum capacity. A huge BMW engine still has to move heavy cylinders around rapidly and lubricate components designed for a high power output even when only a small portion of that power is needed. On the other hand, a Prius' smaller engine is sized precisely correctly for the average load it handles. Larger peak demands are supplemented by the battery.
Also, the Prius' transmission is an advantage here: it's a continuously variable design, meaning that the engine can operate at precisely the most efficient speed all the time, whereas the BMW's engine speed is dictated by a combination of road speed and transmission gear ratio. That speed is likely not optimal.
As for diesel hybrids: I'd love one. But manufacturers have had difficulty making diesel engines meet strict emissions standards imposed by states like California and New York. Besides: I spend so little on gasoline these days that the incremental advantage of using diesel doesn't make me miss it much.
Tell me why Dubai is booming again? I can't figure it out. Sure, lots of petrodollars are pouring into the city, but that just builds infrastructure. Why would a random non-construction, non-petrochemical business set up shop in Dubai?
You're a fool. Humanity is not some sort of plague.
Except real microwave power installations wouldn't work like that. The power would be so diffuse, and the collecting area so vast, that any misalignment would be harmless.
You want to reduce the number of people? You go first. At the least, don't have kids.
The fact is that if you want to reduce population growth, the best way to do that is to make everyone rich. Prosperity always leads to declining fertility.
I'm with you on nuclear.
But my Prius performs perfectly well, thankyouverymuch. Of all the criticisms I've heard, yours is among the strangest and easiest to debunk.
What law, exactly, would be broken?
Or at least work to get the law repealed. Selective, arbitrary enforcement merely creates contempt for all laws.
The world changed when Reagan gutted the education system and this country began a long, slow slide into ignorance.
Or how about the C hammer? It's a rock.
And Lisp: Lisp is a hammer with all the power of a jackhammer and all the artistic merit of The Last Supper. :-)
Yes, you can use threads well. But with less effort (taking into account synchronization and debugging), you can make the asynchronous tasks independent programs instead of threads. Your video and sound processing threads sound like perfect candidates for being made into independent programs.
A task being an independent program affords several advantages. For example, it's easier to test an independent program, especially in a test harness. An independent program can be run by itself. And it's very clear what an independent program's data dependencies are. There is no risk of accidentally racing in memory access, assuming the programs don't share memory. Don't do that.
Performance simply is not a problem. Any modern operating system will have IPC primitives that are more than good enough.
For something like a video processing application, all three programs sharing file descriptors open to a video buffer sounds ideal. And before you complain that "disk access" is slow: on modern operating systems, main memory is just a cache for the disk anyway. With a modern page cache, using a disk file well be just as efficient as pretending you can keep arbitrarily large data structures in memory. See Varnish's architecture.
Even if you must use threads, you should always program them as if they were independent programs, use message-passing, sockets, and so on for communication, and treat the shared address space more as a dangerous misfeature than a communication medium.
You're still missing the OP's point. Let me spell it out for you:
Say you have four videos to encode, and four cores.
1) You can either use one core at a time and encode one video at a time. Let's say that takes time T.
2) You can encode one video at a time, but use all four cores while doing it. Your total time is T/4.
3) You can encode four videos at a time, one on each core. Your total time is T/4.
The OP was advocating strategy #3. It's a fine approach.
It works tolerably well for X.509. What's your proposed alternative?
You're like those environmentalists who say "no" to nuclear, coal, wind (birds), dams (fish), solar (semiconductor manufacturing), and everything else, but who say "yes" to nothing.
Kinda sucks for those of us who have split-horizon DNS though.
Yes, DJB "recognized" the problem by lobotomizing DNS, and he refuses to consider what will solve the problem once and for all, DNSSEC. Right...
We have a UPS that works fine, but one day I decided to stress-test it by plugging it in and unplugging it repeatedly. If I do it often enough, I can the thing to drop power long enough for connected computers to die. Design bug?
DNSSEC does not require listing your whole zone: NSEC3
Stop spreading FUD.
DNSSEC a joke? Hardly. Care to elaborate on your alternate and better proposal?
I'm no fan of the cops, but measuring at an angle to the direction of travel decreases the speed as perceived by the radar gun.
"Identify" is the hard part. It's useless unless you make it difficult to come up with a new identity.
Excellent analysis. I wish more people were able to step into a non-geek's shoes and look at the world.
When it comes down it, most people don't care about free software ideals, open protocols, or avoiding monoculture. They just want to get through their boring jobs, come home, be entertained, and try to get laid.
Anything that makes these things easier or better is going to become popular with the masses. Anything that doesn't is going to remain confined to a core of people who've been able to see the world differently. Ultimately, we only make progress when we make the right thing the easy thing.
Like flak?