New Page 1

LA GRAMMATICA DI ENGLISH GRATIS IN VERSIONE MOBILE   INFORMATIVA PRIVACY

  NUOVA SEZIONE ELINGUE

 

Selettore risorse   

   

 

                                         IL Metodo  |  Grammatica  |  RISPOSTE GRAMMATICALI  |  Multiblog  |  INSEGNARE AGLI ADULTI  |  INSEGNARE AI BAMBINI  |  AudioBooks  |  RISORSE SFiziosE  |  Articoli  |  Tips  | testi pAralleli  |  VIDEO SOTTOTITOLATI
                                                                                         ESERCIZI :   Serie 1 - 2 - 3  - 4 - 5  SERVIZI:   Pronunciatore di inglese - Dizionario - Convertitore IPA/UK - IPA/US - Convertitore di valute in lire ed euro                                              

 

 

WIKIBOOKS
DISPONIBILI
?????????

ART
- Great Painters
BUSINESS&LAW
- Accounting
- Fundamentals of Law
- Marketing
- Shorthand
CARS
- Concept Cars
GAMES&SPORT
- Videogames
- The World of Sports

COMPUTER TECHNOLOGY
- Blogs
- Free Software
- Google
- My Computer

- PHP Language and Applications
- Wikipedia
- Windows Vista

EDUCATION
- Education
LITERATURE
- Masterpieces of English Literature
LINGUISTICS
- American English

- English Dictionaries
- The English Language

MEDICINE
- Medical Emergencies
- The Theory of Memory
MUSIC&DANCE
- The Beatles
- Dances
- Microphones
- Musical Notation
- Music Instruments
SCIENCE
- Batteries
- Nanotechnology
LIFESTYLE
- Cosmetics
- Diets
- Vegetarianism and Veganism
TRADITIONS
- Christmas Traditions
NATURE
- Animals

- Fruits And Vegetables



