Trifles make perfection, and perfection is no trifle. -- Michelangelo
Lambda expressions ain't closures.
Tom Christiansen recently made the very interesting point that any programmer who has not been exposed to all of the imperative, objective, functional, and logical styles has one or more conceptual blind spots. In his words, "It is like knowing how to boil but not to fry. Programming is not something you master in 5 easy steps."
Perl smoothly supports building real system in any and all combinations of those programming styles. This is no small feat, even if it wasted on most of the monkeys currently giving Perl a bad name by pumping out glorified print statements...
The only remaining houses that are not government owned long ago became museums because of how much taxes were.
The *average* three bedroom apartment sold last year for $1.3 million. Don't even think about a four bedroom.
$50,000 and government assisted housing? I believe Manhattan had that 20 years ago!
Remember, Manhattan is the place where someone had the bright idea that you could take an already tiny apartment and rent each room separately. People really do live in converted closets.
OTOH life expectancy is better because nobody drives.:-P (Any idea how much parking is?)
It is simply amazing to me how this figure has spread. It was the largest reasonable figure that you could quote from the original report.
63,000 is a figure based on an internal email which in turn looks to be based on output from an automated testing tool. The internal estimate for real problems detected is about 28,000 or so. Plus some unknown number of interface issues, interactions not detected, documentation mistakes, etc, etc, etc.
But read the original report for yourself. Mary Joe Foley was careful in what she said, virtually nobody commenting on it has paid attention to that though.
Again, Microsoft has a long internal list of potential known problems. They think that slightly under half of those are actually bugs. There are an unknown (and probably large) number of real bugs out there that their tools didn't know to look for. There are large numbers of potential issues which people can legitimately differ on whether or not it is a bug or user confusion.
Given all that, the real figures are bad enough. There is no need to misquote them to make them look worse, then run the risk of running into Microsoft supporters who can demonstrate that you don't have a clue what you are talking about...
The patent office should locate and talk to 3 people in the field. Ask them whether the discussed patent is an original and innovative idea. If 2/3 cannot help but laugh, throw it out.
Most of the software patents would quickly die by this test...
There are 3 classic tests of GR. One is the precession of the orbit of Mercury. One is the redshift of light coming out of a gravity well. And the last is how much gravity bends light.
Unfortunately the first and third effects are derivable to first-order as a necessary consequence if gravity moves at the speed of light. A German schoolteacher had come up with the first prior to Einstein. (A fact that the Nazis made an unfortunate amount of hay from.) The third was not shown until decades after. But neither of those is therefore a good test since pretty much any realistic theory would be likely to have the same first-order effects.
The second effect is derivable to first order from QM and potential energy. (Particles coming out of a gravity well lose energy, therefore lengthening their wavelength. Voila, red-shift. And it works out right to first order.) So that effect is again not a particularly amazing prediction in retrospect, even though it was when Einstein made it.
Unfortunately we cannot easily test the second-order correction for any of these effects from GR.
So all 3 classic tests actually didn't test as much as was thought at the time.
They have a clear estimate of the actual error tolerances they believe that they are achieving. They likewise have a clear estimate of the exact drift they expect to see.
If they mess up on the first the odds of their accidentally getting a measurement because of that agrees with the second is miniscule (to say the least).
So while right now the best bet is indeed that they will confirm Einstein, this is by no means a sign of incompetence or a foregone conclusion.
If you talk to some of IBM's ethical hackers you will find out that security is usually a joke. Most places are just wide open.
And physical security is a growing issue. So some state department computer was stolen? If you know what you are doing, getting into "secure areas" is apparently pretty easy.
It isn't just a problem for computers, and it won't be goin g away any time soon.
Many number theoretic results, if they are undecidable, cannot be proved to be undecidable.
Others can.
The Goldbach problem is an example of something which if it is undecidable, cannot be proved to be undecidable.
P=NP is something that could theoretically be undecidable and be proven undecidable.
In both cases the potential counter-examples can be enumerated (ie placed into a list). The difference is as follows. There might be an algorithm that actually works for P=NP which you cannot actually prove works. However you can always prove one way or another whether a specific integer is the sum of two primes.
I saw a good discussion of portabilitiy concerns and one lept out at me. Most operating systems hand you back the least recently used block of memory when you ask for more so that if you have dangling pointers you are likely to not be using them any more. W2K deliberately hands back the most recently used one which means that if you made a mistake, you find out about it immediately.
This shows that someone at the OS division is serious about long-term stability. Forcing people to catch errors right away is a good quality control step. But in the meantime it means that a lot of things die on W2K, and in many of those cases the error really matters.
OTOH W2K changed a lot of other things, big chunks of it are a piece of cack, and all that. So this could just be yet another piece of W2K stupidity. But they should not conclude that until they check that they are not responsible...
Cheers, Ben
PS I think it would be nice if there was a version of Linux that provided a stress-test for errors that should be handled. Constantly giving EAGAIN exceptions. handing back recently used memory, etc.
Many moons ago an if condition was messed up and extrans was the same as plain text.
When the slash code came out, the first thing that I did was went to make some fixes to bugs in plain text that had been bugging me for ages. While I was doing that I noticed the mistake in the if condition and made extrans be what it was advertised to be also. The patch was accepted.:-)
Amusingly, any Python fans who find that indenting works have a Perl bigot to thank. (Namely me.:-)
If you want computations, I agree that Perl's native calculations are not the fastest. Use PDL or Math::PARI or some other extension.
As for mod_perl and multiple CPUs, that is no problem. Apache is designed to have multiple child servers running in parallel. Different children get different CPUs and so mod_perl will scale across CPUs. If you want single requests to multi-thread, this is not good. If you want to have multiple people using the site at once, this is quite sufficient.
Of course this has issues on operating systems like Solaris that do complex things to try to optimize threads. But when Linux can do a process switch faster than Solaris does a thread switch on identical hardware, I have to wonder whether those complex things are worthwhile.
Now redundant memory usage is a real problem, and a big one. mmap helps (a lot) on this, but this is a big loss for Perl. No, it won't be solved soon. But then again Perl has always taken the view that memory is cheap, and indeed it is getting cheaper and faster. So it probably isn't that big of a loss either.
Another big loss is clustering. Java solves that better than Perl does. Perl is dependent upon the OS. Of course the direction that Linux is heading is very clustering friendly, Apache has pressure to do likewise, so again you can act as if that it is not Perl's problem.
So yes, I agree with quite a few things that you said, but I don't think that it reflects badly on Perl.
In order to make the source open they have to give out good specs. From those specs their competitors can try to figure out how they produce their hardware. And that is what they don't want to have happen.
Does it really work like that? Possibly. Probably not. But that is the main reason given for not open sourcing drivers.
Of course the risk that they have to run is that someone will go out and reverse engineer their hardware. In not a few cases companies have had that happen with the result that dirty laundry they wanted to keep secret has been publically aired anyways. (eg The "secure" protocol just got reversed and turned out to be junk.) Which as often as not is another reason that they don't let people know how their stuff works. They don't want people to know how bad it is.
In order to compile a binary driver into the kernel you need a public interface between the kernel and the binary. That public interface is a header file written in C.
I think it is pretty certain that Ralph Metzer was looking at the header file and got a strong sense of deva vu...
The way you encourage mistakes not to happen is make them costly.
If it comes down to, "Apologize then clean up the header and say you fixed it" - that isn't costly. Do you have any reason to believe that code and algorithms which may have been borrowed in the binary was cleaned up as well? Of course not - doing that would make the fix potentially take longer. Companies generally don't play nicely and tend to have some trouble accepting that others actually might be so naive as to expect that they would.
At the least - very least - there should be an insistence on having the developer whose code was nicked get access (under an NDA if need be) to the source to verify whether more was borrowed. That should be an absolute minimum requirement before anyone believes them.
Preferably the driver should be forced to be GPL as per the licence which the code was distributed under. (That is, after all, the purpose of the GPL.) If they do not do that then they should seek an alternate licence from the author. Note that nothing in the GPL prevents the author from re-releasing a non-GPLed version. And yes, the author would be perfectly justified asking for gobs of money.
But no, none of this is going to happen. Which is why when people who don't think like lawyers start thinking that people who pay lawyers will play nice, they get the short end of the stick. Repeatedly.
*sigh* Ben
On some Go endgames computers can outplay humans
on
Solving Chess?
·
· Score: 3
In fact there is a mathematical theory that most humans don't learn which in a significant portion of endgames can determine who wins the last point.
Of course in general we don't know how to get computers to win at Go. What we do know is that the technique used in chess is useless because of the branching factor. The state of the art of chess programs today is not much better than it was 20 years ago. But they can throw more computational power at the same problem and that makes the difference.
Even with Moore's law, raw computational power will not suffice to become good at Go within the next few decades.
Cheers, Ben
I believe it is unconstitutional
on
Fighting UCITA
·
· Score: 2
A transaction between parties in 2 states is by definition commerce and therefore falls squarely in the jurisdiction of Congress. For more on this, search for "Commerce" in this article on tactics against spam.
A lojack system is doable, but the problem is that laptops are always cramped for space. So yes, you could add it, but you would lose something else, and people are already cutting corners.
OTOH most of the elements of a lojack system make sense for other reasons. An embedded cell-phone allows the laptop to get online virtually anywhere. Add some sort of location capacity to that (a separate GPS or just something that uses feedback about where the cellphone is connecting) and you get useful mapping capabilities.
Now a theft-prevention device becomes a no-brainer. You don't even need to make it an explosive, just integrate the above parts with the laptop enough that to pull them out means breaking the laptop!
The point where the evaluation process stops is the final point where they have decided who to admit. The fact that most don't make the first cut is the end of the road for them, but not for the process.
Calculate the wavelength of a herd of charging elephants. (Gives figures for speed and size of said elephants.)
It takes some serious swallowing to take it seriously and go on to the question about applying a diffraction grating to said herd, but that is physics for you...
I am talking, of course, Larry McVoy's thoughts on scalability and SMP clusters. Here is a link on the problems with SMP, and here are the slides without explanation.
The theory goes like this. In an SMP system all of the CPUs have to be made to pay attention when any of the CPUs wants to do something where races would be bad. To do that you need good latency, which means that you need to fine-tune what is locked where and for how long. This introduces a lot of overhead.
Instead what Larry wants is to have a machine with a lot of CPUs turn itself internally into a cluster of Linux machines that just happen to network Really Fast. There are good theoretical reasons why this should scale Really Well.
One of the key items in this vision is the ability to run virtual machines within Linux. Guess what User Mode Linux is?:-) The other piece of the puzzle is making a cluster work like one machine, and Ron Minnich has been doing some work there.
In 2 years, care for a 1000 CPU multi-threaded database server? With failover?:-):-):-)
Actually start off with this question. You know about tree rings? Well many things lay down layers year after year in the same fashion. For instance glaciers. If you go to Greenland, drill, and count, you get a record that goes backwards in time a few hundred thousand years, not only saying the Earth is older than that, but also saying that there have been no global floods, etc in that time. The 160,000 year record from Vostok is good enough to make my point though.
Please folks. The fact the Earth is no spring chicken has been an accepted fact of science since before Darwin, and it something we have lots of independent confirmation on.
Trifles make perfection, and perfection is no trifle. -- Michelangelo
Lambda expressions ain't closures.
Tom Christiansen recently made the very interesting point that any programmer who has not been exposed to all of the imperative, objective, functional, and logical styles has one or more conceptual blind spots. In his words, "It is like knowing how to boil but not to fry. Programming is not something you master in 5 easy steps."
Perl smoothly supports building real system in any and all combinations of those programming styles. This is no small feat, even if it wasted on most of the monkeys currently giving Perl a bad name by pumping out glorified print statements...
Cheers,
Ben
Where are closures?
If you wonder why I mention them, then you have never tried functional programming techniques.
Regards,
Ben
The only remaining houses that are not government owned long ago became museums because of how much taxes were.
:-P (Any idea how much parking is?)
The *average* three bedroom apartment sold last year for $1.3 million. Don't even think about a four bedroom.
$50,000 and government assisted housing? I believe Manhattan had that 20 years ago!
Remember, Manhattan is the place where someone had the bright idea that you could take an already tiny apartment and rent each room separately. People really do live in converted closets.
OTOH life expectancy is better because nobody drives.
Cheers,
Ben
It is simply amazing to me how this figure has spread. It was the largest reasonable figure that you could quote from the original report.
63,000 is a figure based on an internal email which in turn looks to be based on output from an automated testing tool. The internal estimate for real problems detected is about 28,000 or so. Plus some unknown number of interface issues, interactions not detected, documentation mistakes, etc, etc, etc.
But read the original report for yourself. Mary Joe Foley was careful in what she said, virtually nobody commenting on it has paid attention to that though.
Again, Microsoft has a long internal list of potential known problems. They think that slightly under half of those are actually bugs. There are an unknown (and probably large) number of real bugs out there that their tools didn't know to look for. There are large numbers of potential issues which people can legitimately differ on whether or not it is a bug or user confusion.
Given all that, the real figures are bad enough. There is no need to misquote them to make them look worse, then run the risk of running into Microsoft supporters who can demonstrate that you don't have a clue what you are talking about...
Cheers,
Ben
The patent office should locate and talk to 3 people in the field. Ask them whether the discussed patent is an original and innovative idea. If 2/3 cannot help but laugh, throw it out.
Most of the software patents would quickly die by this test...
Cheers,
Ben
There are 3 classic tests of GR. One is the precession of the orbit of Mercury. One is the redshift of light coming out of a gravity well. And the last is how much gravity bends light.
Unfortunately the first and third effects are derivable to first-order as a necessary consequence if gravity moves at the speed of light. A German schoolteacher had come up with the first prior to Einstein. (A fact that the Nazis made an unfortunate amount of hay from.) The third was not shown until decades after. But neither of those is therefore a good test since pretty much any realistic theory would be likely to have the same first-order effects.
The second effect is derivable to first order from QM and potential energy. (Particles coming out of a gravity well lose energy, therefore lengthening their wavelength. Voila, red-shift. And it works out right to first order.) So that effect is again not a particularly amazing prediction in retrospect, even though it was when Einstein made it.
Unfortunately we cannot easily test the second-order correction for any of these effects from GR.
So all 3 classic tests actually didn't test as much as was thought at the time.
Cheers,
Ben
They have a clear estimate of the actual error tolerances they believe that they are achieving. They likewise have a clear estimate of the exact drift they expect to see.
If they mess up on the first the odds of their accidentally getting a measurement because of that agrees with the second is miniscule (to say the least).
So while right now the best bet is indeed that they will confirm Einstein, this is by no means a sign of incompetence or a foregone conclusion.
Sincerely,
Ben
If you talk to some of IBM's ethical hackers you will find out that security is usually a joke. Most places are just wide open.
And physical security is a growing issue. So some state department computer was stolen? If you know what you are doing, getting into "secure areas" is apparently pretty easy.
It isn't just a problem for computers, and it won't be goin g away any time soon.
Cheers,
Ben
Many number theoretic results, if they are undecidable, cannot be proved to be undecidable.
Others can.
The Goldbach problem is an example of something which if it is undecidable, cannot be proved to be undecidable.
P=NP is something that could theoretically be undecidable and be proven undecidable.
In both cases the potential counter-examples can be enumerated (ie placed into a list). The difference is as follows. There might be an algorithm that actually works for P=NP which you cannot actually prove works. However you can always prove one way or another whether a specific integer is the sum of two primes.
Cheers,
Ben
Alan Turing was a gay, British, atheist.
David Hilbert was a heterosexual (even went after his grad student's wives) German. I don't know whether he was a Christian or not though.
Cheers,
Ben
I saw a good discussion of portabilitiy concerns and one lept out at me. Most operating systems hand you back the least recently used block of memory when you ask for more so that if you have dangling pointers you are likely to not be using them any more. W2K deliberately hands back the most recently used one which means that if you made a mistake, you find out about it immediately.
This shows that someone at the OS division is serious about long-term stability. Forcing people to catch errors right away is a good quality control step. But in the meantime it means that a lot of things die on W2K, and in many of those cases the error really matters.
OTOH W2K changed a lot of other things, big chunks of it are a piece of cack, and all that. So this could just be yet another piece of W2K stupidity. But they should not conclude that until they check that they are not responsible...
Cheers,
Ben
PS I think it would be nice if there was a version of Linux that provided a stress-test for errors that should be handled. Constantly giving EAGAIN exceptions. handing back recently used memory, etc.
Many moons ago an if condition was messed up and extrans was the same as plain text.
:-)
When the slash code came out, the first thing that I did was went to make some fixes to bugs in plain text that had been bugging me for ages. While I was doing that I noticed the mistake in the if condition and made extrans be what it was advertised to be also. The patch was accepted.
Amusingly, any Python fans
who find that indenting works
have a Perl bigot to thank.
(Namely me.:-)
Cheers,
Ben
If you want computations, I agree that Perl's native calculations are not the fastest. Use PDL or Math::PARI or some other extension.
As for mod_perl and multiple CPUs, that is no problem. Apache is designed to have multiple child servers running in parallel. Different children get different CPUs and so mod_perl will scale across CPUs. If you want single requests to multi-thread, this is not good. If you want to have multiple people using the site at once, this is quite sufficient.
Of course this has issues on operating systems like Solaris that do complex things to try to optimize threads. But when Linux can do a process switch faster than Solaris does a thread switch on identical hardware, I have to wonder whether those complex things are worthwhile.
Now redundant memory usage is a real problem, and a big one. mmap helps (a lot) on this, but this is a big loss for Perl. No, it won't be solved soon. But then again Perl has always taken the view that memory is cheap, and indeed it is getting cheaper and faster. So it probably isn't that big of a loss either.
Another big loss is clustering. Java solves that better than Perl does. Perl is dependent upon the OS. Of course the direction that Linux is heading is very clustering friendly, Apache has pressure to do likewise, so again you can act as if that it is not Perl's problem.
So yes, I agree with quite a few things that you said, but I don't think that it reflects badly on Perl.
Cheers,
Ben
In order to make the source open they have to give out good specs. From those specs their competitors can try to figure out how they produce their hardware. And that is what they don't want to have happen.
Does it really work like that? Possibly. Probably not. But that is the main reason given for not open sourcing drivers.
Of course the risk that they have to run is that someone will go out and reverse engineer their hardware. In not a few cases companies have had that happen with the result that dirty laundry they wanted to keep secret has been publically aired anyways. (eg The "secure" protocol just got reversed and turned out to be junk.) Which as often as not is another reason that they don't let people know how their stuff works. They don't want people to know how bad it is.
Cheers,
Ben
In order to compile a binary driver into the kernel you need a public interface between the kernel and the binary. That public interface is a header file written in C.
I think it is pretty certain that Ralph Metzer was looking at the header file and got a strong sense of deva vu...
Cheers,
Ben
The way you encourage mistakes not to happen is make them costly.
If it comes down to, "Apologize then clean up the header and say you fixed it" - that isn't costly. Do you have any reason to believe that code and algorithms which may have been borrowed in the binary was cleaned up as well? Of course not - doing that would make the fix potentially take longer. Companies generally don't play nicely and tend to have some trouble accepting that others actually might be so naive as to expect that they would.
At the least - very least - there should be an insistence on having the developer whose code was nicked get access (under an NDA if need be) to the source to verify whether more was borrowed. That should be an absolute minimum requirement before anyone believes them.
Preferably the driver should be forced to be GPL as per the licence which the code was distributed under. (That is, after all, the purpose of the GPL.) If they do not do that then they should seek an alternate licence from the author. Note that nothing in the GPL prevents the author from re-releasing a non-GPLed version. And yes, the author would be perfectly justified asking for gobs of money.
But no, none of this is going to happen. Which is why when people who don't think like lawyers start thinking that people who pay lawyers will play nice, they get the short end of the stick. Repeatedly.
*sigh*
Ben
In fact there is a mathematical theory that most humans don't learn which in a significant portion of endgames can determine who wins the last point.
Of course in general we don't know how to get computers to win at Go. What we do know is that the technique used in chess is useless because of the branching factor. The state of the art of chess programs today is not much better than it was 20 years ago. But they can throw more computational power at the same problem and that makes the difference.
Even with Moore's law, raw computational power will not suffice to become good at Go within the next few decades.
Cheers,
Ben
Specifically it violates the Commerce Clause.
A transaction between parties in 2 states is by definition commerce and therefore falls squarely in the jurisdiction of Congress. For more on this, search for "Commerce" in this article on tactics against spam.
Cheers,
Ben
PS IANAL and all that.
A lojack system is doable, but the problem is that laptops are always cramped for space. So yes, you could add it, but you would lose something else, and people are already cutting corners.
OTOH most of the elements of a lojack system make sense for other reasons. An embedded cell-phone allows the laptop to get online virtually anywhere. Add some sort of location capacity to that (a separate GPS or just something that uses feedback about where the cellphone is connecting) and you get useful mapping capabilities.
Now a theft-prevention device becomes a no-brainer. You don't even need to make it an explosive, just integrate the above parts with the laptop enough that to pull them out means breaking the laptop!
Cheers,
Ben
The point where the evaluation process stops is the final point where they have decided who to admit. The fact that most don't make the first cut is the end of the road for them, but not for the process.
Regards,
Ben
Actual problem on a physics test.
Calculate the wavelength of a herd of charging elephants. (Gives figures for speed and size of said elephants.)
It takes some serious swallowing to take it seriously and go on to the question about applying a diffraction grating to said herd, but that is physics for you...
Cheers,
Ben
PS This is not a made up example!
For starters they have the type of submarine wrong.
For seconds no Americans were involved since the US had not been shocked out of its shell by Pearl Harbour at the time.
Regards,
en
I am talking, of course, Larry McVoy's thoughts on scalability and SMP clusters. Here is a link on the problems with SMP, and here are the slides without explanation.
:-) The other piece of the puzzle is making a cluster work like one machine, and Ron Minnich has been doing some work there.
:-) :-) :-)
The theory goes like this. In an SMP system all of the CPUs have to be made to pay attention when any of the CPUs wants to do something where races would be bad. To do that you need good latency, which means that you need to fine-tune what is locked where and for how long. This introduces a lot of overhead.
Instead what Larry wants is to have a machine with a lot of CPUs turn itself internally into a cluster of Linux machines that just happen to network Really Fast. There are good theoretical reasons why this should scale Really Well.
One of the key items in this vision is the ability to run virtual machines within Linux. Guess what User Mode Linux is?
In 2 years, care for a 1000 CPU multi-threaded database server? With failover?
Cheers,
Ben
How about security?
If you program in Perl, do you know what -T means?
If you program in C, have you carefully considered buffer overflows?
etc?
Regards,
Ben
Start with this one.
You might start in this section first.
Actually start off with this question. You know about tree rings? Well many things lay down layers year after year in the same fashion. For instance glaciers. If you go to Greenland, drill, and count, you get a record that goes backwards in time a few hundred thousand years, not only saying the Earth is older than that, but also saying that there have been no global floods, etc in that time. The 160,000 year record from Vostok is good enough to make my point though.
Please folks. The fact the Earth is no spring chicken has been an accepted fact of science since before Darwin, and it something we have lots of independent confirmation on.
Regards,
Ben