Monday, May 31, 2010

Summary for readings on May 31st

The reading set in May 31st is about the software evolved from workstation application to web application as we are moving from Web 1.0 to Web 2.0. All four articles were written by O'Reilly.

[1] is explaining how open source is an important factor to the computer-using community. [1] has pointed the fact that people are buying computer for the interest to access the "information application" or "infoware", not for the built-in applications on the computer:
What's interesting is that the killer application is no longer a desktop productivity application or even a back-office enterprise software system, but an individual web site. And once you start thinking of web sites as applications, you soon come to realize that they represent an entirely new breed, something you might call an "information application," or perhaps even "infoware."

The Common Gateway Interface (CGI) enables the web-based application to service web user:
CGI defines a way for a web server to call any external program and return the output of that program as a web page.
CGI programs may simply be small scripts that perform a simple calculation, or they may connect to a full-fledged back-end database server.

O'Reilly has stated that Open Source makes the Web/Internet possible, because the Internet infrastructures were developed through the open-source process and rely on open source software:
more than 50% of all visible web sites are served by the open-source Apache web server. The majority of web-based dynamic content is generated by open-source scripting languages such as Perl, Python,..."

Open-sourced languages and scripts such HTML and Perl also hold important roles in web application program, because they are freely shared between developer and easy to make modification. While proprietary software manufacturers such as Microsoft sets higher barriers to enter computer business, the open source software lowers the barriers:
You can try a new product for free--and even more than that, you can build your own custom version of it, also for free. Source code is available for massive independent peer review. If someone doesn't like a feature, they can add to it, subtract from it, or reimplement it. If they give their fix back to the community, it can be adopted widely very quickly.


[2] is a article by O'Reilly to clearify "Web 2.0". The application for Web 2.0 treats web as a platform. The following Web 2.0 principles are introduced in the beginning of [2]:

"The value of the software is proportional to the scale and dynamism of the data it helps to manage."
"Leverage customer-self service and algorithmic data management to reach out to the entire web, to the edges and not just the center, to the long tail and not just the head."
"The service automatically gets better the more people use it."

The following are central principles which enable some Web 2.0 applications to survive from Web 1.0 Era:

* Hyperlinking is the foundation of the web. As users add new content, and new sites, it is bound in to the structure of the web by other users discovering the content and linking to it. Much as synapses form in the brain, with associations becoming stronger through repetition or intensity, the web of connections grows organically as an output of the collective activity of all web users.
* Yahoo!, the first great internet success story, was born as a catalog, or directory of links, an aggregation of the best work of thousands, then millions of web users. While Yahoo! has since moved into the business of creating many types of content, its role as a portal to the collective work of the net's users remains the core of its value.
* Google's breakthrough in search, which quickly made it the undisputed search market leader, was PageRank, a method of using the link structure of the web rather than just the characteristics of documents to provide better search results.
* eBay's product is the collective activity of all its users; like the web itself, eBay grows organically in response to user activity, and the company's role is as an enabler of a context in which that user activity can happen. What's more, eBay's competitive advantage comes almost entirely from the critical mass of buyers and sellers, which makes any new entrant offering similar services significantly less attractive.
* Amazon sells the same products as competitors such as Barnesandnoble.com, and they receive the same product descriptions, cover images, and editorial content from their vendors. But Amazon has made a science of user engagement. They have an order of magnitude more user reviews, invitations to participate in varied ways on virtually every page--and even more importantly, they use user activity to produce better search results. While a Barnesandnoble.com search is likely to lead with the company's own products, or sponsored results, Amazon always leads with "most popular", a real-time computation based not only on sales but other factors that Amazon insiders call the "flow" around products. With an order of magnitude more user participation, it's no surprise that Amazon's sales also outpace competitors.


Another notable features of Web 2.0 are the blog which is a "dynamic websites" in diary format and RSS which allow the blog viewers to subscribe to the blog.

Every Web 2.0 internet application has a database managed by SQL The data is the core of Web 2.0 application, and application owner such as Amazon need to do the following to compet in the marcket:

Amazon relentlessly enhanced the data, adding publisher-supplied data such as cover images, table of contents, index, and sample material. Even more importantly, they harnessed their users to annotate the data, such that after ten years, Amazon, not Bowker, is the primary source for bibliographic data on books, a reference source for scholars and librarians as well as consumers. Amazon also introduced their own proprietary identifier, the ASIN, which corresponds to the ISBN where one is present, and creates an equivalent namespace for products without one. Effectively, Amazon "embraced and extended" their data suppliers.

Google Maps acts as a data recource and provide data to other applications:
We expect to see battles between data suppliers and application vendors in the next few years, as both realize just how important certain classes of data will become as building blocks for Web 2.0 applications.

Two fundamental changes in the business model in Web 2.0 era:
1. Operations must become a core competency.
2. Users must be treated as co-developers.

Web 2.0 applications are developed in lightweight programming models:
1. Support lightweight programming models that allow for loosely coupled systems.
2. Think syndication, not coordination.
3. Design for "hackability" and remixability.

[2] summarizes the core competencies of Web 2.0 companies:

* Services, not packaged software, with cost-effective scalability
* Control over unique, hard-to-recreate data sources that get richer as more people use them
* Trusting users as co-developers
* Harnessing collective intelligence
* Leveraging the long tail through customer self-service
* Software above the level of a single device
* Lightweight user interfaces, development models, AND business models

[3] states that "searching" is one great challenge of the Internet OS era, but searching needs a lot of effort:
Cracking the search problem requires massive, ongoing crawling of the network, the construction of massive indexes, and complex algorithmic retrieval schemes to fin the most appropriate results for a user query.

Internet operating system must provide access to various type of media, and these media types requires common technology infrastructure: "access control", "caching", and "instrumentation and ayalytics".

