The W3C should have stopped with a full specification of HTML. Anything
they have been doing beyond that has been doing more harm than good. The
web succeeded because HTML was simple.
Of course, some client-side code is useful, but unfortunately, the major
contenders have dropped the ball on that one. The W3C has given us
JavaScript+DOM+CSS+..., but it's way too complicated for the vanishingly
small amount of functionality, and nobody has managed to implement it correctly;
in fact, I doubt nobody knows what a correct implementation would even mean.
Flash has become ubiquitous, but it just isn't suitable for real GUI
programming and is effectively proprietary. And Java could have been
a contender, but Sun has chosen to keep it proprietary, and the once small
and simple language has become unusably bloated.
But, hey, that means that there is an opportunity for better approaches to
client-side programming. Curl might have been a candidate if it weren't
for the ridiculous license. But someone outside the W3C will do something
decent that catches on sooner or later.
Since this discussion goes back to Sokal's hoax, I recommend looking at Sokal's own work. His own papers are largely about obscure properties of lattice models in statistical mechanics. For much of this kind of work, it is far from clear whether it is relevant to any real physical system, or whether some of the assumptions under which they are proven are even mathematically meaningful or consistent. In mathematics, if you start with inconsistent assumptions, you can prove anything. Sokal's own field would have been another good target for a physics hoax, although string theory clearly beats lattice methods to the punch.
the idea is that the first ten amendments- protecting free speech, right to keep and bear arms, no quartering soldiers in one's home, freedom from unreasonable search and seizure, due process of law, etc- apply to all humans.
No, they don't. Those are merely the laws of the United States, not some universal truths. Nobody else is bound by them, and other societies certainly have the right to organize themselves differently.
One might add here that the US has been found guilty of numerous human rights violations. Many people outside the US feel that the Constitution does not go far enough in protecting the rights of the individuals while, at the same time, creating conditions that place the safety and well-being of citizens at risk.
In general, if your processor can address it directly, it makes more sense to put this memory on the motherboard and use it as regular RAM.
People make these boards whenever the amount of RAM the processor can address becomes small compared to what you can afford, people start putting RAM into RAM disk drives.
However, nearly $3000 for 2G of RAM seems excessive no matter what.
There is no positive aspect to hate speech, and many of its defenders are closet racists themselves.
Calling for killing someone else is clearly bad. The question is: why is it only bad if the target falls into a small number of categories? "Kill all Catholics" is banned under the EU statute, but "Kill all Abortion Doctors", "Kill all Lesbians", "Kill all Afghans", or "Kill all People with Tattoos" isn't.
Hate speech, i.e., speech that calls for violence against any group of people should be banned. But it is already. Hate speech and non-discrimination legislation, on the other hand, is inequitable, because it only protects some select groups. Powerful interests have managed to carve out their own special niches.
The irony is, of course, that non-discrimination and anti-hate-speech laws are being used by many promoters of hate speech to shield themselves: organizations like Fallwell's Ministries or the Catholic Church are responsible for much of the hate speech that we are subjected to every day.
As a member of a minority that is supposedly protected by these laws, I'd much rather do without them, thank you very much: they do more harm than good.
If Microsoft is forced to remove ActiveX, Microsoft Java, JavaScript, VBScript, and all that, that would get rid of many security holes in IE. IE might finally be moderately secure.
If it's not in the main kernel distribution, it might as well not be there for many users: patching the kernel is beyond their ability. And it's beyond my own ability (or at least patience) as well for a number of devices I own: they require a cross-platform development environment to be installed, and few people seem to have figured out how to distribute pre-compiled kernel modules.
NASA receives billions of dollars in public funding. The public has a right to get explanations of what NASA is doing with that money, in terms that are comprehensible to a lay person, even if the questions may seem ridiculous to a scientist. Sites like this show that that can be done easily, it just happens to be NASA's job to do it.
The alternative is that the public just takes everything scientists say for granted. If the moon landing had been faked, it wouldn't really have mattered. But other issues do matter. For example, when the Pentagon fakes missile defense, that endangers us all: a public that thinks its protected from missile strikes is going to make different political choices from one that doesn't.
MS designed TabletPC 5 years ago, and has 5 years head start implementing it all.
Oh, that long? Many people have been working on this for 20+ years. As usual, Microsoft is late to the game.
Microsoft's 5 years of work on this product from the developer division, the office division, the windows division, the emerging technologies division, and the research division represent an investment of billions of dollars. It is organized, and it did take longer than 5 years of all of these divisions working together to pull this off.
Well, we have known all along that Microsoft software development is horribly inefficient: they don't work smart, they work hard. That's why it takes such horrendous efforts to produce a fairly incremental add-on to their OS.
Irony strikes again: in order to develop Linux for the Tablet PC, you are going to have to convince HP or some other TabletPC vendor to sell you one without the MS OS or you'll be paying Microsoft
That's been the case for MS Windows and Windows CE for many years as well. Linux succeeded despite of it. It's not fair, but we can live with it. Tablet PC software or not, the mass production of these tablets finally drives down their price enough.
When will the TabletLinux API be written?
What is needed in terms of APIs already exists.
The fact that the price of the software is hidden by the hardware price eats up your free as in beer argument.
I don't recall making a "free as in beer" argument. I really don't care actually. I just want to use software that doesn't suck, and Microsoft has yet to produce any. Whether you or anybody else uses that software, or whether Gates becomes any richer, really doesn't matter to me.
That is Microsoft's party line, but they are wrong.
There is plenty of Linux handwriting recognition software out there (among others, from the handhelds.org effort), and speech recognition software can be adapted for handwriting as well. And X11 has had provisions for alternative input methods for many years. Ink notebooks, annotations, and all that are old technology as well and are not all that difficult to code up.
The only thing that has been missing up to this point is reasonably priced hardware. Now that that is there, Linux will move into that space as well.
I share the lack of confidence of many people here that the GNU/Hurd will be able to deliver much of anything.
But I think we do need a new kernel: in my opinion, Linux kernel development is not keeping up with the needs and capabilities people are creating. Every single addition seems like a major battle. Drivers take forever to get into the official kernel distribution. And the most frequent problems with installations is missing hardware support and the need to recompile the kernel.
So, don't gloat over what happened with the GNU/Hurd. While Linux is still one of the best kernels in town, we really need more alternatives and more choice in architectures.
The choice that Linus made was great for getting the project going: something that's easy to understand and easy to hack. But that doesn't mean it's good in the long run--the same could have been said for DOS. Microsoft makes such expedient choices constantly--that doesn't mean they are "right" in the long term.
The Linux kernel is running out of steam--the software development is becoming more and more unmanageable (see the BitKeeper debates), and drivers and new functionality often take years to appear in stable, up-to-date form in the kernel.
Those are the kinds of problems microkernels were supposed to address. I have no idea whether the GNU/Hurd does or does not address them, and even if it does, it is 15 year old technology. But I do know that Linux isn't addressing them right now, and that's a problem.
I suspect that what will actually happen is that in a couple of years, there will be a severely hacked Linux kernel fork that keeps driver and file system compatibility at the source level for a while but otherwise goes its own way.
OS X isn't the speed demon that Apple makes it out to be, but it's perfectly reasonable for day-to-day use. Keep in mind that the G3 and G4 processors really aren't all that fast either (unless you really push on AltiVec, they seem to be roughly equivalent to Pentium IIIs with the same clock speed).
The slowest part is probably the GUI and 2D graphics. If you need high performance, you can fall back on the gaming and OpenGL APIs.
On Linux, and I believe under Windows as well, the window system itself can make any collection of graphics cards appear as a single desktop. You don't need hardware support or special vendor software--just plug in a bunch of PCI graphics cards. If you do have get hardware for multiple screens, you get a few advantages, like being able to have certain hardware features work across split screens.
On the whole, I found that, as usual, configuring multiple monitors (I use nVidia cards, although I don't recommend you buy them) was a little more work under Linux than under Windows, but that it ended up working better. X11 seems to provide a better abstraction layer, insulating applications from the idiosyncracies of the underlying hardware. Furthermore, on X11, window placement and management has been factored into a separate application, so you aren't tied to vendor-supplied hacks in order to make things work with multiple screens--you just use any window manager that supports Xinerama.
Our software is innovative; it has not been suppressed.
Well, is it, really? It looks to me like the Scopeware product basically is bolted onto Windows and Office and uses the same computing and user interaction paradigms. It's the same kind of incrementalism people have been trying for the past 20 years. Scopeware doesn't address the problems that make computers hard to use.
Is Linux any better? Out of the box, it isn't. Gtk+ and KDE emulate Windows and Macintosh interaction styles nearly perfectly (they do clean up some messes in the process, but not much).
But the difference between Windows and Linux is that with Linux, the kernel and graphics can indeed be relegated to the moldy basement. The open source nature and the fact that there is no single company that controls it mean that I can pick apart Linux the way I want to and put it back together again. With Windows, the moldy smell gets all the way into the living room: Microsoft decides the interaction paradigms, toolkits, document formats, and other standards you are going to use, based on their economic interests only, and they are charging a premium for that.
Gelernter is fooling himself if he thinks there will ever be a "universal platform". Central planning seems like a nifty idea and works for a few years, but as the Soviet Union and other communist nations discovered, it breaks down. Innovation and software, like life, thrives on variation and diversity.
Modifying the code prevents the processor from reading further CPU instructions during the innermost loops through the slow bus
And how do you think the new code gets into the cache in the first place? Whether the CPU loads it from memory or your program copies it from memory, most of it has to come from memory somewhere. But if you copy it yourself, it just gets there so much more slowly. Also, on many architectures, if you modify code, you have to synchronize the cache, which is very, very expensive.
The closest to self-modifying code these days is runtime code generation, as in JIT compilers. They win not because of cache effects but because they can generate code based on runtime information.
The tradeoffs that system designers make change constantly, and there are many other factors besides SDR/DDR that affect latency and throughput. Compiler writers also keep changing their minds about how they optimize and what cases they handle and don't handle.
The rules of thumb are pretty much the same now as they ever were: preferentially, access memory sequentially, and for non-sequential accesses, keep the accesses local; there are a bunch of programming tricks for that that work as well now as they ever did. If you can, use a hand-optimized, architecture specific library like BLAS. As a last resort, rewrite tiny bits of performance critical code in a language like Fortran 77, where the compiler may be able to do a bit more optimization than C/C++.
If a processor, compiler, or system architecture requires any more specific hacks to reach its stated performance, then for practical purposes, its performance is overstated. The only way to know is to run your code (or a set of benchmarks similar to your code) on it and see whether it runs fast enough.
The numbers they give for copying ("one pirated copy for ever music CD") are made up--it seems like they take the total sales of blank CDs in a country and just assume that all or most of it is used for copying. Wherever they get their numbers, they don't support them.
The solution is simple: don't buy their stuff. Or, if you do, just capture it into a more convenient format through an analog channel--even with a simple setup, you get quality that is basically indistinguishable from the original. And I wonder how many people will end up returning the CD after making a copy...
If some big masses wiggle at some distance and you don't believe in infinite propagation speeds, you expect to have something that looks like gravity waves. The question is whether they will be those predicted by Einstein or whether they will behave differently.
First, let me say, I have no doubt that US astronauts did land on the moon.
But I think healthy scepticism is good, too. If you think about it: how do you actually know what you know? What sources of information do you have? How can you verify their accuracy? Is a bunch of television pictures enough? Is reading papers on moon rocks in Nature and Science good enough?
So, again, I think for the moon landing, on balance, I believe it. But I think it's not unreasonable to ask, and it's not unreasonable for a big public institution with a big budget to explain themselves in terms that the public can understand.
You simply don't understand - driver is not that a simple module implementing a few ioctl()s ! Good driver (for anything more complex than a serial mouse) has lots of optimizations - none of which I'll be able to reverse engineer.
I'd much rather have an open driver that's a little less efficient than a highly optimized driver that's proprietary. Most driver and software optimizations at that level are pretty much useless--the amount of performance you gain is less than the next generation of the product will give you in hardware in a few months.
good examples--you make my point for me
on
Design Patterns
·
· Score: 2
Nested loops aren't pre-built either,
That's a good example, because it's another area where many commonly used languages fall short. Languages should support the abstraction of control structures, but most object oriented languages don't. This is indeed just as much of a deficiency in widely used OOLs as their lack of support for design patterns.
You're saying "walls are nice, but the problem with bricks is that they don't come pre-built into walls."
And that's probably why bricks aren't used that much anymore: in order to lower the cost of construction and improve its consistency, many walls these days are, effectively, created "pre-built".
Yes, that's what I would prefer. That way, people would be much more motivated to create open source drivers for other cards (or to reverse engineer the Windows driver).
If you can do it at all, use something like Python: custom software is much easier to write in it than in C++, and it has good support for numerical operations. Java, too, is much easier and safer than C++.
If you have to use C++, then wxWindows is a great environment: it works on lots of platforms and has extensive support for platform-independent I/O, threading, and networking.
The W3C should have stopped with a full specification of HTML. Anything they have been doing beyond that has been doing more harm than good. The web succeeded because HTML was simple.
Of course, some client-side code is useful, but unfortunately, the major contenders have dropped the ball on that one. The W3C has given us JavaScript+DOM+CSS+..., but it's way too complicated for the vanishingly small amount of functionality, and nobody has managed to implement it correctly; in fact, I doubt nobody knows what a correct implementation would even mean. Flash has become ubiquitous, but it just isn't suitable for real GUI programming and is effectively proprietary. And Java could have been a contender, but Sun has chosen to keep it proprietary, and the once small and simple language has become unusably bloated.
But, hey, that means that there is an opportunity for better approaches to client-side programming. Curl might have been a candidate if it weren't for the ridiculous license. But someone outside the W3C will do something decent that catches on sooner or later.
Since this discussion goes back to Sokal's hoax, I recommend looking at Sokal's own work. His own papers are largely about obscure properties of lattice models in statistical mechanics. For much of this kind of work, it is far from clear whether it is relevant to any real physical system, or whether some of the assumptions under which they are proven are even mathematically meaningful or consistent. In mathematics, if you start with inconsistent assumptions, you can prove anything. Sokal's own field would have been another good target for a physics hoax, although string theory clearly beats lattice methods to the punch.
No, they don't. Those are merely the laws of the United States, not some universal truths. Nobody else is bound by them, and other societies certainly have the right to organize themselves differently.
One might add here that the US has been found guilty of numerous human rights violations. Many people outside the US feel that the Constitution does not go far enough in protecting the rights of the individuals while, at the same time, creating conditions that place the safety and well-being of citizens at risk.
People make these boards whenever the amount of RAM the processor can address becomes small compared to what you can afford, people start putting RAM into RAM disk drives.
However, nearly $3000 for 2G of RAM seems excessive no matter what.
Calling for killing someone else is clearly bad. The question is: why is it only bad if the target falls into a small number of categories? "Kill all Catholics" is banned under the EU statute, but "Kill all Abortion Doctors", "Kill all Lesbians", "Kill all Afghans", or "Kill all People with Tattoos" isn't.
Hate speech, i.e., speech that calls for violence against any group of people should be banned. But it is already. Hate speech and non-discrimination legislation, on the other hand, is inequitable, because it only protects some select groups. Powerful interests have managed to carve out their own special niches.
The irony is, of course, that non-discrimination and anti-hate-speech laws are being used by many promoters of hate speech to shield themselves: organizations like Fallwell's Ministries or the Catholic Church are responsible for much of the hate speech that we are subjected to every day.
As a member of a minority that is supposedly protected by these laws, I'd much rather do without them, thank you very much: they do more harm than good.
If Microsoft is forced to remove ActiveX, Microsoft Java, JavaScript, VBScript, and all that, that would get rid of many security holes in IE. IE might finally be moderately secure.
If it's not in the main kernel distribution, it might as well not be there for many users: patching the kernel is beyond their ability. And it's beyond my own ability (or at least patience) as well for a number of devices I own: they require a cross-platform development environment to be installed, and few people seem to have figured out how to distribute pre-compiled kernel modules.
The alternative is that the public just takes everything scientists say for granted. If the moon landing had been faked, it wouldn't really have mattered. But other issues do matter. For example, when the Pentagon fakes missile defense, that endangers us all: a public that thinks its protected from missile strikes is going to make different political choices from one that doesn't.
Oh, that long? Many people have been working on this for 20+ years. As usual, Microsoft is late to the game.
Microsoft's 5 years of work on this product from the developer division, the office division, the windows division, the emerging technologies division, and the research division represent an investment of billions of dollars. It is organized, and it did take longer than 5 years of all of these divisions working together to pull this off.
Well, we have known all along that Microsoft software development is horribly inefficient: they don't work smart, they work hard. That's why it takes such horrendous efforts to produce a fairly incremental add-on to their OS.
Irony strikes again: in order to develop Linux for the Tablet PC, you are going to have to convince HP or some other TabletPC vendor to sell you one without the MS OS or you'll be paying Microsoft
That's been the case for MS Windows and Windows CE for many years as well. Linux succeeded despite of it. It's not fair, but we can live with it. Tablet PC software or not, the mass production of these tablets finally drives down their price enough.
When will the TabletLinux API be written?
What is needed in terms of APIs already exists.
The fact that the price of the software is hidden by the hardware price eats up your free as in beer argument.
I don't recall making a "free as in beer" argument. I really don't care actually. I just want to use software that doesn't suck, and Microsoft has yet to produce any. Whether you or anybody else uses that software, or whether Gates becomes any richer, really doesn't matter to me.
You use the "Undo" button to undo. Or you use version control. Using "Save" in order to manage versions and undoing is error prone and unintuitive.
There is plenty of Linux handwriting recognition software out there (among others, from the handhelds.org effort), and speech recognition software can be adapted for handwriting as well. And X11 has had provisions for alternative input methods for many years. Ink notebooks, annotations, and all that are old technology as well and are not all that difficult to code up.
The only thing that has been missing up to this point is reasonably priced hardware. Now that that is there, Linux will move into that space as well.
But I think we do need a new kernel: in my opinion, Linux kernel development is not keeping up with the needs and capabilities people are creating. Every single addition seems like a major battle. Drivers take forever to get into the official kernel distribution. And the most frequent problems with installations is missing hardware support and the need to recompile the kernel.
So, don't gloat over what happened with the GNU/Hurd. While Linux is still one of the best kernels in town, we really need more alternatives and more choice in architectures.
The Linux kernel is running out of steam--the software development is becoming more and more unmanageable (see the BitKeeper debates), and drivers and new functionality often take years to appear in stable, up-to-date form in the kernel.
Those are the kinds of problems microkernels were supposed to address. I have no idea whether the GNU/Hurd does or does not address them, and even if it does, it is 15 year old technology. But I do know that Linux isn't addressing them right now, and that's a problem.
I suspect that what will actually happen is that in a couple of years, there will be a severely hacked Linux kernel fork that keeps driver and file system compatibility at the source level for a while but otherwise goes its own way.
The slowest part is probably the GUI and 2D graphics. If you need high performance, you can fall back on the gaming and OpenGL APIs.
On the whole, I found that, as usual, configuring multiple monitors (I use nVidia cards, although I don't recommend you buy them) was a little more work under Linux than under Windows, but that it ended up working better. X11 seems to provide a better abstraction layer, insulating applications from the idiosyncracies of the underlying hardware. Furthermore, on X11, window placement and management has been factored into a separate application, so you aren't tied to vendor-supplied hacks in order to make things work with multiple screens--you just use any window manager that supports Xinerama.
Well, is it, really? It looks to me like the Scopeware product basically is bolted onto Windows and Office and uses the same computing and user interaction paradigms. It's the same kind of incrementalism people have been trying for the past 20 years. Scopeware doesn't address the problems that make computers hard to use.
Is Linux any better? Out of the box, it isn't. Gtk+ and KDE emulate Windows and Macintosh interaction styles nearly perfectly (they do clean up some messes in the process, but not much).
But the difference between Windows and Linux is that with Linux, the kernel and graphics can indeed be relegated to the moldy basement. The open source nature and the fact that there is no single company that controls it mean that I can pick apart Linux the way I want to and put it back together again. With Windows, the moldy smell gets all the way into the living room: Microsoft decides the interaction paradigms, toolkits, document formats, and other standards you are going to use, based on their economic interests only, and they are charging a premium for that.
Gelernter is fooling himself if he thinks there will ever be a "universal platform". Central planning seems like a nifty idea and works for a few years, but as the Soviet Union and other communist nations discovered, it breaks down. Innovation and software, like life, thrives on variation and diversity.
And how do you think the new code gets into the cache in the first place? Whether the CPU loads it from memory or your program copies it from memory, most of it has to come from memory somewhere. But if you copy it yourself, it just gets there so much more slowly. Also, on many architectures, if you modify code, you have to synchronize the cache, which is very, very expensive.
The closest to self-modifying code these days is runtime code generation, as in JIT compilers. They win not because of cache effects but because they can generate code based on runtime information.
The rules of thumb are pretty much the same now as they ever were: preferentially, access memory sequentially, and for non-sequential accesses, keep the accesses local; there are a bunch of programming tricks for that that work as well now as they ever did. If you can, use a hand-optimized, architecture specific library like BLAS. As a last resort, rewrite tiny bits of performance critical code in a language like Fortran 77, where the compiler may be able to do a bit more optimization than C/C++.
If a processor, compiler, or system architecture requires any more specific hacks to reach its stated performance, then for practical purposes, its performance is overstated. The only way to know is to run your code (or a set of benchmarks similar to your code) on it and see whether it runs fast enough.
The solution is simple: don't buy their stuff. Or, if you do, just capture it into a more convenient format through an analog channel--even with a simple setup, you get quality that is basically indistinguishable from the original. And I wonder how many people will end up returning the CD after making a copy...
If some big masses wiggle at some distance and you don't believe in infinite propagation speeds, you expect to have something that looks like gravity waves. The question is whether they will be those predicted by Einstein or whether they will behave differently.
But I think healthy scepticism is good, too. If you think about it: how do you actually know what you know? What sources of information do you have? How can you verify their accuracy? Is a bunch of television pictures enough? Is reading papers on moon rocks in Nature and Science good enough?
So, again, I think for the moon landing, on balance, I believe it. But I think it's not unreasonable to ask, and it's not unreasonable for a big public institution with a big budget to explain themselves in terms that the public can understand.
I'd much rather have an open driver that's a little less efficient than a highly optimized driver that's proprietary. Most driver and software optimizations at that level are pretty much useless--the amount of performance you gain is less than the next generation of the product will give you in hardware in a few months.
That's a good example, because it's another area where many commonly used languages fall short. Languages should support the abstraction of control structures, but most object oriented languages don't. This is indeed just as much of a deficiency in widely used OOLs as their lack of support for design patterns.
You're saying "walls are nice, but the problem with bricks is that they don't come pre-built into walls."
And that's probably why bricks aren't used that much anymore: in order to lower the cost of construction and improve its consistency, many walls these days are, effectively, created "pre-built".
Yes, that's what I would prefer. That way, people would be much more motivated to create open source drivers for other cards (or to reverse engineer the Windows driver).
If you have to use C++, then wxWindows is a great environment: it works on lots of platforms and has extensive support for platform-independent I/O, threading, and networking.