I think the suggestion is more like this, and would require a new CPU design, but not as radical a change as making it run some interpreter:
To address memory you have a "pointer" and an "offset" always. The CPU instruction set is designed so that all memory accesses must provide both of these. The "pointer" identifies the page of VM and an attribute of the page is that the offset cannot exceed some value, otherwise an access violation happens (the offset can't be negative either).
Moderm memory allocation involves putting objects of the same size into the same page, so this could protect many objects, not just one per page. It's probably true that object sizes would round up to the next power of 2 and protection would only happen if you addressed beyond the unused padding area, but it would provide the security problems.
The big sticking point is C. Making it compile so that a different pointer is always used and offset=0 would be compatible, but would defeat all the protection. Instead pointers could be implemented as pointer+offset pairs, with some complexity in the compiler and the annoying fact that some software is going to not work.
You are assuming that the "ever growing crowd" are all running the exact same platform. This is obviously wrong, even according to your figures it is 90% OS/X and 10% Linux, and you are not counting all the cell phones which are a far bigger part of it than either.
Nerds do not remember "good old IBM". They remember "evil IBM" that somehow changed once it lost it's monopoly. If Microsoft does the same thing, you can be sure that everybody will remember "evil Microsoft" and even talk about how amazing it was that they changed.
The major problem you are seeing is that Firefox is figuring out a floating point width for the characters and rounding them to the nearest integer before drawing each glyph. This will always result in irregular spacing. An extreme solution is to round each character width to an integer, which results in even but excessively wide spacing (or narrow, but that is avoided by rounding up), this appears to be what Windows does. A really complex solution is to intelligently examine the string being drawn and figure out if rounding or even spacing would look better, I think it is possible OSX does this? Another solution is to fully antialias, rendering each glyph at the correct fractional position, but this means it must be "fuzzy" Mac-style rendering that many Windows users complain about, and repeating characters will still look irregular.
The errors in hinting (the 'e', and much more annoying for me is when letters are taller than their neighbors by 1 pixel) are a far worse problem. Turning off hinting reveals that the letters are pretty much correct, so it is a good question why the "intelligent hinting" can make such mistakes.
I agree that the Mac-style full antialiased rendering is the correct approach.
Linux's big failing here is a refusal of the library implementors to make the simple API everybody wants. Here is a hint: I have UTF-8 in a buffer. I want it on the screen. I really don't want to have anything other than an api that takes a pointer to the string and draws it!
One of the things mentioned in the review was some improvement in the NVidia driver installation, so that it is automatic. I agree this is a big change.
I'm guessing that is what you are complaining about with the 3D installation. NVidia has never installed cleanly for me from their web site, it *always* says the kernel is the wrong version and that it can't find the correct header files, and if you waste the time (more like an hour, not a weekend) you can download headers so it compiles but the result refuses to work. The one from Ubuntu does work but is difficult to locate and if you already messed up your system trying to use the stuff from NVidia the Ubuntu one does not install. So certainly if they fixed it to just install this stuff automatically it is a big improvement, as it prevents people like me from screwing up the system trying to get it to work.
Can you post a screen shot with the exact thing you are complaining about circled? It might also help with some indication of exactly what direction you think the fix should be (up/down/left/right/bigger/smaller). One big problem is that what you think is wrong may not be obvious to others.
I don't quite understand these issues. I see bugs in GTK but they are much more obvious: you click in the text field and *nothing* appears. Not really seeing these font positioning issues you are complaining about.
If we worry about wasted computer cycles, I'm sure unnecessary screen savers are responsible for many orders of magnitude more. Or leaving flash animation ads running while you are not looking at it.
The worry is not about the copyright assignment. The worrying thing is that they encourage people to put "and any later version of the GPL" on software, and lots of people (me included) do so.
So a GPL4 that says "Richard Stallman can sell closed-source versions of this" would technically be possible and would affect a lot of GPL software, not just stuff with FSF copyright assignment. It would not affect Linux because the "any later version" text was deleted.
Seriously though I would not be worried. Any real scenario where such a thing would happen would be so obviously bogus, where the new license is obviously violating the principles that were behind the license, that I think it would be easy to legally argue that it is invalid.
Or a woman can go to a pub and try to buy a beer, but has the requirements that the bottle contain exactly 12.8 ounces and be 5.2% alcohol, and cost under $12, and then show that ONLY Microsoft Beer satisfies these requirements!
A lot of people act genuinely mystified as to where the "free beer" is in "free as in speech, not as in beer". Apparently they never worked in software or went to a school back in the 80's when IT was going crazy, or they would know that free beer was plentiful and easy to find.
It is sad to see these ideas disappearing under a bunch of PHBs. Microsoft, despite it's faults, seemed to want to let their engineers do their job.
By default under copyright law you are not allowed to do some stuff with the code, and it is not Open Source according the the usual definition. The author *must* provide a license that allows you to do more with the code than the law allows.
I think you are confusing "license" with "contract". A common mistake.
Breaking existing applications has not been a problem at all, because the libraries are versioned. You may be confused by the result of replacing/upgrading the operating system, as this often deletes all the "old" libraries and thus gets you into the situation below where your software stops running.
The real problem Linux has is that the given library version are not included with the programs, and thus to install a given program you often have to download and install a whole bunch of libraries. To make it further annoying often those libraries require even more libraries. I agree with lots of people here that it is an endless hopeless mess. Repositories are basically ways of automating this but don't solve the basic problem.
I usually give up I often symbolically link whatever version number I have to the version number the program is looking for. Who knows how safe this is, but it has worked for me.
Linux can certainly work the Windows way by including the library in the same directory as the executable, and linking with the special switch that makes it look in that directory first for them. That is what we do with our commercial software. I don't know why there is so much resistance to this in Linux but it seems commercial users (such as GoogleEarth) are doing this. Expert end users can remove or hide these files if they want to use the version installed with their system, just like Windows experts do.
Even if people do that, both Linux and Windows have the problem where we don't include some library because we "know" it will be on the system. I would say this has bit us equally on both platforms.
Another problem with the limited domain and the author being an expert:
They are adding a new feature, and they realize "I think it is possible this won't work with hardware X and disk Y. I know the old version works because the users did not complain, but I don't have X or Y and can't test this new one. So I will put in this switch to make it work the old way".
Another similar one is "I just realized there is a chance that somebody made a disk that works this strange way but I have never seen one so I can't test it. Better put in a switch the user can throw if they encounter this non-existent disk".
Another huge problem is "I am really scared somebody will yell at me for not being back compatible, so even though I have designed this amazing new feature, I will leave it off by default and they will have to find the switch to turn it on. Then I am blameless. Besides I know how to turn it on and I leave it on and everything looks great to me!"
Another misunderstanding of "open source" is the idea that it means "not using the GNU GPL". It tends to accompany a misunderstanding of "free software", equating it to "GPL-covered software". These are equally mistaken, since the GNU GPL is considered an open source license, and most of the open source licenses are considered free software licenses.
That directly addresses what I think a lot of people believe the difference is between "open source" and "free software". If I encounter the terms in a post here I usually make that assumption. Yes I know it is wrong (according to both organizations) but I feel that huge numbers of people have made those meanings.
Yes I believe the BSD and MIT licenses are "free".
However I think the term "Free Software", due to the FSF, has come to mean GPL software for most people here, while "Open Source" means both GPL and other open source licenses. Yes I know that is not what the FSF says officially, but it seems to be the normal response here to the terms.
It really seems to me that in common use "Open Source" *does* now mean you are free to do whatever you want with the source. Just being able to *look* at the source is not called Open Source, it is probably best to call it "published source code" or "the source code is available for you to look at".
"Free Software" means the enforced-freeness of the GPL, which is a subset of Open Source.
So for most uses this is neither Open Source or Free Software.
Wow, amazing reading comprehension! Let me quote the post you replied to:
"if somebody says "MicroSuck" or something that *really* is childish"
I pretty clearly said "microsuck" is a childish, so yes "Linsux" is childish as well. I think quoting swear words is pretty childish.
"open sores" is a valid term if you are talking about quality or standardization or "viral" license problems, or some other undesirable and damaging and growing side-effect on things other than OSS, because the term "sores" would be relevant. As it is longer than OSS you cannot use it as an abbreviation though.
A better question is whether calling OSS "O$$" is an insult. I don't think so. In fact I think that would be a good way to indicate a company using OSS for money-making, either as a positive thing or as a negative (such as "fake" O$$ where they really are not doing anything that is Open Source but just using the terms for good will).
Replying instantly claiming something is "childish" is a good indication that you subconsciously don't think so. If something really is childish then there is no need to point it out. Thus the instant response to "M$", but lack of response to "MicroSuck" or "Linsux" and so on indicate that there is a big difference.
A desperate attempt to associate "M$" with "childish". I notice nobody ever gets all defensive if somebody says "MicroSuck" or something that *really* is childish. But "M$" and you panic!
This is because a bunch of astroturfers convinced everybody here that calling them "M$" was "childish" (apparently they are extremely hurt and insulted that somebody associated their beloved company with money, which it obviously has nothing to do with!).
Since "MS" means Multiple Sclerosis, Mississippi, Manuscript, Mrs/Miss, and a lot of other things, and and "MicroSoft" is too long, a lot of people started using "MSFT".
You are confusing that messy GCC stuff with what I am calling a "linking exception". I have also heard this called the "Gnu ClassPath exception" and several other things.
My "linking exception" is somewhat between the GPL and the Mozilla license. It also is what many people either think or want the LGPL to say. And the FSF is being real assholes by not making an official name for this, other than silly games like Microsoft, the lack of this is the reason there is so much license proliferation.
The "linking exception" allows me to protect the code I wrote, but allowing it to be *used* in closed-source programs (without weird restrictions on relinking or shared libraries the LGPL forces, which really just discourages anybody from using my software). This is done by making the code GPL with a "linking exception" that says "as a special exception you are allowed to link the result with ABCD and redistribute the result." In my case "ABCD" is basically anything, though some people limit it to a specific piece of code that cannot be GPL but otherwise allows copying of the source.
The result is that you only have to redistribute changes you make to *my* source, not to anybody else's. I think a lot of people, myself included, believe this would work just as well, or better, than the "viral" GPL.
Unlike the MS-PL, I allow people to *remove* the linking exception and go with plain GPL, so that my code can be used by people working on GPL code. Microsoft is certainly being assholes by saying you cannot do this. Note that nobody has ever "stolen" my code by making it GPL (or any BSD code for that matter), this is a FUD smokescreen by Microsoft to hide the real purpose, which is to pretend to make open source while making it useless for anybody who already has some open source code that is GPL.
And I was under the impression that the MS-PL explicitly disallowes me to GPL my code and put a "linking exception" for the MS-PL portion. If in fact this is allowed it does negate my original argument that MS-PL and GPL are the same. However it does reveal the hypocrisy of Microsoft: if I can do this, I can easily "steal" any MS-PL code and make it GPL-only by adding my useful changes and saying they are GPL with the linking exception. So this completely defeats the "protection" of their license and reveals it's real purpose which is to prevent interoperability with Linux and most other open source software.
I think you mean "a cakewalk", not "cakelike". Apparently the term comes from a dance called "cakewalk" that was easy to do, at least according to Wikipedia.
Though I agree with the problems with F1 (and with a whole lot of other sports) I'm not sure if your solution would work. What is cheapest when building one car may have nothing to do with what is cheapest when mass producing them. And as somebody pointed out below, using already-existing mass-produced items such as stock engines is quite likely the way to get the highest performance per dollar.
The MS-PL does not allow you to require that derivative works include the source code. I consider that a restriction.
It is quite impossible to be incompatible with the GPL without also doing pretty much what it does, which is remake all the linked code with it's own license. Otherwise a GPL plus linking exception would work to allow the MS-PL code to be absorbed into a GPL system.
Now I'm as mad as anybody about the FSF refusing to endors a license that does what everybody wants, which is "GPL plus linking exception" so that the code itself can be used in proprietary programs, but only changes to the code itself need to be publicised (the LGPL is not this, it has some strange exceptions and is about 10 times longer than a linking exception). If the FSF would endorse a name for the linking exception then everybody, including me, could put the code out under a license that we want and everybody would recognize it by it's useful and short name.
However the FSF's bad actions is no excuse for Microsoft to act like children themselves and put gratuitous GPL incompatability into their license. That is showing that they fear the GPL, not that they want to provide open source.
Isn't switching hyper threads eqivalent to a context switch on modern processors?
I think the suggestion is more like this, and would require a new CPU design, but not as radical a change as making it run some interpreter:
To address memory you have a "pointer" and an "offset" always. The CPU instruction set is designed so that all memory accesses must provide both of these. The "pointer" identifies the page of VM and an attribute of the page is that the offset cannot exceed some value, otherwise an access violation happens (the offset can't be negative either).
Moderm memory allocation involves putting objects of the same size into the same page, so this could protect many objects, not just one per page. It's probably true that object sizes would round up to the next power of 2 and protection would only happen if you addressed beyond the unused padding area, but it would provide the security problems.
The big sticking point is C. Making it compile so that a different pointer is always used and offset=0 would be compatible, but would defeat all the protection. Instead pointers could be implemented as pointer+offset pairs, with some complexity in the compiler and the annoying fact that some software is going to not work.
You are assuming that the "ever growing crowd" are all running the exact same platform. This is obviously wrong, even according to your figures it is 90% OS/X and 10% Linux, and you are not counting all the cell phones which are a far bigger part of it than either.
Nerds do not remember "good old IBM". They remember "evil IBM" that somehow changed once it lost it's monopoly. If Microsoft does the same thing, you can be sure that everybody will remember "evil Microsoft" and even talk about how amazing it was that they changed.
The major problem you are seeing is that Firefox is figuring out a floating point width for the characters and rounding them to the nearest integer before drawing each glyph. This will always result in irregular spacing. An extreme solution is to round each character width to an integer, which results in even but excessively wide spacing (or narrow, but that is avoided by rounding up), this appears to be what Windows does. A really complex solution is to intelligently examine the string being drawn and figure out if rounding or even spacing would look better, I think it is possible OSX does this? Another solution is to fully antialias, rendering each glyph at the correct fractional position, but this means it must be "fuzzy" Mac-style rendering that many Windows users complain about, and repeating characters will still look irregular.
The errors in hinting (the 'e', and much more annoying for me is when letters are taller than their neighbors by 1 pixel) are a far worse problem. Turning off hinting reveals that the letters are pretty much correct, so it is a good question why the "intelligent hinting" can make such mistakes.
I agree that the Mac-style full antialiased rendering is the correct approach.
Linux's big failing here is a refusal of the library implementors to make the simple API everybody wants. Here is a hint: I have UTF-8 in a buffer. I want it on the screen. I really don't want to have anything other than an api that takes a pointer to the string and draws it!
One of the things mentioned in the review was some improvement in the NVidia driver installation, so that it is automatic. I agree this is a big change.
I'm guessing that is what you are complaining about with the 3D installation. NVidia has never installed cleanly for me from their web site, it *always* says the kernel is the wrong version and that it can't find the correct header files, and if you waste the time (more like an hour, not a weekend) you can download headers so it compiles but the result refuses to work. The one from Ubuntu does work but is difficult to locate and if you already messed up your system trying to use the stuff from NVidia the Ubuntu one does not install. So certainly if they fixed it to just install this stuff automatically it is a big improvement, as it prevents people like me from screwing up the system trying to get it to work.
Can you post a screen shot with the exact thing you are complaining about circled? It might also help with some indication of exactly what direction you think the fix should be (up/down/left/right/bigger/smaller). One big problem is that what you think is wrong may not be obvious to others.
I don't quite understand these issues. I see bugs in GTK but they are much more obvious: you click in the text field and *nothing* appears. Not really seeing these font positioning issues you are complaining about.
If we worry about wasted computer cycles, I'm sure unnecessary screen savers are responsible for many orders of magnitude more. Or leaving flash animation ads running while you are not looking at it.
The worry is not about the copyright assignment. The worrying thing is that they encourage people to put "and any later version of the GPL" on software, and lots of people (me included) do so.
So a GPL4 that says "Richard Stallman can sell closed-source versions of this" would technically be possible and would affect a lot of GPL software, not just stuff with FSF copyright assignment. It would not affect Linux because the "any later version" text was deleted.
Seriously though I would not be worried. Any real scenario where such a thing would happen would be so obviously bogus, where the new license is obviously violating the principles that were behind the license, that I think it would be easy to legally argue that it is invalid.
Or a woman can go to a pub and try to buy a beer, but has the requirements that the bottle contain exactly 12.8 ounces and be 5.2% alcohol, and cost under $12, and then show that ONLY Microsoft Beer satisfies these requirements!
A lot of people act genuinely mystified as to where the "free beer" is in "free as in speech, not as in beer". Apparently they never worked in software or went to a school back in the 80's when IT was going crazy, or they would know that free beer was plentiful and easy to find.
It is sad to see these ideas disappearing under a bunch of PHBs. Microsoft, despite it's faults, seemed to want to let their engineers do their job.
No, it means there *must* be a license:
By default under copyright law you are not allowed to do some stuff with the code, and it is not Open Source according the the usual definition. The author *must* provide a license that allows you to do more with the code than the law allows.
I think you are confusing "license" with "contract". A common mistake.
Breaking existing applications has not been a problem at all, because the libraries are versioned. You may be confused by the result of replacing/upgrading the operating system, as this often deletes all the "old" libraries and thus gets you into the situation below where your software stops running.
The real problem Linux has is that the given library version are not included with the programs, and thus to install a given program you often have to download and install a whole bunch of libraries. To make it further annoying often those libraries require even more libraries. I agree with lots of people here that it is an endless hopeless mess. Repositories are basically ways of automating this but don't solve the basic problem.
I usually give up I often symbolically link whatever version number I have to the version number the program is looking for. Who knows how safe this is, but it has worked for me.
Linux can certainly work the Windows way by including the library in the same directory as the executable, and linking with the special switch that makes it look in that directory first for them. That is what we do with our commercial software. I don't know why there is so much resistance to this in Linux but it seems commercial users (such as GoogleEarth) are doing this. Expert end users can remove or hide these files if they want to use the version installed with their system, just like Windows experts do.
Even if people do that, both Linux and Windows have the problem where we don't include some library because we "know" it will be on the system. I would say this has bit us equally on both platforms.
Another problem with the limited domain and the author being an expert:
They are adding a new feature, and they realize "I think it is possible this won't work with hardware X and disk Y. I know the old version works because the users did not complain, but I don't have X or Y and can't test this new one. So I will put in this switch to make it work the old way".
Another similar one is "I just realized there is a chance that somebody made a disk that works this strange way but I have never seen one so I can't test it. Better put in a switch the user can throw if they encounter this non-existent disk".
Another huge problem is "I am really scared somebody will yell at me for not being back compatible, so even though I have designed this amazing new feature, I will leave it off by default and they will have to find the switch to turn it on. Then I am blameless. Besides I know how to turn it on and I leave it on and everything looks great to me!"
Um, I think he is complaining about *all* DVD ripping software, including stuff that is not for Linux!
In fact the FSF page has this:
Another misunderstanding of "open source" is the idea that it means "not using the GNU GPL". It tends to accompany a misunderstanding of "free software", equating it to "GPL-covered software". These are equally mistaken, since the GNU GPL is considered an open source license, and most of the open source licenses are considered free software licenses.
That directly addresses what I think a lot of people believe the difference is between "open source" and "free software". If I encounter the terms in a post here I usually make that assumption. Yes I know it is wrong (according to both organizations) but I feel that huge numbers of people have made those meanings.
Yes I believe the BSD and MIT licenses are "free".
However I think the term "Free Software", due to the FSF, has come to mean GPL software for most people here, while "Open Source" means both GPL and other open source licenses. Yes I know that is not what the FSF says officially, but it seems to be the normal response here to the terms.
It really seems to me that in common use "Open Source" *does* now mean you are free to do whatever you want with the source. Just being able to *look* at the source is not called Open Source, it is probably best to call it "published source code" or "the source code is available for you to look at".
"Free Software" means the enforced-freeness of the GPL, which is a subset of Open Source.
So for most uses this is neither Open Source or Free Software.
Wow, amazing reading comprehension! Let me quote the post you replied to:
"if somebody says "MicroSuck" or something that *really* is childish"
I pretty clearly said "microsuck" is a childish, so yes "Linsux" is childish as well. I think quoting swear words is pretty childish.
"open sores" is a valid term if you are talking about quality or standardization or "viral" license problems, or some other undesirable and damaging and growing side-effect on things other than OSS, because the term "sores" would be relevant. As it is longer than OSS you cannot use it as an abbreviation though.
A better question is whether calling OSS "O$$" is an insult. I don't think so. In fact I think that would be a good way to indicate a company using OSS for money-making, either as a positive thing or as a negative (such as "fake" O$$ where they really are not doing anything that is Open Source but just using the terms for good will).
Replying instantly claiming something is "childish" is a good indication that you subconsciously don't think so. If something really is childish then there is no need to point it out. Thus the instant response to "M$", but lack of response to "MicroSuck" or "Linsux" and so on indicate that there is a big difference.
Thanks for proving exactly what I am saying.
A desperate attempt to associate "M$" with "childish". I notice nobody ever gets all defensive if somebody says "MicroSuck" or something that *really* is childish. But "M$" and you panic!
This is because a bunch of astroturfers convinced everybody here that calling them "M$" was "childish" (apparently they are extremely hurt and insulted that somebody associated their beloved company with money, which it obviously has nothing to do with!).
Since "MS" means Multiple Sclerosis, Mississippi, Manuscript, Mrs/Miss, and a lot of other things, and and "MicroSoft" is too long, a lot of people started using "MSFT".
You are confusing that messy GCC stuff with what I am calling a "linking exception". I have also heard this called the "Gnu ClassPath exception" and several other things.
My "linking exception" is somewhat between the GPL and the Mozilla license. It also is what many people either think or want the LGPL to say. And the FSF is being real assholes by not making an official name for this, other than silly games like Microsoft, the lack of this is the reason there is so much license proliferation.
The "linking exception" allows me to protect the code I wrote, but allowing it to be *used* in closed-source programs (without weird restrictions on relinking or shared libraries the LGPL forces, which really just discourages anybody from using my software). This is done by making the code GPL with a "linking exception" that says "as a special exception you are allowed to link the result with ABCD and redistribute the result." In my case "ABCD" is basically anything, though some people limit it to a specific piece of code that cannot be GPL but otherwise allows copying of the source.
The result is that you only have to redistribute changes you make to *my* source, not to anybody else's. I think a lot of people, myself included, believe this would work just as well, or better, than the "viral" GPL.
Unlike the MS-PL, I allow people to *remove* the linking exception and go with plain GPL, so that my code can be used by people working on GPL code. Microsoft is certainly being assholes by saying you cannot do this. Note that nobody has ever "stolen" my code by making it GPL (or any BSD code for that matter), this is a FUD smokescreen by Microsoft to hide the real purpose, which is to pretend to make open source while making it useless for anybody who already has some open source code that is GPL.
And I was under the impression that the MS-PL explicitly disallowes me to GPL my code and put a "linking exception" for the MS-PL portion. If in fact this is allowed it does negate my original argument that MS-PL and GPL are the same. However it does reveal the hypocrisy of Microsoft: if I can do this, I can easily "steal" any MS-PL code and make it GPL-only by adding my useful changes and saying they are GPL with the linking exception. So this completely defeats the "protection" of their license and reveals it's real purpose which is to prevent interoperability with Linux and most other open source software.
I think you mean "a cakewalk", not "cakelike". Apparently the term comes from a dance called "cakewalk" that was easy to do, at least according to Wikipedia.
Though I agree with the problems with F1 (and with a whole lot of other sports) I'm not sure if your solution would work. What is cheapest when building one car may have nothing to do with what is cheapest when mass producing them. And as somebody pointed out below, using already-existing mass-produced items such as stock engines is quite likely the way to get the highest performance per dollar.
The MS-PL does not allow you to require that derivative works include the source code. I consider that a restriction.
It is quite impossible to be incompatible with the GPL without also doing pretty much what it does, which is remake all the linked code with it's own license. Otherwise a GPL plus linking exception would work to allow the MS-PL code to be absorbed into a GPL system.
Now I'm as mad as anybody about the FSF refusing to endors a license that does what everybody wants, which is "GPL plus linking exception" so that the code itself can be used in proprietary programs, but only changes to the code itself need to be publicised (the LGPL is not this, it has some strange exceptions and is about 10 times longer than a linking exception). If the FSF would endorse a name for the linking exception then everybody, including me, could put the code out under a license that we want and everybody would recognize it by it's useful and short name.
However the FSF's bad actions is no excuse for Microsoft to act like children themselves and put gratuitous GPL incompatability into their license. That is showing that they fear the GPL, not that they want to provide open source.