Article [1] and [2] have shown a trand the software application is evolving from workstation-dependent application to web application. Article [3] and [4] have shown that the Web/Internet has started to take the role as a operating system while the other companys are offering on-line services to the Internet user. The data on web is not owned and controled by a specific individual organization, but it can be maintained and shared by a body of Internet users. Other hardware/software applications are built to utilize this data. In the Web 2.0 era, Web-as-operating-system architecture is slowly taking over the workstation-dependent-operating system architecture.

Wednesday, May 26, 2010

Summary for readings on May 26th

The reading set on May 25th is about varieties of major open source projects. Since I will lead the talk in BSD open source project, the focus of this summary is primarily on BSD. "Twenty Years of Berkeley Unix" from the reading set is a history of BSD project development, and it also explains how different BSD distribution were originated:

• In 1973, Thompson and Ritchie from AT&T’s Bell Labs presented the first Unix paper at the Symposium on Operating Systems Principles at Purdue University. At the Symposium, Bob Fabry, a professor from the University of California at Berkeley, became interested in Unix. So, he requested to obtain a copy to experiment in Berkeley

• In January 1974, the first Unix installation done at Berkeley was on PDP-11/45 machine with Version 4 of Unix.

• In early 1977, Bill Joy put together the first "Berkeley Software Distribution" (BSD), and this distribution included the Pascal system and “ex” editor.

• By mid-1978, the “Second Berkeley Software Distribution” (2BSD) was out, and it included the enhanced Pascal System, “vi” edtor, and termcap. Termcap was a function allowed to consolidate the screen management by using a small interpreter to redraw the screen.

• In early 1978, Berkeley purchased a VAX machine, obtained Ver. 7 Unix from the Bell Labs, and installed Ver. 7 Unix in VAX machine. However, Ver. 7 Unix did not take advantage of VAX’s virtual memory capability.

• By January 1979, 32/V was written with virtual memory functionality and replaced Ver. 7 Unix installed on VAX. Thus, Ozalp Babaoglu wrote the virtual memory functionality was written to support Ver. 7 Unix

• By the end of 1979, software such as the Pascal, vi editor, the C shell, and the smaller programs from the 2BSD distribution were ported to VAX, and this combination resulted the “Third Berkeley Software Distribution” (3BSD). Basically, 3BSD is 2BSD with virtual memory function. Noted that, Bell Labs decided to commercialize the future Unix versions and could no longer support Unix research within the Unix community. So, Berkeley quickly stepped into the role to support the Unix community’s further research.

• In the fall of 1979, Fabry made a proposal to the Defense Advanced Research Projects Agency (DARPA) about writing an enhanced version of 3BSD for the use of DARPA community

• By April 1980, Fabry began to lead CSRG to work on the DARPA’s project.

• By October 1980, 4BSD was produced. 4BSD included Pascal compiler, the Franz Lisp system, and an enhanced mail handling system, and it supported auto reboot, a 1K block file system.

• By June 1981, 4.1BSD was released. 4.1BSD was the tuned-up version of 4BSD with addition of auto configuration code. Noted that CSRG’s original intent was to call 4.1BSD the “5BSD”, but it was refused by AT&T due to customer confusion between their commercial Unix release "System V" and "5BSD".

• In April 1982, 4.1aBSD was released for internal use only. 4.1aBSD was integrated with TCP/IP protocols. There were several new applications allowing the local users to access to remote resources over the network.

• In June 1982, 4.1bBSD was produced by the implementation of the new file system fully integrated into the 4.1a kernel.

• In April 1983, 4.1cBSD was released.

• In August 1983, 4.2BSD was released. The 4.2BSD was improved from 4.1cBSD with the following modification:
- The new signal facilities
- Networking support
- Standalone I/O system to simplify the installation process
- Integrating the disc quota facilities
- Documentation updated
- Tracking the bugs from the 4.1c release

• In June 1985, 4.3BSD release was announced at the Usenix conference. The 4.3BSD distribution was a tuned version of 4.2cBSD. However, the release plans were halt by BBN, because BBN was complaining that Berkeley never updated 4.2BSD with the final version of their networking code. BBN claimed that Berkeley should replace the TCP/IP in 4.3BSD with BBN implementation. (NOTE: don’t really understand the relationship between BBN and Unix). As a result, the 4.3BSD distribution included both Berkeley and BBN implementations. DARPA decided to continue to use Berkeley implementation install of BBN implementation, because research showed that Berkeley implementation worked more efficiently. 4.3BSD was finally released in June 1986.

• In June 1998, 4.3BSD-Tahoe was released. A promising computer model of the time call the Power 6/32 was to replace the aging VAX machines. BSD kernel was splitting into machine-dependent and machine-independent parts. This resulted 4.3BSD-Tahoe distribution. Splitting the kernel into machine-dependent and machine-independent parts was an important step to allow BSD to be ported to numerous other architectures. Users of 4.3BSD-Tahoe needed to get an AT&T source license, because

• In June 1989, Networking Release 1 of BSD was out, and it was the first freely-redistributable BSD from Berkeley. Before Networking Release 1 existed, the users always have to first get an AT&T source license. BSD user requested that Berkeley break out the networking code and utilities and provide them under licensing terms that did not require an AT&T source license. Its licensing terms gave Networking Release 1 like free software:

The licensee could release the code modified or unmodified in source or binary form with no accounting or loyalties to Berkeley.
Although Berkeley charged a $1,000 fee to get a tape, anyone was free to get a copy from anyone who already had received it (that tape). Indeed, several large sites put it up for anonymous ftp shortly after it was released.”