ARTICLES IN THE BOOK

  1. Academic Free License
  2. Adaptive Public License
  3. Advogato
  4. Affero General Public License
  5. Africa Source
  6. AKademy
  7. Alternative terms for free software
  8. Anti-copyright notice
  9. Apache License
  10. Apache Software Foundation
  11. APESOL
  12. Apple Public Source License
  13. Artistic License
  14. Association For Free Software
  15. August Penguin
  16. Benetech
  17. Benevolent Dictator for Life
  18. BerliOS
  19. Binary blob
  20. BK02
  21. Blender Foundation
  22. Bruce Perens' Open Source Series
  23. BSD licenses
  24. CeCILL
  25. CE Linux Forum
  26. Clarkson Open Source Institute
  27. Code Breakers
  28. CodePlex
  29. Collaborative software development model
  30. Collaborative Source license
  31. Common Development and Distribution License
  32. Common Public License
  33. Comparison of free software hosting facilities
  34. CONSOL
  35. Copycenter
  36. Copyleft
  37. Creative Commons licenses
  38. Debconf
  39. Debian Free Software Guidelines
  40. Debian Manifesto
  41. Desktop Developers' Conference
  42. Eclipse Foundation
  43. Eclipse Public License
  44. Enterprise open source journal
  45. European Union Public Licence
  46. Everybody Loves Eric Raymond
  47. Forum Internacional Software Livre
  48. Fedora Project
  49. FOSDEM
  50. FOSS.IN
  51. Fossap
  52. Frameworx License
  53. Free content
  54. Free Culture movement
  55. Freedesktop.org
  56. Freely redistributable software
  57. Freepository
  58. Free software
  59. Free Software Award for Projects of Social Benefit
  60. Free software community
  61. Free Software Directory
  62. Free Software Foundation
  63. Free Software Foundation Europe
  64. Free Software Foundation Latin America
  65. Free Software Foundation of India
  66. Free Software Initiative of Japan
  67. Free software license
  68. Free Software Magazine
  69. Free software movement
  70. Free Software Song
  71. Free Standards Group
  72. FSF Award for the Advancement of Free Software
  73. GCC Summit
  74. Gna.org
  75. GNAT Modified General Public License
  76. Gnits Standards
  77. GnomeFiles
  78. GNOME Foundation
  79. GNU Coding Standards
  80. GNU Free Documentation License
  81. GNU General Public License
  82. GNU Lesser General Public License
  83. GNU Manifesto
  84. GNU Savannah
  85. GNU Simpler Free Documentation License
  86. Google Code
  87. Google Summer of Code
  88. Go Open Source
  89. GRASS GIS
  90. Gratis versus Libre
  91. Groklaw
  92. GUADEC
  93. Halloween documents
  94. Hamakor
  95. Historical Permission Notice and Disclaimer
  96. Homesteading the Noosphere
  97. Hurd User Group
  98. IBM Public License
  99. IBM Type-III Library
  100. Intel Open Source License
  101. International Open Source Network
  102. Irish Free Software Organisation
  103. ISC licence
  104. Jargon File
  105. Jimbo Wales
  106. KDE Dot News
  107. KernelTrap
  108. LAMP
  109. LaTeX Project Public License
  110. League for Programming Freedom
  111. Leonard H. Tower Jr.
  112. libpng
  113. Libre Software Meeting
  114. Linus's Law
  115. Linus Torvalds
  116. Linux.conf.au
  117. Linux conference
  118. Linux Expo
  119. Linux Gazette
  120. Linux International
  121. Linux Journal
  122. Linux Kongress
  123. Linux naming controversy
  124. LinuxQuestions.org
  125. LinuxTag
  126. Linux User Group
  127. LinuxWorld Conference and Expo
  128. List of software that uses the MIT License
  129. LiveJournal
  130. Lucent Public License
  131. LXer
  132. MIT License
  133. MozBin
  134. Mozdev.org
  135. Mozilla Add-ons
  136. Mozilla Foundation
  137. Mozilla Public License
  138. MozillaZine
  139. MyOSS
  140. NetHack General Public License
  141. Netscape Public License
  142. NewsForge
  143. New Zealand Open Source Society
  144. NonProfit Open Source Initiative
  145. Non-proprietary software
  146. Nupedia Open Content License
  147. ObjectWeb
  148. Ohio LinuxFest
  149. Ohloh
  150. O3 Magazine
  151. Open Audio License
  152. OpenCola
  153. Open content
  154. Open design
  155. OpenDocument Format Alliance
  156. OpenLP
  157. Open outsourcing
  158. Open Security Foundation
  159. Open Software License
  160. Open-source advocacy
  161. Open Source Applications Foundation
  162. Open-source culture
  163. Open Source Definition
  164. Open Source Developers' Conference
  165. Open-source evangelist
  166. Open source funding
  167. Open Source Geospatial Foundation
  168. Open Source Initiative
  169. Open source movement
  170. Open source movie
  171. Open-source software
  172. Open source software development
  173. Open source software development method
  174. Open Source Software Institute
  175. Open source teaching
  176. Open source vs. closed source
  177. Open-sourcing
  178. O'Reilly Open Source Convention
  179. Organisation for Free Software in Education and Teaching
  180. OSDL
  181. Ottawa Linux Symposium
  182. Patent Commons
  183. PHP License
  184. Pionia
  185. Pionia Organization
  186. Proprietary software
  187. Protecting the Virtual Commons
  188. Public Documentation License
  189. Public-domain equivalent license
  190. Python License
  191. Python Software Foundation License
  192. Q Public License
  193. RealNetworks Public Source License
  194. Reciprocal Public License
  195. Red Hat
  196. Revolution OS
  197. Richard Stallman
  198. RubyForge
  199. Sarovar
  200. Savane
  201. SIL Open Font License
  202. Simputer General Public License
  203. SIPfoundry
  204. Slashdot
  205. Sleepycat License
  206. Software Freedom Day
  207. Software Freedom Law Center
  208. Software in the Public Interest
  209. SourceForge
  210. Spread Firefox
  211. Sun Industry Standards Source License
  212. Sun Public License
  213. Sybase Open Watcom Public License
  214. Tanenbaum-Torvalds debate
  215. Tectonic Magazine
  216. The Cathedral and the Bazaar
  217. The Freedom Toaster
  218. The Free Software Definition
  219. The Perl Foundation
  220. The Right to Read
  221. The Summit Open Source Development Group
  222. Tigris.org
  223. Tivoization
  224. Tux
  225. Tux Magazine
  226. Ubuntu Foundation
  227. Use of Free and Open Source Software in the U.S. Department of Defense
  228. Vores Ol
  229. W3C Software Notice and License
  230. Webgpl
  231. What the Hack
  232. Wizards of OS
  233. WTFPL
  234. X.Org Foundation
  235. Xiph.Org Foundation
  236. Yet Another Perl Conference
  237. Yogurt

 

 
