Open Source Tools Nep Syllabus
Open Source Tools Nep Syllabus
Words of Concern
Point to be As Allan Bloom has said "Education is the movement from darkness to light".
Through this handbook, I have tried to illuminate what might otherwise appear as black
boxes to some. In doing so, I have used references from several other authors to synthesize
or simplify or elaborate information. This is not possible without omitting details that I deem
trivial while dilating the data that I consider relevant to topic. Every effort has been made to
avoid errors. In spite of this, some errors might have crept in. Any errors or discrepancies
noted maybe brought to my notice which I shall rectify in my next revision.
This handbook is solely for educational purpose and is not for sale. This handbook shall not
be reproduced or distributed or used for commercial purposes in any form or by any means.
Thanks,
Raghu Gurumurthy
Interface College of Computer Applications (ICCA)
Davangere
Bibliography
1. Kailash Vadera, Bhavyesh Gandhi, "Open Source Technology", Laxmi Publications Pvt
Ltd 2012, 1st Edition.
2. Fadi P. Deek and James A. M. McHugh, "Open Source: Technology and Policy",
Cambridge Universities Press2007.
Syllabus:
Course Outcomes
• Recognize the benefits and features of Open Source Technology and to interpret,
contrast and compare open source products among themselves
• Use appropriate open source tools based on the nature of the problem
• Write code and compile different open-source software.
• iApache
• Berkeley Software Distribution
• Mozilla(Firefox)
• Wikipedia
• Joomla
• GNU Compiler Collection
• LibreOffice
• A software for which source code is freely available with a license to study, change and
further distributed to any other individual for any purpose is called open source software.
• Open Source Software is something which you can modify as per your needs, share with
others without any licensing violation burden. When we say Open Source, source code
of software is available publicly with Open Source licenses which allows you to edit
source code and distribute it.
• The key fact that makes open source software (OSS) different from proprietary software
is its license. As copyright material, software is almost always licensed. The license
indicates how the software may be used. OSS is unique in that it is always released
under a license that has been certified to meet the criteria of the Open Source Definition.
In contrast, creators of proprietary software usually do not make their source code
available to others to modify.
• Open source software is unique in that it is always released under a license that allows
users to access, modify and redistribute the source code. Source code is a specialized
language that allows software developers to create and modify computer programs. If
you do not have legal access to the source code, then the program cannot be changed
or moved to a different kind of computer.
Free software
• Free software means software that respects users' freedom and community. Roughly, it
means that the users have the freedom to run, copy, distribute, study, change and
improve the software.
• Free software may be packaged and distributed for a free; the "free" refers to the ability
to reuse it, modified or unmodified, as part of another software package. As part of the
ability to modify, users of free software may also have access to and study the source
code. Thus, “free software” is a matter of liberty, not price.
• To understand the concept, you should think of “free” as in “free speech,” not as in “free
beer”. We sometimes call it “libre software,” borrowing the French or Spanish word for
“free” as in freedom, to show we do not mean the software is gratis.
• The concept of free software is the brainchild of Richard Stallman, head of the GNU
Project in 1985. He meant Free as in freedom. Because the word free in English means
without cost the terms open source was created. The best known example of free
software is Linux, an operating system that is proposed as an alternative to Windows or
other proprietary operating systems.
• Debian is an example of a distributor of a Linux package. Free software is easily
confused with freeware, a term describing software that can be freely downloaded and
used but which may contain restrictions for modification and reuse.
• The four essential freedoms of Free Software A program is free software if the program's
users have the four essential freedoms
• The freedom to run the program as you wish, for any purpose.
• The freedom to study how the program works, and change it so it does your
computing as you wish. Access to the source code is a precondition for this.
• The freedom to redistribute copies so you can help others.
• The freedom to distribute copies of your modified versions to others. 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 following are a list of the advantages of opting for open-source software.
Since Linux and open source solutions are easily portable and compressed, it takes
lesser hardware power to carry out the same tasks when compared to the hardware
power it takes on servers, such as, Solaris, Windows or workstations. With this less
hardware power advantage, you can even use cheaper or older hardware and still get
the desired results.
• High-quality software
Open source software is mostly high-quality software. When you use the open source
software, the source code is available. Most open source software are well-designed.
Open source software can also be efficiently used in coding. These reasons make open
source software an ideal choice for organizations.
• No vendor lock-in
IT managers in organizations face constant frustration when dealing with vendor lock-
ins'. Lack of portability, expensive license fees and inability to customize software are
some of the other disadvantages. Using open source software gives you more freedom
and you can effectively address all these disadvantages.
• Integrated management
By using open source software, you can benefit from integrated management. Open
source software uses technologies, such as, common information model (CIM) and web
When you use open source software, you would no longer need to worry about licenses.
Open source software enables you to install it several times and also use it from any
location. You will be free from monitoring, tracking or counting license compliance.
Using open source software can help you minimize your expenses. You can save on
licensing fees and maintenance fees. The only expenses that you would encounter
would be expenditure for documentation, media and support.
• Abundant support
You will get ample support when you use open source software. Open source support is
mostly freely available and can be easily accessed through online communities. There
are also many software companies that provide free online help and also varied levels of
paid support. Most organization who create open source software solutions also provide
maintenance and support.
Linux and open source software can be easily scaled. With varied options for clustering,
load balancing and open source applications, such as email and database, you can
enable your organization to either scale up and achieve higher growth or consolidate and
achieve more with less.
• Licensees are Free to Use Open Source Software for Any Purpose Whatsoever
An open source license may not interfere in any way with the use of the software by
licensees. Restrictions on use, such as "for research and noncommercial purposes only,"
are not allowed in open source licenses. The phrase free to use is also intended to
mean, "without any conditions that would impede use," such as a requirement for the
licensee to report uses to the licensor, or to disclose the means or manner of internal
uses of the software. Note also that the first word, licensees, means that open source
software is only available under the terms of a license to which each licensee must
agree.
• Licensees are Free to Make Copies of Open Source Software and to Distribute them
without Payment of Royalties to a Licensor
This principle does not mean that a licensor cannot sell open source software. It merely
says that a licensee need not pay the licensor for additional copies he makes himself,
even if those copies are distributed to others. As a practical matter, this open source
principle drives the price of mere copies of open source software toward its marginal cost
of production and distribution.
• Licensees are Free to Create Derivative Works of Open Source Software and to
distribute them without payment of Royalties to a Licensor
Quality software is built upon the foundations of earlier software. Many advocates of free
and open source software contend that the requirement for open source licenses to
permit the unhindered creation and distribution of derivative works is essential to meet
the goal of the intellectual property laws as stated in the U.S. Constitution, "to promote
the progress of science and the useful arts." Under this open source principle, a licensor
cannot charge a royalty for the privilege to create and distribute derivative works, or
require a licensee to pay a royalty for copies of a derivative work that are distributed, or
impose any restrictions on the type or character of those derivative works.
• Licensees are Free to Access and use the Source Code of Open Source Software
Open source licenses may not impose conditions or restrictions on other software with
which the licensed software is merely combined or distributed. This prevents restrictions
regarding what other software can be placed on computer storage media or in computer
memory: Open source is one of many possible business and licensing models for
software distribution, and customers must be free to select and use those software
alternatives. This open source principle does not mean that licensors cannot impose
reciprocal conditions upon licensees who create and distribute derivative works, for the
activity of creating derivative works is not the same as merely combining software on
media or on computers.
Standard Requirements
An "open standard" must not prohibit conforming implementations in open source software.
• The Criteria
To comply with the Open Standards Requirement, an "open standard" must satisfy the
following criteria. If an "open standard" does not meet these criteria, it will be
discriminating against open source developers.
• No Intentional Secrets
The standard MUST NOT withhold any detail necessary for interoperable
implementation. As flaws are inevitable, the standard MUST define a process for fixing
flaws identified during implementation and interoperability testing and to incorporate said
changes into a revised version or superseding version of the standard to be released
under terms that do not violate the OSR.
• Availability
The standard MUST be freely and publicly available (e.g., from a stable web site) under
royalty-free terms at reasonable and non-discriminatory cost.
• Patents
All patents essential to implementation of the standard MUST
• Be licensed under royalty-free terms for unrestricted use, or
• Be covered by a promise of non-assertion when practiced by open source software
• No Agreements
There MUST NOT be any requirement for execution of a license agreement, NDA, grant,
click-through, or any other form of paperwork to deploy conforming implementations of
the standard.
• No OSR-Incompatible Dependencies
Implementation of the standard MUST NOT require any other technology that fails to
meet the criteria of this Requirement."
• Cost Effective
Generally an open source software is free to use. The users does not require to pay for
the usage. It can be installed free of cost without any upfront expenses. Nevertheless the
quality is not compromised. Especially for businesses with tight budget, using open
source software can lead to significant amount of cost savings.
• Reliability
High reliability can be ensured when using an open source software. The open source
software is created by expert developers and guided by them. Therefore, there is very
less chance that someone will identify flaws in the software. In addition to that, the
software is monitored by a set of experts who is able to fix faults in a lesser time
duration.
• Flexibility
Unlike in proprietary software, users in open source software does not experience
vendor lock-ins. Even if there are irrelevant features, the users can effectively remove
them. This is because the source code is free to modify. Users do not need to stick to the
provider's requirements.
• Scalability
Similar to a Linux operating system, an open source software can also be scaled easily.
According to the needs, an open source software can be scaled up and down so that
businesses could achieve their desired results.
• Licensing
Open source software offers convenient license schemes. Thus, the users do not need
to worry about monitoring and tracking. And regardless of the location, an open source
software could also be used. Moreover, it does not pose any restrictions on the number
of times it can be installed.
• Error Free
Once a user identifies a bug, they could report it to the community so that the community
could fix it as soon as possible. Releasing a patch will not take longer time since the
source code is available to everyone.
• User Friendly
Not all the open source applications are easy to use. The Graphical User Interface may
not be user friendly for the users to understand. Only tech savvy people will be able to
understand this interface.
If used in an organization, the employees must be trained accordingly to operate it. For
this the companies need to hire trainers all which can cause additional expenses.
• Security
As mentioned earlier, the source code present in an open source software is free to edit.
The problem comes when someone misuses the code for their own benefits. While many
of them use it for improving the software, others could invite vulnerabilities such as
identity theft and malicious transfers.
• Compatibility
Some applications cannot support both open source software and proprietary software. If
proprietary hardware needs to run on an open source machine, it requires third party
drivers. However, that cannot guarantee that the hardware will work on the host
machine. Therefore, before purchasing a hardware it is recommended to check it is
supported by the open source application.
• Maintenance
Even though an open source software does not contain any upfront costs, still it is
equipped with some hidden costs. Especially with maintenance. If you face any problems
in the implementation process, a third party support may be needed which could charge
additionally. This is a problem for businesses that is unaware of the hidden costs.
• Drivers
Finding required drivers for hardware components is not an easy task because the
respective driver must be supporting the current operating system you use. Hence, a
new hardware component that is installed could fain to provide its functionalities.
• Support
When using an open source software, it is common to experience technical issues.
Unlike a proprietary software, an open source software does not offer extensive support.
For fixing this people look for support services online.
Since an open source software is created by numerous developers, there is not just one
person liable for an error. The only option available is to contact the provider or rely on
third party support services.
Licenses
• The simplest explanation is that open source licenses are legal and binding
contracts between the author and the user of a software component, declaring
that the software can be used in commercial applications under specified
conditions.
• The license is what turns code into an open source component. Without an open
source license, the software component is unusable by others, even if it has been
publicly posted on GitHub.
• Each open source license states what users are permitted do with the software
components, their obligations, and what they cannot do as per the terms and conditions.
This might sound pretty straight forward, but there are over 200 open source licenses out
there so good luck keeping them all organized. Varying in complexity and requirements,
it is up to organizations to choose which licenses are most compatible with their policies
to ensure that they remain compliant.
• These licenses are intended to permit, and indeed, to encourage the contributions of
others to the project. Nonetheless, one of the first open development projects relied, at
least at the beginning, on a relatively small number of closely-knit developers. This
project was Richard Stallman’s plan to develop a complete operating system modeled
after the Unix operating system but written entirely in free code.
• The main problem in this context is that open source licenses are subjective. Their
interpretation depends on the technical usage of the licensed software. Therefore, it’s
difficult to determine the legal risks of using open source software, especially for
developers, who are not usually legal experts. What developers need is a broad
classification of licenses based on the risks they pose in terms of legal compliance.
GNU is an operating system that GNU's not Unix. GNU stands for Gnu's Not Unix, and it is
pronounced as “g-noo”.
• GNU General Public License is the most popular open source license around. Richard
Stallman created the GPL to protect the GNU software from becoming proprietary, and it
is a specific implementation of his "copyleft" concept.
• GPL is a copyleft license. This means that any software that is written based on any GPL
component must be released as open source. The result is that any software that uses
any GPL open source component (regardless of its percentage in the entire code) is
required to release its full source code and all of the rights to modify and distribute the
entire code.
The GPL (General Public License) specifies the conditions under which all GNU software is
ditributed. The LGPL (Library General Public License) was the corresponding license used
for sub-program libraries (please see Why you shouldn't use the Library GPL for your next
library for an explanation).
• The library itself will be updated by the community, since changes have to be contributed
back.
• Permits use of the library in proprietary programs thus enabling the possibility to not
access all software that uses the library.
• Competitors might use the software and create concurrence commercial products
Generally integrators prefer LGLP license against GPL.
Copyright
• The grant of an exclusive right to make copies, license, use, or otherwise exploit an
original work of art, or over the creation of an original design. For example, assume you
bought a DVD of Star Wars – A New Hope, you can use this DVD according to specific
rules as defined on the package like playing it at your home with your friends.
• You cannot do anything with it that is not allowed by the publisher like copying the DVD
and give a copy to your friend. This is because the publisher has the copyright of the
movie and will probably sue you if they know you are copying the DVD.
Copyleft
• Copyleft is a general method for making a program free software and requiring all
modified and extended versions of the program to be free software as well. The simplest
way to make a program free is to put it in the public domain, uncopyrighted. This allows
people to share the program and their improvements if they are so minded.
• But it also allows uncooperative people to convert the program into proprietary software.
They can make changes, many or few, and distribute the result as a proprietary product.
People who receive the program in that modified form do not have the freedom that the
original author gave them; the middleman has stripped it away.
• For example, Free-software licenses that use “weak” copyleft include the GNU Lesser
General Public License and the Mozilla Public License. Examples of non-copyleft
(“permissive”) free-software licenses include the X11 license, Apache license, and the
BSD licenses.
Patents
• Unlike the holder of an Open Source license, the owner of a patent has exclusive
rights over the patented software. No one else can make, use, modify, or sell
patented software, and the source code is not available to the public.
• Patent rights give the holder control over who uses software and for what purpose.
Though software developers can protect their work using both copyrights and patents,
copyrights only protect the code itself. Patents, however, protect the program's
functionality.
• Patents are better than copyrights for software developers because they protect the
program regardless of the code and language used. In comparison, copyrights aren't
very practical for developers. If you want to release Open Source software while
retaining some rights, a copyright only gives you power over someone who steals your
work verbatim.
Contracts
• Fedora operating system is an open-source operating system that is based on the Linux
OS kernel architecture. A group of developers was developed the Fedora operating
system under the Fedora Project. It is sponsored by Red Hat. It is designed as a secure
operating system for the general-purpose. Fedora operating system offers a suite of
virus protection, system tools, office productivity services, media playback, and other
desktop application.
• According to the Fedora Project, it is always free to use, modify, and distribute. Fedora
OS is integrated with applications and packaged software. This operating system
enhances the abilities of the software. It offers the same consistency, procedures, and
functionality as a traditional OS. Fedora operating system is the second most commonly
used distribution of Linux after Ubuntu.
• There are over 100 distributions based on the Fedora operating system, including the
XO operating system of Red Hat Enterprise Linux.
Ubuntu
ArgoUML is an open source Unified Modeling Language (UML) modeling tool created in
1998. It includes support for all standard UML 1.4 diagrams. ArgoUML supports other open
standards like XMI, SVG or OCL. ArgoUML runs on any Java platform and is available in ten
languages.
System Requirements: ArgoUML is a Java based application that needs Java 2 JRE or JDK
version 1.4 or higher and 10MB of disk space
License & Pricing: Open Source, Eclipse Public License (EPL) 1.0.
ArgoUML can be installed using the Java Web Start procedure connected to ArgoUML home
page. For Windows you can also download a setup file that will install it in 30 seconds and
launch the application, creating a desktop icon.
Documentation
The documentation (http://argouml.tigris.org/documentation/index.html) is impressive with
different formats of a quick start and a user manual (403 pages!) that are available in
English, Spanish and German. Additional ArgoUML extensions documentation and UML
resources are also listed in the documentation section. An on-line tool tour allows getting a
quick overview of ArgoUML interface and features.
Configuration
The configuration of ArgoUML is separated in different places. You have a classical
"settings" menu where you are able to configure the user interface options like language or
appearances. It is also there that you enable or disable the associated modules, like the
Java code generator and some of their settings. The "Critique" menu allows to toggle design
critics that create "todos" elements during your modeling activity and to adjust the
importance of critics.
Features
ArgoUML also provides code generation for Java, C++, C#, PHP4 and PHP5. It also enables
reverse engineering from Java. External modules have been developed to complement
ArgoUML in specific areas. They provide generation of database schemas or code in other
languages like Ruby or Delphi. You can find a list of most of these modules
on http://design.tigris.org/
In this evaluation, we will concentrate only on the UML diagramming features of ArgoUML.
User Interface
The screen of ArgoUML is split in four different panes. The "explorer" pane shows
relationships between diagrams and design items according to the selected perspective. The
"ToDo" pane contains the tasks that could be completed. The main window is the drawing
window where you create your diagrams. On the bottom, you find a "details" pane where you
can define your diagram items and link them with elements, like a "todo" item or
documentation.
Drawing Diagrams
The modeling process is rather intuitive and smooth, The only missing feature is an
"undo/redo" capability. The mouse gives you hints on each element that you can place on
your diagram. You can then use the detail pane to describe diagram items and link to other
items like documentation for instance. After each action, your model is assessed and the
"todo" panel on the bottom left is updated. Clicking on one of this item will give you an
explanation about its rationale and how you should act to improve your design. You can
naturally turn off this constant evaluation of your design.
Class Models
Class models are influenced by generation. You can see the generated results as you are
building your class and the generating process influences the design assistance. Diagrams
can be graphically exported in the various formats, so that you can include them in other
documents.
Conclusion
ArgoUML is an active open source project that provides a working tool to support basic UML
modeling activities. The diagramming features are easy to use and provides useful
assistance in the formatting / aligning process. The nicer aspects of ArgoUML lie in its
design assistance features. The design evaluation and checklists provides valuable help to
make sure that your models are well formed. This will be specifically attractive for people
that are learning UML diagrams or don't use them continuously. Beside the modeling
aspects, ArgoUML has also some nice features like code generation and reverse
engineering. I haven't checked these aspects, but if you develop with Java you might be
interested to explore them.
GitHub, the easiest way for developers to write software together, has scaled into a
collaboration of 5.8 million developers across more than 12 million repositories worldwide.
GitHub worked with Fastly to customize their CDN set up, ensuring rapid and efficient
14 INTERFACE BCA COLLEGE, DVG (Site: www.iccadvg.org , Phone no: 8884768574)
delivery of their content. Fastly serves all static assets and sits in front of GitHub.com, Pages
(their website hosting service), and raw.github.com.
Open Source Software (OSS) has been adopted not only for the personal purpose software
products but also for core systems of companies and public institutions. It becomes
indispensable for our society. In order to evolve and grow OSSs, it is important to acquire
not only stakeholders but also contributors widely from outside. Especially, in the case of
large OSS, a large number of contributors are needed. Therefore, it is extremely important to
explore the acquisition mechanism of contributors.
In this research, we try to elucidate the mechanism by analyzing the OSS projects on
GitHub. Although GitHub is an Internet hosting service aimed at supporting software
collaborative development, there are many other uses that actually do not require
contributors, such as free file storage or learning of version control system. To analyze
collaborative software development projects, it is necessary to exclude projects other than
the purpose.
To exclude unrelated use projects, we pay attention on so called contribution file. GitHub has
a common file called contribution file (contributing.md/contributing.txt [1]) to describe the
necessary contribution for the project. The file describes the contribution method that the
project expects so that the applicant can judge whether the applicant participates by seeing
the contents. By extracting the project including this file, we are able to analyze the projects
which intend collaborative software development. In this research, 459 projects including
contribution file were extracted from a GitHub archive. By analyzing these projects, we try to
clarify whether contributors actually decide to participate by checking the file contents. Also
we try to analyze what kind of description is important to acquire contributors.
Data Preparation
In this research, we use data of BOA [5] provided by Iowa State University which is a GitHub
archive (September 2015 Full) to efficiently discover projects that contain contribution files.
The proportion of projects that contain contribution files is extremely low, and if we search
directly from the web, it takes a lot of time. BOA is a huge archive of GitHub Project which
adopted Hadoop's technology, and it can acquire the target Project and its attributes in a
very short time. We searched 7,830,023 projects and found that as of September 2015 only
639 Projects contain contribution file. Since there is no contribution file on the BOA, we
obtained them by using the acquired URL, but as of April 2017 there were only 459 files.
After all, in 7,830,023 projects, we were able to get only 459 contribution file. (0.006%)
Project attributes are obtained from projects where contribution file exist by using GitHub
API. Attributes acquired are mainly items that can be checked on the GitHub web screen
such as Stargazer number (Bookmark), Subscriber number and so on. In order to track
changes over time, we plan to continue to acquire attributes every month.
Bootstrap
As of December 2022, Bootstrap is the 14th most starred project (4th most starred library)
on GitHub, with over 161,000 stars.
Bootstrap is an HTML, CSS and JS library that focuses on simplifying the development of
informative web pages (as opposed to web applications). The primary purpose of adding it to
a web project is to apply Bootstrap's choices of color, size, font and layout to that project. As
such, the primary factor is whether the developers in charge find those choices to their liking.
Once added to a project, Bootstrap provides basic style definitions for all HTML elements.
The result is a uniform appearance for prose, tables and form elements across web
browsers. In addition, developers can take advantage of CSS classes defined in Bootstrap to
further customize the appearance of their contents. For example, Bootstrap has provisioned
for light- and dark-colored tables, page headings, more prominent pull quotes, and text with
a highlight.
Bootstrap also comes with several JavaScript components which do not require other
libraries like jQuery. They provide additional user interface elements such as dialog boxes,
tooltips, progress bars, navigation drop-downs, and carousels. Each Bootstrap component
consists of an HTML structure, CSS declarations, and in some cases accompanying
JavaScript code. They also extend the functionality of some existing interface elements,
including for example an auto-complete function for input fields.
A precompiled version of Bootstrap is available in the form of one CSS file and three
JavaScript files that can be readily added to any project. The raw form of Bootstrap,
however, enables developers to implement further customization and size optimizations.
This raw form is modular, meaning that the developer can remove unneeded components,
apply a theme and modify the uncompiled Sass files.
• Bugzilla is a bug tracking tool that helps to track the issues related to their product.
• Bugzilla tool is written in Perl language, and it uses MySQL database.
• It is a bug tracking tool. However, it can also be used as a test management tool
because it can be linked with other Test case management tools such as Quality Center,
Testlink, etc.
• It is an open source tool, i.e., this tool is available to the users at a free of cost.
Features of Bugzilla
It has Google-like bug search which is simple to use, and it also searches the full text of a
bug.
It provides you a very advanced search system where you can create any type of search
that you want such as time-based searches (For example, you want to see the list of bugs
whose priority has been changed since last two days).
You will get an email if any changes are made in the Bugzilla, and the notifications that you
get on which bug is totally controlled by the user preferences.
Reports and Charts When you search for the bugs, then you can get the bug lists in multiple
formats such as Atom, iCalendor format. The iCalendor format is used when you are using
the time tracking feature in Bugzilla. There are even more formats available in Bugzilla such
as printable format that contains the details of all the bugs, CSV format used for importing
bug list into spreadsheets.
Bugzilla has a system that will send you, users or a group that you specify the results of a
search on a schedule that you have mentioned.
When you are filing a new bug, and when you type the summary for the bug, then the
system looks for similar bugs. If the system finds the similar bugs, then it allows the user to
add themselves in the CC list of one of those bugs instead of creating a new one.
You can send an email to Bugzilla to create a new bug or modify the existing bug. You can
even attach the files to Bug.
Time Tracking
Bugzilla also provides the feature of time tracking. You can determine how many hours a
bug will take to get fixed and you can also even track the hours that you need to spend on
the bug. You can also set the deadline by which the bug needs to be fixed.
Request System
The request system is a way of asking other users to do something with a bug. The user can
either grant the request or deny the request, and Bugzilla will keep track of the answer.
Bugzilla has the ability to move the bug from one Bugzilla installation to another. In Bugzilla,
a bug can also be moved across different versions.
Bugzilla allows you to watch other users. You will also get an email that the user gets from
Bugzilla. This feature is useful when some developer goes for leave then other developer
needs to handle the bug.
Bugzilla provides an advanced reporting system. If you want to know how the database of a
bug looks like, then you can create the two fields across the X-axis and Y-axis. With the help
of search criteria, you can limit the information of a bug. You can also export these reports in
CSV format.
Trac
Trac is an open-source, web-based project management and bug tracking system. It has
been adopted by a variety of organizations for use as a bug tracking system for both free
and open-source software and proprietary projects and products. Trac integrates with major
version control systems including ("out of the box") Subversion and Git. Trac is used, among
others, by the Internet Research Task Force, Django,FFmpeg,jQuery UI, WebKit and
WordPress.
Trac is available on all major operating systems including Windows via Installer or
Bitnami,OS X via MacPorts or pkgsrc, Debian, Ubuntu,Arch Linuxor FreeBSD, as well as on
various cloud hosting services.
Apache
Apache License
• The Apache License is an open source software license released by the Apache
Software Foundation (ASF). It’s a popular and widely deployed license backed by a
strong community. The Apache License allows you to freely use, modify, and distribute
any Apache licensed product. However, while doing so, you’re required to follow the
terms of the Apache License.
• The Apache Group (later named the Apache Software Foundation) released the first
version of its license in 1995, but it’s rare that you’ll come across components that still
carry this license. In 2000, when Berkeley accepted the argument put to it by the Free
Software Foundation and retired their advertising clause from the BSD license and
formed the modified BSD license, Apache did likewise and created the Apache License
version 1.1. Removing the advertising clause meant that the advertising materials of the
derivative works of any Apache licensed product were no longer required to include the
Apache License attribution. It became ok to include the attribution in the documentation
alone. In 2004, the ASF decided to depart from the BSD model a little more radically and
produced the Apache License version 2.0 by granting patents rights and defining solid
definitions of the concepts it uses to make.
• Apache HTTP Web Server is a free and open-source web server that delivers web
content through the internet. It is commonly referred to as Apache and after
development, it quickly became the most popular HTTP client on the web. It’s widely
thought that Apache gets its name from its development history and process of
improvement through applied patches and modules but that was corrected back in 2000.
It was revealed that the name originated from the respect of the Native American tribe for
its resiliency and durability.
• Now, before we get too in depth on Apache, we should first go over what a web
application is and the standard architecture usually found in web apps.
• Apache is just one component that is needed in a web application stack to deliver web
content. One of the most common web application stacks involves LAMP, or Linux,
Apache, MySQL, and PHP.
• Linux is the operating system that handles the operations of the application. Apache is
the web server that processes requests and serves web assets and content via HTTP.
MySQL is the database that stores all your information in an easily queried format. PHP
is the programming language that works with apache to help create dynamic web
content.
• BSD License or the original BSD License and its two variants - the Modified BSD
License (3-clause), and the Simplified BSD License/FreeBSD License (2-clause) are a
family of permissive free software licenses.
• The BSD License lets you freely modify and distribute your software’s code in the source
or binary format as long as you retain a copy of the copyright notice, list of conditions,
and the disclaimer. The original BSD License or the 4-clause BSD License also contains
an advertising clause and a non-endorsement clause (detailed explanation about these
clauses are offered in the following questions).
• The modified BSD License or the 3-clause BSD License was formed by removing the
advertising clause from the original BSD License. Further, the FreeBSD version or the 2-
clause BSD License was formed by removing the non-endorsement clause from the
modified BSD License or the 3-clause BSD License.
Mozilla Firefox
Background
The Mozilla project is an offshoot of the Netscape browser. Readers are encouraged to see
the timeline at http://www. holgermetzger. de/Netscape_History.html for a detailed set of
events relating to Netscape. A longer description of the first round of the browser wars is
available in Cusmano and Yoffie (1998). In short, Mozilla was released as an open source
version of Netscape in January 1998. Since that time, Mozilla has released many versions of
its browsers. Netscape and AOL use its browsers. Firefox is the latest version of the Mozilla
browser.
A small team of three motivated and talented individuals, Blake Ross, AsaDotzler and Ben
Goodger, developed Mozilla Firefox
Compatibility with other operating systems (Linux, Windows and Apple)
System overview
Mozilla and Firefox consist of about two thousand C and C++ source code files (”.c”, ”.cp”
and” cpp” files) and about 0.8 to 0.9 million uncommented lines of code in each release.
Figure 5(a) counts Mozilla and Firefox releases by ULOC, while Figure 5(b) counts NOF, the
number of files. A file is considered to be shared if and only if two versions of the file in the
sibling releases have identical ULOC. It is shown that the overall size of Mozilla and Firefox
releases are relatively stable in terms of NOF and ULOC during the one year and a half
period of time. However, the percentage of shared code changes significantly across some
of the releases.
Complacent Competition: At the time of Mozilla Firefox’ launch, the largest competitor,
Microsoft’s Internet Explorer, had become a static product. Microsoft had made a strategic
decision to link IE to its operating system. What this meant is that newer versions of IE would
only be available on newer versions of Windows. As a result, the only changes to the
product were related to the security vulnerabilities of the product. This lack of product
innovation left the door open for competitors such as Mozilla Firefox. Microsoft’s decision to
bundle the innovation of IE with that of the Windows operating system may prove to have
been a major strategic error. This was especially so since the company is involved in a major
overhauling of their Windows operating system as part of the Longhorn project.
Product Superiority: Many impartial observers agree with Blake and have concluded that
Mozilla Firefox is asuperior alternative to its competitors. Here, I will argue that Firefox offers
three newideas- compatibility, tabbing and better security. Readers are referred to an older
document
http://web.archive.org/web/20040210101506/http://www.mozilla.org/products/firefox/why/)
authored by Ben Goodger for a longer list of features.
Compatibility with other operating systems (Linux, Windows and Apple): Internet Explorer is
compatible only with Windows-based operating systems(specifically Microsoft Windows®
98, Windows 2000, or Windows XP).
In contrast, Firefox is compatible with Linux, Windows and Apple operating systems. This
widens the potential audience for the product.
Security
The use of open source as the development methodology is a sound way to enhance the
security of the product. Open source 18products allow anybody to inspect the code base,
thus enhancing the chances that vulnerabilities and bugs would be detected. There are
some indications that Mozilla Firefox may have its own security flaws, however.
Tabbing: Most browsers open a new link in a new window. Mozilla Firefox introduced a new
feature called tabbing. This allows the user to open multiple pages in one window.
Presence of Marketing Leader: The marketing leader behind Firefox’ campaign is Rob Davis,
a marketing professional with experience in political campaigns (see his web site
http://www.playpolitics.org). Rob contacted the Spread Firefox team after his computer had
been infected by a virus and volunteered his time to run the campaign. His main focus was
on the New York Times advertising campaign.
Volunteer Support
The credit for the success of Firefox must mostly be given to the volunteers for all their hard
work. Since Firefox had released a preview version before its official release, it was able to
ascertain the level of interest in the community. This gave the team considerable confidence
when soliciting funds for the New York Times ad. Volunteers participated in many activities
on the site.
Wikipedia
Wikipedia has more than thirteen million articles in several different languages.
System Specifications:
• Bandwidth (Why Low?): Wikipedia’s processes are extremely simple and basic. While
receiving an enormous amount of constant traffic, Wikipedia only has to send a fixed
page of text and the occasional image.
• CPU (Why Low?): The encyclopedia pages of Wikipedia are very easy to power and
don’t require too many resources. The processing power used most likely powers the
indexing, links, and search databases.
• Disk (Why High?): With the millions of articles available to the public in dozens of
languages, Wikipedia has to have a large amount of disk space in order to store them all.
• RAM (Why Low?): The individual encyclopedia pages are not heavy on content and do
not require a large amount of RAM to be displayed.
• Scalability (Why High?): With a constant flow of traffic and having become a service in
which people rely on, Wikipedia has developed a very scalable and efficient server
solution in order to meet the demands of its website.
Overview
Wikipedia, one of the first online encyclopedias, has come a long way since its beginnings in
2001. Now, just after its ten-year anniversary, Wikipedia has more than thirteen million
articles and over one hundred and sixty different language editions and is currently ranked
number 8 on alexa.com with more than 10% of the world’s Internet users visiting the site.
History
In January 2001, Wikipedia went live. Originally, Wikipedia was only formed as a Wiki to help
in the Nupedia project. Larry Sanger, Wikipedia’s chief instigator, said it originally was an
“idea to add a little feature to Nupedia.” In only two months, Wikipedia had more than a
thousand articles, and by October 2001, that number rose to thirteen thousand.
In December of 2002, Wikipedia’s sister project, Wiktionary, was launched. By January
2003, Wikimedia’s article count exceeded 100,000 articles. In June of the same year, Jimmy
Wales, another founder of Wikipedia, formed Wikimedia, which now manages Wikipedia and
several other sister projects.
In the following January, Wikipedia was shut down for a week after a significant computer
crash. This prompted Wales to start a fundraiser to buy more computers. The nine
computers he bought were then relocated to Florida. By April of that year, Wikipedia had a
quarter of a million articles.
In 2004 and 2005, Wikipedia won many awards and received a significant amount of
recognition. In 2005, it became a top 100 website according to Alexa.com. Wikipedia’s one
millionth article was published in March of 2006 and in just three years that number would
grow to a total of thirteen million articles available in a diverse range of languages
Features
Wikipedia is a free, non-profit online encyclopedia that has surpassed more than 3.5 million
articles in English alone and is one of the most highly trafficked sites on the web. The
articles on Wikipedia are written and edited by thousands of volunteer contributors as it is
funded solely by donations. Wikipedia founders vowed never to have advertisements on its
site, which is a promise they have diligently kept.
Wikipedia features a simple search engine and a consistent format.
System
Wikipedia uses MediaWiki software to run its website. Its main U.S. data center, consisting
of about 300 servers, is located in Tampa, Florida. Wikipedia also has a European data
center in Amsterdam, EvoSwitch, where they have approximately 50 servers. There are also
tentative plans to secure another data center in Virginia. Wikipedia currently uses Ubuntu
Linux 2.6 as their operating system with a standard LAMP package.
Summary
Wikipedia, a non-profit online encyclopedia, has grown from just over a thousand articles at
its beginnings in 2001 to over thirteen million articles in several different languages today.
Wikipedia has an Ubuntu Linux 2.6 operating system and has one U.S. data center in Florida
and one international center in Amsterdam. It was originally formed as a new feature for
Nupedia, but now has several sister projects, such as Wiktionary, under the head
organization, Wikimedia.
Joomla
Joomla is a free and open-source content management system (CMS) for publishing web
content on websites. Web content applications include discussion forums, photo galleries, e-
Commerce and user communities and numerous other web-based applications. Joomla is
developed by a community of volunteers supported with the legal, organisational and
financial resources of Open Source Matters, Inc.
Joomla is written in PHP, uses object-oriented programming techniques and software design
patterns, and stores data in a MySQL database.[3] It has a software dependency on the
Symfony PHP framework. Joomla includes features such as page caching, RSS feeds,
blogs, search, and support for language internationalisation. It is built on a model–view–
controller web application framework that can be used independently of the CMS.
Joomla is designed to be used by people who have basic website creation skills and
requires an Apache–MySQL–PHP server like LAMP or WAMP. Commercially based web
hosting services may include control panels for automatically installing Joomla for their
customers. Joomla may be used to create localhosted-web applications that run on a range
of AMP servers.
GCC stands for “GNU Compiler Collection”. GCC is an integrated distribution of compilers
for several major programming languages. These languages currently include C, C++,
Objective-C, Objective-C++, Fortran, Ada, D, Go, and BRIG (HSAIL).The abbreviation GCC
has multiple meanings in common use. The current official meaning is “GNU Compiler
Collection”, which refers generically to the complete suite of tools. The name historically
stood for “GNU C Compiler”, and this usage is still common when the emphasis is on
compiling C programs. Finally, the name is also used when speaking of the language-
independent component of GCC: code shared among the compilers for all supported
languages.
The language-independent component of GCC includes the majority of the optimizers, as
well as the “back ends” that generate machine code for various processors.
The part of a compiler that is specific to a particular language is called the “front end”.
In addition to the front ends that are integrated components of GCC, there are several other
front ends that are maintained separately. These support languages such as Mercury, and
COBOL. To use these, they must be built together with GCC proper. Most of the compilers
for languages other than C have their own names. The C++ compileris G++, the Ada
compiler is GNAT, and so on. When we talk about compiling one of those languages, we
might refer to that compiler by its own name, or as GCC. Either is correct. Historically,
compilers for many languages, including C++ and Fortran, have been implemented as
“preprocessors” which emit another high level language such as C. None ofthe compilers
included in GCC are implemented this way; they all generate machine code directly. This
sort of preprocessor should not be confused with the C preprocessor, which is an integral
feature of the C, C++, Objective-C and Objective-C++ languages.
Libre Office
LibreOffice is a free and open-source office productivity software suite, a project of The
Document Foundation (TDF). It was forked in 2010 from OpenOffice.org, an open-sourced
version of the earlier StarOffice. The LibreOffice suite consists of programs for word
processing, creating and editing of spreadsheets, slideshows, diagrams and drawings,
working with databases, and composing mathematical formulae. It is available in 115
languages. TDF doesn't provide support for LibreOffice, but enterprised-focused editions are
available from companies in the ecosystem.
LibreOffice uses the OpenDocument standard as its native file format, but supports formats
of most other major office suites, including Microsoft Office, through a variety of import and
export filters.
LibreOffice is available for a variety of computing platforms, with official support for Microsoft
Windows, macOS and Linux and community builds for many other platforms. LibreOffice is
the default office suite of most popular Linux distributions.
It is the most actively developed free and open-source office suite, with approximately 50
times the development activity of Apache OpenOffice, the other major descendant of
OpenOffice.org, in 2015.
LibreOffice Online is an online office suite which includes the applications Writer, Calc and
Impress and provides an upstream for projects such as commercial Collabora Online.
The project was announced and a beta released on 28 September 2010. In the nine months
between January 2011 (the first stable release) and October 2011, LibreOffice was
downloaded about 7.5 million times. In 2015, the project claimed 120 million unique
downloading addresses from May 2011 to May 2015, excluding Linux distributions, with 55
million of those being from May 2014 to May 2015. The Document Foundation estimates that
there are 200 million active LibreOffice users worldwide; approximately 25% are students
and 10% are Linux users, who usually find LibreOffice part of their preferred distribution.