• In early 1990, 4.3BSD-Reno was released. 4.3BSD-Reno used the virtual memory system from MACH operating system done at Carnegie-Mellon University. The other major addition to the system at the time was a Sun-compatible version of the Network Filesystem (NFS).

• In June 1991, Networking Release 2 was a freely-redistributable expansion included more BSD code which was not under AT&T source license. CSRG re-wrote the Unix utilities from scratch based solely on their published description. However, Networking Release 2 did not include 6 kernel files that cloud not be trivially rewritten.

• 6 months later after the release of Networking Release 2, Bill Jolitz improved Networking Release 2 with written replacements for the 6 missing files and called it 286/BSD. He put it up for anonymous FTP and let anyone to download it for free. However, Jolitz could not keep up the debugging of 386/BSD, and thus, the 386/BSD users formed NetBSD group to pool their collective resources to help maintain and enhance the 386/BSD. Their contribution to 386/BSD resulted the NetBSD distribution. The NetBSD group chose to emphasize the support of as many platforms as possible and continued the research style development done by the CSRG

• FreeBSD was another BSD group formed a few months after the NetBSD group, and they support just the PC architecture and to go after a larger and less technically advanced group of users. FreeBSD built elaborate installation scripts and began shipping their system on a low cost CD-ROM. In addition, FreeBSD supports Linux emulation mode that allows Linux binaries to run on FreeBSD platform.

• In the mid-90’s, OpenBSD spun off from the NetBSD group. Their technical focus was aimed at improving the security of the system. OpenBSD was selling CD-ROMs with many of the ease-of-installation ideas from the FreeBSD distribution.

• In January 1992, Berkeley Software Design Incorporated (BSDI) developed commercial version of Net Release 2 with 6 missing kernel and began selling the source code and binary file for $995. BSDI promoted the campaign with phone number, 1-800-ITS-UNIX. Short after, Unix System Laboratories (USL), a subsidiary of AT&T, sent a letter to (BSDI) and demanded that BSDI to stop promoting their product as Unix. Then BSDI stopped using the phone number and changed their advertisements explaining that BSDI’s product was not Unix. However, USL was still not satisfied and filed lawsuit to stop BSDI selling their product. At the hearing for the injunction, BSDI claimed that they should not hold responsible for files distributed by the University of California. The judge agreed with BSDI’s argument and told USL to restate their complaint based solely on six kernel files or he would dismiss the lawsuit. Then, USL decided to refill the lawsuit again both BSDI and the University of California to stop the distribution of Net Release 2. The result of the lawsuit was that 3 files were removed from the 18000 that made up Networking Release 2, and a number of minor changes were made to other files. In addition, the University agreed to add USL copyrights to about 70 files, although those files continues to be freely redistributed.

• In June 1994, 4.4BSD-Lite was released under terms identical to those used for the Networking releases. The term allow free redistribution in source and binary form subject only to the constraint that the university copyrights remain intact and that the University receive credit when others use the code. At the same time, 4.4BSD-Encumbered was also released which still required recipient to have USL source license.

• Since the lawsuit settlement also stipulated that USL would not sue any organization using 4.4BSD-Lite as the base for their system, BSDI, NetBSD, and FreeBSD had to restart their code base with the 4.4BSD-Lite source into which they then merge their enhancements and improvements.

• In 1995, 4.4 BSD-Lite Release 2 was released. Following the release of 4.4BSD-Lite Release 2, the CSRG was disbanded.

Wednesday, May 19, 2010

Summary for readings on May 19th

Reading set on May 19th is on BSD license, open source movement, and open source licenses. In [1], it mentions that, upon releasing a software under BSD license, the user must follow restrictions:


"one should not claim that they wrote the software if they did not write it and one should not sue the developer if the software does not function as expected or as desired."


In addition, a BSD license can also include a clause to restrict the use of the project name. [1] introduces the term derivative work and provides its definition as following:


"derivative work is a product that is based on, or incorporates, one or more already existing works."


It is obvious to see that the primary goal of BSD license is to protect the copyright of the derivative work by setting restriction on the users. One evidence to shows that BSD license is advantageous to proprietary software devlopers:


"BSD-style licenses do not require that derivative works based on BSD-licensed software make the source code for such derivative works freely available....This allows the direct incorporation of code from open source projects into closed source projects."


This defies fundamental principle of GPL in term of software sharing since GPL prohabits closure of source codes. So, BSD is serving software developers whom intend to derive closed source softwares from the existing open source software. One interesting point made in [1] is that the software developers tend to make their source eventually available, the author of [1] did not provide reason why the software developers would do so.

[1] indicates that the original BSD license contained an advertising clause to display software information and acknowledgment that the product "includes software develped by the University of California, Berkeley and its contributors". However, there are two problems with use of advertising clause:


1. "This (advertising clause) could easily result in large and cumbersome acknowledgments for products with numerous contributors and for software distributions consisting of multiple individual projects."
2. "...legal incompatibility with the terms of the GPL. This is because the GPL prohibits the addition of restrictions beyond those that it already imposes. Thus it was necessary to segregate GPL and BSD-licensed software within projects."

Therefore, this advertising clause has been taken out to avoid the above problems.

[2] is written by Eric Raymond. Raymond is the author of “A Brief History of Hackerdom” in 1996, an editor of the 1st edition of The New Hacker’s Dictionary in 1990, and is considered to be a hacker culture’s historian and resident ethnographer. He described his first encountering to Linux in late 1993 was a shocking experience. Raymond is surprised how Torvalds and his teams had put together Linux with more features exceeding the original Unix. In the following years, he has studied the methodology of how Torvalds and his team have succeeded and beaten the Brooks’s Law:


“…as your N number of programmers rises, work performed scales as N but complexity and vulnerability to bugs rises as N-squared.”


