As one who makes my living almost entirely from FOSS development, I would suggest that commercial considerations are not so far removed.
I don't think about commercial considerations too much, however. I really just try to make good software that can change the market and figure I can find ways to commercialize on it if it is successful. How is that sentiment really different from closed source software though?
I thought the Singularity concept had some major issues with it. First among them-- the very thing that makes it attractive from a security and reliability perspective would seem to make it extremely inflexible and difficult to extend. It would seem to be like a really bad version of UNIX in a lot of ways (where all linking was static and all calls had to go through sockets or shmem's).
Ok, granted this isn't the same as a microkernel architecture in terms of design considerations, but I have some experience on the architectural side.
The LedgerSMB project began as a fork of SQL-Ledger (which I hereby nominate for any applicable bad design awards-- the system hits 75% of the software design antipatterns listed on Wikipedia). We have actually been building an architecture from scratch which I believe will be able to tackle problems large mainstream ERPs (such as SAP) have only begun looking at.
Architecture is difficult in any sort of development and most programmers can't engineer software terribly well. I would note that most software houses don't do difficult architecture-- they do features. Open source is no different. Can open source tackle architectural issues? Yes, but like all software development, well-engineered software is hard to find.
The invention of the wheel is nearly universal-- we see them all over the world. In fact there is little about them that needs explaining. People all around the world have built wheels.
Now, what made the wheel especially useful? The invention of the spoked wheel. This is why wheels in Precolumbian Central America were only used for toys. The spoked wheel allowed people and light draft animals to pull carts of reasonable size, while solid wheels required heavy draft animals (for example oxen).
So yes, there are great breakthroughs in that area historically and some of these were responsible for making the wheel reasonably useful.
UNIX was open source from the beginning (and quite innovative for its day in terms of simplicity) because AT&T was forbidden from making money at it due to their consent decree.
At the same time, we haven't seen any really innovative ground-up OS's be developed lately because the market can't support them. What ever happened to AmigaOS anyway (the original version, not the new attempted reincarnation)? Hence we are stuck with largely incrimental developments from three old operating systems: CP/M (-> DOS, Windows95-ME), UNIX (Linux, AIX, etc), and VMS (Windows NT, XP, Vista). To be fair there have been attempts at innovation in the systems world (HURD, BOB, etc) but they haven't been successful for market and/or organizational reasons despite bringing really creative ideas into the field (sometimes, for example re: BOB, that creativity really should have been bridled-- but hey, Malinda the project manager came out ahead).
As for FOSS development-- it works as does closed source development by attacking real world problems. My job as a leader in the LedgerSMB project isn't to hold a can of food, but to get other users to do that so that there is more work to go around. I then get to help people coordinate and structure their contributions so they can get it in.
From a creative invention perspective, the *vast* majority of software, closed or open, brings little new to the table-- software engineering in any environment is usually a matter of paying attention to the details and trying to solve well understood problems a little better than anyone else. However there are exceptions. I would suggest that Asterisk and Bayonne as telephony application servers are innovative in the sense that they provide an open framework for telephony application development. I would suggest that PostgreSQL is innovative in a large number of ways, but then it was originally designed to be a research platform.
Being able to make useful new inventions is a rare trait. I don't believe that FOSS will kill that off. Instead I think that it just changes the economic rules of the game.
Just because a system still shares the same architecture with UNIX, and the same API doesn't mean that the same problems exist today as in 1978 with UNIX. Linux is in a lot of ways today sort of like the original UNIX with a bunch of cool features added on from MULTICS and VMS.
The real issue is that RMS's political issues (expelling Bushnell for speaking out against the GFDL, for example) mean that HURD, while quite innovative at its core, is doomed to take over the "King of Vaporware" title from DNF.....
Certainly a lot of the points mentioned are cases of open source clones of previous closed source apps. In that regard they are hardly innovative. LDAP, for example, is just X.500 over TCP/IP (but it still requires insane levels of OSI stack bits to be reimplemented, such as ASN.1).
At the same time, I would ask: Would you consider Kerberos and X to be innovative? These were open source achievements by MIT which have been extremely important industry-wide. What about Zephyr (of which AIM, etc. are basically commercial clones)?
Now, I would argue that: X does exactly what you describe in that it allowed a unification of information management (since the UI is now only loosely coupled to the actual computer). Kerberos did the same thing in terms of network security management (to the point that the authentication in Active Directory is largely an inferior copy of MIT Kerberos-- inferior because of the way AD handles service principles).
Good innovation comes from a few people seeing a problem and coming up with a solution. Open source can do this. Closed source can do this. It is just about the group of engineers, usually with user input.
Bad innovation (Clippy, Bob) are driven by the desire to be innovative. Solve problems and let the innovation happen on its own.
MIT Kerberos, X, Python, Perl, Ruby, etc. would be examples of open source projects which have been extremely creative for long periods of time and been quite successful.
OTOH, Perl6 and HURD seem to be waiting for Duke Nuke'm Forever to be released.
First, how many really creative software programs are there out there? How many of them have become commercial successes?
If you look at some of the best engineered programs of their day (AmigaOS, REBOL, etc) they have almost universally been excluded from the market by market forces. While these have generally come from closed source environments to date, they have also universally languished in isolation. Nearly everything we use, open or closed source, comes from environments which are not conducive for great software engineering. Hence the market pulls us to mediocrity and conservatism (to the extent that we are largely still running UNIX and VMS clones over the vast majority of both the desktop and server markets).
It is also true, however, that there have been a lot of interesting ideas to come out of FOSS. While HURD seems to be the main open source challenger to the title of "King of Vaporware" (currently held by Duke Nuke'em Forever), the ideas in the operating design are certainly creative and in many ways unparalleled. Of course HURD has organizational issues which more or less have doomed it to a perpetual pre-alpha state. Similarly, in the web server market, TUX has come (and largely gone) as a creative approach to solving certain types of http server performance issues. Similarly, I thought HESIOD was far better thought out than LDAP (HESIOD being open source from the beginning, LDAP not being)....
However, there are a few cases where open source architectures have proven both creative and successful. The major ones I can think of include Kerberos, X, Jabber, and others.
At the same time the article has a point-- that "the masses" generally suck at software design. This is why most successful FOSS projects manage the core engineering of the program through a transparent process (subject to review and feedback from the users) but one which is also closed to everyone except a few core architects. This is the case with PostgreSQL, Linux, LedgerSMB, and most other successful projects. Hence the point of the article is a cautionary one for FOSS project leaders, not a blow against FOSS per se.
I would still think that a good faith allowance should come into play.
Suppose Microsoft were to release a download of a C++ runtime library which infringed on glibc. Suppose this didn't come with the source code. Would you go after every MS VC developer? Or would the entire liability be Microsoft's?
Forget about the terms of the GPL. If someone sells you a product, and you sell it on, and the product contains parts that are protected by copyright and you don't have permission from the copyright holder, you are responsible. If I produce 1000 illegal copies of MS Vista, sell them to you, and you sell them on, you can't deny responsibility. Microsoft can and will sue you. You may be able to sue me in turn, depending on circumstances. Not quite so fast.
Contributory infringement usually seems to apply in cases where someone is either negligent in checking (i.e. you sell me 1000 illegal copies of Vista for $5 each, so I should know something is wrong) or in cases where someone actually promotes infringement (the Grokster case).
One does not need to go back to Microsoft and verify the validity of every copyright license of every part to sell it. Think about it.... Suppose your normal (and previously trustworthy) channel starts making pirated copies and selling them to you at full price. YOu have no reason to know. Why should it be your fault?
The point is that reselling copyrighted works does not require a copyright license.
For example, if you bring me a copy of "The Wind Done Gone" and I sell it, it doesn't matter whether it infringes on "Gone with the Wind" or not. I can resell it. I am not liable. IANAL, but any other doctrine would simply be stupid.
This idea that we are going to use copyright law to do exactly what we complain about patent suits shows that certain individuals on certain projects are sinking to a level that we shouldn't have to see in our community.
Would Verizon ask Microsoft for copyright licenses for all third party technology licensed by Microsoft and included in each of their products that they use? For example, agreements with Sybase relating to SQL Server....
Yeah, right.....
THis is just an attempt to get the big guys to settle rather than limiting one's actions to the real culprits....
If I buy a copy of Microsoft Windows Vista and resell it, I do *not* need a copyright license to do that. And the EULA is unenforcible at that point (there was a case involving Adobe which showed this).
This is a suit simply aimed to get a settlement from Verizon. I would actually be happier if they fought this one.
BTW, I make my living developing open source software, and I am very sympathetic to Busybox, but I do *not* think this gives them the moral right to sue up and down the chain. We complain about this sort of thing with regard to patents. We should not do the same thing with regard to copyrights.
The suit should be limited to ActionTec. What is next? Suing Radio Shack because they might sell some routers which infringe on GPL code?
The issue I see with this is that we all know that there is not a piece of software out there that is safe from patent scrutiny, except perhaps the most basic Hello World application (and even there, the compiler or interpreter, runtime libraries, etc?). In short if people throw enough effort and money at it, one can make any software vendor, developer, or user pay.
It seems in this case that going after Verizon is like going after a second-hand music store because they are reselling albums that were previously judged to be infringing on a third party's copyright. This makes any sort of distribution and development very risky, whether commercial or open source, and it makes copyrights in general as dangerous to software development as patents are today.
Of course, making the code available is important to the GPL. It allows other competitors to use Actiontec's enhancements.
However, the question is: why is this Verizon's problem? If a musical artist is found guilty of copyright infringement in using a sample, does this mean that the music retailers are liable for contributory infringement simply because they don't immediately pull all the copies from the shelves when they learn of the problem?
It seems to me that it does us all very few favors to go after Verizon in this matter. We complain about the issues of patent infringement and how much uncertainty that creates relating to software development. Now it seems that there are people who are trying to do the same with copyright. I see this as very troubling because this could easily hurt us (the FOSS community) as much as anyone else.
Well, business priorities can be mapped out fairly easily by successive approximation. And this is best done by empowering people on the ground to tackle problems. However, if we look at problems that go into rollout of software such as CRM, ERP, and CMS systems, the reason for project failure is inevitably a lack of business process for the application to support. The better approach (and my advice to customers as an IT consultant) is to do what you can with people first and then get software to support them.
As for optimizations of software, it isn't too complicated. There aren't very many concerns beyond performance and maintainability.
Which side of the database connection to optimize? If you are asking this sort of question, you aren't pushing the database very hard:-). If you are doing anything non-trivial, your database server is going to be both the scalability and performance bottleneck.
On-line admin area or webmaster/dbadmin? That isn't a technical concern-- it is a business process concern;-) Also the question assumes limited resources to do this. For an open source project, like LedgerSMB, both areas get a lot of attention.
Caching engine or faster server? Well, you start by seeing how far you can go with eliminating existing bottlenecks.... Usually I avoid caching servers in most cases. The complexity cost is too high. I would rather choose between vertical (faster server with more RAM) and horizontal scaling (for example Slony on PostgreSQL to scale db reads or a move to BizgressMPP for really big data analysis stuff).
Caching in the database, or in the file system? I avoid caching except for long-term summary data in rare cases (for example, "last time you closed your books, your checking account had a balance of $126,000.00" as a way of avoiding aggregating over 20 years of data to get a checkbook balance). In those cases, however, the cost of having it in the db is almost always less both in terms of performance and maintainability than anywhere else.
Two-column layout or three? Again, that isn't a technical issue so much as an aesthetic and workflow issue. Hence we are outside the math foundation and into the human element again.
Basically you have three layers: Pure technical, the HCI layer (workflow, UI), and the Pure human layer. In general, as you move from technical to human, more flexibility is needed and less math applies.
I guess my point is that technical concerns are not the same thing as business concerns. Technical concerns are fundamentally cut and dried, and are basically a mathematical model of how data ought to exist and be processed.
Business concerns are fundamentally human issues. They are questions like "How many people do I need to hire to make sure that the content on the web site is correct?" "How do I go about ensuring that employees aren't stealing from my business?" and "How do I encourage customer loyalty through great customer service?" All too often businesses end up mapping these sorts of issues to the flow of the software, rather than building the processes first and then getting them to work with the software. This is generally wrong because businesses lose their creative spark and their ability to run their business. These are the areas where customers need to be in complete control over their business.
All technology exists only to support these processes anyway. There may be cases where there is one right way to do things, but more often, the one-right-way applies to the software and math, and not to the business.
They want to port to HURD first.
I also understand that some of the more recent portions are written in Perl 6.....
As one who makes my living almost entirely from FOSS development, I would suggest that commercial considerations are not so far removed.
I don't think about commercial considerations too much, however. I really just try to make good software that can change the market and figure I can find ways to commercialize on it if it is successful. How is that sentiment really different from closed source software though?
I thought the Singularity concept had some major issues with it. First among them-- the very thing that makes it attractive from a security and reliability perspective would seem to make it extremely inflexible and difficult to extend. It would seem to be like a really bad version of UNIX in a lot of ways (where all linking was static and all calls had to go through sockets or shmem's).
Ok, granted this isn't the same as a microkernel architecture in terms of design considerations, but I have some experience on the architectural side.
The LedgerSMB project began as a fork of SQL-Ledger (which I hereby nominate for any applicable bad design awards-- the system hits 75% of the software design antipatterns listed on Wikipedia). We have actually been building an architecture from scratch which I believe will be able to tackle problems large mainstream ERPs (such as SAP) have only begun looking at.
Architecture is difficult in any sort of development and most programmers can't engineer software terribly well. I would note that most software houses don't do difficult architecture-- they do features. Open source is no different. Can open source tackle architectural issues? Yes, but like all software development, well-engineered software is hard to find.
The invention of the wheel is nearly universal-- we see them all over the world. In fact there is little about them that needs explaining. People all around the world have built wheels.
Now, what made the wheel especially useful? The invention of the spoked wheel. This is why wheels in Precolumbian Central America were only used for toys. The spoked wheel allowed people and light draft animals to pull carts of reasonable size, while solid wheels required heavy draft animals (for example oxen).
So yes, there are great breakthroughs in that area historically and some of these were responsible for making the wheel reasonably useful.
UNIX was open source from the beginning (and quite innovative for its day in terms of simplicity) because AT&T was forbidden from making money at it due to their consent decree.
At the same time, we haven't seen any really innovative ground-up OS's be developed lately because the market can't support them. What ever happened to AmigaOS anyway (the original version, not the new attempted reincarnation)? Hence we are stuck with largely incrimental developments from three old operating systems: CP/M (-> DOS, Windows95-ME), UNIX (Linux, AIX, etc), and VMS (Windows NT, XP, Vista). To be fair there have been attempts at innovation in the systems world (HURD, BOB, etc) but they haven't been successful for market and/or organizational reasons despite bringing really creative ideas into the field (sometimes, for example re: BOB, that creativity really should have been bridled-- but hey, Malinda the project manager came out ahead).
As for FOSS development-- it works as does closed source development by attacking real world problems. My job as a leader in the LedgerSMB project isn't to hold a can of food, but to get other users to do that so that there is more work to go around. I then get to help people coordinate and structure their contributions so they can get it in.
From a creative invention perspective, the *vast* majority of software, closed or open, brings little new to the table-- software engineering in any environment is usually a matter of paying attention to the details and trying to solve well understood problems a little better than anyone else. However there are exceptions. I would suggest that Asterisk and Bayonne as telephony application servers are innovative in the sense that they provide an open framework for telephony application development. I would suggest that PostgreSQL is innovative in a large number of ways, but then it was originally designed to be a research platform.
Being able to make useful new inventions is a rare trait. I don't believe that FOSS will kill that off. Instead I think that it just changes the economic rules of the game.
I don't know about that.
Just because a system still shares the same architecture with UNIX, and the same API doesn't mean that the same problems exist today as in 1978 with UNIX. Linux is in a lot of ways today sort of like the original UNIX with a bunch of cool features added on from MULTICS and VMS.
The real issue is that RMS's political issues (expelling Bushnell for speaking out against the GFDL, for example) mean that HURD, while quite innovative at its core, is doomed to take over the "King of Vaporware" title from DNF.....
That actually looks like a pretty cool approach. One could also attach it to RFID tags used in ID cards and.....
Certainly a lot of the points mentioned are cases of open source clones of previous closed source apps. In that regard they are hardly innovative. LDAP, for example, is just X.500 over TCP/IP (but it still requires insane levels of OSI stack bits to be reimplemented, such as ASN.1).
At the same time, I would ask: Would you consider Kerberos and X to be innovative? These were open source achievements by MIT which have been extremely important industry-wide. What about Zephyr (of which AIM, etc. are basically commercial clones)?
Now, I would argue that: X does exactly what you describe in that it allowed a unification of information management (since the UI is now only loosely coupled to the actual computer). Kerberos did the same thing in terms of network security management (to the point that the authentication in Active Directory is largely an inferior copy of MIT Kerberos-- inferior because of the way AD handles service principles).
Good innovation comes from a few people seeing a problem and coming up with a solution. Open source can do this. Closed source can do this. It is just about the group of engineers, usually with user input.
Bad innovation (Clippy, Bob) are driven by the desire to be innovative. Solve problems and let the innovation happen on its own.
MIT Kerberos, X, Python, Perl, Ruby, etc. would be examples of open source projects which have been extremely creative for long periods of time and been quite successful.
OTOH, Perl6 and HURD seem to be waiting for Duke Nuke'm Forever to be released.
First, how many really creative software programs are there out there? How many of them have become commercial successes?
If you look at some of the best engineered programs of their day (AmigaOS, REBOL, etc) they have almost universally been excluded from the market by market forces. While these have generally come from closed source environments to date, they have also universally languished in isolation. Nearly everything we use, open or closed source, comes from environments which are not conducive for great software engineering. Hence the market pulls us to mediocrity and conservatism (to the extent that we are largely still running UNIX and VMS clones over the vast majority of both the desktop and server markets).
It is also true, however, that there have been a lot of interesting ideas to come out of FOSS. While HURD seems to be the main open source challenger to the title of "King of Vaporware" (currently held by Duke Nuke'em Forever), the ideas in the operating design are certainly creative and in many ways unparalleled. Of course HURD has organizational issues which more or less have doomed it to a perpetual pre-alpha state. Similarly, in the web server market, TUX has come (and largely gone) as a creative approach to solving certain types of http server performance issues. Similarly, I thought HESIOD was far better thought out than LDAP (HESIOD being open source from the beginning, LDAP not being)....
However, there are a few cases where open source architectures have proven both creative and successful. The major ones I can think of include Kerberos, X, Jabber, and others.
At the same time the article has a point-- that "the masses" generally suck at software design. This is why most successful FOSS projects manage the core engineering of the program through a transparent process (subject to review and feedback from the users) but one which is also closed to everyone except a few core architects. This is the case with PostgreSQL, Linux, LedgerSMB, and most other successful projects. Hence the point of the article is a cautionary one for FOSS project leaders, not a blow against FOSS per se.
Are you *sure* no other countries besides the US recognize software patents?
I agree.
When the Eolas suit occurred, I would guess that all Windows systems were infringing on IP.
Microsoft says Linux infringes on their IP.
One can bet that Macs do too.
Which leads me to a conclusion (hereafter known as Einhverfr's Law):
"Any non-trivial piece of software infringes on someone's patent somewhere."
I would still think that a good faith allowance should come into play.
Suppose Microsoft were to release a download of a C++ runtime library which infringed on glibc. Suppose this didn't come with the source code. Would you go after every MS VC developer? Or would the entire liability be Microsoft's?
Contributory infringement usually seems to apply in cases where someone is either negligent in checking (i.e. you sell me 1000 illegal copies of Vista for $5 each, so I should know something is wrong) or in cases where someone actually promotes infringement (the Grokster case).
One does not need to go back to Microsoft and verify the validity of every copyright license of every part to sell it. Think about it.... Suppose your normal (and previously trustworthy) channel starts making pirated copies and selling them to you at full price. YOu have no reason to know. Why should it be your fault?
The point is that reselling copyrighted works does not require a copyright license.
For example, if you bring me a copy of "The Wind Done Gone" and I sell it, it doesn't matter whether it infringes on "Gone with the Wind" or not. I can resell it. I am not liable. IANAL, but any other doctrine would simply be stupid.
This idea that we are going to use copyright law to do exactly what we complain about patent suits shows that certain individuals on certain projects are sinking to a level that we shouldn't have to see in our community.
You can buy Linux systems at Walmart, does this make Walmart a party to the GPL? Under what theory of copyright law?
Next, we shall sue Walmart for not offering coupons for the source code to all people who buy products they merely distribute.
Would Verizon ask Microsoft for copyright licenses for all third party technology licensed by Microsoft and included in each of their products that they use? For example, agreements with Sybase relating to SQL Server....
Yeah, right.....
THis is just an attempt to get the big guys to settle rather than limiting one's actions to the real culprits....
If I buy a copy of Microsoft Windows Vista and resell it, I do *not* need a copyright license to do that. And the EULA is unenforcible at that point (there was a case involving Adobe which showed this).
This is a suit simply aimed to get a settlement from Verizon. I would actually be happier if they fought this one.
BTW, I make my living developing open source software, and I am very sympathetic to Busybox, but I do *not* think this gives them the moral right to sue up and down the chain. We complain about this sort of thing with regard to patents. We should not do the same thing with regard to copyrights.
The suit should be limited to ActionTec. What is next? Suing Radio Shack because they might sell some routers which infringe on GPL code?
The issue I see with this is that we all know that there is not a piece of software out there that is safe from patent scrutiny, except perhaps the most basic Hello World application (and even there, the compiler or interpreter, runtime libraries, etc?). In short if people throw enough effort and money at it, one can make any software vendor, developer, or user pay.
It seems in this case that going after Verizon is like going after a second-hand music store because they are reselling albums that were previously judged to be infringing on a third party's copyright. This makes any sort of distribution and development very risky, whether commercial or open source, and it makes copyrights in general as dangerous to software development as patents are today.
Of course, making the code available is important to the GPL. It allows other competitors to use Actiontec's enhancements.
However, the question is: why is this Verizon's problem? If a musical artist is found guilty of copyright infringement in using a sample, does this mean that the music retailers are liable for contributory infringement simply because they don't immediately pull all the copies from the shelves when they learn of the problem?
It seems to me that it does us all very few favors to go after Verizon in this matter. We complain about the issues of patent infringement and how much uncertainty that creates relating to software development. Now it seems that there are people who are trying to do the same with copyright. I see this as very troubling because this could easily hurt us (the FOSS community) as much as anyone else.
Anyone know if any trouble is expected from The Sage Group over trademarks? (I.e. Sage 500, Sage Donations 50, etc.)
The Sage Group makes small to mid-market accounting solutions, and many of their products contain the name "Sage."
If this isn't a problem, can I make a cell modelling program and call it MicroSoft Modeller? (i.e. a micro-level modeller for soft tissue.)
As for optimizations of software, it isn't too complicated. There aren't very many concerns beyond performance and maintainability. Which side of the database connection to optimize? If you are asking this sort of question, you aren't pushing the database very hard
Basically you have three layers: Pure technical, the HCI layer (workflow, UI), and the Pure human layer. In general, as you move from technical to human, more flexibility is needed and less math applies.
A listing of peer reviewed studies relating to suicide rates in the wake of stories on TV, newspapers, etc can be found at http://pespmc1.vub.ac.be/Conf/MemePap/Marsden.html
I guess my point is that technical concerns are not the same thing as business concerns. Technical concerns are fundamentally cut and dried, and are basically a mathematical model of how data ought to exist and be processed.
Business concerns are fundamentally human issues. They are questions like "How many people do I need to hire to make sure that the content on the web site is correct?" "How do I go about ensuring that employees aren't stealing from my business?" and "How do I encourage customer loyalty through great customer service?" All too often businesses end up mapping these sorts of issues to the flow of the software, rather than building the processes first and then getting them to work with the software. This is generally wrong because businesses lose their creative spark and their ability to run their business. These are the areas where customers need to be in complete control over their business.
All technology exists only to support these processes anyway. There may be cases where there is one right way to do things, but more often, the one-right-way applies to the software and math, and not to the business.