DNA is a chemical like any other. THere's nothing magical about it. We can do what we like with it. I don't see the big deal about combining the DNA from three people. We are all already complex recombinations of the DNA of millions of ancestors.
It's just a partially evaluated polymorphic function. Construct one of these things thusly: F(2) and it can now be applied like a function to other objects so F(2)(4) returns 6. The fact that it's polymorphic is very useful because that same object can be applied to a quite different type, say an interval arithmetic type, so F(2)(Interval(1,3)) might return Interval(3,5).
Why is this useful? I do a lot of numerical/engineering work. Say I have a root finding algorithm that throws a bunch of methods at a function in an attempt to find roots. It might first try doing some interval arithmetic to bound the roots and then when it's close enough go in for the kill with a newton solver. So I need to be able to write a polymorphic function that can be evaluated on the types appropriate to these methods (first intervals and then maybe doubles) but also be able to hand it in as an argument to a solver routine (which in this case would be rank-2 polymorphic though people will tell you C++ can't do that!). The above is the only way I know, And the cool thing is that It can also be a partially evaluated function (ie. in the simple example I gave I'm passing in the two argument function + but partially evaluating it by giving one of the arguments 'a'). This is all routine stuff in the functional world and is beginning to be routine in C++, but not yet. It's kinda object oriented but the object oriented frame of mind really is the wrong way to look at it.
Greenspun's rule. Yes, someone said that about some code of mine recently. But I have a response. For one thing the primary function of Greenspun's rule is to provide strokes for Lisp programmers' egos but these are the wrong people! C++ is a typed language and Lisp isn't. This makes a big difference. These methods push C++ more towards typed functional languages like ML or Haskell. Secondly: The example I gave is of a closure, written as (a+) in Haskell. But look where the work is happening: I haven't written any kind of interpreter, the compiler's doing the work. In fact if you take this stuff to its logical conclusion you're not implementing a Lisp interpreter but instead twisting the C++ compiler into a Haskell compiler. And if you don't believe me, hereis that logical conclusion. If you look closely very little of that code is executed at run time (the lazy lists are), instead that minor mountain of code is directives to the compiler telling it how to behave like a Haskell compiler.
As for performance penalties: yup, they exist. It's the so-called abstraction penalty. I don't really understand why it exists because it takes only simple rewriting rules to eliminate the overhead but compiler writers don't use them. Luckily people like Veldhuizen are writing papers showing the compiler writers how they should be doing their job.
This is symptomatic of a larger problem. It's still the case that many C++ textbooks relegate the template section to a short subsection of the final 'miscellaneous' chapter. Templates are often misunderstood and perceived as arcane. It's a pity because (1) they provide incredible power and (2) the things you can do with them are really quite mundane if you step outside the tiny domain of the workhorse languages many of us use to earn our living and compare to languages like Haskell.
Plus template support is now pretty reliable in many compilers, even Visual C++ 7.1 (gasp!) so there's no excuse any more.
class F {
float a; public:
F(float a0) : a(a0) { }
template<class X> X operator()(X x) const { return X(a)+x; } }
is it OOP? It looks like OOP: it has a member variable, a method, a constructor and so on. But actually I'm defining a function closure. In Haskell you coud write an F(a) object as (a+).
My point is this: for many programmers today objects are often a(n awkward) vehicle for computing with closures. This has many payoffs: it gives the ease of functional programming but also potentially provides many performance benefits. I code like this all the time as do hundreds of others. This is how you need to code if you actually want to do anything non-trivial with the STL.
So in some sense I'm an OOP programmer. But in another sense I'm not. I'm not writing my code this way because I want to work with objects - I do it because this is the only way I know to treat a polymorphic function as a first class object in C++. Really I'm a functional programmer forced to use C++. It seems to me that many of Bjarne's remarks are way off the mark for programmers like me. We have to define classes for every damn little thing!
Just hypothetically, if you were trying to crack PalmReader, an application like debuffer (http://debuffer.sourceforge.net/) might be useful. Then again, maybe not. It might be even more helpful, in theory, if you had the source code to Debuffer. Any more and my ass is fried!
...Palm's PalmReader format then. Took about a day to crack and I have only a tiny bit of experience with cracking (last thing I cracked before that was the version of Lotus 1-2-3 that insisted you had the original floppy - so we're talking mid-eighties or so.) I assume that the engineers who design these security systems know exactly what they are doing: pretending to make something secure so that they can con gullible companies into giving them a paycheck.
They're just not selling well and that's a different matter. Everything ebooks were promised to be they have been. I have a collection of about 60 ebooks on my Palm now. Titles vary from cheesy early Heinlein to Shakespeare. From the 100,000 entry Meriam Webster dictionary to a history of Europe. I've enjoyed the likes of Douglas Adams and Kurt Vonnegut as well as Don DeLillo and Ben Franklin.
I can read any time. Waiting in line in Safeway, in boring meetings, while wolfing down a quick salad in Togo's, when I wake restless in the middle of the night or sitting relaxed in my armchair.
To me ebooks are a dream technology that have arrived. Pity I'm the only one who thinks that!
Yeah, the New Scientist article suggests it but I'd like to see Weeks's actual published words as I can just see how a very weak statement could get blown up. I thought I'd blow a few $s on the original article but it's $18 from Nature. Ouch!
This really is looking like a gross misunderstanding. Weeks is trying to look for properties of the universe that are testable. He has found that for various interesting topologies and spacetime curvatures it is in principle possible for an observer in the universe to detect that it has interesting (i.e. non-trivial) topology. Whether it is detectable depends on the energy density parameter Omega and even if it is detectable it might not be detectable from every part of the universe.
So in a sense he has discovered something a bit like a streetlight. If you've lost something small in a dark street then the best place to look is under the streetlight because at least then you might see it. Where there's no lighting there's no point looking because even if it's there you won't see it. Unfortunately the press seems to have interpreted the discovery of the streetlight as a statement of the form "I have found what I'm looking for and it's under the streelight". No, he's really just saying that if it is under the streetlight we'd better look there.
But I could be wrong as I haven't read his latest work.
Yeah. When I teach kids at my school I gave the numbers 1,2,3,... interesting names. So now they all say things like Mario+Kzooie=Rayman. Needless to say everyone in the class completely loves the subject and in a few years time they'll all be getting PhDs. Or maybe not.
Now, if memetics proves to be a viral idea, does that invalidate memetics or prove it?
Trivially it proves it. If I'm correct in reading you as intending "viral idea" as a subtype of "meme" then proving something is a "viral idea" is necessarily a proof that memes exist. It seems to me that whatever you intend by "viral" it probably doesn't mean "false" (because I can't see any kind of analogical way to interpret falsity with respect to a virus) so if memes should prove to be viral I don't see that memes would invalidate themselves.
The engineers designing these DRM systems know full well that these schemes cannot work. They must invest effort into developing these systems knowing as they type every character of code that it's all pointless. And of course the salespeople must eventually learn this too. But the studios are desperate to believe that DRM can work. And like religious nuts they'll seize on any crap that a salesperson tries to sell them as evidence that it can be done. So the DRM companies are actually the heroes here. They're scamming the studios, probably for nice sums of money, by selling them the Emperor's New Clothes. Good on 'em!
I remember going to a meeting with the chief engineer at a well known DRM company a couple of years ago. One of the types of media being protected were pictures. They went through a long demo of all the DRM stuff you could do. And I kid you not here: one guy in our party (I wish it was me) asked if you could just copy the pictures using Alt-PrintScreen. The DRM guy then launched into a long tirade about how you can't protect against every single type of attack and that their system was good enough to put off all but the most determined picture thief. He knew their system wasn't worth the hard drive space it was stored on. We obviously knew it. But they had to keep up the pretense. And why complain? After all they're ripping off the studios, not me.
...3 times better. Rather sad. I still have a working Psion II, streets ahead in its day. But Psion lost their way long ago. I didn't even make fun of my friend who bought a Netbook. There was no challenge in ridiculing such an easy target.
Unfortunately those who want to use it to cheat already have it
ACtually I want to cheat but I don't have the source. Thanks for alerting me to its existence. Slashdot is a great way to keep up with the latest crackz and cheatz. Don't you just love it?
Its a sick technically inept world, full of idiots and throttled by unions and buck-passing.
There is some ineptness but there are also some very smart people working in effects. Studios certainly do hire programmers and know how to hire them. That stuff about unions is, to quote you, "a total lie". Unions have absolutely zero impact on the work of serious programming work in visual effects companies.
They want to save all possible dollars on each film s a separate budget with no long term financial viewpoint
Often true but not true of everywhere at all times.
I have device A and device B. They use bluetooth to talk to each other. I'm happy. So what does "dead" mean?
DNA is a chemical like any other. THere's nothing magical about it. We can do what we like with it. I don't see the big deal about combining the DNA from three people. We are all already complex recombinations of the DNA of millions of ancestors.
Dust. This galaxy is famous for having an obscuring ring of dust around it. It certainly adds to the photogenicity.
That's a better description of what I did. But WinDrawChars() isn't the best place to hook, for one thing it doesn't extract the markup.
Why is this useful? I do a lot of numerical/engineering work. Say I have a root finding algorithm that throws a bunch of methods at a function in an attempt to find roots. It might first try doing some interval arithmetic to bound the roots and then when it's close enough go in for the kill with a newton solver. So I need to be able to write a polymorphic function that can be evaluated on the types appropriate to these methods (first intervals and then maybe doubles) but also be able to hand it in as an argument to a solver routine (which in this case would be rank-2 polymorphic though people will tell you C++ can't do that!). The above is the only way I know, And the cool thing is that It can also be a partially evaluated function (ie. in the simple example I gave I'm passing in the two argument function + but partially evaluating it by giving one of the arguments 'a'). This is all routine stuff in the functional world and is beginning to be routine in C++, but not yet. It's kinda object oriented but the object oriented frame of mind really is the wrong way to look at it.
Greenspun's rule. Yes, someone said that about some code of mine recently. But I have a response. For one thing the primary function of Greenspun's rule is to provide strokes for Lisp programmers' egos but these are the wrong people! C++ is a typed language and Lisp isn't. This makes a big difference. These methods push C++ more towards typed functional languages like ML or Haskell. Secondly: The example I gave is of a closure, written as (a+) in Haskell. But look where the work is happening: I haven't written any kind of interpreter, the compiler's doing the work. In fact if you take this stuff to its logical conclusion you're not implementing a Lisp interpreter but instead twisting the C++ compiler into a Haskell compiler. And if you don't believe me, here is that logical conclusion. If you look closely very little of that code is executed at run time (the lazy lists are), instead that minor mountain of code is directives to the compiler telling it how to behave like a Haskell compiler.
As for performance penalties: yup, they exist. It's the so-called abstraction penalty. I don't really understand why it exists because it takes only simple rewriting rules to eliminate the overhead but compiler writers don't use them. Luckily people like Veldhuizen are writing papers showing the compiler writers how they should be doing their job.
Plus template support is now pretty reliable in many compilers, even Visual C++ 7.1 (gasp!) so there's no excuse any more.
If I write something like:
class F {
float a;
public:
F(float a0) : a(a0) { }
template<class X> X operator()(X x) const { return X(a)+x; }
}
is it OOP? It looks like OOP: it has a member variable, a method, a constructor and so on. But actually I'm defining a function closure. In Haskell you coud write an F(a) object as (a+).
My point is this: for many programmers today objects are often a(n awkward) vehicle for computing with closures. This has many payoffs: it gives the ease of functional programming but also potentially provides many performance benefits. I code like this all the time as do hundreds of others. This is how you need to code if you actually want to do anything non-trivial with the STL.
So in some sense I'm an OOP programmer. But in another sense I'm not. I'm not writing my code this way because I want to work with objects - I do it because this is the only way I know to treat a polymorphic function as a first class object in C++. Really I'm a functional programmer forced to use C++. It seems to me that many of Bjarne's remarks are way off the mark for programmers like me. We have to define classes for every damn little thing!
Just hypothetically, if you were trying to crack PalmReader, an application like debuffer (http://debuffer.sourceforge.net/) might be useful. Then again, maybe not. It might be even more helpful, in theory, if you had the source code to Debuffer. Any more and my ass is fried!
...Palm's PalmReader format then. Took about a day to crack and I have only a tiny bit of experience with cracking (last thing I cracked before that was the version of Lotus 1-2-3 that insisted you had the original floppy - so we're talking mid-eighties or so.) I assume that the engineers who design these security systems know exactly what they are doing: pretending to make something secure so that they can con gullible companies into giving them a paycheck.
I can read any time. Waiting in line in Safeway, in boring meetings, while wolfing down a quick salad in Togo's, when I wake restless in the middle of the night or sitting relaxed in my armchair.
To me ebooks are a dream technology that have arrived. Pity I'm the only one who thinks that!
Yeah, the New Scientist article suggests it but I'd like to see Weeks's actual published words as I can just see how a very weak statement could get blown up. I thought I'd blow a few $s on the original article but it's $18 from Nature. Ouch!
So in a sense he has discovered something a bit like a streetlight. If you've lost something small in a dark street then the best place to look is under the streetlight because at least then you might see it. Where there's no lighting there's no point looking because even if it's there you won't see it. Unfortunately the press seems to have interpreted the discovery of the streetlight as a statement of the form "I have found what I'm looking for and it's under the streelight". No, he's really just saying that if it is under the streetlight we'd better look there.
But I could be wrong as I haven't read his latest work.
$1000 if you prove me wrong.
...technical support queries. Pay for your own Apple Care and leave /. for the quality reporting that it provides.
Into the steam powered motor driving the hard drive.
Yeah. When I teach kids at my school I gave the numbers 1,2,3,... interesting names. So now they all say things like Mario+Kzooie=Rayman. Needless to say everyone in the class completely loves the subject and in a few years time they'll all be getting PhDs. Or maybe not.
Am I sounding pretentious enough yet?
The engineers designing these DRM systems know full well that these schemes cannot work. They must invest effort into developing these systems knowing as they type every character of code that it's all pointless. And of course the salespeople must eventually learn this too. But the studios are desperate to believe that DRM can work. And like religious nuts they'll seize on any crap that a salesperson tries to sell them as evidence that it can be done. So the DRM companies are actually the heroes here. They're scamming the studios, probably for nice sums of money, by selling them the Emperor's New Clothes. Good on 'em!
I remember going to a meeting with the chief engineer at a well known DRM company a couple of years ago. One of the types of media being protected were pictures. They went through a long demo of all the DRM stuff you could do. And I kid you not here: one guy in our party (I wish it was me) asked if you could just copy the pictures using Alt-PrintScreen. The DRM guy then launched into a long tirade about how you can't protect against every single type of attack and that their system was good enough to put off all but the most determined picture thief. He knew their system wasn't worth the hard drive space it was stored on. We obviously knew it. But they had to keep up the pretense. And why complain? After all they're ripping off the studios, not me.
...the way an IBM 360 from the sixties could run OSes over VM?
I use one of these. Amortized over the number of years it lasts it costs much less than a PC.
...3 times better. Rather sad. I still have a working Psion II, streets ahead in its day. But Psion lost their way long ago. I didn't even make fun of my friend who bought a Netbook. There was no challenge in ridiculing such an easy target.
Wrong. But I ain't takin' any more questions!