After the closed observation and experimenting, Raymond wrote “The Cathedral and the Bazaar” (CatB). Raymond’ CatB has inspired Netscape to decide the release of its browser source code to the public. Netscape has done so to compete against Microsoft’s Internet Explorer and Microsoft’s plan “to bend the Web’s protocols away from open standards and into proprietary channels that only Microsoft’s servers would be able to service”. Raymond then has helped Netscape to develop the Mozilla Public License and found the Mozilla organization.

The term “open source” is invented in a meeting with Raymond, Torvalds, and the others. Free software is to replace “free software”, as:


“It seemed clear to us in retrospect that the term "free software" had done our (hackers) movement tremendous damage over the years.”


In the “open source” campaign, Raymond has taken the role to promote “free software” movement in front of press. A few months after Netscape has released its source code, Oracle and Informix have also decided to support Linux. The Mircosoft’s “Halloween Documents” have created a new surge of interest in the open source phenomenon.

After reading through [2], I personally think Raymond’s free software campaign was a success. As the result of the campaign, he mentioned that “Netscape’s browser reversed its market-share slide and began to make gains against Internet Explorer”. Comparing to Stallman, the main ingredient of Raymond’s success is that Raymond has allied with Netscape in the competition against Microsoft, and, at the same time, he also promoted open source movement within the Netscape browser’s user community.

[3] is on the open source definition by Bruce Perens. He is the leader of the Debian project. He states the rights of programmers who contribute to Open Source:


“The right to make copies of the program, and distribute those copies.”
“The right to have access to the software's source code, a necessary preliminary before you can change it.”
“The right to make improvements to the program.”


Perens claims that free software is not a new concept. This concept is popularized by Stallman when he founded
Free Software Foundation and GNU project. The Open Source Definition includes many Stallman’s free software ideas. Raymond stated the idea for Open Source, because he is “concerned that conservative business people were put off by Stallman's freedom pitch” and “this was stifling the development of Linux in the business world”. Perens edited the Debian Free Software Guidelines to form the Open Source Definition.

As an example of a non-open software turns into open software by public demand, Petern specified the “KDE, Qt and Troll Tech” case:


“KDE applications were themselves under the GPL, but they depended on a proprietary graphical library called Qt, from Troll Tech. Qt's license terms prohibited modification or use with any display software other than the senescent X Window System”


This conflict ends when Troll eventually announced the release of open-source version of Qt.
One worth noting in The Open Source Definition (Version 1.0) is that author can give permission to modify the original source code. When the program is made available to the user, the source code can be attached to the program or the source code can be downloaded via the Internet. Modification can also take the form of patch files which leaves the source code unchanged.
[3] suggests uses of different licenses to author with different interests. For example, on the issue of whether to take the modification to the private or not:


“If you want to get the source code for modifications back from the people who make them, apply a license that mandates this. The GPL and LGPL would be good choices. If you don't mind people taking modifications private, use the X or Apache license.”


Or on the issue whether to allow merge the program with the proprietary software:


“If so (allow the merge with proprietary), use the LGPL, which explicitly allows this without allowing people to make modifications to your own code private, or use the X or Apache licenses, which do allow modifications to be kept private.”


It is interesting to see that variety of licenses is listed with different with feature in [3]. Petern does not really forbid use of other licenses outside of open source license, and he merely suggests use difference licenses to meet the authors’ needs. However, he does urge to choice a appropriate license instead of create a new license for the new software, because “fragments of one program cannot be used in another program with an incompatible license.”

[4] is written by Stallman. Stallman claims that it is a misinterpretation to refer “open source” as “free software” nowadays, but the philosophy of open source is not the same as the one of free software in the way that open source does not mention the freedoms of user as free software would describe. Stallman also objects to that idea that open source movement is “marketing campaign for free software”.


“The two terms (“open source” and “free software”) describe almost the same category of software, but they stand for views based on fundamentally different values. Open source is a development methodology; free software is a social movement. For the free software movement, free software is an ethical imperative, because only free software respects the users' freedom. By contrast, the philosophy of open source considers issues in terms of how to make software “better”—in a practical sense only.”


Stallman also describes open source is different to free software that:


“it (open source) is a little looser in some respects, so the open source people have accepted a few licenses that we consider unacceptably restrictive.”


Further more:


“The idea of open source is that allowing users to change and redistribute the software will make it more powerful and reliable. But this is not guaranteed. Developers of proprietary software are not necessarily incompetent. Sometimes they produce a program that is powerful and reliable, even though it does not respect the users' freedom.”


In Stallman’s view, free software values user freedoms and ethics more than open source does. Open source still wants to restrict user in sake of producing power and reliable software:


“They (leaders of open source) figured that by keeping quiet about ethics and freedom, and talking only about the immediate practical benefits of certain free software, they might be able to “sell” the software more effectively to certain users, especially business.”


[5] is a letter by Bruce Perens to Debian community and co-founder of Open Source Initiative. Perens was in Raymond’s team in the open source campaign. In the letter, Perens is showing the concern about schism of “free software” community and “open source” community. He feared that open source definition is moving away from the free software ideal and the regard of user’s freedoms to use software. In conclusion, Perens was showing that he “tended toward promotion of Free Software rather than Open Source”, because “Eric Raymond seems to be losing his free software focus.” Perens has being mentioned in a number of documents in this reading set, it is interesting how he changed his position between “Free Software” and “Open Source”.

REFERENCE
[1] BSD License
[2] OSV: The Revenge of the Hackers
[3] OSV: The Open Source Definition
[4] Why Open Source Misses the point of Free Software (FSF)
[5] Categories of Free and Non-Free Software (FSF)
[6] Talk about Free Software again (Bruce Perens)

Monday, May 17, 2010

