The analysis has been done, and for the continent of Europe it is pretty devastating if you want to rely entirely on wind power. Basically you can't even over a large continent....
The population of Germany is vastly bigger than the population of Syria. 800K people is approx 1% of the population of Germany. Germany is taking a lot of asylum seekers but it's still a fair way before they "supplant the population". Is the US supplanted by the jews? Is the UK supplanted by the Huguenots?
If the corporation that writes your OS or browser wants to be evil, it is very hard for an individual to stop them. Think of all the people using Chrome - the auto update ship has already sailed. The situation is not significantly better in Apple's ecosystem either. The VW thing actually offers hope: regulators *can* make a difference. And the quality of the regulator matters (it's a feather in the cap for the US and a frying pan in the face for Europe). Do you think individuals should be doing their own emissions tests on their cars? Do you read the Chrome source and build it yourself? I don't.
Unless your family is really short on disk space, downloading Windows 10 is not a problem. Your family does not have to install it - that's different to downloading. If they install it sometime in the next year, it will still be free. Even now, it is faster and more secure than 7. My guess is it'll soon be more stable also.
Databases used to be disk bound, sure. But these days we have huge RAM caches and SSDs - no spinning disks. It's very common for the vast majority of requests to be served entirely from cache. Read the guys' site - it looks like they know what they're doing.
Imagine if Redis was ten times slower or ten times faster. It would matter.
In the 1970s, the majority of published climate papers forecast warming, not cooling. There were famous articles from Newsweek and Times Magazine that forecast cooling but that's not the same as the science.
It's not the gulf stream, it's the jet stream. The gulf stream is in the oceans, the jet stream is a wind high in the atmosphere. The gulf stream carries warn waters past the UK, so if it were to move, the UK would experience very cold winters. The jet stream tends to divide weather systems and it makes a difference to the UK whether it's to the north or south of us. Recently, it's been moving less, staying south, leading to more stable weather patterns (the continual storms that have been battering the UK).
In general, you can't put particular weather events down to climate change. In particular, there is currently no conclusive evidence that that anthropogenic global warming was a significant factor in this winter's weather events. It is, however, broadly consistent with climate predictions and there may be evidence in the future, since it's the subject of much active research.
If you have a way to split all tasks down and make them parallel, could you please share it with the rest of us? If it's this 'program algebra' of which you speak, could you please provide us with a link?
Nobody's running their x86 in a mode that's impacted by A20 any more. And hardly anybody's writing in assembler. So it doesn't matter. And for the minority who *are* writing in assembler, ARM isn't going to help them (unless they're writing ARM assembler of course).
If x86's legacy carried a significant power or performance impact, it *would* matter. But it doesn't.
Let's test that reasoning. Let's call "the Flying Spaghetti Monster does not exist" proposition M.
* Pretty much everyone: the value of M is "true" * Pasta agnostics: the value of M is "unknown"
It's easier to understand if you remove the negative from the proposition, so let's try again. Call "there is a Flying Spaghetti Monster" proposition M'.
* Pretty much everyone: the value of M' is "false" * Pasta agnostics: the value of M' is "unknown"
Thing is, propositions without evidence are typically false by default. Also, thinking something's overwhelmingly likely is not the same as logical proof and not the same as faith.
No i'm suggesting that this decision was made over adding the hardware acceleration elements to GDI at the time given the state of graphics cards and drivers.
Well the same graphics cards work just fine under Windows 7. And Microsoft/Vista team defined the driver model.
Massively? It's just a framebuffer, even in the case where it's fullscreen *and* on a large display it's still only a couple of MB.
It a couple of MB per window - very poor scaling characteristic. Users expect to be able to open lots of windows without massive memory penalty.
Serious performance regression? Really? Maybe if you have a very low end system more suited to the versions that deliberately have Aero turned off.
Vista redefined "low end system" but Windows 7 runs Aero on those "low end systems" just fine. In any case most Windows systems are memory/IO bound, so it's not just low end systems.
No, just because i said 'cache' doesn't mean superfetch. Having those services in memory is obviously advantageous if you have the memory to do so, just like any form of caching. And I already said doing so was probably a bit optimistic but quite clearly *not* a case of 'poor programming' but of questionable design.
OK, it wasn't bad programming, just bad design:-). But it's really a stretch to call running services you don't need 'caching'. Here's why: * The services load with the same priority as user programs at the same time that the user would like to be doing something useful. * The services take memory, including non-paged pool and other expensive resources, which could better be used for something else (like, for example, caching something the user *is* going to use). * Cache can be discarded. The services cannot (though parts of them can be). * Cache is typically filled on demand (and even if it pre-caches, one's always careful to avoid clobbering other activity). Also, caching isn't always the "obvious" advantage you assume. It has costs and if those costs outweigh the benefits, it's a net loss. It also has risks - overcaching mainly.
Those services *do* take memory unnecessarily, the very definition of 'bloat'.
The reason for [massive memory use when opening windows] was a limitation of GDI at the time, it was really the only workaround, it used more RAM but it meant less CPU usage if you had aero turned on. I wouldn't really call it 'bloat', it was a necessary use of system resources, which - if you had low system specs - you avoided by just turning it off.
If by "limitation of GDI at the time" you mean, "performance regression with Windows Vista and no other version of Windows", then I'd agree. Bear in mind, this problem is fixed in Windows 7. It's true that Windows 7 requires more CPU in some circumstances but you're not seriously considering that that's a trade that the Vista team made deliberately and thought was good, are you? Windows systems running GDI are commonly memory/IO bound (if you're running directx you're likely running games and GPU/CPU are more important). Making basic operations such as opening a window consume massively more memory than previously is a serious performance regression and exactly the kind of thing people refer to as 'bloat'. See point 2 here for a summary of how it's fixed in Windows 7: http://blogs.msdn.com/b/e7/archive/2009/04/25/engineering-windows-7-for-graphics-performance.aspx
This is true, it's using your system memory as a cache, they did get a little overzealous on their use of system memory for this purpose, not poor programming just a questionable design choice since if you had a decent amount of ram this was beneficial, if you had too little ram then obviously it's going to impact performance hence the reason they pushed ReadyBoost.
No, you're confusing SuperFetch (a good thing) with running a bunch of services that are rarely needed (a bad thing, especially during startup). Windows 7 still has SuperFetch (which is well behaved and does low priority IO) but it just doesn't run all those services on startup. Running a bunch of stuff you don't need is the very definition of bloat. To read up on Windows 7's fix, "service trigger events", see http://msdn.microsoft.com/en-us/library/dd405513(v=vs.85).aspx .
Here are some examples: * Every time you open a window with Aero enabled it takes a copy of all the pixels and keeps them on the graphics card (this is the good part) but it *also* takes a copy and keeps it in system memory. This means that Vista uses more memory the more Windows you open (no other version of Windows, including Windows 7 does this). * Vista added lots and lots of features that are only used occasionally. It mostly implements these as 'services' that load on startup and remain in (virtual) memory permanently. Users typically want to load/run applications with that IO bandwidth/memory, so it's a very poor tradeoff. No other Windos version runs so many edge-case services on startup (especially Windows 7, which starts/stops them *as needed*).
So if you define "bloat" as "using much more memory than necessary", then Vista was bloated by poor programming. By this definition Windows XP and Windows 7 are less bloated.
OK, so I guess you'd be in favour of legalising the possession of car bombs? You'd draw the line below 1,2,3,4 and 5 in the list. How about 6, 7, 8 and 9?
"If I have a facility to safely contain my biological weapons without harming anyone... just for fun... why can I not?" "If I have my own desert, why can't I explode my own nuclear weapons?"
Your fellow citizens don't trust you that far. And even if you mean well, you might make a mistake.
Got any references to back up that assertion? I'm not saying you're wrong but IE9 has credible performance - I can't tell the difference between Chrome 10, IE9 and Firefox 4 performance-wise at the moment. If IE9 is slowest, it's not by much and not on everything (unlike IE6/7/8 which are in a different, slower, league).
SQL is the... only one that has a proper mathematical basis.
Other languages have the odd mathy type thing like lambda calculus but SQL is set theory.
Surely lambda calculus, logic and category theory are just as proper a mathematical basis as set theory? There are lots of languages based on those. The article's about category theory, which surely trumps set theory - doesn't it?
And as for whether SQL's expressive or not, well it depends on what you want to express. It's pretty decent in its own domain but not much good outside. The original article's example language is C# 3, which includes the SQL-like LINQ, lambdas and a regular Java-style language. I'm not saying C#'s the most expressive language there is but for any random thing you'd like to express, your chances are probably better with that than just SQL.
Well if it was obvious they wouldn't have to teach it on their Computer Science course.:-)
The problem with the_thing.do_stuff is that it's imperative programming and may have side effects that make parallel execution unsafe. The thing_do_stuff form has the same problem. At CMU, they teach techniques that don't suffer that problem: functional programming.
As for why OO is worse for parallelism than other imperative programming, well one reason is OO's insistence on encapsulation and distribution of state changes. Encapsulation makes it hard to look at code and see whether it's changing the state of an object. Distribution means there are more places to go look. Command-Query separation is one thing that helps in an OO context.
As for widget_factory_factory_factories, that sounds like Java Kindom-of-Nouns (http://steve-yegge.blogspot.com/2006/03/execution-in-kingdom-of-nouns.html) thinking. That's exactly the sort of thing that CMU's FP course doesn't suffer from.
Sure both immutable and mutable are *possible* in Java but mutable is far more common.
* Is "final" the default for variables? No, they're immutable by default. * Are collections mutable or immutable? Mutable. * Can your IDE generate get/set methods for you? I bet it can.
The String class is in the minority and it's a built-in.
Language matters. You're much more likely to see immutable structures in Scala, say, where anything declared 'val' is immutable than in Java.
I didn't know about Joda-Time by the way. It looks good.
It may be the point but it doesn't work particularly well for the scenario we're talking about. Look again at the original example below. Sure you can make a CollectionOfFoos class but it's not the most natural thing. Introducing that class is likely to have a significant impact on your code.
There's a reason the PS3 programming guides advise against OO.
The moon is slowing down the rotation of the earth through tides.
That made me smile. It is of course true in a several-orders-of-magnitude-away-from-relevance kind of a way.
We must carve giant channels through the continents to better allow the seas to get around the continents.
Also made me smile. For the record, I don't think that'll work.
The analysis has been done, and for the continent of Europe it is pretty devastating if you want to rely entirely on wind power. Basically you can't even over a large continent....
Citation needed.
The population of Germany is vastly bigger than the population of Syria. 800K people is approx 1% of the population of Germany. Germany is taking a lot of asylum seekers but it's still a fair way before they "supplant the population". Is the US supplanted by the jews? Is the UK supplanted by the Huguenots?
Apparently you have no idea what the word racist means.
That seems unlikely. Pretty much everyone knows what that word means.
If the corporation that writes your OS or browser wants to be evil, it is very hard for an individual to stop them. Think of all the people using Chrome - the auto update ship has already sailed. The situation is not significantly better in Apple's ecosystem either. The VW thing actually offers hope: regulators *can* make a difference. And the quality of the regulator matters (it's a feather in the cap for the US and a frying pan in the face for Europe). Do you think individuals should be doing their own emissions tests on their cars? Do you read the Chrome source and build it yourself? I don't.
Unless your family is really short on disk space, downloading Windows 10 is not a problem. Your family does not have to install it - that's different to downloading. If they install it sometime in the next year, it will still be free. Even now, it is faster and more secure than 7. My guess is it'll soon be more stable also.
Databases used to be disk bound, sure. But these days we have huge RAM caches and SSDs - no spinning disks. It's very common for the vast majority of requests to be served entirely from cache. Read the guys' site - it looks like they know what they're doing.
Imagine if Redis was ten times slower or ten times faster. It would matter.
In the 1970s, the majority of published climate papers forecast warming, not cooling. There were famous articles from Newsweek and Times Magazine that forecast cooling but that's not the same as the science.
See http://www.skepticalscience.co...
It's not the gulf stream, it's the jet stream. The gulf stream is in the oceans, the jet stream is a wind high in the atmosphere. The gulf stream carries warn waters past the UK, so if it were to move, the UK would experience very cold winters. The jet stream tends to divide weather systems and it makes a difference to the UK whether it's to the north or south of us. Recently, it's been moving less, staying south, leading to more stable weather patterns (the continual storms that have been battering the UK).
In general, you can't put particular weather events down to climate change. In particular, there is currently no conclusive evidence that that anthropogenic global warming was a significant factor in this winter's weather events. It is, however, broadly consistent with climate predictions and there may be evidence in the future, since it's the subject of much active research.
If you have a way to split all tasks down and make them parallel, could you please share it with the rest of us? If it's this 'program algebra' of which you speak, could you please provide us with a link?
Nobody's running their x86 in a mode that's impacted by A20 any more. And hardly anybody's writing in assembler. So it doesn't matter. And for the minority who *are* writing in assembler, ARM isn't going to help them (unless they're writing ARM assembler of course).
If x86's legacy carried a significant power or performance impact, it *would* matter. But it doesn't.
I don't think quoting the Hitchhiker's Guide would really help. If he actually *had* a Babel Fish, now that might get him out of the sticky situation.
Let's test that reasoning. Let's call "the Flying Spaghetti Monster does not exist" proposition M.
* Pretty much everyone: the value of M is "true"
* Pasta agnostics: the value of M is "unknown"
It's easier to understand if you remove the negative from the proposition, so let's try again. Call "there is a Flying Spaghetti Monster" proposition M'.
* Pretty much everyone: the value of M' is "false"
* Pasta agnostics: the value of M' is "unknown"
Thing is, propositions without evidence are typically false by default. Also, thinking something's overwhelmingly likely is not the same as logical proof and not the same as faith.
No i'm suggesting that this decision was made over adding the hardware acceleration elements to GDI at the time given the state of graphics cards and drivers.
Well the same graphics cards work just fine under Windows 7. And Microsoft/Vista team defined the driver model.
Massively? It's just a framebuffer, even in the case where it's fullscreen *and* on a large display it's still only a couple of MB.
It a couple of MB per window - very poor scaling characteristic. Users expect to be able to open lots of windows without massive memory penalty.
Serious performance regression? Really? Maybe if you have a very low end system more suited to the versions that deliberately have Aero turned off.
Vista redefined "low end system" but Windows 7 runs Aero on those "low end systems" just fine. In any case most Windows systems are memory/IO bound, so it's not just low end systems.
No, just because i said 'cache' doesn't mean superfetch. Having those services in memory is obviously advantageous if you have the memory to do so, just like any form of caching. And I already said doing so was probably a bit optimistic but quite clearly *not* a case of 'poor programming' but of questionable design.
OK, it wasn't bad programming, just bad design :-). But it's really a stretch to call running services you don't need 'caching'. Here's why:
* The services load with the same priority as user programs at the same time that the user would like to be doing something useful.
* The services take memory, including non-paged pool and other expensive resources, which could better be used for something else (like, for example, caching something the user *is* going to use).
* Cache can be discarded. The services cannot (though parts of them can be).
* Cache is typically filled on demand (and even if it pre-caches, one's always careful to avoid clobbering other activity).
Also, caching isn't always the "obvious" advantage you assume. It has costs and if those costs outweigh the benefits, it's a net loss. It also has risks - overcaching mainly.
Those services *do* take memory unnecessarily, the very definition of 'bloat'.
The reason for [massive memory use when opening windows] was a limitation of GDI at the time, it was really the only workaround, it used more RAM but it meant less CPU usage if you had aero turned on. I wouldn't really call it 'bloat', it was a necessary use of system resources, which - if you had low system specs - you avoided by just turning it off.
If by "limitation of GDI at the time" you mean, "performance regression with Windows Vista and no other version of Windows", then I'd agree. Bear in mind, this problem is fixed in Windows 7. It's true that Windows 7 requires more CPU in some circumstances but you're not seriously considering that that's a trade that the Vista team made deliberately and thought was good, are you? Windows systems running GDI are commonly memory/IO bound (if you're running directx you're likely running games and GPU/CPU are more important). Making basic operations such as opening a window consume massively more memory than previously is a serious performance regression and exactly the kind of thing people refer to as 'bloat'. See point 2 here for a summary of how it's fixed in Windows 7: http://blogs.msdn.com/b/e7/archive/2009/04/25/engineering-windows-7-for-graphics-performance.aspx
This is true, it's using your system memory as a cache, they did get a little overzealous on their use of system memory for this purpose, not poor programming just a questionable design choice since if you had a decent amount of ram this was beneficial, if you had too little ram then obviously it's going to impact performance hence the reason they pushed ReadyBoost.
No, you're confusing SuperFetch (a good thing) with running a bunch of services that are rarely needed (a bad thing, especially during startup). Windows 7 still has SuperFetch (which is well behaved and does low priority IO) but it just doesn't run all those services on startup. Running a bunch of stuff you don't need is the very definition of bloat. To read up on Windows 7's fix, "service trigger events", see http://msdn.microsoft.com/en-us/library/dd405513(v=vs.85).aspx .
Here are some examples:
* Every time you open a window with Aero enabled it takes a copy of all the pixels and keeps them on the graphics card (this is the good part) but it *also* takes a copy and keeps it in system memory. This means that Vista uses more memory the more Windows you open (no other version of Windows, including Windows 7 does this).
* Vista added lots and lots of features that are only used occasionally. It mostly implements these as 'services' that load on startup and remain in (virtual) memory permanently. Users typically want to load/run applications with that IO bandwidth/memory, so it's a very poor tradeoff. No other Windos version runs so many edge-case services on startup (especially Windows 7, which starts/stops them *as needed*).
So if you define "bloat" as "using much more memory than necessary", then Vista was bloated by poor programming. By this definition Windows XP and Windows 7 are less bloated.
You need to pick a better example for powershell verboseness. The powershell for "ps aux" is "ps".
OK, so I guess you'd be in favour of legalising the possession of car bombs? You'd draw the line below 1,2,3,4 and 5 in the list. How about 6, 7, 8 and 9?
"If I have a facility to safely contain my biological weapons without harming anyone... just for fun... why can I not?"
"If I have my own desert, why can't I explode my own nuclear weapons?"
Your fellow citizens don't trust you that far. And even if you mean well, you might make a mistake.
Why does it not make sense to allow a person to own an item?
Don't you need to draw a line somewhere? Which of the items below would you ban? Any of them?
1. Three foot poles.
2. Ten foot poles.
3. Unroadworthy cars.
4. Guns.
5. Car bombs.
6. Heavy weapons.
7. Non-weapons grade nuclear material.
8. Biological weapons.
9. Nuclear weapons.
Yup, that's an obvious missing feature. I think there's quite a good chance it'll be in Windows 8.
...But its the slowest of the major browsers now.
Got any references to back up that assertion? I'm not saying you're wrong but IE9 has credible performance - I can't tell the difference between Chrome 10, IE9 and Firefox 4 performance-wise at the moment. If IE9 is slowest, it's not by much and not on everything (unlike IE6/7/8 which are in a different, slower, league).
SQL is the ... only one that has a proper mathematical basis.
Other languages have the odd mathy type thing like lambda calculus but SQL is set theory.
Surely lambda calculus, logic and category theory are just as proper a mathematical basis as set theory? There are lots of languages based on those. The article's about category theory, which surely trumps set theory - doesn't it?
And as for whether SQL's expressive or not, well it depends on what you want to express. It's pretty decent in its own domain but not much good outside. The original article's example language is C# 3, which includes the SQL-like LINQ, lambdas and a regular Java-style language. I'm not saying C#'s the most expressive language there is but for any random thing you'd like to express, your chances are probably better with that than just SQL.
Well if it was obvious they wouldn't have to teach it on their Computer Science course. :-)
The problem with the_thing.do_stuff is that it's imperative programming and may have side effects that make parallel execution unsafe. The thing_do_stuff form has the same problem. At CMU, they teach techniques that don't suffer that problem: functional programming.
As for why OO is worse for parallelism than other imperative programming, well one reason is OO's insistence on encapsulation and distribution of state changes. Encapsulation makes it hard to look at code and see whether it's changing the state of an object. Distribution means there are more places to go look. Command-Query separation is one thing that helps in an OO context.
As for widget_factory_factory_factories, that sounds like Java Kindom-of-Nouns (http://steve-yegge.blogspot.com/2006/03/execution-in-kingdom-of-nouns.html) thinking. That's exactly the sort of thing that CMU's FP course doesn't suffer from.
Sure both immutable and mutable are *possible* in Java but mutable is far more common.
* Is "final" the default for variables? No, they're immutable by default.
* Are collections mutable or immutable? Mutable.
* Can your IDE generate get/set methods for you? I bet it can.
The String class is in the minority and it's a built-in.
Language matters. You're much more likely to see immutable structures in Scala, say, where anything declared 'val' is immutable than in Java.
I didn't know about Joda-Time by the way. It looks good.
It may be the point but it doesn't work particularly well for the scenario we're talking about. Look again at the original example below. Sure you can make a CollectionOfFoos class but it's not the most natural thing. Introducing that class is likely to have a significant impact on your code.
There's a reason the PS3 programming guides advise against OO.
class Foo {
int a;
int b;
};
Foo asdf[200];
Instead of:
class Asdf {
int a[200];
int b[200];
};