Yes, electric cars are better for environment, even if you consider batteries (which are not toxic anymore, btw).
Especially in the long term. Your example with solder is a good one: it increased e-waste first, but now solders are quite good and we are not polluting environment with lead.
"Actually you can. You turn off four plants and keep two at half load. When there is a surge then the two plants can handle it, and when the surge is sustained then you turn on another plant."
It takes a lot of time to turn on/off a nuclear powerplant (because of fission byproducts which sequester free neutrons and inhibit chain reaction).
Even common coal powerplants are not easy to turn on or off, just because of huge thermal inertia.
"LeftScienceBlog" it's funny, because science has real left leaning.
Several corporations have successfully sponsored projects on ScienceBlogs: "Collective Imagination" sponsored by GE and "The Energy Grid" sponsored by Shell. But both of these projects were written by independent bloggers, not by companies' PR stuff like in this case.
PS: I'm a regular Scienceblogs reader. And I rely on their frontpage to show interesting stories from blogs that I don't follow in my RSS feeds.
Do you know relational algebra? If you don't, then I highly recommend:
Codd, E.F. (1990). The Relational Model for Database Management (Version 2 ed.). Addison Wesley Publishing Company. ISBN 0-201-14192-2.
It's MUCH better to know the fundamentals of database systems and then try to figure out details than vice-versa.http://ask.slashdot.org/story/10/07/08/2142211/Good-Database-Design-Books?art_pos=1#
"well... I can't believe thats really *all* you have to pay..."
I certainly have not paid more. As for the scenario of explosive growth requiring a lot of servers, Microsoft can offer you nice customized quotes. Especially if you are a startup.
MS really is very business-friendly - just look at all this DRM made specially for these small poor media megacorporations. Unfortunately, it doesn't translate well into being customer-friendly.
"You know, if you wish to be taken seriously you should start by trying not to sound like a 15-years-old with a testosterone imbalance."
We tried that. It doesn't work. I'm personally tired of treating any idiot as if they were Nobel prize winners.
"I've been reading part of that paper you linked and while I don't think I'll have enough time to look at it completely, the introduction at least is full of pointless fluff and irrelevant factoids that have no relevance whatsoever with the problem he's allegedly addressing. Perhaps you could sum it up more clearly for me?"
"Oh there's a far greater problem, it's people like you willing to whitewash inaccuracies and the inability for people to review the data used to reach the conclusion they claim is accurate."
Which. Fucking. Inaccuracies?
We're talking about several errors in a giant report. How do you imagine that they can change the very BASICS of the climate science?
Do you suggest that ALL climate scientists are members of a global conspiracy ring, spanning more than a century and more than 300 countries?
"If you can't peer review, it's not science. If you're theory cannot actually predict anything but the past, that's not a good theory and you need to go back to the drawing board."
It fucking can. IPCC predicitons from 1988 come true today, and they are statistically significant.
Hell, even Arrhenius' predictions from 1890-s are correct (within their margin of error).
Go on and study climate science before making stupid remarks.
"If you are placing your monitoring stations under A/C exhaust vents and in the middle of asphalt parking lots, you can make any year the warmest on record."
Yeah, yeah. I know, we in our Global Conspiracy try hard.
But I'm still waiting on data proving that the Earth is cooling.
Where is it?
"It is clear you never read the CRU leak's actual contents, or are you one of the fucking tools that would have us believe that plain English terms like "hide the decline" are being misinterpreted? Because you fucks aren't fooling anybody with that kind of talk."
"The data from the IPCC and other climate centers can not be trusted, and the CRU leaks show why."
OK. Now show me the data which proves that Earth is cooling. Of course, without using ANY official weather data - they are all parts of the global conspiracy.
"Keep hiding that decline, boys. Wouldn't want anybody to realize that we are in a global cooling snap and have been for a decade now."
Really. Such fools as you should be put against the wall and shot. Then buried with the stake through heart, just to be sure.
The garbage you're spewing is based on a simple fact of 1998 being a statistical fluke. However, the last year is the _hottest_ year on records and beats 1998. So no, there's just no global cooling. There are just stupid fools who don't understand the basics.
I've used STLPort (STL is mostly header-only) without _ANY_ C++ stdlib.
If you don't use exceptions (which you probably shouldn't on such small devices) then you'll only need to manually define default global::new and::delete operators and a handful of other functions.
As for C++ purists - tell them to go fsck themselves. IOStreams is an exceedingly ugly part of C++ standard library. A small C++ wrapper over the fopen/fclose/... is usually much better.
"As I understand it, C++ compilers implement templates by making a copy of the object code for each type for which the template code is instantiated. Once you instantiate a template numerous times, your binary gets bigger, and it slows down because it has to keep loading data from storage instead of caching it in RAM."
Not really. GCC reuses the same code from different instantiations. And of course, if you follow ODR then you'll have at most 1 template instantiation for each combination of type parameters.
Also, libstdc++ is a beast. But so is glibc. If you compile for embedded devices - don't use it. It's certainly possible to make 'Hello world' to be about 1kb in C++.
"Wow, now you've really exposed your naivety and cluelessness. The world of enterprise is what drives all the significant developments."
Actually, no. Enterprise world is where the money is, true. But significant developments rarely happen there, all recent major developments happened in the world of personal computing, mobile and distributed processing.
"Most are started with the dream of being successful enough to be bought out by a larger company. The technologies they possess are added to the portfolio of the consuming company so your argument doesn't hold water."
Yes, and that's how enterprise world is evolving.
"You seem to want to trash enterprise class companies, while you shill for one of the biggest - MS. Have you ever worked in enterprise development?"
My personal experiences are about as broad as it gets (from hardcore C++ to high-level enterprise software) my company (i.e. the company I own) writes software for enterprise clients. It pays well, sure. But it's a dead end.
I also happen to know Java in extreme details (wrote my own JVM...) and hate Microsoft with passion and will touch.NET only under threat of starvation. But that doesn't mean I can't appreciate good technology in their software stack.
"Where? Everywhere. I don't know what enterprises you work in, but I've been in enterprise development for 35 years and I've never seen such a sea change..."
Yeah, yeah. I know. And I'm absolutely not interested. The world of enterprise is a world of stale old tenchnologies, it's a world of hopeless legacy. Java gave it a brief time of excitement, but now it'll fall back on being soul-crushing boredom. Only now with Java instead of COBOL.
While small and nimble companies will use good tools (.NET, Python, etc.) to leapfrog 'enterprisey' companies. I'm seeing this already.
"Right. We should rely on your word rather than actual statistics."
Which statistics? Number of Google searches? Don't make me laugh.
"What? Java 1.6.0 was released in 2006. We're now up to release 20. By my count that's better than one major release per quarter."
I'm speaking about major updates. Java 1.1 was released in 1997 with anonymous and inner class support. Java 5 was released in 2004 with generics (7 years). Java 7 is on track to be released in 2011 (7 years).
"Sorry, not even close and most of what is available is closed source."
Can you provide examples of Java projects absent in.NET?
"Having to convince management to pony up money for third party.Net libraries all the time is tiring, which is why, if given the choice, I develop in java where I can get better quality and better tested libraries for no charge.".NET ecosphere is just different. A lot of projects are closed source, but are usually fairly cheap. Also, MS is quite friendly for small companies - it's possible to get everything required for development almost for free (using their BizSpark program).
"Guess it depends on your cerebral capacity. BTW, you might be interested to know that apparently Scala 2.8 will support LINQ."
Nope, it won't. I observe Scala development quite closely, and there's no infrastructure for LINQ. There's an interesting project http://ppl.stanford.edu/wiki/images/8/8f/Porting_LINQ_to_Scala.pdf but it is not open (I asked its author). There's also ScalaQL and other projects, but they are inadequate.
Right now, I'm using QueryDSL as the most practical approach.
Where? Java is pretty stable only in enterprise because of large volume of legacy code. All other usage areas are disappearing.
langpop is rubbish. If you want to get real picture - try searching Monster.com or freelance sites. C# now dominates Java in nearly everything.
The pace of Java development can hardly be described as 'steady'. It's more like 'spastic' - 5-7 years without any updates followed by stinky code drop from some obscure JSR group. Come on, Java6 is close to EOL while Java7 is not even close to release!
Just remember the fail with type erasure in generics. Sun wanted to make backwards-compatible generics which mandated type erasure. But it turned out to be impossible, but they didn't have guts to do reified generics so we now have to live with this stinking pile of failure.
"Technologies like LINQ/PLINQ are great, but very proprietary in a world that doesn't have to be tied to a specific platform. Why tie yourself down to proprietary extensions when perfectly viable alternatives exist? If MS were to open-source.Net and/or LINQ, then maybe they would stand a chance of being generally accepted"
WTF? LINQ is open and is actually described in an ISO standard, it's a core language feature. And it's completely implemented by Mono, for example.
"What better platform to develop in to take advantage of this vast array of pre-existing, pre-tested code than Java".NET is better. Right now it has about as much of pre-existing software as Java.
"(or one of it's offspring such as Scala)?"
Scala is overcomplicated and perpetually in a state of flux. It's not possible to use it for large projects.
Yes, Java core language is stagnating. Even JDK7 has not much new features.
Java does have a nice ecosystem of libraries, but by now we've explored about 100% of what can be done in libraries without changing the core language. But there are limits, and a lot of things are just not possible to do in libraries.
For example, java.util.concurrent library is quite nice. But it's rather clumsy even with the planned closures support, any parallel algorithm is quickly drowned in the clutter of anonymous classes. In comparison, Parallel LINQ in.NET is much easier to use.
Or take QueryDSL as another example - it allows to build nice typesafe queries, but it's not really feasible to use it to query simple collections because of huge runtime overhead. While LINQ works just fine.
Reified generics in C# also make a lot of things MUCH nicer.
Yes, electric cars are better for environment, even if you consider batteries (which are not toxic anymore, btw).
Especially in the long term. Your example with solder is a good one: it increased e-waste first, but now solders are quite good and we are not polluting environment with lead.
"Actually you can. You turn off four plants and keep two at half load. When there is a surge then the two plants can handle it, and when the surge is sustained then you turn on another plant."
It takes a lot of time to turn on/off a nuclear powerplant (because of fission byproducts which sequester free neutrons and inhibit chain reaction).
Even common coal powerplants are not easy to turn on or off, just because of huge thermal inertia.
"I'm an atheist who was just trying to understand the point of abusing crackers, the same 20, scientific-method believing people called me a liar."
That was PZ Myers. He did this in support of freedom of speech and religion.
"Man, this is getting ridiculous. As sweet as it sounds, do we really need more than 1920x1080?"
Yes, we do. High-DPI text would look great if our displays support more than 1920x1080 with small enough size.
"LeftScienceBlog" it's funny, because science has real left leaning.
Several corporations have successfully sponsored projects on ScienceBlogs: "Collective Imagination" sponsored by GE and "The Energy Grid" sponsored by Shell. But both of these projects were written by independent bloggers, not by companies' PR stuff like in this case.
PS: I'm a regular Scienceblogs reader. And I rely on their frontpage to show interesting stories from blogs that I don't follow in my RSS feeds.
Codd's book is not really a reference book, it's more like a textbook.
That's why it's much better to read it in a library.
Do you know relational algebra? If you don't, then I highly recommend:
Codd, E.F. (1990). The Relational Model for Database Management (Version 2 ed.). Addison Wesley Publishing Company. ISBN 0-201-14192-2.
It's MUCH better to know the fundamentals of database systems and then try to figure out details than vice-versa.http://ask.slashdot.org/story/10/07/08/2142211/Good-Database-Design-Books?art_pos=1#
"well... I can't believe thats really *all* you have to pay..."
I certainly have not paid more. As for the scenario of explosive growth requiring a lot of servers, Microsoft can offer you nice customized quotes. Especially if you are a startup.
MS really is very business-friendly - just look at all this DRM made specially for these small poor media megacorporations. Unfortunately, it doesn't translate well into being customer-friendly.
"You know, if you wish to be taken seriously you should start by trying not to sound like a 15-years-old with a testosterone imbalance."
We tried that. It doesn't work. I'm personally tired of treating any idiot as if they were Nobel prize winners.
"I've been reading part of that paper you linked and while I don't think I'll have enough time to look at it completely, the introduction at least is full of pointless fluff and irrelevant factoids that have no relevance whatsoever with the problem he's allegedly addressing. Perhaps you could sum it up more clearly for me?"
The one about the Leake affair?
"Oh there's a far greater problem, it's people like you willing to whitewash inaccuracies and the inability for people to review the data used to reach the conclusion they claim is accurate."
Which. Fucking. Inaccuracies?
We're talking about several errors in a giant report. How do you imagine that they can change the very BASICS of the climate science?
Do you suggest that ALL climate scientists are members of a global conspiracy ring, spanning more than a century and more than 300 countries?
"If you can't peer review, it's not science. If you're theory cannot actually predict anything but the past, that's not a good theory and you need to go back to the drawing board."
It fucking can. IPCC predicitons from 1988 come true today, and they are statistically significant.
Hell, even Arrhenius' predictions from 1890-s are correct (within their margin of error).
Go on and study climate science before making stupid remarks.
"If you pick 1998 as the year to start, then yes, temperatures have declined from that extraordinary El Nino weather pattern."
Not even that, anymore. 2009 was warmer than 1998.
"If you are placing your monitoring stations under A/C exhaust vents and in the middle of asphalt parking lots, you can make any year the warmest on record."
Yeah, yeah. I know, we in our Global Conspiracy try hard.
But I'm still waiting on data proving that the Earth is cooling.
Where is it?
"It is clear you never read the CRU leak's actual contents, or are you one of the fucking tools that would have us believe that plain English terms like "hide the decline" are being misinterpreted? Because you fucks aren't fooling anybody with that kind of talk."
No need to fool a fool.
"The data from the IPCC and other climate centers can not be trusted, and the CRU leaks show why."
OK. Now show me the data which proves that Earth is cooling. Of course, without using ANY official weather data - they are all parts of the global conspiracy.
Go on, make my day.
"Keep hiding that decline, boys. Wouldn't want anybody to realize that we are in a global cooling snap and have been for a decade now."
Really. Such fools as you should be put against the wall and shot. Then buried with the stake through heart, just to be sure.
The garbage you're spewing is based on a simple fact of 1998 being a statistical fluke. However, the last year is the _hottest_ year on records and beats 1998. So no, there's just no global cooling. There are just stupid fools who don't understand the basics.
Halite dust actually has some theurapeutic effects: http://www.salt-therapypipe.com/background-of-treatment.asp
And it's not like you can easily breathe a lethal concentration of salt.
I've used STLPort (STL is mostly header-only) without _ANY_ C++ stdlib.
If you don't use exceptions (which you probably shouldn't on such small devices) then you'll only need to manually define default global ::new and ::delete operators and a handful of other functions.
As for C++ purists - tell them to go fsck themselves. IOStreams is an exceedingly ugly part of C++ standard library. A small C++ wrapper over the fopen/fclose/... is usually much better.
"As I understand it, C++ compilers implement templates by making a copy of the object code for each type for which the template code is instantiated. Once you instantiate a template numerous times, your binary gets bigger, and it slows down because it has to keep loading data from storage instead of caching it in RAM."
Not really. GCC reuses the same code from different instantiations. And of course, if you follow ODR then you'll have at most 1 template instantiation for each combination of type parameters.
Also, libstdc++ is a beast. But so is glibc. If you compile for embedded devices - don't use it. It's certainly possible to make 'Hello world' to be about 1kb in C++.
Waaaah! Just reading about FOOF made me cringe. It's even worse than watching horror films.
XeF2 produces _atomic_ fluorine during decomposition. Just thinking about it makes me shiver.
"Wow, now you've really exposed your naivety and cluelessness. The world of enterprise is what drives all the significant developments."
Actually, no. Enterprise world is where the money is, true. But significant developments rarely happen there, all recent major developments happened in the world of personal computing, mobile and distributed processing.
"Most are started with the dream of being successful enough to be bought out by a larger company. The technologies they possess are added to the portfolio of the consuming company so your argument doesn't hold water."
Yes, and that's how enterprise world is evolving.
"You seem to want to trash enterprise class companies, while you shill for one of the biggest - MS.
Have you ever worked in enterprise development?"
My personal experiences are about as broad as it gets (from hardcore C++ to high-level enterprise software) my company (i.e. the company I own) writes software for enterprise clients. It pays well, sure. But it's a dead end.
I also happen to know Java in extreme details (wrote my own JVM...) and hate Microsoft with passion and will touch .NET only under threat of starvation. But that doesn't mean I can't appreciate good technology in their software stack.
Actually, Mono is a certified CLR implementation...
But I'm ready to concede the point about Android. It really is Java, but without most of Sun's UI cruft.
However, Java was chosen there not because it's good, but because it's the only choice for real cross-platform development of reasonably fast code.
"Where? Everywhere. I don't know what enterprises you work in, but I've been in enterprise development for 35 years and I've never seen such a sea change..."
Yeah, yeah. I know. And I'm absolutely not interested. The world of enterprise is a world of stale old tenchnologies, it's a world of hopeless legacy. Java gave it a brief time of excitement, but now it'll fall back on being soul-crushing boredom. Only now with Java instead of COBOL.
While small and nimble companies will use good tools (.NET, Python, etc.) to leapfrog 'enterprisey' companies. I'm seeing this already.
"Right. We should rely on your word rather than actual statistics."
Which statistics? Number of Google searches? Don't make me laugh.
"What? Java 1.6.0 was released in 2006. We're now up to release 20. By my count that's better than one major release per quarter."
I'm speaking about major updates. Java 1.1 was released in 1997 with anonymous and inner class support. Java 5 was released in 2004 with generics (7 years). Java 7 is on track to be released in 2011 (7 years).
"Sorry, not even close and most of what is available is closed source."
Can you provide examples of Java projects absent in .NET?
"Having to convince management to pony up money for third party .Net libraries all the time is tiring, which is why, if given the choice, I develop in java where I can get better quality and better tested libraries for no charge." .NET ecosphere is just different. A lot of projects are closed source, but are usually fairly cheap. Also, MS is quite friendly for small companies - it's possible to get everything required for development almost for free (using their BizSpark program).
"Guess it depends on your cerebral capacity. BTW, you might be interested to know that apparently Scala 2.8 will support LINQ."
Nope, it won't. I observe Scala development quite closely, and there's no infrastructure for LINQ. There's an interesting project http://ppl.stanford.edu/wiki/images/8/8f/Porting_LINQ_to_Scala.pdf but it is not open (I asked its author). There's also ScalaQL and other projects, but they are inadequate.
Right now, I'm using QueryDSL as the most practical approach.
"Virtually, every single phone in the world..."
J2ME is dead.
"oh, and there is Android too."
Which is not Java(tm) and they also think about making Go language the first-class citizen.
"Its usage however, is ever expanding."
Where? Java is pretty stable only in enterprise because of large volume of legacy code. All other usage areas are disappearing.
langpop is rubbish. If you want to get real picture - try searching Monster.com or freelance sites. C# now dominates Java in nearly everything.
The pace of Java development can hardly be described as 'steady'. It's more like 'spastic' - 5-7 years without any updates followed by stinky code drop from some obscure JSR group. Come on, Java6 is close to EOL while Java7 is not even close to release!
Just remember the fail with type erasure in generics. Sun wanted to make backwards-compatible generics which mandated type erasure. But it turned out to be impossible, but they didn't have guts to do reified generics so we now have to live with this stinking pile of failure.
"Technologies like LINQ/PLINQ are great, but very proprietary in a world that doesn't have to be tied to a specific platform. Why tie yourself down to proprietary extensions when perfectly viable alternatives exist? If MS were to open-source .Net and/or LINQ, then maybe they would stand a chance of being generally accepted"
WTF? LINQ is open and is actually described in an ISO standard, it's a core language feature. And it's completely implemented by Mono, for example.
"What better platform to develop in to take advantage of this vast array of pre-existing, pre-tested code than Java" .NET is better. Right now it has about as much of pre-existing software as Java.
"(or one of it's offspring such as Scala)?"
Scala is overcomplicated and perpetually in a state of flux. It's not possible to use it for large projects.
Yes, Java core language is stagnating. Even JDK7 has not much new features.
Java does have a nice ecosystem of libraries, but by now we've explored about 100% of what can be done in libraries without changing the core language. But there are limits, and a lot of things are just not possible to do in libraries.
For example, java.util.concurrent library is quite nice. But it's rather clumsy even with the planned closures support, any parallel algorithm is quickly drowned in the clutter of anonymous classes. In comparison, Parallel LINQ in .NET is much easier to use.
Or take QueryDSL as another example - it allows to build nice typesafe queries, but it's not really feasible to use it to query simple collections because of huge runtime overhead. While LINQ works just fine.
Reified generics in C# also make a lot of things MUCH nicer.