And, to make it even more fun, what facebook considers to be offensive can change from day to day.
Still more fun: thanks to the Lori Drew ruling, if Facebook decides that you've posted something offensive, then you've just committed a federal crime.
The first alternative, which currently is very popular in a stealthy kind of way, is to reduce. Cut back on the emission of pollutants
Yes...
reduce energy usage
That doesn't follow. If we have energy sources that are abundant and nonpolluting (e.g. nuclear) we don't have to reduce energy usage. Of course that offends many greens for whom actually protecting the environment is secondary to Changing Society to Live in Harmony with Gaia.
What it usually meaning to "throw hardware at a problem" is that an organization is going tolerate a bad design.
Throwing hardware at a problem isn't an excuse for using a bubble sort, or linear search instead of a hash table. It *is* often an excuse for not rewriting a well-designed and working PHP or Python application in C.
But if you have a poor algorithm, one that does not scale, then you will throw an exponential amount of hardware at the problem.
Right. Better hardware is often the best solution for reducing the constant factor in your O(N) algorithms. It won't help if you're at O(N^3).
Besides CPAN, Perl was one of the first languages to integrate advanced data structures - lists and hashes - directly into language itself. And not some half-assed implementation - e.g. C++'s STL or Lisp' lists - but really really good implementation
Ugh. Perl deserves credit for recognizing the importance of built-in data structures, but auto-flattening lists and requiring explicit references to do nesting is insane.
We should use interim steps until we reach a level that we can harness all of our energy needs from the nearest star but we should never forget the ultimate goal.
Agreed. Right now I see nuclear power as the best medium-term solution. We certainly should keep looking for something better.
It's a conspiracy theory in that it claims that the hard-core greens (which by no means includes all liberals, or all environmentalists) are lying about their stated reasons for opposing nuclear power. But unlike most other conspiracy theories it makes a specific prediction, which is that as solar, wind, and geothermal power becomes increasingly viable as replacements for fossil fuels, greens will suddenly discover reasons why they're unacceptable. I believe that is likely to be the case; we'll get to find out in the next decade or so.
Not to mention the gross amount of concrete that would be needed to create all those plants and the resulting global climate effects resulting from the emissions in creating that concrete.
As opposed to the solar and wind installations that are built from pixie dust? The US has 104 active nuclear plants producing 20% of our electricity. Is building 400 more to get close to 100% really going to cause a concrete shortage?
So, freeloading off an open source OS (Mach BSD) counts as a technological leap to you ? It was a corporate thinking leap, but a technological leap ??
The advancement wasn't putting Unix on Macs, it was creating a UI for Unix that normal people could use. It's not that easy; Ubuntu and others are just now getting there.
Apple is going to be in serious trouble if what Psystar is doing becomes commonplace.
Which it won't. Most of the interest in Psystar and other Hackintoshes is only because of the gaping hole in Apple's lineup between the mini and the Mac Pro. If Psystar somehow wins (unlikely, but I hope they do), Apple could neutralize most of their appeal by releasing a "Mac Pro lite" with normal desktop parts for $1200 or so. Which would still have huge margins, considering Dell and others are selling quad-core towers for under $500.
With Python and its significant whitespace, generating code is a pain!
Out of curiosity, why are you generating Python code? It's often necessary in C or Java because those languages are insufficiently expressive so you end up with lots of almost-but-not-quite identical code, but I've found that in Python and similar languages it's rarely needed.
The other day I grabbed Numpy 1.2.1 and built it against Python 2.6 with no issues. It seems to run fine, but I'm only using a tiny portion of its functionality.
THat is to say, if you are buying an apple it's either for aethetics, ease of use for grandma or the volunteers at your non-profit, or compatibility, or the relatively low cost of tech support, set up, and training.
Or because it's a Unix that runs Office and Photoshop, and supports wireless cards and GPUs without having to compile experimental kernel modules. (Yes, Linux is getting better. No, it's not there yet).
Why not make print a function, but then change the language to not require parentheses for any function call?
Then you get into syntax ambiguities; does "foo -1" subtract 1 from foo, or call foo with the argument -1? Sure, you can specify precedence rules, but one of Python's major selling points is simplicity and lack of special cases.
But the idea of forcing that style on everyone annoys me enough to put me off of the language as a whole.
I had that exact reaction when I first came across Python. But after giving it a chance (many years later), I realized that it doesn't force a style any more than C forces the "style" of putting braces around blocks. Indentation levels are just syntax elements that happen to correspond to what most developers naturally do. Really, having to indicate blocks to the compiler in one way and to humans in another way is a DRY violation, which Python eliminates.
Do you have a better way to do it in Python? Or a way to change Python to make this easier... that might actually get accepted into Python?
Nope. I prefer the array workaround myself; either way, it's not a big deal.
If not, you're just complaining.
Yup:)
Python isn't perfect, but in my opinion it's about 95% of the way there and I'm willing to live with the warts (such as the closures hack I documented). I haven't found anything I like better than Python for high-level coding.
Completely agreed. The only downside is that after learning Python I'm much more frequently annoyed with Java.
To make this work, we need to pass in a "mutable" object, and then mutate the object and return the new value. To write this clearly, I like to use a class called "Obj" that simply returns a trivial class instance, and then I can set member variables (with names! that stay bound!).
Sure, that works. It's still a kludgey workaround that results in you doing part of the compiler's job. And if I wanted to babysit the compiler all day, I'd be using Java. (ducks)
To me, the question is "Why is it so important to be able to make a function that never was bound to a name for even a moment?" This isn't a flame, I'm actually wondering why this seems like such a big deal to so many people.
I wouldn't say it's critically important; it's a convenience, just like anonymous list and dict literals. Python doesn't *need* to allow "foo([x,y])" since you could always do "arg=list(); arg.append(x); arg.append(y); foo(arg)". But that needlessly complicates the code by focusing on irrelevant details. Likewise, if a function is only needed in one place (say, as a callback for a UI event), it's often both more convenient and readable to just stick it inline.
Putting some "magic" in the compiler allows you to do things that may be difficult or impossible to do in code written in the source language.
Sure, things like Python's "lambda" and "yield" can't be done with normal functions, so they're properly statements with special compiler support. But writing to stdout is not magical at all; there's no reason for that specific task to have special syntax.
As a result in 2017 the Social Security system will not be insolvent, it will be able to use the value in these bonds
The bonds are an IOU from the government to itself. They are an accounting device that has no actual value; when the time comes to redeem them the government will have to tax, borrow, or print more money, which is exactly what they'd have to do if the bonds didn't exist at all.
However, dismissing fusion research and fission power (which is reliable, safe, clean and high density) is just cutting off your nose to spite your face.
That assumes your goal is to actually produce clean energy, not eliminate modern civilization and replace it with a utopia where we Live in Harmony with Gaia. Prediction: as soon as solar, wind, or tidal power becomes cheap and efficient enough to replace a substantial portion of fossil fuels, Greenpeace and other radical environmentalists will discover a reason why they're unacceptable.
And, to make it even more fun, what facebook considers to be offensive can change from day to day.
Still more fun: thanks to the Lori Drew ruling, if Facebook decides that you've posted something offensive, then you've just committed a federal crime.
If you don't like it, switch to one of their many competing companies that our free-market economy has ensured exist.
Of course, cable companies are typically granted monopolies by local governments.
No, it's not. The motel owner pays the tax
Not really.
The Justice League, obviously.
The first alternative, which currently is very popular in a stealthy kind of way, is to reduce. Cut back on the emission of pollutants
Yes...
reduce energy usage
That doesn't follow. If we have energy sources that are abundant and nonpolluting (e.g. nuclear) we don't have to reduce energy usage. Of course that offends many greens for whom actually protecting the environment is secondary to Changing Society to Live in Harmony with Gaia.
What it usually meaning to "throw hardware at a problem" is that an organization is going tolerate a bad design.
Throwing hardware at a problem isn't an excuse for using a bubble sort, or linear search instead of a hash table. It *is* often an excuse for not rewriting a well-designed and working PHP or Python application in C.
But if you have a poor algorithm, one that does not scale, then you will throw an exponential amount of hardware at the problem.
Right. Better hardware is often the best solution for reducing the constant factor in your O(N) algorithms. It won't help if you're at O(N^3).
Besides CPAN, Perl was one of the first languages to integrate advanced data structures - lists and hashes - directly into language itself. And not some half-assed implementation - e.g. C++'s STL or Lisp' lists - but really really good implementation
Ugh. Perl deserves credit for recognizing the importance of built-in data structures, but auto-flattening lists and requiring explicit references to do nesting is insane.
We should use interim steps until we reach a level that we can harness all of our energy needs from the nearest star but we should never forget the ultimate goal.
Agreed. Right now I see nuclear power as the best medium-term solution. We certainly should keep looking for something better.
Nice conspiracy theory you have there
It's a conspiracy theory in that it claims that the hard-core greens (which by no means includes all liberals, or all environmentalists) are lying about their stated reasons for opposing nuclear power. But unlike most other conspiracy theories it makes a specific prediction, which is that as solar, wind, and geothermal power becomes increasingly viable as replacements for fossil fuels, greens will suddenly discover reasons why they're unacceptable. I believe that is likely to be the case; we'll get to find out in the next decade or so.
Not to mention the gross amount of concrete that would be needed to create all those plants and the resulting global climate effects resulting from the emissions in creating that concrete.
As opposed to the solar and wind installations that are built from pixie dust? The US has 104 active nuclear plants producing 20% of our electricity. Is building 400 more to get close to 100% really going to cause a concrete shortage?
I love all of these solutions that just push the problem off decades, centuries or even millenia but don't solve it.
So we should keep burning coal until we've figured out how to survive the heat death of the universe?
So, freeloading off an open source OS (Mach BSD) counts as a technological leap to you ? It was a corporate thinking leap, but a technological leap ??
The advancement wasn't putting Unix on Macs, it was creating a UI for Unix that normal people could use. It's not that easy; Ubuntu and others are just now getting there.
Apple is going to be in serious trouble if what Psystar is doing becomes commonplace.
Which it won't. Most of the interest in Psystar and other Hackintoshes is only because of the gaping hole in Apple's lineup between the mini and the Mac Pro. If Psystar somehow wins (unlikely, but I hope they do), Apple could neutralize most of their appeal by releasing a "Mac Pro lite" with normal desktop parts for $1200 or so. Which would still have huge margins, considering Dell and others are selling quad-core towers for under $500.
With Python and its significant whitespace, generating code is a pain!
Out of curiosity, why are you generating Python code? It's often necessary in C or Java because those languages are insufficiently expressive so you end up with lots of almost-but-not-quite identical code, but I've found that in Python and similar languages it's rarely needed.
The other day I grabbed Numpy 1.2.1 and built it against Python 2.6 with no issues. It seems to run fine, but I'm only using a tiny portion of its functionality.
THat is to say, if you are buying an apple it's either for aethetics, ease of use for grandma or the volunteers at your non-profit, or compatibility, or the relatively low cost of tech support, set up, and training.
Or because it's a Unix that runs Office and Photoshop, and supports wireless cards and GPUs without having to compile experimental kernel modules. (Yes, Linux is getting better. No, it's not there yet).
Why not make print a function, but then change the language to not require parentheses for any function call?
Then you get into syntax ambiguities; does "foo -1" subtract 1 from foo, or call foo with the argument -1? Sure, you can specify precedence rules, but one of Python's major selling points is simplicity and lack of special cases.
But the idea of forcing that style on everyone annoys me enough to put me off of the language as a whole.
I had that exact reaction when I first came across Python. But after giving it a chance (many years later), I realized that it doesn't force a style any more than C forces the "style" of putting braces around blocks. Indentation levels are just syntax elements that happen to correspond to what most developers naturally do. Really, having to indicate blocks to the compiler in one way and to humans in another way is a DRY violation, which Python eliminates.
Do you have a better way to do it in Python? Or a way to change Python to make this easier... that might actually get accepted into Python?
Nope. I prefer the array workaround myself; either way, it's not a big deal.
If not, you're just complaining.
Yup :)
Python isn't perfect, but in my opinion it's about 95% of the way there and I'm willing to live with the warts (such as the closures hack I documented). I haven't found anything I like better than Python for high-level coding.
Completely agreed. The only downside is that after learning Python I'm much more frequently annoyed with Java.
To make this work, we need to pass in a "mutable" object, and then mutate the object and return the new value. To write this clearly, I like to use a class called "Obj" that simply returns a trivial class instance, and then I can set member variables (with names! that stay bound!).
Sure, that works. It's still a kludgey workaround that results in you doing part of the compiler's job. And if I wanted to babysit the compiler all day, I'd be using Java. (ducks)
To me, the question is "Why is it so important to be able to make a function that never was bound to a name for even a moment?" This isn't a flame, I'm actually wondering why this seems like such a big deal to so many people.
I wouldn't say it's critically important; it's a convenience, just like anonymous list and dict literals. Python doesn't *need* to allow "foo([x,y])" since you could always do "arg=list(); arg.append(x); arg.append(y); foo(arg)". But that needlessly complicates the code by focusing on irrelevant details. Likewise, if a function is only needed in one place (say, as a callback for a UI event), it's often both more convenient and readable to just stick it inline.
Putting some "magic" in the compiler allows you to do things that may be difficult or impossible to do in code written in the source language.
Sure, things like Python's "lambda" and "yield" can't be done with normal functions, so they're properly statements with special compiler support. But writing to stdout is not magical at all; there's no reason for that specific task to have special syntax.
Python is a prototype language, the fact that people use it for real applications is besides the point.
Huh? Python is a general purpose language that can be used for many things, including prototyping.
It should be kept simple and basic
Agreed. Therefore, print should be a normal function that works like everything else, instead of a one-off magical statement.
See "reductio ad absurdum".
As a result in 2017 the Social Security system will not be insolvent, it will be able to use the value in these bonds
The bonds are an IOU from the government to itself. They are an accounting device that has no actual value; when the time comes to redeem them the government will have to tax, borrow, or print more money, which is exactly what they'd have to do if the bonds didn't exist at all.
However, dismissing fusion research and fission power (which is reliable, safe, clean and high density) is just cutting off your nose to spite your face.
That assumes your goal is to actually produce clean energy, not eliminate modern civilization and replace it with a utopia where we Live in Harmony with Gaia. Prediction: as soon as solar, wind, or tidal power becomes cheap and efficient enough to replace a substantial portion of fossil fuels, Greenpeace and other radical environmentalists will discover a reason why they're unacceptable.