Cairo is exactly the same thing as the portion of Quartz being talkied about. In fact there are already PDF viewers written that use Cairo. It is true that Cairo is more influenced by the SVG spec than PDF, so it has some differences in how compoisiting of transparent stuff is done, but nothing that keeps it from doing PDF, any more than Quartz' design makes it difficult to do SVG. Both are very, very similar.
NeWS used it's own interpreter written at Sun. In many ways it was much better than DPS. Most important was that it defined operators to actually create and manage windows, while DPS required you to use X or whatever to create the window and then you could use DPS to draw into it. NeWS also supported an object oriented extension to the PostScript language that was used to create user interface objects in it. NeWS also had many other minor improvements over PostScript, such as allowing null to be a dictionary key, and allowing non-bool to be the argument for if statements, types for colors and paths, etc. It also had a much better "wire compression" scheme for reducing the PostScript program down into bytes, the NeWS one had no structure and thus could be streamed easily.
Better would be to do a similar identification, but basically refuse to correctly display anything that is incorrect. Just show the &****; syntax or whatever instead. This would solve the phishing problem.
What I don't understand why so many otherwise intelligent people think that making a computer user-friendly somehow requires burying a really rudimentary english-only spelling corrector at a very low level in a system service. Last time I checked, very powerful spelling correctors ran just fine without being part of the OS! Do you think that spelling correction can not work unless the file system is designed so that mis-spelled words cannot be stored? Your ideas are equivalent to that.
You may think this is all a joke, but highly complex and locale-dependent equality testing for file names already is a serious security problem, and is going to get worse as Unicode compositing characters and locale-dependent ordering rules and so on leak into the file system because of people that think like you. Unless people realize that at some level that system objects like files should be identified by a byte pattern we are going to be in serious trouble!
However I thought Java and.net were also bytecodes and not machine language? They still have the advantage that the compilation to bytecodes was done long ago and not as the program is running.
Actually it affects even those rich people you are talking about. Even if only rich people could afford insurance, "smart" rich people are still subsidizing the "stupid" rich people who don't wear seatbelts, because the insurance premiums rise for all of them. So even ignoring subsidized medicine, there is a benifit from seatbelt laws.
"Case sensitive" means that "A" is not equal to "a". "Case *IN*sensitive" means that "A" is equal to "a".
The fact is, "case sensitive" (or more accuratly "bit pattern sensitive") is the correct way to do a file system. This is an underlying fundemental service of the OS and it should be *SIMPLE*. Anybody who thinks there is some advantage of programming a user interface issue into the underlying system is just completely clueless (and it is alarming how many people are clueless here!). Files should be identified by a string of bytes, with a minimal set of reserved bytes, and if two byte strings differ, then they must be two different files.
Saying "the file system should be case insensitive" is the same as saying "the computer should store numbers so that all numbers larger than 100 are equal, since humans can't really tell them apart, so that would be more user friendly." This completely discounts the fact that a "user friendly" program could easily and trivially print all numbers larger than 100 as "larger than 100" and thus achieve identical user friendliness, while allowing the lower level to be much more powerful and simpler. For some reason though, the proponents of case-insensitivity have blinders and cannot realize that any and all of their "solutions" could be done trivially by higher-level software.
In fact they make things worse. I can name a file "file" and another one "fi1e" on Windows and it does not do anything to save me. I can put a trailing space in a filename or imbed two spaces instead of one and it thinks they are different. These mistakes are just as bad as case errors, but because so many people have been brainwashed into believing it cannot be solved except at the file system level, nobody has addressed this (plus the fact that case-insensitive file systems make it much more difficult to cleanly implement spelling correction like this).
The truth is, case-insensitivity is a relic and if you think there is a good reason for it, you are WRONG!!! Anybody who thinks case-insensitivity is harmless should realize we would probably have had utf-8 internationalization 10 years ago if it were not for this. I also suspect networked file systems would be much further along today and interoperable.
I think this may be really the job of the application. The application itself can open many windows, one on each desktop, and it can be it's responsibility to make them all match and update when one of them changes. This would also allow the application, which is really the only thing that knows for sure, do something intelligent if, for instance, two people tried pushing two different buttons at the same time.
The window manager is the problem
on
X.Org 6.8.2 is Out
·
· Score: 2, Interesting
Client/server is not the problem. In many cases it can be much faster because it encourages batching together hundreds or thousands of requests into a single context switch.
The problem with X is much simpler, but nobody wants to hear it. The problem is the design of having a seperate process that is the "window manager".
Anybody who has used X for many years will know that the problems with moving and resizing windows have remained pretty much constant despite the fact that the machines themselves have increased in speed 100 times. This obviously indicates that overhead or latency is not at fault. The constant is retrace speed. Monitors now update about the same speed as before. If something is drawn by two different unsynchronized processes, you can see the two parts one retrace interval apart, no matter how fast your machine is. And the window manager means the border and the contents of windows are being drawn by two different processes.
Proof: try one of those media players that draws everything out to the border. Try resizing them. Ideally, to remove all aspects of window management, put it over an empty part of the desktop, or do all your work overlapping the contents of some other program (ie don't overlap both the borders and contents of another window). Notice that these apps are probably not doing very efficient graphics because they are full of eye-candy, yet seem to resize quicker and better than any other X appliacation.
How to fix it? The answer is to make the window borders be drawn by the toolkits. Yes, this will result in different window borders by different programs. No, this does not "confuse" the user. Users are confused by bad interfaces, not by different ones.
The people who keep saying this is "theft" complain about the fact that the original author is being denied potential income.
Okay, imagine this scenario:
You own a store, and the Mafia sends some thugs to stand outside your store with baseball bats and threaten to beat up anybody who tries to enter your store. They are thus depriving you of potential income.
Now, quick, would anybody in their right mind call the Mafia's actions "theft". I'm sorry, but I don't think so.
Yet, suprising enough, despite not being called "theft", most people will think that the Mafia is doing something illegal!
The GPL can only grant exceptions to copyright, because it does not want to be a EULA which is believed to be unenforcable. If copyright does not prevent you from doing something, then the GPL does not prevent it.
The only way GPL3 could make in-house code illegal would be to somehow find a way that it is illegal under copyright. I think that is unlikely, all internal copying falls under fair use.
With no changes to our code, but turning on most of the switches to the Linux Intel compiler, I got a huge number of "loop was vectorized" messages, and the resulting code was sped up almost 20% (verses only 5% for the Intel compiler with no switches other than -O5). Now it is quite likely that more speedup is possible, but it appears the Intel compiler was quite able to recognize and vectorize code that was not designed for it. (ps the code is floating-point image processing, with repetitive operations done to huge arrays of 32-bit floats, so it may be well-suited to their vectorization)
Actually scaling a bitmap to non-square pixels looks no worse than scaling to square pixels. Most (all?) scaling algorithims do the horizontal and vertical directions totally independently.
Cairo makes it trivial to scale all the drawing done by an application. The big step is that a toolkit such as GTK has to draw *everything* with Cairo. Then only a few small fixes to set the initial size of the windows and to back-transform the location of mouse clicks, you will be able to scale applications.
Yes it is quite possible that the resulting graphics will not be perfect. However at least it will be possible and easy to get to that point. This makes the hurdle of adjusting the graphics to look great much easier.
So the answer is that Cairo is a huge step in the direction you are talking about.
The API is floating point. One implementation of Cairo uses XRender as the backend, and that is fixed-point (8 bits after the decimal point).
Some internals of Cairo is in this same fixed-point format due to the expectation when it was being written that XRender would be the main back-end, however I think this is being rewritten to float due to Glitz becoming much more popular and requiring float as well.
Microsoft does this! It gets people mad, or they laugh at it, but nobody is trying to take them to court over this. That's because it is perfectly legal.
You are wrong. The GPL is an exception to copyright law.
It does not "force you to do things". It says "if you do these things you can violate the copyright."
You are not forced to do them.
Obviously if you don't violate the copyright you don't have to do them.
However even if you do violate the copyright, you are then only legally guilty of infringing on copyright. You can be sued by the original author, and the likely result is that you will pay monetary damages and will be required to cease infringing. But you still will not be forced to release your code.
I suspect the new GPL cannot do much about this, whether it is a good or bad idea. Since the GPL is just an exception to copyright law, it cannot force you to do anything that copyright law does not force you to do. And I don't think you are violating copyright by using somebody's code that you otherwise legally aquired to run your web site.
Of course I may be wrong about copyright law. But it certainly is true that the GPL can do nothing if copyright law does nothing.
The difference is that your program is useless without a copy of the library, either linked into it or provided on the machine to make it work.
The "normal output of some GPL'd code" is useful without the GPL code itself. If you use some GPL word processor to produce a printout of a letter, you can give that letter to somebody else and they can "use" it (ie read it) despite the fact that they do not have a copy of the GPL word processor. If you don't copy the word processor, you are not violating it's copyright, so the GPL has no say over this whether the author wants it to or not.
No. No company has ever been forced by a lawsuit to open-source software. This would be similar to the New York Times being forced to give all their papers away for free because one column was plaguarized.
Any such company is guilty of copyright infingement. The normal result is that they are required to stop infinging, and maybe pay monetary damages.
I don't think that has ever happened however. In all cases, long before any legal action is taken, the companies have either complied with the GPL by releasing source, or have stopped distributing the program, and the lawsuit threat has been dropped. Notice that neither action legally gets you out of the copyright infringement and they could still be sued.
As others have pointed out, the "under any later version" is not part of the GPL itself. It is instead part of the FSF-recommended text to insert into a copyright and license notice. This does mean it was put on a lot of code without the authors really knowing if they intended to do so or not.
It seems to me that such code is always going to be covered under the GPL2. The "under any other version" means that the user of the code can choose either the old or new license. So if RMS says in GPL3 "you can redistribute the code only if you contribute 1 billion dollars to the FSF" that is irrelevant to older code, because the user can simply say "I'm going to ignore that and use the GPL2, which does not have the 1-billion-to-the-fsf requirement."
However *new* code that says "Under GPL3 or any later version" is going to force a user who wants to redistribute to obey the GPL3 rules.
If there is any uncertaintly about GPL3 I would think continuing to say "GPL2 or any later version" is the safest thing to do with your code.
Linus's insistence on removing future versions is a mistake if in fact the GPL3 does something very good, because now every author of Linux will have to be contacted to get permission to change the license. The fear of course is that GPL3 might contain something like "the code is free for use by RMS's new employer, Microsoft, for any purpose whatsoever" but, although that is possible, it seems safe to assumme it will not happen.
Cairo is exactly the same thing as the portion of Quartz being talkied about. In fact there are already PDF viewers written that use Cairo. It is true that Cairo is more influenced by the SVG spec than PDF, so it has some differences in how compoisiting of transparent stuff is done, but nothing that keeps it from doing PDF, any more than Quartz' design makes it difficult to do SVG. Both are very, very similar.
NeWS used it's own interpreter written at Sun. In many ways it was much better than DPS. Most important was that it defined operators to actually create and manage windows, while DPS required you to use X or whatever to create the window and then you could use DPS to draw into it. NeWS also supported an object oriented extension to the PostScript language that was used to create user interface objects in it. NeWS also had many other minor improvements over PostScript, such as allowing null to be a dictionary key, and allowing non-bool to be the argument for if statements, types for colors and paths, etc. It also had a much better "wire compression" scheme for reducing the PostScript program down into bytes, the NeWS one had no structure and thus could be streamed easily.
In many ways Adobe/DPS were way behind NeWS.
Better would be to do a similar identification, but basically refuse to correctly display anything that is incorrect. Just show the &****; syntax or whatever instead. This would solve the phishing problem.
No, he completely skipped the original question.
A better car analogy would be:
Microsoft advertises that "the Linux car does not fly, and thus using Linux you risk being unable to fly".
Then somebody points out "Microsoft's car does not fly either"
And his response is "the Linux car does not fly". Yes we know that, it's not what the argument is about.
Of course the computer should be user-friendly!
What I don't understand why so many otherwise intelligent people think that making a computer user-friendly somehow requires burying a really rudimentary english-only spelling corrector at a very low level in a system service. Last time I checked, very powerful spelling correctors ran just fine without being part of the OS! Do you think that spelling correction can not work unless the file system is designed so that mis-spelled words cannot be stored? Your ideas are equivalent to that.
You may think this is all a joke, but highly complex and locale-dependent equality testing for file names already is a serious security problem, and is going to get worse as Unicode compositing characters and locale-dependent ordering rules and so on leak into the file system because of people that think like you. Unless people realize that at some level that system objects like files should be identified by a byte pattern we are going to be in serious trouble!
That's correct.
.net were also bytecodes and not machine language? They still have the advantage that the compilation to bytecodes was done long ago and not as the program is running.
However I thought Java and
Actually it affects even those rich people you are talking about. Even if only rich people could afford insurance, "smart" rich people are still subsidizing the "stupid" rich people who don't wear seatbelts, because the insurance premiums rise for all of them. So even ignoring subsidized medicine, there is a benifit from seatbelt laws.
Modern tcl interpreters do compile on the fly into bytecode.
"Case sensitive" means that "A" is not equal to "a". "Case *IN*sensitive" means that "A" is equal to "a".
The fact is, "case sensitive" (or more accuratly "bit pattern sensitive") is the correct way to do a file system. This is an underlying fundemental service of the OS and it should be *SIMPLE*. Anybody who thinks there is some advantage of programming a user interface issue into the underlying system is just completely clueless (and it is alarming how many people are clueless here!). Files should be identified by a string of bytes, with a minimal set of reserved bytes, and if two byte strings differ, then they must be two different files.
Saying "the file system should be case insensitive" is the same as saying "the computer should store numbers so that all numbers larger than 100 are equal, since humans can't really tell them apart, so that would be more user friendly." This completely discounts the fact that a "user friendly" program could easily and trivially print all numbers larger than 100 as "larger than 100" and thus achieve identical user friendliness, while allowing the lower level to be much more powerful and simpler. For some reason though, the proponents of case-insensitivity have blinders and cannot realize that any and all of their "solutions" could be done trivially by higher-level software.
In fact they make things worse. I can name a file "file" and another one "fi1e" on Windows and it does not do anything to save me. I can put a trailing space in a filename or imbed two spaces instead of one and it thinks they are different. These mistakes are just as bad as case errors, but because so many people have been brainwashed into believing it cannot be solved except at the file system level, nobody has addressed this (plus the fact that case-insensitive file systems make it much more difficult to cleanly implement spelling correction like this).
The truth is, case-insensitivity is a relic and if you think there is a good reason for it, you are WRONG!!! Anybody who thinks case-insensitivity is harmless should realize we would probably have had utf-8 internationalization 10 years ago if it were not for this. I also suspect networked file systems would be much further along today and interoperable.
I think this may be really the job of the application. The application itself can open many windows, one on each desktop, and it can be it's responsibility to make them all match and update when one of them changes. This would also allow the application, which is really the only thing that knows for sure, do something intelligent if, for instance, two people tried pushing two different buttons at the same time.
Client/server is not the problem. In many cases it can be much faster because it encourages batching together hundreds or thousands of requests into a single context switch.
The problem with X is much simpler, but nobody wants to hear it. The problem is the design of having a seperate process that is the "window manager".
Anybody who has used X for many years will know that the problems with moving and resizing windows have remained pretty much constant despite the fact that the machines themselves have increased in speed 100 times. This obviously indicates that overhead or latency is not at fault. The constant is retrace speed. Monitors now update about the same speed as before. If something is drawn by two different unsynchronized processes, you can see the two parts one retrace interval apart, no matter how fast your machine is. And the window manager means the border and the contents of windows are being drawn by two different processes.
Proof: try one of those media players that draws everything out to the border. Try resizing them. Ideally, to remove all aspects of window management, put it over an empty part of the desktop, or do all your work overlapping the contents of some other program (ie don't overlap both the borders and contents of another window). Notice that these apps are probably not doing very efficient graphics because they are full of eye-candy, yet seem to resize quicker and better than any other X appliacation.
How to fix it? The answer is to make the window borders be drawn by the toolkits. Yes, this will result in different window borders by different programs. No, this does not "confuse" the user. Users are confused by bad interfaces, not by different ones.
The people who keep saying this is "theft" complain about the fact that the original author is being denied potential income.
Okay, imagine this scenario:
You own a store, and the Mafia sends some thugs to stand outside your store with baseball bats and threaten to beat up anybody who tries to enter your store. They are thus depriving you of potential income.
Now, quick, would anybody in their right mind call the Mafia's actions "theft". I'm sorry, but I don't think so.
Yet, suprising enough, despite not being called "theft", most people will think that the Mafia is doing something illegal!
Get it? Probably not, but I tried...
The GPL can only grant exceptions to copyright, because it does not want to be a EULA which is believed to be unenforcable. If copyright does not prevent you from doing something, then the GPL does not prevent it.
The only way GPL3 could make in-house code illegal would be to somehow find a way that it is illegal under copyright. I think that is unlikely, all internal copying falls under fair use.
With no changes to our code, but turning on most of the switches to the Linux Intel compiler, I got a huge number of "loop was vectorized" messages, and the resulting code was sped up almost 20% (verses only 5% for the Intel compiler with no switches other than -O5). Now it is quite likely that more speedup is possible, but it appears the Intel compiler was quite able to recognize and vectorize code that was not designed for it. (ps the code is floating-point image processing, with repetitive operations done to huge arrays of 32-bit floats, so it may be well-suited to their vectorization)
Actually scaling a bitmap to non-square pixels looks no worse than scaling to square pixels. Most (all?) scaling algorithims do the horizontal and vertical directions totally independently.
However I agree with you in general.
Cairo makes it trivial to scale all the drawing done by an application. The big step is that a toolkit such as GTK has to draw *everything* with Cairo. Then only a few small fixes to set the initial size of the windows and to back-transform the location of mouse clicks, you will be able to scale applications.
Yes it is quite possible that the resulting graphics will not be perfect. However at least it will be possible and easy to get to that point. This makes the hurdle of adjusting the graphics to look great much easier.
So the answer is that Cairo is a huge step in the direction you are talking about.
The API is floating point. One implementation of Cairo uses XRender as the backend, and that is fixed-point (8 bits after the decimal point).
Some internals of Cairo is in this same fixed-point format due to the expectation when it was being written that XRender would be the main back-end, however I think this is being rewritten to float due to Glitz becoming much more popular and requiring float as well.
Microsoft does this! It gets people mad, or they laugh at it, but nobody is trying to take them to court over this. That's because it is perfectly legal.
You are wrong. The GPL is an exception to copyright law.
It does not "force you to do things". It says "if you do these things you can violate the copyright."
You are not forced to do them.
Obviously if you don't violate the copyright you don't have to do them.
However even if you do violate the copyright, you are then only legally guilty of infringing on copyright. You can be sued by the original author, and the likely result is that you will pay monetary damages and will be required to cease infringing. But you still will not be forced to release your code.
I suspect the new GPL cannot do much about this, whether it is a good or bad idea. Since the GPL is just an exception to copyright law, it cannot force you to do anything that copyright law does not force you to do. And I don't think you are violating copyright by using somebody's code that you otherwise legally aquired to run your web site.
Of course I may be wrong about copyright law. But it certainly is true that the GPL can do nothing if copyright law does nothing.
Oh damn and I'm responding to the wrong level in the argument. Sorry about that.
The difference is that your program is useless without a copy of the library, either linked into it or provided on the machine to make it work.
The "normal output of some GPL'd code" is useful without the GPL code itself. If you use some GPL word processor to produce a printout of a letter, you can give that letter to somebody else and they can "use" it (ie read it) despite the fact that they do not have a copy of the GPL word processor. If you don't copy the word processor, you are not violating it's copyright, so the GPL has no say over this whether the author wants it to or not.
Hey the original author has pointed out a couple times that he is AGREEING with you! Tried reading a little more carefully.
No. No company has ever been forced by a lawsuit to open-source software. This would be similar to the New York Times being forced to give all their papers away for free because one column was plaguarized.
Any such company is guilty of copyright infingement. The normal result is that they are required to stop infinging, and maybe pay monetary damages.
I don't think that has ever happened however. In all cases, long before any legal action is taken, the companies have either complied with the GPL by releasing source, or have stopped distributing the program, and the lawsuit threat has been dropped. Notice that neither action legally gets you out of the copyright infringement and they could still be sued.
As others have pointed out, the "under any later version" is not part of the GPL itself. It is instead part of the FSF-recommended text to insert into a copyright and license notice. This does mean it was put on a lot of code without the authors really knowing if they intended to do so or not.
It seems to me that such code is always going to be covered under the GPL2. The "under any other version" means that the user of the code can choose either the old or new license. So if RMS says in GPL3 "you can redistribute the code only if you contribute 1 billion dollars to the FSF" that is irrelevant to older code, because the user can simply say "I'm going to ignore that and use the GPL2, which does not have the 1-billion-to-the-fsf requirement."
However *new* code that says "Under GPL3 or any later version" is going to force a user who wants to redistribute to obey the GPL3 rules.
If there is any uncertaintly about GPL3 I would think continuing to say "GPL2 or any later version" is the safest thing to do with your code.
Linus's insistence on removing future versions is a mistake if in fact the GPL3 does something very good, because now every author of Linux will have to be contacted to get permission to change the license. The fear of course is that GPL3 might contain something like "the code is free for use by RMS's new employer, Microsoft, for any purpose whatsoever" but, although that is possible, it seems safe to assumme it will not happen.