CONDIZIONI DI USO DI QUESTO SITO
L'utente può utilizzare il nostro sito solo se comprende e accetta quanto segue:

  • Le risorse linguistiche gratuite presentate in questo sito si possono utilizzare esclusivamente per uso personale e non commerciale con tassativa esclusione di ogni condivisione comunque effettuata. Tutti i diritti sono riservati. La riproduzione anche parziale è vietata senza autorizzazione scritta.
  • Il nome del sito EnglishGratis è esclusivamente un marchio e un nome di dominio internet che fa riferimento alla disponibilità sul sito di un numero molto elevato di risorse gratuite e non implica dunque alcuna promessa di gratuità relativamente a prodotti e servizi nostri o di terze parti pubblicizzati a mezzo banner e link, o contrassegnati chiaramente come prodotti a pagamento (anche ma non solo con la menzione "Annuncio pubblicitario"), o comunque menzionati nelle pagine del sito ma non disponibili sulle pagine pubbliche, non protette da password, del sito stesso.
  • La pubblicità di terze parti è in questo momento affidata al servizio Google AdSense che sceglie secondo automatismi di carattere algoritmico gli annunci di terze parti che compariranno sul nostro sito e sui quali non abbiamo alcun modo di influire. Non siamo quindi responsabili del contenuto di questi annunci e delle eventuali affermazioni o promesse che in essi vengono fatte!
  • L'utente, inoltre, accetta di tenerci indenni da qualsiasi tipo di responsabilità per l'uso - ed eventuali conseguenze di esso - degli esercizi e delle informazioni linguistiche e grammaticali contenute sul siti. Le risposte grammaticali sono infatti improntate ad un criterio di praticità e pragmaticità più che ad una completezza ed esaustività che finirebbe per frastornare, per l'eccesso di informazione fornita, il nostro utente. La segnalazione di eventuali errori è gradita e darà luogo ad una immediata rettifica.

     

    ENGLISHGRATIS.COM è un sito personale di
    Roberto Casiraghi e Crystal Jones
    email: robertocasiraghi at iol punto it

    Roberto Casiraghi           
    INFORMATIVA SULLA PRIVACY              Crystal Jones


    Siti amici:  Lonweb Daisy Stories English4Life Scuolitalia
    Sito segnalato da INGLESE.IT

 
 



FREE SOFTWARE CULTURE
This article is from:
http://en.wikipedia.org/wiki/Open_source_software_development

All text is available under the terms of the GNU Free Documentation License: http://en.wikipedia.org/wiki/Wikipedia:Text_of_the_GNU_Free_Documentation_License 

Open source software development

From Wikipedia, the free encyclopedia

 

Open source software development is the process by which open source software (or similar software whose source is publicly available) is developed.

Types of open source development

There are several different types of tasks that are generally associated with the development of Open source software. These are:

Writing Code

This task involves working on the source code of the program - fixing bugs, adding new functionality, refactoring, etc. This task is probably the most prestigious of what falls under the umbrella of open source development.

Documentation

This task involves documenting open source programs or libraries. It either involves creating a full-coverage reference documentation, writing a how-to, writing tips or tutorials, or other types of documentation.

Localization and translations

This task involves translating the message emitted by the program or the ones that the user uses in the program's graphical user interface.

It should not be confused with internationalization, in which the not-necessarily localized program is adapted to be able to process text in different (mainly non-English) human languages. Assuming the program is not already internationalized, then internationalizing it usually requires modifications to the code (and so falls under actual programming). This is while translations and localizations can be done without involving much programming.

Translations could also involve the translation of the program's documentation.

Packaging

Open source software by its nature is often deployed on a large number of operating systems, and distributions. Packaging involves preparing a working source or binary package for the program, so it can be more easily deployed on such systems.

Bug reports and feature requests

This type of development involves reporting software bugs, or asking for Feature Requests to the developers who then register it somehow, for further resolution.

Infrastructure

This involves the various tasks of dealing with the project's online or offline infrastructure: managing the project's web-site, download area, bug tracker, version control system, arranging physical meetings of the developers, etc.

Answering questions

This task involves providing knowledgeable answers to questions raised by the people who are trying to use the open source project. (See also the "How To Ask Questions The Smart Way" document).

Other types

There may possibly be other types of activities that fall under the umbrella of open source development.

Types of open source projects

One can distinguish several different types of open source projects. First, there is the garden variety of software programs and libraries. They are standalone pieces of code. Some might even be dependent on other open source projects. These projects serve a specified purpose and fill a definite need. Examples of this type of project include the Linux kernel, the Firefox web-browser and OpenOffice.org office suite of tools.