Summary for readings on May 17th

Reading set on May 17th is about GNU Licenses. [1] introduces the new features in latest GPLv3. GPLv3 supports the original 4 freedoms of free software is stated as following:
* the freedom to use the software for any purpose,
* the freedom to change the software to suit your needs,
* the freedom to share the software with your friends and neighbors, and
* the freedom to share the changes you make.

[1]’s main purpose is to introduce new features in GPLv3. Besides the four freedoms for free software, GPLv3 also provides other mechnism to protect the software's copyleft from tivoization, laws prohibiting free software, and discriminatory patent deals. GPLv3 is shown to be compatible with other licenses to enable free software sharing between commuity using GPLv3 and other communities using other free software licenses. GPLv3 provides users both the object codes and the coorsponding source codes:

"...when you host object code on a web or FTP server, you can simply provide instructions that tell visitors how to get the source from a third-party server. Thanks to this new option, fulfilling this requirement should be easier for many small distributors who only make a few changes to large bodies of source."

One interesting change which has been mentioned in GPLv3 is that the term "convey" is used to replace and imply the term "distribution" from previous GPL verions. The change is made due to:

"...copyright laws in other countries use the same word, but give it different meanings. Because of this, a judge in such a country might analyze GPLv2 differently than a judge in the United States."

[2] is FAQ on GPL, and it inclouds basic user rights and caution of what not to do.
The following are a few pints which I found them interesting.
Individual or organization can use the modified GPLed codes internal without releasiing it to the public. When the modified code is released to the public, the following action should be taken:

"...if you release the modified version to the public in some way, the GPL requires you to make the modified source code available to the program's users, under the GPL."

Therefore, upon releasing a modefied GPLed software, both object code and source code should be made available to the public. GPL urges authors not to use non-free libraries/softwares in their new softwares:

"If it depends on a non-free library to run at all, it cannot be part of a free operating system such as GNU; it is entirely off limits to the Free World. "

If the software is already coded with non-free libraries/softwares, it is suggested that:

"please mention in the README that the need for the non-free library is a drawback, and suggest the task of changing the program so that it does the same job without the non-free library."

A number of points are mentioned in [2]. There is a clear boundary between free software and proprietary software/non-free software. Proprietary software/non-free software cannot be applied within the free software. GPL also requires the source code to be released to public upon releasing of a GPL'ed software, and this gives the software user the freedome to modify the software.
[3] expresses the FSF’s concern regarding the use LGPL for it permits library to be applied in proprietary programs. LGPL is another version of GPL. However, this document provides a case when it is appropreate to use LGPL:

"when a free library's features are readily available for proprietary software through other alternative libraries. In that case, the library cannot give free software any particular advantage, soit is better to use the Lesser GPL for that library."

Basicaly, it is okay when a new library whom has simiular functions as other libraries to be copyrighted under LGPL. This document also provides the case to copyright a software under GPL to benefit the free software community as whole:

"However, when a library provides a significant unique capability, like GNU Readline, that's a horse of a different color. ... Releasing it (Readline) under the GPL and limiting its use to free programs gives our community (free software community) a real boost."


Personally, I think [3] is not really suggesting software developers should abandon LGPL. Instead, it is suggesting a strategy to benetit free software developers more and still help proprietary software developers at minimum cost from the free software community.

REFERENCE
[1] A Quick Guide to the GPLv3 (FSF)
[2] GPL FAQ (FSF)
[3] Why shouldn't use LPGL (FSF)

Wednesday, May 12, 2010

Summary for Readings on May 12th

The theme of reading set on May 12th is on "Licensing".

[1] defines "freedom" of free software in depth, and software must be qualified with the following essential freedoms to be free:
* The freedom to run the program, for any purpose (freedom 0).
* The freedom to study how the program works, and change it to make it do what you wish (freedom 1). Access to the source code is a precondition for this.
* The freedom to redistribute copies so you can help your neighbor (freedom 2).
* The freedom to distribute copies of your modified versions to others (freedom 3). By doing this you can give the whole community a chance to benefit from your changes. Access to the source code is a precondition for this.

The above four freedoms [1] are applied software in binary or executable forms for the user's benefits over the programmer's.

One interesting notion is that free software can be applied for commercial use, and the programmer is allowed to sell copies of their works. At the end of [1], FSF still shows concern that there are people who would misinterpret free software in FSF's respective. Personally, I think the general public is not to be blame for misinterpret free in term of monetary value, since people would consider something "free" as being given away with no monetary value. Perhaps, there would be a better term to replace "free" in order to explain free software principles to the general public in a better way.

[2] begins with a fictional story in the future where people are not allowed to share books and their actions on computers are monitored. Through this story, Stallman is trying to convincing readers that our society is gradually heading to that direction and becoming the reality as in the story. He supports his argument by stating laws have been proposed to restrict the user's right to read globally:

"In the US, the 1998 Digital Millenium Copyright Act (DMCA) established the legal basis to restrict the reading and lending of computerized books (and other works as well). The European Union imposed similar restrictions in a 2001 copyright directive. In France, under the DADVSI law adopted in 2006, mere possession of a copy of DeCSS, the free program to decrypt video on a DVD, is a crime."

In addition, Microsoft keeps signatures and encryption keys of personal computers with Vista in the effort of control these personal computers. The scheme was referred by Stallman as "treacherous computing" [2]. Microsoft is doing this to impose Digital Restrictions Management (DRM) on Vista users. To fight back, Stallman established the DefectiveByDesign.org campaign.

One interesting note is that SPA is the abbreviation of Software Protection Authority in Stallman's fictional story while it is actually referring to Software Publisher's Association in reality. Stallaman describes SPA, both in his story and in reality, as the security police entity which is threatening user's freedom to use his computer.

