Like I said, it's the fully-parenthesized completely-uniform prefix syntax which confuses people.
It's actually easier for people to learn if the language actually is like algebra and purely functional. In algebra, if you see "x = x / 10", you then say "9 * x / 10 = 0" and "x = 0", and it doesn't make sense to have two definitions of x. This allows you to use the substitution theory of evaluation, where, if "x = 50", you can replace all of the occurences of x with 50. In your example, this would lead to:
50 = 50 / 10 print "X is: ", 50
There's actually a major conceptual leap to allow "x" to change, which has to mean that "x" is really not "50", but a slot which initially contains "50". Of course, programmers forget that this leap is required, having made it ages ago. But for someone who hasn't seen it before, it's a big source of confusion.
Actually, the patent specifies that one application is launched if you press the button normally; a different one is launched if you hold the button for a second; a third one is launched if you double-click. It seems to me that Microsoft has patented a particularly unusable interface. Having to hold the mouse button for a while before releasing it means that those functions take a while to launch, while unsophisticated users accidentally do the wrong thing due to holding the button too long. Tech support has to explain this strange behavior to people who already find double-clicking difficult. Also, you have to deal with dragging as another conflicting feature.
I pity the poor people who have to use interfaces that this patent covers. I notice that this was filed in 2002, and I haven't seen any implementations. Of course, maybe the "hold the button for a second" thing is how you use XP; it wouldn't surprise me too much if there were some strange behavior that I didn't know about in it.
In order to make money shorting stock, you need to not only know it's going to tank, but also know when it's going to tank. It's not like you can make a long-term investment in shorted stock; it's a loan that you have to pay back by buying stock when it expires. In addition, if a lot of people have shorted a stock, the required buying will drive up the price; at least one of the jumps in SCOX price was reportedly due to this effect. For that matter, you can only short by the amount of stock which is actually going to be available to buy, and SCOX was not widely available, and was often already heavily shorted.
We all knew SCOX was going to tank eventually, but it is really hard to guess exactly when the market will catch on, which is really what shorting requires.
Everybody wants to kill the economic incentive for doing the thing they don't want to try to sell, because it transfers business to the next thing over, which they do want to sell.
Or, at least, the smart ones do. The dumb ones don't understand the economics. This is why Oracle is so clever: they now use x86 commodity hardware (and subcontract it to Dell), Linux for the OS to kill that market, subcontract out support to Red Hat, and then get a huge margin on database servers. Of course, this plan depends on having a clear long-term strategy and sticking with it (sell the database, make everything else cheap).
Sun is going to have a really hard time because they keep changing their mind on what the strategy is. The right strategy would have been to open source Java from the beginning and write apps. Instead, they've tried to keep control of the Java VM, which doesn't actually help them. They've been vague on whether the market for hardware and OSes should stay profittable. They seem to be trying to get into the desktop market where they don't have any particular experience or market share.
Much like the battered young wizards on screen, who are constantly being whirled about by baddies, pirates will be "hauled out of their seats and reported straight away to the police".
At least they're clear on who the villains are in this case. I eagerly await "Harry Potter and the Movie Industry".
Why, in any case, are they opening it first in the country where the recordings came from previously?
The reason is that the XFree86 4.3 license was good, which allowed X.org to take XFree86 4.3 as the basis for their X server. They picked up all of the patches that people has contributed that they were willing to contribute under the MIT/X license, and all of the patches that people were only willing to contribute under the MIT/X license, and took over the project.
The point of Free Software is that if a project lead does something dumb, people can head off in a different direction without losing anything. With the nVidia binary drivers, you have to put up with nVidia, for better or worse.
About your Scheme/Lisp item, I'd actually agree that it isn't a terribly good choice, but I think you're wrong about everything else. Algebra is a functional language; there are no side effects, and each variable has a single value outside of a function or within the evaluation of a function. On the other hand, all of the usual Lisp dialects, including Scheme, are not functional (because they have set!/setq). If you wanted to make things easy to understand, you'd use a purely functional subset of Scheme, which gives a much simpler description of how things work than anything else with functions.
On the other hand, Lisp syntax is very difficult to follow, because everything looks the same. While it is beautiful in its purity, it is completely lacking in any cues which would enable a novice to keep track of what's going on. Also, it uses prefix notation for expressions, which people have a hard time following.
In any case, the most important thing is really a good editor mode, which will enable you (or her) to have the computer keep track of the syntax and report it with indentation and highlighting.
I think number 2 is probably the most important thing. If you look like someone who will remember every detail of the person's appearance and might have practiced a martial art (or know how to use a concealed weapon), they'll bet that there's a better target. That means having good posture and briefly meeting the eyes of everyone who gets close to you. I think that the real reason that people get mugged for their iPods (assuming they actually do) is that they are not only valuable, but they distract you.
It seems to be the case that there are, in fact, an infinite number of pairs of primes separated by any even number. But it's not obvious that there couldn't be some reason that if p is prime, p+n must not be prime if p is greater than some constant. After all, there is such a reason for n=3. The same reason doesn't apply to even numbers for n, but there could be some different reason that's much more complicated to prove and starts much later.
It seems like the distribution of primes is such that there is no pattern as to exactly where they occur, and therefore that for any property you can think of which doesn't limit the size of the number, there are 0, 1, or infinity primes with that property, but not some large finite number of them. But this is just a good guess; there isn't really a well-formulated conjecture as to primes not having a pattern, let alone a proof.
He seems to have discovered the key point about Douglas Adams, which is that he was great at coming up with material, but had no idea on his own what to do with it. So he'd write something, and rely on an editor to beat it into shape. Everything Douglas Adams wrote was mucked around with by hacks, who would figure out how to apply his genius to best effect.
There are an infinite number of numbers, but there aren't an infinite number of pairs of primes p and p+3. (There is obviously only one such pair, 2 and 5.) So it's not trivial that there's not something which prevents there from being any further twin primes.
Right, blind people probably listen to BBC radio (for that matter, I sometimes listen to BBC radio, despite being neither blind nor British). But they don't need a TV (or a TV license) to do so.
In the future, the idea of shows happening at particular times will be completely lost. People will be mystified at the idea that, if you turned on the TV five minutes after the last episode of Friends started, you'd miss the first five minutes. That's like saying that if you downloaded DooM a week late, you'd start on mission 3. Available bandwidth will make the idea of broadcasting, except where it's live or something, nonsensical.
I'm beginning to think that this couldn't have been done by Microsoft, simply because it's so bad for their position. In order to have effective FUD, you have to make vague claims that people might worry about. If you make specific false claims, they can be refuted. And if you make specific false claims which offend the authoritative sources, you don't have FUD, you have a straw man.
I think this book, along with the press surrounding it, will do a lot to defuse the FUD that Microsoft and SCO have spread. The vague "Linux may infringe something" claims will be clarified in people's minds to "Linux might have copied Minix". And then they can be countered, because the owner and author of Minix has said that Linux didn't copy it. If anyone knows, it would be him. So now people's vague ideas will be that the "Linux may infringe something" claim turned out to be false. (Of course, the logic here is flawed; just because Linux doesn't infringe on Minix doesn't mean that it couldn't infringe on something else; but people don't think that way, or they wouldn't buy FUD in the first place).
Microsoft has been good at producing FUD. SCO has even been reasonably good at it (although revealing particular lines of non-infringing Linux code was a mistake there). But this has a serious lack of uncertainty. It gives the impression that, in order to worry about Linux's IP, you'd have to ignore all information remotely relevant, from every possible source, including the ones supposedly wronged. This is like accusing someone of murdering someone who is still alive and willing to testify for the defense. So I think that Microsoft didn't sponsor this, or at least didn't sign off on the result; SCO probably didn't either (although they've messed up worse in the past). I wouldn't be surprised if it turned out to be someone like Sun, though. They could benefit from Linux looking bad, or from Linux looking good. For that matter, they could really use a justification for their former coldness to Linux, while allowing them to become enlightened about it (considering that they're using it now).
It doesn't matter to most customers. Most customers don't plan to interact much with the OS on their database servers, and want to use whatever Oracle says will be best. They just want the best-supported configuration, which means that they'll use exactly what Oracle installs (or has Red Hat install), and won't change anything. Of course, it's a significant milestone therefore that Oracle is pushing Linux (and moving to it internally), because that means that it actually has the best TCO for that kind of system, because Oracle knows that they get all the money that doesn't go into the customer's TCO on the database.
He actually says that the tools should handle all of the XML stuff for you, so that you see something like what you're used to. That it, XML would be used internally, because it's easy for the computer to parse, manipulate, and generate, unlike C-like syntaxes, which are very difficult to produce in a readable way. The programmer would use the C-like syntax that they're used to, which the editor would produce from the...
That's right, we're going to solve the problem that whitespace in C is an art form that computers can't manage when generating code by having the computer generate all of the whitespace, which will be magically easier because it's completely vital.
What about the fact that blind people pay less for black & white TVs than colour?
I'd guess that the registered blind with TVs can generally see well enough to watch them. You're considered blind if your vision is insufficient to be able to function in everyday life; you may be able to see well enough to watch TV even if you couldn't see well enough to cross the street safely. People whose vision is too bad to enjoy TV probably listen to the radio instead of having a TV.
Mapquest's "business category" listing will give you directions to banks and liquor stores in cities across the country. That's a much more effective way of planning your crime spree than the photos, because otherwise you might try robbing places that only look like banks.
It would be easy to arrange for nobody to have a full frame; rendering generally gets parallelized such that each computer renders only a small number of pixels of a given frame, if for no other reason than to make the render farm useful to the animator (who wants to look at a frame or two and tweak the models).
The issue is that they'd have to send out the models in however much detail is necessary to do the task they want done. With this information you could not only make the complete frame you were asked to render, but the same moment from different angles, other scenes with the characters positioned similarly, etc. You'd actually be giving out more information about that moment than the final movie contains.
Of course, there's also the issue of the size of the model data; transferring the model to you may be slower and more expensive than just rendering the frame locally.
What's this "DynamicProxy" class?
on
Hardcore Java
·
· Score: 1
I hope the book actually talked about the JDK 1.4 dynamic proxy class java.lang.reflect.Proxy, because people will be unhappy if they look for DynamicProxy, which doesn't exist.
This has been discussed somewhat on the mailing list. The process is really simple. You add a single line to your message when you send your (or someone else's) patch:
Signed-off-by: {you}
If the patch already has some, you include those as well. If you're merging patches, you include all of them. If you get a patch without this, you point the person at doc/SubmittingPatches, which will say to do this along with all of the other guidelines. The DCO is in the docs, and explains what it means it put this header on something; it's a pretty straightforward claim that you are legally permitted to license your contributions and sublicense contributions not your own and that you are doing so.
It shouldn't take much thought for people who move patches (if it wasn't true, people shouldn't be sending patches). It shouldn't be a large volume of data (one line/patch per step in the path). It should be easier to get people to remember than some of the other things already in SubmittingPatches. It should fit well with companies that do release management of their patches (the person authorized to release stuff signs off on it, possibly without listing other people, if that's the company policy).
There are nice side-effects: each patch which Linus commits will have the names of all of the contributors. If a contributor wants, it's therefore easy to track whether their patch got in, even if it got modified beyond grep's ability to track. People have often had a hard time figuring out if the patch they submitted to a maintainer actually got into mainline and when. Aside from the legal reasons to want the information, it's actually useful information in many situations, and it's trivial to provide, so it might actually speed up development.
The idea is that each patch will contain a set of headers with the names of everyone who passed it along. The DCO is always the same, and essentially amounts to stating "It is legal for me to pass this on and to license it to the recipients under the GPL". As the applied patches get archived, the headers get archived with them, so that the information is kept. People who keep their own trees keep the headers for the patches they applied, so that they can figure out where the patches came from, even if Linus doesn't pick up the change.
Like I said, it's the fully-parenthesized completely-uniform prefix syntax which confuses people.
It's actually easier for people to learn if the language actually is like algebra and purely functional. In algebra, if you see "x = x / 10", you then say "9 * x / 10 = 0" and "x = 0", and it doesn't make sense to have two definitions of x. This allows you to use the substitution theory of evaluation, where, if "x = 50", you can replace all of the occurences of x with 50. In your example, this would lead to:
50 = 50 / 10
print "X is: ", 50
There's actually a major conceptual leap to allow "x" to change, which has to mean that "x" is really not "50", but a slot which initially contains "50". Of course, programmers forget that this leap is required, having made it ages ago. But for someone who hasn't seen it before, it's a big source of confusion.
Actually, the patent specifies that one application is launched if you press the button normally; a different one is launched if you hold the button for a second; a third one is launched if you double-click. It seems to me that Microsoft has patented a particularly unusable interface. Having to hold the mouse button for a while before releasing it means that those functions take a while to launch, while unsophisticated users accidentally do the wrong thing due to holding the button too long. Tech support has to explain this strange behavior to people who already find double-clicking difficult. Also, you have to deal with dragging as another conflicting feature.
I pity the poor people who have to use interfaces that this patent covers. I notice that this was filed in 2002, and I haven't seen any implementations. Of course, maybe the "hold the button for a second" thing is how you use XP; it wouldn't surprise me too much if there were some strange behavior that I didn't know about in it.
In order to make money shorting stock, you need to not only know it's going to tank, but also know when it's going to tank. It's not like you can make a long-term investment in shorted stock; it's a loan that you have to pay back by buying stock when it expires. In addition, if a lot of people have shorted a stock, the required buying will drive up the price; at least one of the jumps in SCOX price was reportedly due to this effect. For that matter, you can only short by the amount of stock which is actually going to be available to buy, and SCOX was not widely available, and was often already heavily shorted.
We all knew SCOX was going to tank eventually, but it is really hard to guess exactly when the market will catch on, which is really what shorting requires.
Everybody wants to kill the economic incentive for doing the thing they don't want to try to sell, because it transfers business to the next thing over, which they do want to sell.
Or, at least, the smart ones do. The dumb ones don't understand the economics. This is why Oracle is so clever: they now use x86 commodity hardware (and subcontract it to Dell), Linux for the OS to kill that market, subcontract out support to Red Hat, and then get a huge margin on database servers. Of course, this plan depends on having a clear long-term strategy and sticking with it (sell the database, make everything else cheap).
Sun is going to have a really hard time because they keep changing their mind on what the strategy is. The right strategy would have been to open source Java from the beginning and write apps. Instead, they've tried to keep control of the Java VM, which doesn't actually help them. They've been vague on whether the market for hardware and OSes should stay profittable. They seem to be trying to get into the desktop market where they don't have any particular experience or market share.
Actually, it's a reference to the fact that no reputable publisher would actually publish this tripe.
At least they're clear on who the villains are in this case. I eagerly await "Harry Potter and the Movie Industry".
Why, in any case, are they opening it first in the country where the recordings came from previously?
The reason is that the XFree86 4.3 license was good, which allowed X.org to take XFree86 4.3 as the basis for their X server. They picked up all of the patches that people has contributed that they were willing to contribute under the MIT/X license, and all of the patches that people were only willing to contribute under the MIT/X license, and took over the project.
The point of Free Software is that if a project lead does something dumb, people can head off in a different direction without losing anything. With the nVidia binary drivers, you have to put up with nVidia, for better or worse.
About your Scheme/Lisp item, I'd actually agree that it isn't a terribly good choice, but I think you're wrong about everything else. Algebra is a functional language; there are no side effects, and each variable has a single value outside of a function or within the evaluation of a function. On the other hand, all of the usual Lisp dialects, including Scheme, are not functional (because they have set!/setq). If you wanted to make things easy to understand, you'd use a purely functional subset of Scheme, which gives a much simpler description of how things work than anything else with functions.
On the other hand, Lisp syntax is very difficult to follow, because everything looks the same. While it is beautiful in its purity, it is completely lacking in any cues which would enable a novice to keep track of what's going on. Also, it uses prefix notation for expressions, which people have a hard time following.
In any case, the most important thing is really a good editor mode, which will enable you (or her) to have the computer keep track of the syntax and report it with indentation and highlighting.
I think number 2 is probably the most important thing. If you look like someone who will remember every detail of the person's appearance and might have practiced a martial art (or know how to use a concealed weapon), they'll bet that there's a better target. That means having good posture and briefly meeting the eyes of everyone who gets close to you. I think that the real reason that people get mugged for their iPods (assuming they actually do) is that they are not only valuable, but they distract you.
It seems to be the case that there are, in fact, an infinite number of pairs of primes separated by any even number. But it's not obvious that there couldn't be some reason that if p is prime, p+n must not be prime if p is greater than some constant. After all, there is such a reason for n=3. The same reason doesn't apply to even numbers for n, but there could be some different reason that's much more complicated to prove and starts much later.
It seems like the distribution of primes is such that there is no pattern as to exactly where they occur, and therefore that for any property you can think of which doesn't limit the size of the number, there are 0, 1, or infinity primes with that property, but not some large finite number of them. But this is just a good guess; there isn't really a well-formulated conjecture as to primes not having a pattern, let alone a proof.
He seems to have discovered the key point about Douglas Adams, which is that he was great at coming up with material, but had no idea on his own what to do with it. So he'd write something, and rely on an editor to beat it into shape. Everything Douglas Adams wrote was mucked around with by hacks, who would figure out how to apply his genius to best effect.
There are an infinite number of numbers, but there aren't an infinite number of pairs of primes p and p+3. (There is obviously only one such pair, 2 and 5.) So it's not trivial that there's not something which prevents there from being any further twin primes.
Oracle actually provides almost exactly that (outsourced databases). They all run Linux, according to the sales rep I talked to a year ago.
Right, blind people probably listen to BBC radio (for that matter, I sometimes listen to BBC radio, despite being neither blind nor British). But they don't need a TV (or a TV license) to do so.
One out of three seems about an average success rate...
In the future, the idea of shows happening at particular times will be completely lost. People will be mystified at the idea that, if you turned on the TV five minutes after the last episode of Friends started, you'd miss the first five minutes. That's like saying that if you downloaded DooM a week late, you'd start on mission 3. Available bandwidth will make the idea of broadcasting, except where it's live or something, nonsensical.
I'm beginning to think that this couldn't have been done by Microsoft, simply because it's so bad for their position. In order to have effective FUD, you have to make vague claims that people might worry about. If you make specific false claims, they can be refuted. And if you make specific false claims which offend the authoritative sources, you don't have FUD, you have a straw man.
I think this book, along with the press surrounding it, will do a lot to defuse the FUD that Microsoft and SCO have spread. The vague "Linux may infringe something" claims will be clarified in people's minds to "Linux might have copied Minix". And then they can be countered, because the owner and author of Minix has said that Linux didn't copy it. If anyone knows, it would be him. So now people's vague ideas will be that the "Linux may infringe something" claim turned out to be false. (Of course, the logic here is flawed; just because Linux doesn't infringe on Minix doesn't mean that it couldn't infringe on something else; but people don't think that way, or they wouldn't buy FUD in the first place).
Microsoft has been good at producing FUD. SCO has even been reasonably good at it (although revealing particular lines of non-infringing Linux code was a mistake there). But this has a serious lack of uncertainty. It gives the impression that, in order to worry about Linux's IP, you'd have to ignore all information remotely relevant, from every possible source, including the ones supposedly wronged. This is like accusing someone of murdering someone who is still alive and willing to testify for the defense. So I think that Microsoft didn't sponsor this, or at least didn't sign off on the result; SCO probably didn't either (although they've messed up worse in the past). I wouldn't be surprised if it turned out to be someone like Sun, though. They could benefit from Linux looking bad, or from Linux looking good. For that matter, they could really use a justification for their former coldness to Linux, while allowing them to become enlightened about it (considering that they're using it now).
It doesn't matter to most customers. Most customers don't plan to interact much with the OS on their database servers, and want to use whatever Oracle says will be best. They just want the best-supported configuration, which means that they'll use exactly what Oracle installs (or has Red Hat install), and won't change anything. Of course, it's a significant milestone therefore that Oracle is pushing Linux (and moving to it internally), because that means that it actually has the best TCO for that kind of system, because Oracle knows that they get all the money that doesn't go into the customer's TCO on the database.
He actually says that the tools should handle all of the XML stuff for you, so that you see something like what you're used to. That it, XML would be used internally, because it's easy for the computer to parse, manipulate, and generate, unlike C-like syntaxes, which are very difficult to produce in a readable way. The programmer would use the C-like syntax that they're used to, which the editor would produce from the...
That's right, we're going to solve the problem that whitespace in C is an art form that computers can't manage when generating code by having the computer generate all of the whitespace, which will be magically easier because it's completely vital.
What about the fact that blind people pay less for black & white TVs than colour?
I'd guess that the registered blind with TVs can generally see well enough to watch them. You're considered blind if your vision is insufficient to be able to function in everyday life; you may be able to see well enough to watch TV even if you couldn't see well enough to cross the street safely. People whose vision is too bad to enjoy TV probably listen to the radio instead of having a TV.
Mapquest's "business category" listing will give you directions to banks and liquor stores in cities across the country. That's a much more effective way of planning your crime spree than the photos, because otherwise you might try robbing places that only look like banks.
It would be easy to arrange for nobody to have a full frame; rendering generally gets parallelized such that each computer renders only a small number of pixels of a given frame, if for no other reason than to make the render farm useful to the animator (who wants to look at a frame or two and tweak the models).
The issue is that they'd have to send out the models in however much detail is necessary to do the task they want done. With this information you could not only make the complete frame you were asked to render, but the same moment from different angles, other scenes with the characters positioned similarly, etc. You'd actually be giving out more information about that moment than the final movie contains.
Of course, there's also the issue of the size of the model data; transferring the model to you may be slower and more expensive than just rendering the frame locally.
I hope the book actually talked about the JDK 1.4 dynamic proxy class java.lang.reflect.Proxy, because people will be unhappy if they look for DynamicProxy, which doesn't exist.
If the patch already has some, you include those as well. If you're merging patches, you include all of them. If you get a patch without this, you point the person at doc/SubmittingPatches, which will say to do this along with all of the other guidelines. The DCO is in the docs, and explains what it means it put this header on something; it's a pretty straightforward claim that you are legally permitted to license your contributions and sublicense contributions not your own and that you are doing so.
It shouldn't take much thought for people who move patches (if it wasn't true, people shouldn't be sending patches). It shouldn't be a large volume of data (one line/patch per step in the path). It should be easier to get people to remember than some of the other things already in SubmittingPatches. It should fit well with companies that do release management of their patches (the person authorized to release stuff signs off on it, possibly without listing other people, if that's the company policy).
There are nice side-effects: each patch which Linus commits will have the names of all of the contributors. If a contributor wants, it's therefore easy to track whether their patch got in, even if it got modified beyond grep's ability to track. People have often had a hard time figuring out if the patch they submitted to a maintainer actually got into mainline and when. Aside from the legal reasons to want the information, it's actually useful information in many situations, and it's trivial to provide, so it might actually speed up development.
The idea is that each patch will contain a set of headers with the names of everyone who passed it along. The DCO is always the same, and essentially amounts to stating "It is legal for me to pass this on and to license it to the recipients under the GPL". As the applied patches get archived, the headers get archived with them, so that the information is kept. People who keep their own trees keep the headers for the patches they applied, so that they can figure out where the patches came from, even if Linus doesn't pick up the change.