Distributions are another type of open source project. Distributions are collections of software that are published from the same source with a common purpose. The most prominent example of a "distribution" is an operating system. There are a large number of Linux distributions (such as Debian, Fedora Core, Mandriva, Slackware, etc.) which ship the Linux kernel along with many user-land components. There are also other distributions, like ActivePerl, the Perl programming language for various operating system, and even the OpenCD and cygwin distributions of open-source programs for Microsoft Windows.

Other open source projects, like the BSD derivatives, maintain the source code of an entire operating system, the kernel and all of its core components, in one revision control system; developing the entire system together as a single team. These operating system development projects closely integrate their tools: more so than in the other distribution-based systems.

Finally, there is the book or standalone document project. These items usually do not shipped as part of an open source software package. The Linux Documentation Project hosts many such projects that document various aspects of the GNU/Linux operating system. There are many other examples of this type of open source project.

Starting an open source project

There are several ways in which work on an open source project can start:

  1. An individual who senses the need for a project announces the intent to develop the project in public. The individual may receive offers of help from others. The group may then proceed to work on the code.
  2. A developer working on a limited but working codebase, releases it to the public as the first version of an open-source program. The developer continues to work on improving it, and possibly is joined by other developers.
  3. The source code of a mature project is released to the public, after being developed as proprietary software or inhouse software.
  4. A well-established open-source project can be forked by an interested outside party. Several developers can then start a new project, whose source code then diverges from the original.

Eric Raymond observed in his famous essay "The Cathedral and the Bazaar" that announcing the intent for a project is usually inferior to releasing a working project to the public.

It's a common mistake to start an own project when contributing to an existing similar project would be more effective (NIH syndrome). To start a successful project it is very important to investigate what's already there.

Participants in OSS development projects

Main article: Open-source software#Participants in OSS development projects

Participants in OSS development projects fall into two broad categories: the Core and the Peripheral.

The Core or Inner Circle are developers who modify the primary code that constitutes the project.

The Peripheral usually consists of users of the software. They report bugs, submit fixes, and suggest changes.

The participants can be divided into the following:

  1. Project leaders who have the overall responsibility (Core). Most of them might have been involved in coding the first release of the software. They control the overall direction of individual projects.
  2. Volunteer developers (Core / Periphery) who do actual coding for the project. These include:
    • Senior members with broader overall authority
    • Peripheral developers producing and submitting code fixes
    • Occasional contributors
    • Maintainers who work on different aspects of the project
  3. Everyday users (Periphery) who perform testing, identify bugs, deliver bug reports, etc.
  4. Posters (Periphery) who participate frequently in newsgroups and discussions, but do not do any coding.

Projects often exhibit an early geographical trend, even if there is international interest. For example, most of the core founders of the KDE Desktop Environment were German.

Tools used for open source development

Communication channels

Developers and users of an open source project are not all necessarily working on the project in proximity. They require some electronic means of communications.

E-mail

E-mail is one of the most common forms of communication among open source developers and users. Often, electronic mailing lists are used to make sure e-mail messages are delivered to all interested parties at once. This ensures that at least one of the members can reply to it (in private or to the whole mailing list).

A small project may have only one mailing list, but as it grows it often spawns several, each for a different purpose. Common mailing lists purposes include:

  • Announcements - a small-volume mailing lists dedicated for project announcements, and usually with a restricted or moderated who-can-post policy.
  • Commits - a mailing list in which all the check-ins to the revision control system are sent for verification by the peer developers.
  • Development - a mailing list dedicated to discussing the development of the code itself, as opposed to making use of the product.
  • User - a mailing list dedicated to helping users of the product with their problems.

Instant messaging

In order to communicate in real time, many projects use an instant messaging method such as IRC (although there are many others available). IRC is especially suitable because the project can set up one or more IRC channels for discussions among its participants as well as for users to get help. The Freenode IRC network has been especially popular for hosting channels for open source projects. There has been a lot of activity on other networks, some of which are also dedicated to open-source projects. Sometimes a project will use communication channels on more than one network.

Developers communicate using other instant messaging protocols, but IRC seems to be preferred. Many developers like the ease and transparency of IRC's multi-person chatrooms.

Web forums

Web forums have recently become a common way for users to get help with problems they encounter when using an open source product. To a lesser extent, they have been useful as ways for developers to communicate regarding the development of the core code, but most hardcore and experienced developers still tend to prefer e-mails over web forums.

Wikis