[3] states the original purpose of copyright is to benefit users, not for the sake of authors. Stallman address copyright in US laws as following:

"that copyright is not a natural right of authors, but an artificial concession made to them for the sake of progress."

Instead of allowing the authors and publishers to maximize profit by monopolizing their products in the market, Stallman specifies the purpose of copyright which is stated in US Constitution as following:

"...to provide an incentive for authors to write more and publish more. In effect, the government spends the public's natural rights, on the public's behalf, as part of a deal to bring the public more published works."

The "copyright bargain" decides the benefit is supposed to go to the reading public. However, Stallman has noticed a number of faults regarding the copyright law. The first problem, referred as "striking a balance" error, with copyright law spotted by Stallman is that the US copyright law is not equivalent to the copyright bargain as it is supposed to:

"it assumes that all kinds of interest in a policy decision are equally important. This view rejects the qualitative distinction between the readers' and publishers' interests which is at the root of the government's participation in the copyright bargain."

So, the copywrite law assumes reader's interest is equal to publisher's interest which is not as the same interpretation as it is in the copywrite bargain. The concesequences of copyright law's mis-interpretation places the publisher in a favourable position than it would to readers:

"The copyright bargain places the burden on the publishers to convince the readers to cede certain freedoms. The concept of balance reverses this burden, ..."

When public pays tax to the government, the government should buy something for the public with the best possible price. In term of copyright policy, Stallman states that the government spends public's freedom in the copyright bargain. Thus, the government should put public's interest on top of publisher's interest.

The second problem is "maximizing one output" means to maximize the number of published works. Stallman introduces the principle of "diminishing returns":

"The first freedoms we should trade away are those we miss the least, and whose sacrifice gives the largest encouragement to publication. As we trade additional freedoms that cut closer to home, we find that each trade is a bigger sacrifice than the last, while bringing a smaller increment in literary activity.

In another words, maximizing publication makes the reader sacrifice most of freedom to encouragement to publication. [Note: this point is quite vague]

The third problem is "maximizing publishers' power" where the publishers make copyright cover every imaginable use of a work. Stallman supports this argument with the following example:

"...Shakespeare borrowed the plots of some of his plays from works others had published a few decades before, so if today's copyright law had been in effect, his plays would have been illegal."

Feared by Stallman, the 3 problems in copyright give the publishers more power and control over the readers, even through the copyright is supposed to benefit the readers originally and to serve the public's interest. For example, this result introducing S. 483, a 1995 bill to increase the term of copyright by 20 years. Even Constitution's view has changed to be in favour to the publisher's interests more than the interests of the public. This shows in the meeting of Stallman with Congressman Barney Frank:

"...I (Stallman) asked him, “But is this in the public interest?” His (Frank) response was telling: “Why are you talking about the public interest? These creative people (industry) don't have to give up their rights for the public interest!..."

[4] is about "intellectual property". Intellectual property was first expressed by World Intellectual Property Organization founded in 1967. Stallman describes it as following:

'...to toss copyright, patents, and trademarks—three separate and different entities involving three separate and different sets of laws—into one pot and call it “intellectual property”'

Stallman says intellectual property causes confusion and generalizes about issues that are not relevant to each others.

Both [6] and [7] are relevant to "copyleft". Copyleft is a licensing mechanism to keep GNU software free in the public domain:

"Copyleft says that anyone who redistributes the software, with or without changes, must pass along the freedom to further copy and change it. Copyleft guarantees that every user has freedom."

Copyleft intends to perform the reversed action of copywight in respect to software freedom:

'Proprietary software developers use copyright to take away the users' freedom; we use copyright to guarantee their freedom. That's why we reverse the name, changing “copyright” into “copyleft.”'

There are three types of copyleft licenses, namely GPL, LGPL and :

"...the specific distribution terms that we use for most software are contained in the GNU General Public License ....An alternate form of copyleft, the GNU Lesser General Public License (LGPL) , applies to a few (but not all) GNU libraries....The GNU Free Documentation License (FDL) is a form of copyleft intended for use on a manual, textbook or other document to assure everyone the effective freedom to copy and redistribute it,..."

Through [7], Stallman strongly urges that any improved code of GPL-covered software has be been a free software to be contributed to the community, otherwise it is not released at all. Stallman addresses this point with GNU Objective C example:

"...NeXT initially wanted to make this front end proprietary; they proposed to release it as .o files, and let users link them with the rest of GCC, thinking this might be a way around the GPL's requirements. But our lawyer said that this would not evade the requirements, that it was not allowed. And so they made the Objective C front end free software."

[8] is about software patent and how it could become a obstacle to software development. The software patents are considered part of "Intellectual Property" [4] which is biased in Stallman's view. Stallman is strongly against lumping copyrights, patent, and trademark altogether to form intellectual property:

"None of them has anything in common with any of the others. Their origins historically are completely separate. The laws were designed independently. They covered different areas of life and activities. The public policy issues they raise are completely unrelated."

To be specific, Stallman differentiates copyrights and patents:

"Copyrights cover the details of expression of a work. Copyrights don't cover any ideas. Patents only cover ideas and the use of ideas. Copyrights happen automatically. Patents are issued by a patent office in response to an application."

There are 3 approaches Stallman has proposed to deal with patent:

1. Avoiding the patent
2. Licensing the patent
3. Overturning a patent in court

To summarize [8], Stallman is saying that the patent office is not professional enough at patenting. By patenting a idea which is too general in a specific field, this would block others to improve and advance that idea since people require to get license from the patent holder.


