Surely this is the future way that these devices would evolve in a free marketplace. Consider the way that you can build up a stereo system by assembling a cd player, perhaps a tape player, perhaps a DAT player, probably a radio tuner, with an amplifier/mixer and some speakers, and whatever else you want to include. All the connectors are compatible (at worst, with a trivial adaptor), you can mix and match as you see fit, the only limit on the capabilities of the system is the imagination.
Of course, this does not stop you from purchasing an all-in-one "black box", but it certainly sets the benchmark of functionality that you can expect.
Contrast this with the MPAA/RIAA/Microsoft view: An "entertainment console" with pervasive DRM, encrypted and incompatible connections between different components, functionality fixed by the manufacturer and not expandable (except perhaps by buying components from the same manufacturer, protected by encryption from compatibility with equipment from another manufacturer).
Given a free market, which product do you think would be most successful?
Hmm, I would have thought it more likely that the Israili police wouldn't touch these things until the American police had thoroughly field-tested them:-)
Hey don't laugh, multilingual variable names are not uncommon in some areas, especially in crufty old Fortran 77 code given to you by your eastern European colleagues.
Yeah I read Gerald Weinberg's "Phycology of Computer Programming" ages ago, 1989 probably. The terminology was dated even then (it was written in the early 70's I guess?) but the ideas were spot on, and relevant. Indeed, a programmer who followed that book today would probably produce better code than "average". Sigh, shows how far we've come in the last 30 years...
Why would you need a power adapter? Batteries have been around for quite a while now, although I admit the power consumption might be too high in practice.
There surely are useful things a stand-alone web server could do, even if it only has 384KB data space and a slow processor. Not every site on the net is a high powered data hog. Its obviously designed around acting as a web interface for whatever is on the other end of the serial port though.
From the product brief, the CPU is a 48MHz x86-compatible with 256KB SRAM and 512KB Flash RAM. It will run telnet, so I guess you can connect to it and run programs on it in the usual way.
I suspect those specs are good enough to max out the ethernet connection, under normal circumstances.
I don't know what you mean by "stand-alone mode". From reading the product description, I can see no reason why you couldn't just plug it into an existing network and have it start serving pages, if that is what you mean. The intention is clearly to interact with some other device through the serial interface though.
This is really nit-picking, but it is also possible to have non-interacting particles obeying Fermi-Dirac statistics. The 'electrons' in a conventional metal for example, are effectively non-interacting. But they are still prohibited from having more than 1 'electron' in the same state, so you do not get a condensation unless you have something more exotic (like a bound pair of electrons, which then obey Bose-Einstein statistics and allow a superconducting condensate).
As for the single photon diffraction, where is a 1-1 correspondence between the EM field and the wavefunction (up to the usual arbitrary phase factors etc), so from the quantum point of view there is no difference between the single photon and the multiple photon case, as it is the wavefunction itself that interferes. That implies that the photon needs to be very delocalized. If you try to measure the position of the photon, then you 'collapse the wavefunction', which localizes the wavefunction (and hence the EM field) to a small area and the interference effect disappears.
If you will permit me to be sloppy;), you can simply equate the EM field and the wavefunction itself, so consider the field strength at some particular point to be proportional to the average number of photons you will find there (if you did the measurement). Now reduce the field strength so that the total number of photons in the room photon is 1 (or less!). Everything still 'just works'.
From the product description link, helpfully included in the main story...
Although it is smaller than your thumb, the XPort contains all of the hardware and software required to Web-enable any device, including:
10Base-T/100Base-TX auto-sensing Ethernet connection
Mature, robust operating system
Embedded HTTP-compliant Web server
Programmable e-mail alerts
Extensive networking protocol suite including full TCP/IP stack
128-bit AES Rijndael encryption
There is a lot of confusion in the posts so far on exactly what interference is, and whether radio waves are susceptible to it or not.
It would have been much better if Reed had used the term 'interact' rather than 'interfere'. All waves interfere, as you point out.
The important point is that photons do not interact with each other (well, they actually do but the cross-section is so small that it is of no practical relevance). So, you can shine a laser at something, and the photons in the laser beam are essentially unaffected by passing through whatever background light in between the source and whatever you shine the laser at. This is a distinct effect from 'interference'.
And yes, just because something is non-interacting doesn't mean it doesn't occupy space. But it does mean that (in principle) an infinite number of photons can occupy the same space at the same time. So he is being very sloppy with his quantum mechanics, but its very hard to be precise when explaining these things to a magazine.
You are being no less sloppy with your statement that diffraction effects are "due to photons interfering with each other". You can do the same experiment with a single photon, and still get difraction. You probably already knew this, but I'm just making the point that its hard to explain quantum mechanics without being sloppy!
The point is that light is (to a very very good approximation) linear. So if you want to calculate the effect of multiple beams of light all passing through one point then you simply add up the electric & magnetic field vectors at that point. This is what gives the interference, because it is not possible to determine (without additional information) how many beams of light there are, or where they are coming from, purely from looking at the field strength at one point. You only know the sum, not the individual components themselves.
But conversely, because the waves to not affect each other, away from the region where the beams overlap you still have distinct beams. Imagine two lasers arranged so that they intersect at one point. That point of intersection is the only place where there is an interference effect. If you look at the laster light anywhere else, you just see the single beam, no interference.
Where radio is different from visible light is that transmitters and receivers are usually omnidirectional, like a light-bulb versus a laser.
Yeah it is hard to imagine a dish of any decent size getting into orbit anytime soon. Although, a dish in zero-g would have rather different design constraints than a dish on Earth. But it still has to survive getting there...
perhaps the most practical proposal (!) is to build a dish(s) on the moon, using material mined locally. That is quite a long way off though.
The problem is, once you start modulating the signal (to send useful information over it), you are no longer talking about a fixed frequency, but there is inevitably a (perhaps) small 'spread' of frequencies.
Only a pure plane wave that is unchanging in time has exactly zero width in frequency space. As soon as you have a wave that lasts for a finite time (say, to transmit morse code or whatever) then you get a a definite width in frequency space, and suddenly the number of channels you can use is restricted.
In fact, the width of the channel is exactly proportional to the amount of information you can send down it, so using multiple channels provides no advantage (from an information-theoretic point of view) to using a single channel, since the total available capacity is a constant (for a fixed maximum frequency).
The practical limits on frequency are quite limiting. It would be a bad move, for example, to make a radio operating at gamma ray wavelengths. They are quite hazardous. And it only gets worse as the frequency is increased., up to the point that your transmitter will ionize the air around it.
Actually there is a theoretical limit. Once the photons get to a high enough energy they will ionize air molecules, rather than passing through them.
Even if you moved to a vacuum, there is still a limit, although I'm not sure what exactly that limit is. Certainly once the photon energy gets of the order of the mass-energy of a particle (say an electron) then all sorts of weird interactions can take place, such as annihilating two photons and producing an electron-positron pair.
Of course, you would hit the wall with more practical limits long before you reached this point.
As an aside, I have a very very crappy Logitech cordless IR mouse, but the maximum range is less than a foot, and it has to be pointed exactly at the receiver. So it is actually a lot less useable than an ordinary mouse, for which I have a whole desk to play with!
In fact, code and data segments are managed separately. Running multiple instances of a program will result in only one copy of the code in memory.
But in the case of multiple, identical copies of a shared library scattered around a hard drive, it would take some sophistication for the operating system to 'notice' that they are the same, and only load a single copy. In fact, you probably don't want to do this, because a better solution is just use a link of some sort, so that all of the copies refer to the same physical library. This is especially an issue on unix architectures, which tend to be quite modular, with lots of daemon processes that are always running.
Of course, if the versions are different then you cannot avoid having multiple copies on disk as well as (potentially) in RAM.
But even if you did give each application its own copy of the shared libraries, it only shifts the problem somewhere else, you still have the problem of what to do when the library is updated, and do you use the new version or the old version of the library. True, it would give you finer grained control as you could selectively update the library for some apps but not others. But this is already handled in Linux (and some other *nix) by versioning. The filename of a shared object is something like
mylib.so.1.5.0
with some links
mylib.so.1.5 -> mylib.so.1.5.0
mylib.so.1 -> mylib.so.1.5
mylib.so -> mylib.so.1
In the usual case, you would link your app against mylib.so.1, and it will use the most recent minor version. If you really depend on a feature of version 1.5, then you link against mylib.so.1.5. And if you really depend on a feature of a particular patch level, you link against mylib.so.1.5.0. This last case is (ir should be) very rare. In theory, you can drop in a new version of the library, update the appropriate links, and everything "just works". In practice of course it doesn't happen that way and often something does break. But the theory itself is sound, it just takes discipline and communication to enforce it.
The problem with having multiple identical copies of shared objects lying around is that these multiple copies will end up loaded into memory, not just on disk. With a few applications running, it really does have a big effect on RAM.
Also, if a library is updated (say to fix a security flaw) then you don't want to have to check every single app to see if it uses this library or not. And even then, if the application and library do not play nicely together, you will still have the problem that the library upgrade might break the app. In the case of a security fix, this is a serious problem.
Some of these problems, of multiple copies of the library floating around, can (and are) fixed on *nix systems, using symlinks and hard links. But since you talk about using up hard disk space, I assume you are not talking about links?
I don't think there is a magic solution to this. The Debian system perhaps works the best, with quite rigorous management of dependencies, but it is too labour-intensive to be used universally. It really comes down do discipline of library and application writers: library writers need to ensure that their lib is well specified, future releases are versioned properly, and minor releases don't break the interface. Application writers need to be careful to code against the interface, and not depend on some detail of the implementation. This is hard to do, but throwing multiple copies of libraries around is no fix either.
Maybe, but it is hard to come up with another tech that has such direct and potentially big impact on politics, in the short term.
Genetic engineering: The serious applications (say, genetically modifying the population to enhance predisposition to vote 'Republican':-) are a long way off. The time where real action is needed to prevent such an event has not yet come. More realistic applications, such as discrimination based on genetic profiling, for example, have less political impact, I think. (well, maybe not, but lets hear the argument)
Nanotech robots: again, the applications for political opression are a long way off (but potentially frightning), this is a battle that will be fought in the future.
But DRM is here right now, the battle will be won or lost within the next year or two. If everyone becomes accustomed to the idea that all the information on their hard drive is "owned" by some Digital Rights Enforcement Corporation, then it is inevitable that the political agenda of said Corporation will be reflected (perhaps overtly, or perhaps in a more subtle fashion) in the access controls on what the user is and is not allowed to view. And if all information can be controlled, even imperfectly, then it is absolutely inevitable that governments the world over will want to be part of it.
Sure, independence is often a good thing, and in the case of the USA, succession was a good thing even at the expense of needing a war to do it. But you make it sound like it was a war against the great satan himself.
I would have thought, for example, that the opression suffered by the colonists in pre-revolution Americas was nothing compared with the opression suffered by, say, the blacks in the leadup to the American civil war, or the Jews in Nazi Germany, or a whole host of other examples.
I mean, there hasn't been a revolution in Britain for a very long time, but somehow they themselves managed to escape the "government which had sought to supress dissent through any and all means" through (substantially) peaceful methods. Australia too managed to escape the "tyrrany" without a war.
What would be the purpose behind trademarking a piece of freeware?
Of course, this does not stop you from purchasing an all-in-one "black box", but it certainly sets the benchmark of functionality that you can expect.
Contrast this with the MPAA/RIAA/Microsoft view: An "entertainment console" with pervasive DRM, encrypted and incompatible connections between different components, functionality fixed by the manufacturer and not expandable (except perhaps by buying components from the same manufacturer, protected by encryption from compatibility with equipment from another manufacturer).
Given a free market, which product do you think would be most successful?
Hmm, I would have thought it more likely that the Israili police wouldn't touch these things until the American police had thoroughly field-tested them :-)
The fish doesn't help much either :-(
Anyway, what I was really going to ask ;) is, are any of his other books any good?
Yeah I read Gerald Weinberg's "Phycology of Computer Programming" ages ago, 1989 probably. The terminology was dated even then (it was written in the early 70's I guess?) but the ideas were spot on, and relevant. Indeed, a programmer who followed that book today would probably produce better code than "average". Sigh, shows how far we've come in the last 30 years...
Wasn't it 300kb/s for the serial controller?
The relevent interface for web pages is 100Mb/s ethernet. It would not be the slowest server on the internet.....
Its clearly not going to function very well as a secret pr0n server, but you can fit quite a lot of html in 512+256KB (compressed, if need be).
If you're using it as a web interface for some embedded device (weather monitor, for example?) how much space do you need?
There surely are useful things a stand-alone web server could do, even if it only has 384KB data space and a slow processor. Not every site on the net is a high powered data hog. Its obviously designed around acting as a web interface for whatever is on the other end of the serial port though.
I suspect those specs are good enough to max out the ethernet connection, under normal circumstances.
I don't know what you mean by "stand-alone mode". From reading the product description, I can see no reason why you couldn't just plug it into an existing network and have it start serving pages, if that is what you mean. The intention is clearly to interact with some other device through the serial interface though.
As for the single photon diffraction, where is a 1-1 correspondence between the EM field and the wavefunction (up to the usual arbitrary phase factors etc), so from the quantum point of view there is no difference between the single photon and the multiple photon case, as it is the wavefunction itself that interferes. That implies that the photon needs to be very delocalized. If you try to measure the position of the photon, then you 'collapse the wavefunction', which localizes the wavefunction (and hence the EM field) to a small area and the interference effect disappears.
If you will permit me to be sloppy ;), you can simply equate the EM field and the wavefunction itself, so consider the field strength at some particular point to be proportional to the average number of photons you will find there (if you did the measurement). Now reduce the field strength so that the total number of photons in the room photon is 1 (or less!). Everything still 'just works'.
Although it is smaller than your thumb, the XPort contains all of the hardware and software required to Web-enable any device, including:
10Base-T/100Base-TX auto-sensing Ethernet connection
Mature, robust operating system
Embedded HTTP-compliant Web server
Programmable e-mail alerts
Extensive networking protocol suite including full TCP/IP stack
128-bit AES Rijndael encryption
It would have been much better if Reed had used the term 'interact' rather than 'interfere'. All waves interfere, as you point out.
The important point is that photons do not interact with each other (well, they actually do but the cross-section is so small that it is of no practical relevance). So, you can shine a laser at something, and the photons in the laser beam are essentially unaffected by passing through whatever background light in between the source and whatever you shine the laser at. This is a distinct effect from 'interference'.
And yes, just because something is non-interacting doesn't mean it doesn't occupy space. But it does mean that (in principle) an infinite number of photons can occupy the same space at the same time. So he is being very sloppy with his quantum mechanics, but its very hard to be precise when explaining these things to a magazine.
You are being no less sloppy with your statement that diffraction effects are "due to photons interfering with each other". You can do the same experiment with a single photon, and still get difraction. You probably already knew this, but I'm just making the point that its hard to explain quantum mechanics without being sloppy!
Where radio is different from visible light is that transmitters and receivers are usually omnidirectional, like a light-bulb versus a laser.
perhaps the most practical proposal (!) is to build a dish(s) on the moon, using material mined locally. That is quite a long way off though.
Only a pure plane wave that is unchanging in time has exactly zero width in frequency space. As soon as you have a wave that lasts for a finite time (say, to transmit morse code or whatever) then you get a a definite width in frequency space, and suddenly the number of channels you can use is restricted.
In fact, the width of the channel is exactly proportional to the amount of information you can send down it, so using multiple channels provides no advantage (from an information-theoretic point of view) to using a single channel, since the total available capacity is a constant (for a fixed maximum frequency).
The practical limits on frequency are quite limiting. It would be a bad move, for example, to make a radio operating at gamma ray wavelengths. They are quite hazardous. And it only gets worse as the frequency is increased., up to the point that your transmitter will ionize the air around it.
Even if you moved to a vacuum, there is still a limit, although I'm not sure what exactly that limit is. Certainly once the photon energy gets of the order of the mass-energy of a particle (say an electron) then all sorts of weird interactions can take place, such as annihilating two photons and producing an electron-positron pair.
Of course, you would hit the wall with more practical limits long before you reached this point.
As an aside, I have a very very crappy Logitech cordless IR mouse, but the maximum range is less than a foot, and it has to be pointed exactly at the receiver. So it is actually a lot less useable than an ordinary mouse, for which I have a whole desk to play with!
But in the case of multiple, identical copies of a shared library scattered around a hard drive, it would take some sophistication for the operating system to 'notice' that they are the same, and only load a single copy. In fact, you probably don't want to do this, because a better solution is just use a link of some sort, so that all of the copies refer to the same physical library. This is especially an issue on unix architectures, which tend to be quite modular, with lots of daemon processes that are always running.
Of course, if the versions are different then you cannot avoid having multiple copies on disk as well as (potentially) in RAM.
But even if you did give each application its own copy of the shared libraries, it only shifts the problem somewhere else, you still have the problem of what to do when the library is updated, and do you use the new version or the old version of the library. True, it would give you finer grained control as you could selectively update the library for some apps but not others. But this is already handled in Linux (and some other *nix) by versioning. The filename of a shared object is something like
mylib.so.1.5.0
with some links
mylib.so.1.5 -> mylib.so.1.5.0
mylib.so.1 -> mylib.so.1.5
mylib.so -> mylib.so.1
In the usual case, you would link your app against mylib.so.1, and it will use the most recent minor version. If you really depend on a feature of version 1.5, then you link against mylib.so.1.5. And if you really depend on a feature of a particular patch level, you link against mylib.so.1.5.0. This last case is (ir should be) very rare. In theory, you can drop in a new version of the library, update the appropriate links, and everything "just works". In practice of course it doesn't happen that way and often something does break. But the theory itself is sound, it just takes discipline and communication to enforce it.
The problem with having multiple identical copies of shared objects lying around is that these multiple copies will end up loaded into memory, not just on disk. With a few applications running, it really does have a big effect on RAM. Also, if a library is updated (say to fix a security flaw) then you don't want to have to check every single app to see if it uses this library or not. And even then, if the application and library do not play nicely together, you will still have the problem that the library upgrade might break the app. In the case of a security fix, this is a serious problem. Some of these problems, of multiple copies of the library floating around, can (and are) fixed on *nix systems, using symlinks and hard links. But since you talk about using up hard disk space, I assume you are not talking about links? I don't think there is a magic solution to this. The Debian system perhaps works the best, with quite rigorous management of dependencies, but it is too labour-intensive to be used universally. It really comes down do discipline of library and application writers: library writers need to ensure that their lib is well specified, future releases are versioned properly, and minor releases don't break the interface. Application writers need to be careful to code against the interface, and not depend on some detail of the implementation. This is hard to do, but throwing multiple copies of libraries around is no fix either.
They needed to make sure it was properly dead.
If Corel had jumped up and down sooner about M$'s file format shit then maybe Corel would still be triving.
On the other hand, it is more likely it would have just led to M$ destroying them a bit sooner.
A very cheap $122 million for them.
Genetic engineering: The serious applications (say, genetically modifying the population to enhance predisposition to vote 'Republican' :-) are a long way off. The time where real action is needed to prevent such an event has not yet come. More realistic applications, such as discrimination based on genetic profiling, for example, have less political impact, I think. (well, maybe not, but lets hear the argument)
Nanotech robots: again, the applications for political opression are a long way off (but potentially frightning), this is a battle that will be fought in the future.
But DRM is here right now, the battle will be won or lost within the next year or two. If everyone becomes accustomed to the idea that all the information on their hard drive is "owned" by some Digital Rights Enforcement Corporation, then it is inevitable that the political agenda of said Corporation will be reflected (perhaps overtly, or perhaps in a more subtle fashion) in the access controls on what the user is and is not allowed to view. And if all information can be controlled, even imperfectly, then it is absolutely inevitable that governments the world over will want to be part of it.
Sure, independence is often a good thing, and in the case of the USA, succession was a good thing even at the expense of needing a war to do it. But you make it sound like it was a war against the great satan himself.
I would have thought, for example, that the opression suffered by the colonists in pre-revolution Americas was nothing compared with the opression suffered by, say, the blacks in the leadup to the American civil war, or the Jews in Nazi Germany, or a whole host of other examples.
I mean, there hasn't been a revolution in Britain for a very long time, but somehow they themselves managed to escape the "government which had sought to supress dissent through any and all means" through (substantially) peaceful methods. Australia too managed to escape the "tyrrany" without a war.