I was not referring to BSD and MIT, but more to licenses like the XFree86 1.1 License, the Apache License, the CDDL, the Eclipse Public License... all of which can't be mixed with code under the more mainstream GPL license.
GPL is the original one including the idea of copyleft as a mean to protect the freedom of whole software projects - not just specific instances or releases. But its design didn't foresaw the needs of third parties to include particular modifications, even if they abide to the terms of copyleft - this is something that GPLv3 is intended to enhance.
MIT and BSD licenses have problems of their own, namely that they allow anyone to add into their forks additional restrictive clauses that make them incompatible with anything else - even with free redistribution at all.
Yes, but the point is that by downloading a copyrighted work you are benefiting from the value added by the original creators, and by doing that you are not respecting their copyrights (with the justification that "it isn't theft since it's only a copy " in your example) - but then you want others to respect the value added by you by abiding to your terms (in this case, not being able to freely use your modifications to the original work).
So you're being a jerk not because you claim a right over your work, but because you're denying those very rights to the one previous to you in the chain of modifications. In my country we call that the Funnel Law.
I don't think it means that I should be forced to give away the value I added simply because somebody before me was willing to In the case of GPL, it means that somebody before you was willing to give away the value to you *only if you agreed to do the same*. If you don't agree, you don't have any right to his added value.
That condition is not a whim, is the only mechanism known to work to protect Free as in Speech in software. Free code as in the BSD and MIT licenses is how software was created at the beginning, and it quickly derived into an incompatible set of compiting closed, proprietary systems. The don't-break-the-chain-of-added-value that GPL provides is what guarantees a pool of free software projects that is stable in time. So no, even with perfect and non-cost digital copies "Free as in Beer"!="Free as in Speech", as long as the digital content can be encripted/locked to further peer review.
It's the same principal as downloading music. It isn't theft since it's only a copy of something which continues to exist. And anybody who is doing it probably wouldn't bother to do the entire project from scratch (ie, wouldn't buy the album). It doesn't diminsh or affect the value of the original code.
A better analogy would be if you were a musician who downloaded an album, studied the songs, then starting to play concerts using those songs and forbidding your public to make recordings.
If you've beneffited from freely obtaining the material in the first place, which right do you have to forbid others to do the same with your value-added work?
People will vote with their feet- if GPLv3 is truly the one pure license as you seem to believe, they'll choose it. I personally don't see any problem with a proliferation of licenses - the bad ones will be weeded out by natural selection.
The problem is, free software advantage is not in natural selection - you have regular commercial market forces using that mechanism to the same effect.
Free software works best by cross-polinization i.e. taking the best from each available project. But different, incompatible licenses hinder that, so the (only?) advantage of the free software community is lost.
The thing the academics who push the web search fail to consider (most of the time) is that the Real World does not function like their Ideal World. In the Ideal World, everybody cooperates and works together to produce something of value for all mankind. So we get lots of correctly and appropriately hyperlinked pages that give useful information on what's stored therein.
But in the Real World, any online system that is used by a large enough number of people will eventually become attractive for spammers and scammers to defile and twist to their own purposes. So you'll get a deluge of pages that appear to be useful reviews of digital cameras (and are hyperlinked as such) but in fact simply go to a useless "search" page that has lots of link farm references.
And if you say "Ok, so we don't trust the author of the page, we have someone else do it"... then who? Who's going to do all the work? Answer: Nobody. AI is nowhere near being smart enough for this. Keyword searching is, unfortunately, here to stay. If you trust the author to do the markup, then the spammers have a field day. If you say "Only trusted authors" then the system will still fail, due to laziness on most people's part - if a system isn't trivial to implement and involves some kind of "authentication" or "authorization" then nobody will use it, period. The Web succeeded in the first place because anybody anywhere could just stick up a Web server and publish pages, and it was immediately visible to the whole world.
The web search will fail for the same reason that the "meta" tag failed in HTML: Any system that can be abused by spammers, will be abused.
So, the web search, which is all about helping people find stuff, will fail. Not because of any technological shortcomings (it's all very nice in theory), but simply because we as people won't work together to make it work. Well, a small number of people could work together, but as that number got larger, until it reaches the point of being useful, it will automatically get to the tipping point where it becomes worthwhile for the spammers to jump in and foul it all up.
how do you deal with the thirty million hits for websites that offer Alice Cooper lyrics? Of course you can construct complex queries, but that's also possible with Google.
The difference is in the interaction initiative. With Google you have to construct a complex query from scratch, by combining logical operators (AND, OR) and filters (+, -), and you have to decide which keywords to include.
A semantic search, on the other hand, will suggest relevant terms related to the main item - this allows to refine the query with the best elements of context. In your example of Alice Cooper, it would provide several alternatives for refinement - lyrics, songs, biography, pictures... - terms which could be added or filtered out.
Faceted search is usually a better query method than Google's "command line". Semantic Web would create automatic faceted searchs for all kind of information.
I'm not a native English speaker, and I started learning English in order to play text adventures (a.k.a. Interactive Fiction). Having fun is a very good motivation to learn an otherwise harsh material.
Actually, people who read a lot of books usually do so because they find it amusing - conversely forcing children to read is the worst way you could teach them communicating skills.
Mob mentality (which is essentially what you see in meetings - people forced to make a decision as a whole rather than as individuals) is known to be 'stupider' than a single person acting rationally as a general rule.
On the other hand, "swarm" decision-making based on the aggregate of individual decisions is known to be smarter than any single person. The point is not avoiding meetings or group work, the point is avoid common pitfalls and adopt a working style that deliveries results.
I've even seen such bullshit claims like that it basically holds all possible states at the same time, so it can calculate anything instantly, since the solution state is already one it simultaneously holds. Which is blatantly bull. If it simply holds all possible states at the same time, that's as good as saying that it has no state at all, or you can't measure it. To get an answer out of the computer, you need to get out of it a particular state which represents the result of the calculation. By that logic I could give you a CD with all possible 4 million DWORD (4 byte, 32 bit) values, from -2 million to 2 million, one of which is the result to your problem. There you go, any problem that has a DWORD result already has the result on that CD, so it was "calculated" instantly. Isn't it an impressive feat? I don't even know your problem, but that CD already has the result to it. It's also completely freakin' useless, if you don't know which one of them. That CD as such holds no more actual usable information that that it's a 32 bit number, which you knew in the first place.
I know little about quantum mechanics and have no clue about quantum computing, but being an expert in constraint-based problem solving perhaps I may throw some light on how this might actually work.
Automated reasoning and theorem proving are usually computed by performing inferences over a search space, defined by a problem stated in a declarative language. A way to represent this kind of problems is by defining a "raw" region of data (like your "All the possible DWORDS", and then asserting constraints over the data that all solutions must fulfil. A classic solver will then proceed to generate many candidate solutions one after another, testing whether they break one of the constraints.
As an example of how this strategy, think of the Eratostenes sieve - you have a pool of numbers in sequence, and want to find all primes. First you remove every second number (greater than 2), because you know those numbers are even; do the same to every third number, every fifth (4 is already removed), etc. This algorithm is not efficient in a classic computer because you have to loop number by number through every inference step.
The dream of every IA researcher and every parallel computer designer would be a way to test all generated candidate solutions at once, instead of looping through them one by one. Quantum computing, if works as advertised, would provide just that - they should implement flooding algorithms in which the computer follows all viable reasoning paths simultaneously, while the stated constraints prune all the forbidden states.
Since all followed paths are equally valid, it doesn't matter to which particular solution the system will collapse when finally observing the result. As the number of loops required to solve logic combinatorial problems grow exponentially, this could reduce the required time to linear, in many cases.
Practical quantum computers are still far away, if ever possible. But if they can work as I've described (and for what peoplearedoing, they might work), they could represent an advance in the field as important as the transistor was to digital computers.
OK please look up "encapsulation". You can have encapsulation without having to explicitly declare hundreds of setters and getters, see Python. You only declare accessor methods for properties that do something more than internally store the provided parameters. For the other object attributes, you can use them directly - but later turn the attribute into a property if needed, by adding getter/setter "trigger" methods that use the same syntax as attributes.
They require like a million lines of code before you can even start programming. This is totally untrue and proves you have never used Java. I think GP post refers to programming something useful without using external libraries. When you use an include in Java, you are using a million lines of code (just not yours). In a language supporting metaprogramming, you can program everything as generic methods and don't need a zillion different implementations of the same method for different argument types.
methods like "my_array.sortThisArrayInDescendingAlphabeticalOrd erUsingHeapSort() There are some long function names in Java and C#. But you have it backwards. It it not that and IDE is needed because Java has long function names, but Java can afford to have _readable_ (!) function names because there are now powerful IDEs available. Again, he means that instead of the long Java method you could build it this other way:
marking it in some sort of universal language so that in the event civilization collapses and we revert to a new stone age some hapless hunter gatherer doesn't try to eat it These guys have thought about that problem, and have come to a very good solution through visceral language.
Any idea why Firefox has suddenly decided that the single-quote key should take me to search instead of typing the character?
I often have the same bug, only much worse - it happens with all keys. To fix it you can go to advanced options and disable "search for text when I start typing".
The difference is that this system is designed to be efficient for touch-typists, something which contextual menus aren't. If you type the name of the desired command, you don't have to click n times (with n depending of the current desktop status) to open a specific window. I think of it as a command line for the GUI.
If you're curious about the possibilities, read about Archy, the inspiring project for Enso.
As a business model, InnoTek publishes two versions - the new GPLed open source, and a binary-only proprietary version with some enhancements:
* The full VirtualBox package is available in binary (executable) form free of charge from the Downloads page. This version is free for personal use and evaluation under the terms of the VirtualBox Personal Use and Evaluation License.
If, instead, you wish to purchase licenses for enterprise use and/or enterprise support for VirtualBox, please do not hesitate to contact InnoTek.
* The VirtualBox Open Source Edition (OSE) is the one that has been released under the GPL and comes with complete source code. It is functionally equivalent to the full VirtualBox package, except for a few features that primarily target enterprise customers. This gives us a chance to generate revenue to fund further development of VirtualBox.
The guys at goatse.cx will be the ones willingly NOT including the NTSF tag in their design, because they want you to see the goatse when in front of your boss.
In order for this to work, it should be included in third party descriptions of the site. And then, you can rely on standard content filters for that.
Your inference assumes that the universe is deterministic. Given that the universe follows the Heisenberg's principle, I would't think that the assumption of determinism is certain, I have serious doubts about it.
I was not referring to BSD and MIT, but more to licenses like the XFree86 1.1 License, the Apache License, the CDDL, the Eclipse Public License... all of which can't be mixed with code under the more mainstream GPL license.
GPL is the original one including the idea of copyleft as a mean to protect the freedom of whole software projects - not just specific instances or releases. But its design didn't foresaw the needs of third parties to include particular modifications, even if they abide to the terms of copyleft - this is something that GPLv3 is intended to enhance.
MIT and BSD licenses have problems of their own, namely that they allow anyone to add into their forks additional restrictive clauses that make them incompatible with anything else - even with free redistribution at all.
Yes, but the point is that by downloading a copyrighted work you are benefiting from the value added by the original creators, and by doing that you are not respecting their copyrights (with the justification that "it isn't theft since it's only a copy " in your example) - but then you want others to respect the value added by you by abiding to your terms (in this case, not being able to freely use your modifications to the original work).
So you're being a jerk not because you claim a right over your work, but because you're denying those very rights to the one previous to you in the chain of modifications. In my country we call that the Funnel Law.
I don't think it means that I should be forced to give away the value I added simply because somebody before me was willing to
In the case of GPL, it means that somebody before you was willing to give away the value to you *only if you agreed to do the same*. If you don't agree, you don't have any right to his added value.
That condition is not a whim, is the only mechanism known to work to protect Free as in Speech in software. Free code as in the BSD and MIT licenses is how software was created at the beginning, and it quickly derived into an incompatible set of compiting closed, proprietary systems. The don't-break-the-chain-of-added-value that GPL provides is what guarantees a pool of free software projects that is stable in time. So no, even with perfect and non-cost digital copies "Free as in Beer"!="Free as in Speech", as long as the digital content can be encripted/locked to further peer review.
It's the same principal as downloading music. It isn't theft since it's only a copy of something which continues to exist. And anybody who is doing it probably wouldn't bother to do the entire project from scratch (ie, wouldn't buy the album). It doesn't diminsh or affect the value of the original code.
A better analogy would be if you were a musician who downloaded an album, studied the songs, then starting to play concerts using those songs and forbidding your public to make recordings.
If you've beneffited from freely obtaining the material in the first place, which right do you have to forbid others to do the same with your value-added work?
People will vote with their feet- if GPLv3 is truly the one pure license as you seem to believe, they'll choose it. I personally don't see any problem with a proliferation of licenses - the bad ones will be weeded out by natural selection.
The problem is, free software advantage is not in natural selection - you have regular commercial market forces using that mechanism to the same effect.
Free software works best by cross-polinization i.e. taking the best from each available project. But different, incompatible licenses hinder that, so the (only?) advantage of the free software community is lost.
Turing test - tell the computer to simulate Alan Turing, then ask him if he's "just a simulation".
/. user, you insensitive clod!
I'm just a
The thing the academics who push the web search fail to consider (most of the time) is that the Real World does not function like their Ideal World. In the Ideal World, everybody cooperates and works together to produce something of value for all mankind. So we get lots of correctly and appropriately hyperlinked pages that give useful information on what's stored therein.
But in the Real World, any online system that is used by a large enough number of people will eventually become attractive for spammers and scammers to defile and twist to their own purposes. So you'll get a deluge of pages that appear to be useful reviews of digital cameras (and are hyperlinked as such) but in fact simply go to a useless "search" page that has lots of link farm references.
And if you say "Ok, so we don't trust the author of the page, we have someone else do it"... then who? Who's going to do all the work? Answer: Nobody. AI is nowhere near being smart enough for this. Keyword searching is, unfortunately, here to stay. If you trust the author to do the markup, then the spammers have a field day. If you say "Only trusted authors" then the system will still fail, due to laziness on most people's part - if a system isn't trivial to implement and involves some kind of "authentication" or "authorization" then nobody will use it, period. The Web succeeded in the first place because anybody anywhere could just stick up a Web server and publish pages, and it was immediately visible to the whole world.
The web search will fail for the same reason that the "meta" tag failed in HTML: Any system that can be abused by spammers, will be abused.
So, the web search, which is all about helping people find stuff, will fail. Not because of any technological shortcomings (it's all very nice in theory), but simply because we as people won't work together to make it work. Well, a small number of people could work together, but as that number got larger, until it reaches the point of being useful, it will automatically get to the tipping point where it becomes worthwhile for the spammers to jump in and foul it all up.
how do you deal with the thirty million hits for websites that offer Alice Cooper lyrics? Of course you can construct complex queries, but that's also possible with Google.
The difference is in the interaction initiative. With Google you have to construct a complex query from scratch, by combining logical operators (AND, OR) and filters (+, -), and you have to decide which keywords to include.
A semantic search, on the other hand, will suggest relevant terms related to the main item - this allows to refine the query with the best elements of context. In your example of Alice Cooper, it would provide several alternatives for refinement - lyrics, songs, biography, pictures... - terms which could be added or filtered out.
Faceted search is usually a better query method than Google's "command line". Semantic Web would create automatic faceted searchs for all kind of information.
I can see a new trend of "Goodbye cruel world" programs replacing the "Hello world" equivalents, as designers of programming language pass away.
I'm not a native English speaker, and I started learning English in order to play text adventures (a.k.a. Interactive Fiction). Having fun is a very good motivation to learn an otherwise harsh material.
Actually, people who read a lot of books usually do so because they find it amusing - conversely forcing children to read is the worst way you could teach them communicating skills.
But compare the same person with and without exercise, the one with will perform better on brain tests.
:-P
I wonder how you will manage to get a person that both exercises and not exercises at the same time
Mob mentality (which is essentially what you see in meetings - people forced to make a decision as a whole rather than as individuals) is known to be 'stupider' than a single person acting rationally as a general rule.
On the other hand, "swarm" decision-making based on the aggregate of individual decisions is known to be smarter than any single person. The point is not avoiding meetings or group work, the point is avoid common pitfalls and adopt a working style that deliveries results.
s/IA/Artificial Intelligence/
I've even seen such bullshit claims like that it basically holds all possible states at the same time, so it can calculate anything instantly, since the solution state is already one it simultaneously holds. Which is blatantly bull. If it simply holds all possible states at the same time, that's as good as saying that it has no state at all, or you can't measure it. To get an answer out of the computer, you need to get out of it a particular state which represents the result of the calculation. By that logic I could give you a CD with all possible 4 million DWORD (4 byte, 32 bit) values, from -2 million to 2 million, one of which is the result to your problem. There you go, any problem that has a DWORD result already has the result on that CD, so it was "calculated" instantly. Isn't it an impressive feat? I don't even know your problem, but that CD already has the result to it. It's also completely freakin' useless, if you don't know which one of them. That CD as such holds no more actual usable information that that it's a 32 bit number, which you knew in the first place.
I know little about quantum mechanics and have no clue about quantum computing, but being an expert in constraint-based problem solving perhaps I may throw some light on how this might actually work.
Automated reasoning and theorem proving are usually computed by performing inferences over a search space, defined by a problem stated in a declarative language. A way to represent this kind of problems is by defining a "raw" region of data (like your "All the possible DWORDS", and then asserting constraints over the data that all solutions must fulfil. A classic solver will then proceed to generate many candidate solutions one after another, testing whether they break one of the constraints.
As an example of how this strategy, think of the Eratostenes sieve - you have a pool of numbers in sequence, and want to find all primes. First you remove every second number (greater than 2), because you know those numbers are even; do the same to every third number, every fifth (4 is already removed), etc. This algorithm is not efficient in a classic computer because you have to loop number by number through every inference step.
The dream of every IA researcher and every parallel computer designer would be a way to test all generated candidate solutions at once, instead of looping through them one by one. Quantum computing, if works as advertised, would provide just that - they should implement flooding algorithms in which the computer follows all viable reasoning paths simultaneously, while the stated constraints prune all the forbidden states.
Since all followed paths are equally valid, it doesn't matter to which particular solution the system will collapse when finally observing the result. As the number of loops required to solve logic combinatorial problems grow exponentially, this could reduce the required time to linear, in many cases.
Practical quantum computers are still far away, if ever possible. But if they can work as I've described (and for what people are doing, they might work), they could represent an advance in the field as important as the transistor was to digital computers.
OK please look up "encapsulation".
d erUsingHeapSort()
You can have encapsulation without having to explicitly declare hundreds of setters and getters, see Python. You only declare accessor methods for properties that do something more than internally store the provided parameters. For the other object attributes, you can use them directly - but later turn the attribute into a property if needed, by adding getter/setter "trigger" methods that use the same syntax as attributes.
They require like a million lines of code before you can even start programming.
This is totally untrue and proves you have never used Java.
I think GP post refers to programming something useful without using external libraries. When you use an include in Java, you are using a million lines of code (just not yours). In a language supporting metaprogramming, you can program everything as generic methods and don't need a zillion different implementations of the same method for different argument types.
methods like "my_array.sortThisArrayInDescendingAlphabeticalOr
There are some long function names in Java and C#. But you have it backwards. It it not that and IDE is needed because Java has long function names, but Java can afford to have _readable_ (!) function names because there are now powerful IDEs available.
Again, he means that instead of the long Java method you could build it this other way:
my_array.sort(Directions.DESCENDING, Orders.ALPHABETICAL, MemoryManagement.HEAP).
This generic method is impractical to build in Java, but quite common in the other cited languages.
Insert here some random joke about mutant superheroes.
marking it in some sort of universal language so that in the event civilization collapses and we revert to a new stone age some hapless hunter gatherer doesn't try to eat it
These guys have thought about that problem, and have come to a very good solution through visceral language.
Any idea why Firefox has suddenly decided that the single-quote key should take me to search instead of typing the character?
I often have the same bug, only much worse - it happens with all keys. To fix it you can go to advanced options and disable "search for text when I start typing".
The difference is that this system is designed to be efficient for touch-typists, something which contextual menus aren't. If you type the name of the desired command, you don't have to click n times (with n depending of the current desktop status) to open a specific window. I think of it as a command line for the GUI.
If you're curious about the possibilities, read about Archy, the inspiring project for Enso.
The original, official wallpaper which started the legend.
The not so official one!
A well-respected geek should build his/her own lightsaber!
The guys at goatse.cx will be the ones willingly NOT including the NTSF tag in their design, because they want you to see the goatse when in front of your boss.
In order for this to work, it should be included in third party descriptions of the site. And then, you can rely on standard content filters for that.
The one that is babysitted and administered by an expert.
Your inference assumes that the universe is deterministic. Given that the universe follows the Heisenberg's principle, I would't think that the assumption of determinism is certain, I have serious doubts about it.
No no no no no! You got it all wrong!
If you can catch the joke, it must be a funny one!