REFERENCE
[1] Free Software Definition (FSF)
[2] The Right to Read (FSF)
[3] Misinterpreting Copyright (FSF)
[4] Did You Say "Intellectual Property"? (FSF)
[5] Words to Avoid (FSF)
[6] What is Copyleft? (FSF)
[7] Copyleft: Pragmatic Idealism (FSF)
[8] The Danger of Software Patents (FSF)

Monday, May 10, 2010

Summary for Readings on May 10th

[1] outlined Stallman's motivation for creating a free operating system called GNU. Since the fundamental act of friendship between programmers is sharing of software, to forbid the sharing of software means to break the bond between programmers. Stallman refused to see the breakdown of solidarity within programmers as the software sellers are forbidding the users to share the properietary software with others, so he started writting the GNU operating system. GNU is free is the sense that everyone is permitted to modify and redistribute it.

Stallman is making analogy between software and air. Licensing each copy of software a user uses is like having a breather wearing a gas mask to meter the amount of air she uses if every breath of air is charged by liter. Wearing the gas mask can be intolerable even if the user can afford to pay for the air. Thus, it is the best for the breather to pay the tax to an anir plant and toss away the gas mask to breath the air openly. Since the programmer copies and modifies the software like the breather breathes air, the software ought to be as free.

In Stallman's perspectyive, it is inethical to make profit by restricting software usage. He sees the restriction as a destruction which can reduce the benefit that humanity would derive from the software. If everyone put restriction on the software she has written, the humanity would become poorer from this mutual destruction.

Stallman think people would program with irresistible fascination rather than monetary incentive. He points out people would program from fame and appreciation even if they are making less money than they they could have in other places. Finally, Stallman states a list of ways to make profit without selling the right to use software and to support the software development within the computing-using community..

[2] summarize acadamic life of Stallman and what he has achieve. As a grad student, Stallman is working at MIT AI lab as a programmer and hacker. In the late 70's and early 80's, MIT's hacker culture began to decline, because most of the manufactures stopped distributing source code in order to prevent their softwares being used competitors' hardwares. Softwares were protected by copyright and licenses to forbid the users to distribute the software copies. In 1980, Stallman was refused to access the software of a laser printer. This made Stallman had to use an older printer by modifing the software of the older printer. This incident convinced Stallman that the software users should have the freedom to share the software and to modify the softwares to meet their needs. he also argued that software manufactures' restrictions on softwares are unethical. As results of this incident, Stallman announced he was going to develop a Unix-like operating system called GNU which would be free to distributed. He also promoted the concept of copyleft which is a legal mechanism allows users to modify and re-distribute the software.

[3] descripts the printer incident which has inspired the GNU project. Xerox has donated cutting edge prototype printer to MIT's AI lab, where Stallman was working, to replace the old laser printer. After the new printer was installed and operated for a while, it was found that paper jams happened a lot to the new printer. Stallman had experience solving the similuar problem where he modified the printer software by inserting a software commend to order the computer to monitor the printer periodically and report the users when the paper jam happens. However, as he was inspecting the printer software, Stallman noticed that the printer software is binary files instead of human-readable cource codes. Thus, he was unable to modify the printer software.

In 70's, sharing software amoung programs was just like borrow a power tool or a cup of sugar from the neighbour.The only difference is that the sharing has helped to improve the software by introducing additional features to the software. Stallman has used the "city development" analogy to descript the developing of software where "parts would get replaced and rebuilt" and "new things would get added on" [3]. However, this senario did not work when asking Xerox for the printer software source code, and Xerox did not want to give the source code to Stallman. While visiting Carnegie Mellon University, Stallman went to see a Robert Sproull who used to work in the laser printer field in Xerox, but Sproull refused Stallman's request for the laser printer's software source codes. In 80's, many of his MIT colleagues departed the AI lab and sign nondisclosure agreements, and this actions were considered to be "first step down a lipperty slope" by Stallman. These encounter resulted Stallman's determination of his free software ideal.

[4] is by Eric S. Raymond, a life long friend of Stallman, and this essay is to critisize Willams's biography of Stallman titled "Free as in Freedom" (FAIF). Raymond has written this essay to supply FAIF with additional information about Stallman. Stallman is descripted as "the last true hacker" or as "the sole link between what came before him and the post-1985 hacker culture", but the author of [4] objects this description about Stallman by stating that this is unfair because there were other hackers besides Stallman at the time. Raymond also claimed he was the person who has suggested Emacs to be GNU project's first product. Stallman was noisy about the idea of anti-proprietary software while the author is quiet about it. The author thinks Stallman's idealogy is extreme at the time and would "lead to starving programmers and no good result" [4]. In reality, Stallman's experience was nowhere near as exceptional as FAIF makes it sound. Raymond states that the GNU project has failed to fullfile its central goal and Stallman is lossing his influence to others in the free software community.

Eric S. Raymond started involvement with hacker culture in 1976. Raymond's model of open source community was influenced by a paper by Keith Henson. Raymond is the co-founder of the Open Source Initiative (OSI) in 1998 and took the role to be the ambassador of open source to the public. Some accomplishments of OSI include the releases of Mozilla and Netwcape source codes. Raymond has public dispute with Stallman in the free software movement. He rejected the moral and ethical rhetoric of Stallman and the Free Software Foundation, not because the principles are wrong, but the language used by Stallman does not persuade people to believe the principles.

Bruce Perens co-founded OSI with Raymond. Perens postulates an economic theory for business use of Open Source in his paper. The definition of Open Source was first created by Perens as the Debian Free Software Guildelines in the Debian Social Contract. In 1998, the term "Open Source" was mentioned to replace Stallman's "Free Software" a meeting at VA Linux Systems while ciscuss the promotion of Free Software to business from pragmatic terms. Perens was then recruited by Raymond to work with him on the formation of Open Source. Perens modified the Debian document into the Open Source Definition by replacing Debian references with "Open Source". Linus Torvalds was exposed to UNIX for the first time in 1990 and he began his work on Linux in 1991. Torvalds believes that " Open Source is the only right way to do software" [7], and and he only uses the best tool to do job even if that inclues properietary software. TTorvalds has been criticized for using proprietary software for version control in the Linux kernel. Miguel de Icaza started the GNOME project in 1997 to create a completely free desktop environment and component model for Linux and other UNIX-like operation systems.

