docs/diploma

changeset 37:225669a51b11

new text about free software projects and more
author meillo@marmaro.de
date Thu, 09 Oct 2008 20:59:49 +0200
parents 42a2a3565b89
children 522843ee3895
files thesis/tex/2-FreeSoftwareProjects.tex thesis/thesis.sty
diffstat 2 files changed, 77 insertions(+), 3 deletions(-) [+]
line diff
     1.1 --- a/thesis/tex/2-FreeSoftwareProjects.tex	Wed Oct 08 13:28:47 2008 +0200
     1.2 +++ b/thesis/tex/2-FreeSoftwareProjects.tex	Thu Oct 09 20:59:49 2008 +0200
     1.3 @@ -1,4 +1,75 @@
     1.4 -\chapter{About Free Software projects}
     1.5 -\section{The projects}
     1.6 -\section{The community}
     1.7 +\chapter{About \freesw\ projects}
     1.8  
     1.9 +There are several differences between \freesw\ projects and projects about proprietary software. To understand \freesw\ projects, one needs to understand \freesw\ itself first.
    1.10 +
    1.11 +\section{About \freesw}
    1.12 +The term ``Free Software'' was coined by the \name{Free Software Foundation} (short: \NAME{FSF}), founded by Richard M. Stallman (known as ``RMS'') in 1985. %FIXME: check date
    1.13 +Although various licenses make software free, none of them represents the thinking of \freesw\ like the the \GNU\ \gpl\ (short: \GPL), which was written by Stallman in 1983. One could say, the \GPL\ ``powered'' the \name{Free Software movement}.
    1.14 +
    1.15 +But after all, the \GPL\ was not the first \freesw\ license used. The \name{BSD License} for example is much older; with first occurences around 19xx. %FIXME: insert date
    1.16 +However, nobody talked about ``Free Software'' back then.
    1.17 +
    1.18 +\freesw\ gives freedoms to its users. In contrast to proprietary software restricting the users freedom. The freedoms (or rights) the user has are stated in %FIXME where?
    1.19 +. Namely these are:
    1.20 +\begin{enumerate}
    1.21 +	\item The freedom to use
    1.22 +	\item The freedom to copy and share
    1.23 +	\item The freedom to study the source code
    1.24 +	\item The freedom to modify
    1.25 +	\item The freedom to redistribute (granting the same freedom)
    1.26 +\end{enumerate}
    1.27 +
    1.28 +
    1.29 +\section{The term ``Open Source''}
    1.30 +\name{Open Source Software} often stands for the same as \freesw. But there is an essential difference: \name{Open Source} focuses on the availability of source code, while \freesw\ is about freedoms for people.
    1.31 +
    1.32 +\name{Open Source Software} is a sub... %FIXME: ``untermenge''
    1.33 +of \freesw, meaning: All \freesw\ is \name{Open Source}, but there exists \name{Open Source Software} that is not free.
    1.34 +
    1.35 +
    1.36 +\section{Development of \freesw}
    1.37 +Having source code available and the right to modify it, encouridges programmers to actually do so. Their modifications are %FIXME: ``vielfaeltig''
    1.38 +. Some tailor the software to their needs. Some add features. Some do it just for fun. There are no limitations---whoever wants to, may work on it.
    1.39 +
    1.40 +Since the boom of the internet, \freesw\ typically is developed by an open community of programmers interested in the software. The process of development is watchable by everyone.
    1.41 +
    1.42 +The other, now less common, method is a more closed group, developing in a ``sealed'' room, but releasing finished versions to the public.
    1.43 +
    1.44 +Eric S. Raymond discusses about these methods, which he named \name{the bazaar} and \name{the cathedral}. %FIXME: add reference
    1.45 +
    1.46 +
    1.47 +\section{The role of the community}
    1.48 +%FIXME: this focuses on the ``bazaar'' way!!
    1.49 +\freesw\ projects rise and fall with their community!
    1.50 +
    1.51 +Most \freesw\ programs are developed by a very small group of programmers, often only one person. But they are used by many people. In between the programmers and the users, are people located who are a bit of both. These are the ones that write documentation, find bugs and probably even fix it. They discuss on mailing lists, bulletin boards and \NAME{IRC} chats. The program is often spread by their ``advertising''.
    1.52 +
    1.53 +The \emph{community} consists of the actual developers and all users that contribute to the program. Contribution can be one of the described ways, or others like providing a server for the project website for example.
    1.54 +
    1.55 +\emph{Community} is everyone who is in contact through the project. Be it on the mailing list, the discussion board, or by telling the developers about a new feature wanted.
    1.56 +
    1.57 +There will hardly be a community if no communication channels are available. If the development team does not provide them, there is a chance that enthusiastic %FIXME: better word
    1.58 +users set them up on their own. But this is rare and the program needs to be very popular. %TODO: maybe include an example here (w3m?)
    1.59 +
    1.60 +Projects without a good community tend to die sooner or later.
    1.61 +
    1.62 +
    1.63 +\section{Evolution of a community}
    1.64 +Let us look at the process a community establishes: In most times it's only one who has an idea, in the beginning. He starts developing. When others get in contact with the project, there may be some who are so much interested that they start co-developing. Others report bugs, and some only use the program.
    1.65 +
    1.66 +After some time, one will find a small group of core developers, a larger group of contributers (bugs, patches, documentation) and a very large group of users. The %FIXME: ``verhaeltnisse''
    1.67 +of the groups vary by type of projects, of course.
    1.68 +
    1.69 +One should have that in mind, when starting a \freesw\ project.
    1.70 +
    1.71 +
    1.72 +\section{Creating a strong community}
    1.73 +Building up a good community needs some effort of the main developers.
    1.74 +
    1.75 +First communication channels need to be set up, to enable the growth of a community.
    1.76 +
    1.77 +Second, there is a rule of thumb that should be followed: ``Release early, release often!'' %FIXME: add reference
    1.78 +This means that development should be visible by everyone who is interested in it. Time between work done on the project and its visibility by the public should be kept short, too. This makes it interesting for other developers to join.
    1.79 +For users, (more) stable versions should be released, frequently. Hence they will more likely use the program.
    1.80 +
    1.81 +
     2.1 --- a/thesis/thesis.sty	Wed Oct 08 13:28:47 2008 +0200
     2.2 +++ b/thesis/thesis.sty	Thu Oct 09 20:59:49 2008 +0200
     2.3 @@ -44,6 +44,9 @@
     2.4  	\newcommand{\RFC}{\NAME{RFC}}
     2.5  	\newcommand{\GNU}{\NAME{GNU}}
     2.6  	\newcommand{\unix}{\name{Unix}}
     2.7 +	\newcommand{\freesw}{\name{Free Software}}
     2.8 +	\newcommand{\gpl}{\name{General Public License}}
     2.9 +	\newcommand{\GPL}{\NAME{GPL}}
    2.10  
    2.11  	\newcommand{\nth}{\textsuperscript{th}}
    2.12  	\newcommand{\st}{\textsuperscript{st}}