Again, we see people trying to use backward technology, unfit for the task, and using law to mandate its effectiveness. Banknotes were introduced in the 7th century. It's time for banks to get off their asses and try developing new forms of cash. People take for granted that a banknote is the only way non-coin cash can be, but just like other technologies such as the horse-and-cart and the CD it has a finite lifespan.
I'd rather tell them the truth than tell them that their failure is because the omnipotent creator of the universe has decided to withold from them the blessings that billions of other undeserving people get.
It's pretty common English usage to use tautologies to stress a point. In this case someone was under the misguided impression that two things were different. It's common in such a situation to apply stress when you correct the original speaker so as to draw attention to that part of your sentence that is most significant. In this case, same exact, performs this function quite well.
These kinds of subtleties can be quite hard for non-native English speakers to discern but you'll figure it out eventually.
That is the chain rule. Sheesh! Doesn't anyone know any mathematics these days. There's more than one type of notation for writing derivatives:
f'(g(x))g'(x) is the same thing as df/dg dg/dx.
It's one thing to be smart enough to figure out how, against the odds, to crack a supposedly secure remote system and install a prank on it. It's a different thing entirely to be granted the power to abuse a system, because someone put their trust in you, and then abuse it. In fact, it's utterly pathetic.
I think the story goes something like this: a few years ago the team reproducing the Colossus set out by writing an emulator for the PC. It wasn't written that smartly and ran slower than the real thing. Now, several years later, that statement is being repeated more often than it should be. But I think that in the weak sense I have outlined it was once true.
Cells do have some pretty amazing self-repair mechanisms. Bacteria reproduce pretty fast too. One way to deal with degradation of your data is to make as many copies of it as you can. I'm sure the details of how these bacteria are surviving will be wonderful and interesting. But I've stopped having prejudices about where life can survive!
most would have thought inhospitable to all forms of life
What is it with these statements about where we would think life can live? We've had so many stories about extremophiles over the last few years that I wouldn't be surprised to hear that life can live in hard vacuum, at temperatures over 200C or in even my shoes. By all means, keep telling us about cool new extremophiles, but please stop telling me I wouldn't have thought it possible. My imagination doesn't stop at this week's latest discovery.
This isn't just a facetious point - it can damage the credibility of scientists to keep feigning surprise at things that really aren't that surprising any more.
I will take a look at that stuff. But there is an important reason why people choose to use C++ rather than languages like Lisp. We need the performance. The interesting thing about C++ is that it has a degree of abstraction and yet at the same time is 'close to the metal'. Performance is the reason I pointed out my vector example in the first place. So doing something Lispy probably vitiates any advantage I could gain through reflection in Lisp. This doesn't apply to everyone - I work in an area where performance of numerical algorithms can be fairly important.
their syntax is horrendous but that's what comes of trying to wedge the concept into the existing crannies of C syntax
Nice description! The bizarre thing is that the crannies would be much bigger if Stroustrup et al. didn't force themselves to live by such strict rules (eg. refusing to introduce new keywords if they could (cryptically) reuse an old one). I still can't get over the choice of '' for enclosing template arguments. Did they never expect anyone ever to nest templates resulting in '>>' which is tokenised as somethign else entirely?
If they want to look at my code then a+2*b is easier to read than the unrolled loop. Languages are already expandable - that's what functions and variables are, things that acquire new meanings as a result of code we write. The solution to these difficulties is to document well and use libraries rather than rolling your own code all of the time.
...with a Prime Minister who makes his money from media companies. Those corrupt Italians! Imagine something like that happened in the US. If the President or Vice President stood to make money from invading Iraq, say, there'd be a hue and cry about it and they'd have no chance of getting away with it.
...nanotechnology. I'm sure you also know. "Nano" is just a morpheme people bandy around who are trying to get funding. But this is terrible news. It looks like the insurance companies have been fooled into thinking it does really exist and so are going to use it as a convenient excuse to increase our premiums.
(1) Try a more complex example along similar lines. (2) Try embedding that code, not in a simple function, but inside a nest of templates. (3) Implement the vector class in a generic way so that it accepts different types and sizes (known at compile time). I get great results in Visual C++ with simple examples too.
Actually, this example often isn't optimized away which is why the Blitz++ library exists. In fact, the author of the library, Todd Veldhuizen, has written at least one paper spelling out what compiler developers need to do in order to ensure stuff like this is optimized away. I've done lots of experiments myself. As soon as you put something like my example line inside a template that is instantiated from another template etc. I've found compilers start missing what you think ought to be easy optimizations. It's very frustrating, I just want to tell the compiler myself how to do its job because it's often just a mindless application of a bunch of rewrite rules.
what makes you think that programming a compiler is going to be more straight forward
I don't know how to make it easier myself. I think it's a hard problem and I hope people smarter than me are working on it. But I have a hunch it can be made a lot easier than template metaprogramming, say. My reasoning is simply this - template metaprogramming wasn't designed to do the sorts of things that are being done with it, it's almost an accident that you can write stuff like Blitz++ or boost::mpl. I've a feeling that something designed to do this has got to be easier to use.
Now you can do this in C++, but look at what you need to implement to do it. The code is a hideous nightmare of template metaprogramming. Of course you can do it in a language like C, but then you lose the ability to express yourself cleanly through code like 'c=a+2*b'.
It would be great, if instead, I could hook into the compiler and tell it exactly how it should handle vectors.
Of course you'd clearly need to document your code well as people reading your code would also be forced to understand the plugins.
Even without falling into the public domain it's intended to benefit us all. We get to enjoy TV and music even while it's still within copyright. And patents encourage innovation as people seek ways around patents. And even having patents just sitting in public view gives people ideas for how to solve other problems. (Though when was the last time you saw a patent cited in a paper?)
Again, we see people trying to use backward technology, unfit for the task, and using law to mandate its effectiveness. Banknotes were introduced in the 7th century. It's time for banks to get off their asses and try developing new forms of cash. People take for granted that a banknote is the only way non-coin cash can be, but just like other technologies such as the horse-and-cart and the CD it has a finite lifespan.
I'd rather tell them the truth than tell them that their failure is because the omnipotent creator of the universe has decided to withold from them the blessings that billions of other undeserving people get.
...but you didn't have the baby because you were blessed. It was because...well...let's say we keep the secret between you and me.
These kinds of subtleties can be quite hard for non-native English speakers to discern but you'll figure it out eventually.
It's a calculator if you just need to press one button to find the cos of a value.
That is the chain rule. Sheesh! Doesn't anyone know any mathematics these days. There's more than one type of notation for writing derivatives: f'(g(x))g'(x) is the same thing as df/dg dg/dx.
It's one thing to be smart enough to figure out how, against the odds, to crack a supposedly secure remote system and install a prank on it. It's a different thing entirely to be granted the power to abuse a system, because someone put their trust in you, and then abuse it. In fact, it's utterly pathetic.
I think the story goes something like this: a few years ago the team reproducing the Colossus set out by writing an emulator for the PC. It wasn't written that smartly and ran slower than the real thing. Now, several years later, that statement is being repeated more often than it should be. But I think that in the weak sense I have outlined it was once true.
Lorentz!=Lorenz
Pi lies between 3 and 4. So one thing we can say for sure about it is that it is a finite number.
Cells do have some pretty amazing self-repair mechanisms. Bacteria reproduce pretty fast too. One way to deal with degradation of your data is to make as many copies of it as you can. I'm sure the details of how these bacteria are surviving will be wonderful and interesting. But I've stopped having prejudices about where life can survive!
Who are these 'often theoretical cousins in space'?
This isn't just a facetious point - it can damage the credibility of scientists to keep feigning surprise at things that really aren't that surprising any more.
A gauge with the needle permanently jammed on 10 would probably suffice.
If they want to look at my code then a+2*b is easier to read than the unrolled loop. Languages are already expandable - that's what functions and variables are, things that acquire new meanings as a result of code we write. The solution to these difficulties is to document well and use libraries rather than rolling your own code all of the time.
On the other hand, if all that happens in Italy is a bunch of corrupt people make some more money it's trivial compared to invading another country.
...with a Prime Minister who makes his money from media companies. Those corrupt Italians! Imagine something like that happened in the US. If the President or Vice President stood to make money from invading Iraq, say, there'd be a hue and cry about it and they'd have no chance of getting away with it.
If you want to claim that history is predictive you need to come up with better examples than that.
...nanotechnology. I'm sure you also know. "Nano" is just a morpheme people bandy around who are trying to get funding. But this is terrible news. It looks like the insurance companies have been fooled into thinking it does really exist and so are going to use it as a convenient excuse to increase our premiums.
(1) Try a more complex example along similar lines. (2) Try embedding that code, not in a simple function, but inside a nest of templates. (3) Implement the vector class in a generic way so that it accepts different types and sizes (known at compile time). I get great results in Visual C++ with simple examples too.
Actually, this example often isn't optimized away which is why the Blitz++ library exists. In fact, the author of the library, Todd Veldhuizen, has written at least one paper spelling out what compiler developers need to do in order to ensure stuff like this is optimized away. I've done lots of experiments myself. As soon as you put something like my example line inside a template that is instantiated from another template etc. I've found compilers start missing what you think ought to be easy optimizations. It's very frustrating, I just want to tell the compiler myself how to do its job because it's often just a mindless application of a bunch of rewrite rules.
A good example is code like this in C++
.
Vector a,b,c;
. .
c = a+2*b;
Written naively the overloaded '+' operator returns a vector object. But I don't want any object returned. I want the code to be expanded in place as
c[0] = a[0]+2*b[0]
c[1] = a[1]+2*b[1]
c[2] = a[2]+2*b[2]
Now you can do this in C++, but look at what you need to implement to do it. The code is a hideous nightmare of template metaprogramming. Of course you can do it in a language like C, but then you lose the ability to express yourself cleanly through code like 'c=a+2*b'.
It would be great, if instead, I could hook into the compiler and tell it exactly how it should handle vectors.
Of course you'd clearly need to document your code well as people reading your code would also be forced to understand the plugins.
Even without falling into the public domain it's intended to benefit us all. We get to enjoy TV and music even while it's still within copyright. And patents encourage innovation as people seek ways around patents. And even having patents just sitting in public view gives people ideas for how to solve other problems. (Though when was the last time you saw a patent cited in a paper?)