The majority of this reading set is about Stallman and his idealogy.Through [1], Stallman clearly states the purpose of the GNU project and support that he is looking for. However, Stallman is unrealistic to suggest that programmers would develop free software. Stallman says programmer can still make living by developing free software with lesser pay, but I seriously doubt that people would program for less money. [3] descripts the event which triggers Stallman to start the GNU project, and [3] is a chapter from a biography about Stallman. [4] is by Stallman's life-long friend, and this essay is to supply additional information to the Stallman biography by author of [3].

REFERENCE
[1] The GNU Manifesto
[2] http://en.wikipedia.org/wiki/Richard_Stallman
[3] For Want of a Printer (Free as in Freedom)
[4] A Fan of Freedom: Thoughts on the Biography of RMS
[5] Eric S. Raymond (Wikipedia entry)
[6] Bruce Perens (Wikipedia entry)
[7] Linus Torvalds (Wikipedia entry)
[8] Migul de Icaza (Wikipedia entry)

Wednesday, May 5, 2010

Summary for Readings on May 5th

[1] consists of Introduction by L. Lessig and The GNU Project by R. Stallman. The Introduction begins by giving us background of Richard Stallman and his ideal. Throught his work, Stallman is trying to convey "free software" concept to the public. Since the software affects the life of users who use it, Stallman claims that the software should be "free" in the sense that the users should have control over the software and modify the software to fit their needs. Free software is given a "copyleft" by means of a licensing method called GPL. The copyleft allows the user to control and modify the free software, and, in addition, other software uses the free software must also be free. The author takes "free society" regulated by law as a example and explains that no society is free if its law is kept secret. In the America law practice, lawyers write briefs to advance their clients' interests in the course of litigations. These briefs are open and free for others to copy and quote by other lawyers in their litigations. On the other hand, if these briefs and arguments were kept secret from public, a society cannot be known as a "free society". In the free society, free source remains open and allows modification and creativity to take place. This should be the same in code writing

[1] also consists an essay by Richard M. Stallman which states the history and development of GNU project. Stallman is the founder of the GNU project who used to work in MIT's AI Lab. Stallman believes that computer users should be free to modify program to meet their needs and free to share the software. Thus, he has developed a Unix-link operation system called GNU, and he also recruited a group of developers to create components and software in GNU. In GNU, software has a "copyleft" which allow the software to be "free". By definition of “free software”, users are given the permissions to run the software, copy the software, modify the software, and distribute the modified version, but no permission to restrict other users to access the software. Through the GNU development process, Stallman has avoided using proprietary software, because he thought the idea of using proprietary software is against his philosophy of free software.

Stallman also mentioned a number of challenges in free software development. First at all, the hardware manufactures tend to keep hardware specification secret, which makes it difficult to write free driver to support these hardware for GNU. Stallman has proposed reverse engineering and use of hardware that is supported by free software. The second challenge is the software using non-free library, because other software using this software would not work in GNU because of missing non-free library. Stallman has proposed to find a free replacement for this software using non-free library. As the third challenge, software patents forbidden certain patented features to be used in free operating system. The proposed solutions are to search for evidence that a patent is invalid, or to find alternative ways to perform the job. As the final challenge, the lacking of documentation makes good software difficult to use. Therefore, when people modify the free software, they need to be conscientious and modify the software manual accordingly.

In 1998, a part of free software has replaced "free software" by "open source" to avoid the confusion of "free" with "gratis". Among these who favored "open source" within the free software community, Stallman has claimed that there are these people who place profit as the priority and set aside the freedom of the software. In conclusion of Stallman’s essay, he has shown his concern that the existence of free software community is threatened by proprietary software manufacturers, and he will keep fighting for the freedom of software.

[2] begins by describing an event in 1997, where leaders in the free software community were assembled to define and to promote "open source" standard. The "open source" licensing allows greater freedom than GPL [1] does. As an open source example, an proprietary software such Netscape browser source code can be modified and then distributed, and, as a return, more users use Netscape browser which give Netscape advantage in its commercial offerings. [2] describes an alliance between industry and academic computer scientists. Even though the new idea may come from the academic computer scientists, [2] has suggests that the industry is the true driven force to produce innovation.

The idea of open source allows replication to be possible. In term of computer science, open source allows users to share source code by means of replication. Through replication, many software developers can inspect the software development and spot any possible bugs, and, thus, it results more robust and stable software. Another advantage of open source is that the software development would not stop when its developer ceases to work on it, because there are always others to carry out the job since all the information relevant to this software development is shared. Hardware brand names such as IBM and Sun have seen this opportunity to sell more of their product by deploying open source Linux and other software into their hardware.

Stallman’s essay in [1] shows that Stallman is in favoured of idea of “free software”, while [2] is in favoured of “open source”. In the principle of “free software”, the software developers are not supposed to make profit from helping others by sharing their source code and use of non-free software would cause problem in the “free software” operating system. On the other hand, “open source” idea is trying to balance between the user and industry and hopefully benefit both. Even though Stallman made his goal of “free software” into reality by founding GNU project, he can achieve his goal quicker with support from industries and their funding. However, industries always want to maximum their profit and make their works secret, and, thus, the software would loss the degree of freedom when involving industries.

Reference

[1] FSFS: pp. 1-32

[2] OSV:Intro