Wikis have become common as a communication medium for developers and users. They are used to collaboratively edit documents and keep track of other resources. Since the web was a somewhat late introduction to the open source development scene, and wikis even more so, the concept is still not as common as it could potentially become. Wikis often pose problems as a communication channel, because it is harder to have an electronic dialog using them. They are often dedicated as a resource for having easy-to-modify collaborative documents.

Software engineering tools

Version control systems

Copied from Open source software

Main article: Revision control

In OSS development the participants, who are mostly volunteers, are distributed amongst different geographic regions so there is need for tools to aid participants to collaborate in the development of source code.

Concurrent Versions System (CVS) is a prominent example of a source code collaboration tool being used in OSS projects. CVS helps manage the files and codes of a project when several people are working on the project at the same time. CVS allows several people to work on the same file at the same time. This is done by moving the file into the users’ directories and then merging the files when the users are done. CVS also enables one to easily retrieve a previous version of a file.

The Subversion revision control system (svn) was created to replace CVS. It is quickly gaining ground as an OSS project version control system.

There are many other version control systems.

Bug trackers and task lists

Most large-scale projects require a bug tracker (usually web or otherwise Internet based) to keep track of the status of various issues in the development of the project. A simple text file is not sufficient, because they have many such bugs, and because they wish to facilitate reporting and maintenance of bugs by users and secondary developers. Some popular bug trackers include:

  • Bugzilla - a sophisticated bug tracker from the Mozilla house. Web-based.
  • Mantis - a web-based PHP/MySQL bug tracker.
  • Trac - integrating a bug tracker with a wiki, and an interface to the Subversion version control system.
  • Request tracker - written in Perl. Given as a default to CPAN modules - see rt.cpan.org.
  • GNATS - The GNU Bugtracking system.
  • SourceForge and its forks provide a bug tracker as part of its services. As a result many projects hosted at SourceForge.net and similar services default to using it.

Build tools

Other tools

Web sites

Download areas

Common development methodologies

Refactoring, Rewrites and Other Revamps

Often Open source developers feel that their code requires a revamp. This can be either because the code was written or maintained without proper Refactoring (as is often the case if the code was inherited from a previous developer), or because a proposed enhancement or extension of it cannot be cleanly implemented with the existing codebase. A final reason for wishing to revamp the code is that the code "smells bad" (to quote Martin Fowler's Refactoring book) and does not meet the developer's standards.

There are several kinds of revamps:

  1. "Partial Rewrites" implies that the code is moved from one place to another, methods, functions or classes are extracted, duplicate code is eliminated and so forth - all while maintaining an integrity of the code. Such refactoring can be done in small amounts (so-called "continuous refactoring") to justify a certain change, or one can decide on large amounts of refactoring to an existing code that last for several days or weeks.
  2. "Partial rewrites" involve rewriting a certain part of the code from scratch, while keeping the rest of the code. Such partial rewrites have been common in the Linux kernel development, where several subsystems were rewritten or re-implemented from scratch, while keeping the rest of the code intact.
  3. Complete Rewrites involve starting the project from scratch, while possibly still making use of some old code. A good example of a complete rewrite was the Subversion version control system, whose developers started from scratch: they believed the codebase of CVS (an older attempt at creating a version control system), was useless and needed to be completely scrapped. Another good example of such a rewrite was the Apache web server, which was almost completely re-written between version 1.3.x and version 2.0.x.

Joel Spolsky's essays "Things you should Never do, Part I" and "Rub a Dub Dub" gave some arguments against complete or even partial rewrites in the context of a commercial software. This did not completely eliminate them from the open source world, but has made some people more conscious of their inherent problems and risks.

Automated tests

Software testing is an integral part of open source development. While many open source packages were known to be released with some glaring bugs even in some stable releases, most open source software eventually becomes very stable.

Traditionally, in most of the open source there was a general lack of awareness for automated tests, in which on writes automated test scripts and programs that run the software and try to find out if it behaves correctly. Recently, however, this awareness has been growing, possibly because of influence from Extreme Programming, and because of some high-profile software packages that incorporated such test suites.

Most open source software is either command line or alternatively APIs and as such is very easy to test automatically.

Publicizing a project

Software directories and release logs

Freshmeat, directory.fsf.org, etc.

Articles

O'Reilly Net, Linux Weekly News, IBM developerworks, etc.

Mailing lists

External links

  • Software Release Practice HOWTO by Eric Raymond
  • http://opensource.wikia.com a new Open Source wiki project
Retrieved from "http://en.wikipedia.org/wiki/Open_source_software_development"