Document

Open Source Development
INTRODUCTION
About Open Source (OpS)
What is open source software?
 Software that you have access to raw source code –
human-readable C, C++, Perl, etc.
 Files that get compiled down into binary that is
executed by the computer
 This exe allows you to view source files to see why
that darn error message keeps popping up, or how to
make that widget default to a different directory, or
how to add a cool new function
 Once start look at the source, you can look into
becoming open source programmer
cont…
 You can make changes and submit them for others to
look at.
 You can design a new widget to emulate a feature or
a program that you liked on a different system, or to
do something entirely new because you, using
available Open Source software, can look at the code
that drives Linux, or Apache, or the Gimp, or Open
Office, or Mozilla.
Cont..
 You can write code to
 use it
 Improve it
 Hook to it
 Make it do almost anything else
 Then changes can be shared with others as they did
with you
 With open source it is not only OK to copy, to
improve, to use, and to return the source code to the
community of users, but is expected.
Why open source? Question 1
 How is it that a groups of computer programmers
made up of individuals separated by geography,
corporate boundaries, culture, language and other
characteristics, and connected mainly via
telecommunications bandwidth, manage to work
together over time and build complex, sophisticated
software systems outside the boundaries of corporate
structure and for no direct monetary compensation?
Answer
 Collaborative open source software projects such as
Linux, Apache have demonstrated that large and
complex systems of software code can be built,
maintained, developed, and extended in a
nonproprietary setting in which many developers
work in a highly parallel, relatively unstructured
way.
 Puzzle 1 - what will happen to large / small
cooperation
 Puzzle 2 – labor and management of knowledge
Question 2
 Why does the answer to that question matter to
anyone who is not a computer programmer?
Answer
 Open source(OpS) process is a real world,
researchable example of a community and a
knowledge production process that has been
fundamentally changed, or created in significant
ways, by Internet Technology. Understanding OpS
process can generate new perspectives on very old
and essential problems of social cooperation.
 It can provide an early perspective on some of the
institutional, political, and economic consequences
for human societies of the telecommunications and
internet revolutions
The web
 The WWW
 The World Wide Web, abbreviated as WWW or
W3 and commonly known as the Web, is a system
of interlinked hypertext documents accessed via the
Internet.
 With a web browser, one can view web pages that
may contain text, images, videos, and other
multimedia and navigate between them via
hyperlinks.
How it works?
 URL address  browser make socket connection




(network connection) to server with IP address 
using PORT 80 (HTTP)
Other ports for other connections (22 – SSH, 23TELNET)
IP port ≠ physical port (COM1, COM2, USB, printer
etc.)
Server response back with data such as text, image,
Java Applets, PDF, etc.
Content from server can be delivered in many ways:
static, dynamic, embedded
 Client implement Java Script, java applets
 Client can sent data to Common Gateway Interface
(CGI) Protocol
 The server can process data either on


Client side
Server side
 Java script is not same as Java
 Java Script – Netscape
 Java – Sun Microsystems
Serving up static data
 No server programming
 One way content display
Serving up dynamic data
Serving up dynamic data
 Does some sort of server side processing
 Search and display data from database
 Store information on database
 Dynamic page ≠ dynamic HTML
 Dynamic HTML
 Web page that exhibit dynamic behaviour such as pop-up
windows, image rollovers, dynamic clickable menus
 Implemented with Java Scrip and Document Object Model
(DOM)
Serving up embedded data
Serving up embedded data
 Exe code embedded within an HTML file
 Suitable when those working on the web site are
from different backgrounds
 Person knows HTML but not programmer  build
template for the web page
 Programmer add exe code directly into the HTML
file to make the page come alive
 Not static, not quite dynamic, embedded web pages
provide a measure of flexibility
Approaches to embedded programming
 SSI (Server Side Includes) – a simple solution that is
built into Apache, using a syntax that is unique to
SSI
 Embperl –a Perl module that enables an HTML file
to have Perl code embedded within it
 Mason – another Perl module that, like Embperl,
enables an HTML file to have Perl code embedded
within it
 PHP – a language unto itself, Perl-like in its syntax
and providing a rich collection of built in functions to
perform various tasks
What we don’t cover?
 XML – Extensible Markup Language
 Java
 JavaScript
STRENGTHS AND WEAKNESSES OF OPEN
SOURCE
TECHNOLOGY
Strength
 Unlike a commercial software project that requires
adequate funding to get the project started, an open
source software project can be started with very little
funding. If the open source software has a market, other
developers will join the project.
 The open source approach does not require a group of
experienced developers to provide a total solution to
users’ IT problems. It adds required components piece by
piece based on when a component is needed.
 The installation and deployment of open source software
does not require license fees and other service charges.
 Open source software is designed so that it is relatively easy to
include other open source software into the software that you
are currently using.
 Open source software developers are often those who have the
first hand experience. These developers can detect errors in
the source code and fix them right away with the open source
debugging tools.
 Every open source user can be a developer, which means open
source software is supported a very large developer
community for error reporting and problem solving.
 Open source software is often the result of research done by
researchers in higher education institutions. These
researchers not only bring new ideas into the software
development project, but also provide analyses and
improvement of the software.
 Due to the low cost and availability, the open source
technology is very popular among higher education
institutions. It is easier for the students to adopt open source
software in their work and research after they graduate.
 One of the reasons that open source tools have been adopted
by many companies is because of its flexibility. When
technology changes, software needs to follow the change.
Open source software allows users to add or modify the
current code to implement the change.
 After a commercial product is upgraded to a new version, it
often means that the older version of the software is less
supported and soon it brings the end of the older version of
the product. However, for an open source product, there is no
such pressure to stop using it since the open source product
does not depend on the support team of a product vendor.
Weakness
 In general, there is less marketing effort for open
source products. There is only minimal spending on
advertising open source products.
 There is lack of investment on open source products.
 There is lack of well written user manuals for open
source products.