Introduction to Open Source GIS and Web Mapping Kurt Menke, GISP Textbooks Will be provided to you digitally Course Notes: More a course on how to use OS GIS software than learning new GIS concepts. Exception: web mapping You will also learn all about what it means to be free and open source. Course Outline What is Open Source? Desktop applications QGIS SpatiaLite GDAL/OGR GRASS GIS Midterm Web applications Google…is it OpenSource? Mapserver Quiz Cartoweb Final Project: Research a FOSS GIS software and present your findings Course Software Available in the classroom and the CAD Lab Can install at home I can provide installation instructions Course Grading Labs 35% Midterm 25% Quiz 10% Final Project Readings/Attendance 20% 10% Open Source Software (OSS)? Free Software (FS)? FOSS? What does it all mean? The differences are very subtle Open source - focuses on the perceived strengths of its peer-to-peer development model and providing source code Free software - focuses on the philosophical freedoms it gives to users Free and open source software - is an inclusive term which covers both free software and open source software which, despite being similar, have differing histories, cultures and philosophies. Free Software (FS) The free software movement was conceived in 1983 by Richard Stallman to satisfy the need for and to give the benefit of "software freedom" to computer users. Stallman founded the Free Software Foundation in 1985 to provide the organizational structure to advance his Free Software ideas. CopyLeft - says that anyone who redistributes the software, with or without changes, must pass along the freedom to further copy and change it. CopyLeft guarantees that every user has freedom. vs. Freeware Freeware is software that is available at not cost to the end user What is Free Software? “Free" is intended to refer to the freedom to copy and re-use the software, rather than to the price of the software Stallman…”think of free as in free speech, not as in free beer” The Four Kinds of Freedom (for the users of the software) 1) The freedom to run the program, for any purpose. * 2) The freedom to study how the program works, and adapt it to your needs. 3) The freedom to redistribute copies so you can help your neighbor. 4) The freedom to improve the program, and release your improvements to the public, so that the whole community benefits. * Requires access to the source code Open Source Software (OSS) Coined by Eric Raymond in 1998 who thought the Term “Free” would be misunderstood. The source code and certain other rights normally reserved for copyright holders are provided under a software license that meets the Open Source Definition or that is in the public domain. This license permits users to use, change, and improve the software, and to redistribute it in modified or unmodified forms. It is very often developed in a public, collaborative manner. OPEN SOURCE DEFINITION: Open Source Initiative Free Redistribution Anyone who receives the software legally can share all of it with anyone he/she likes without additional payments. Source Code The source code of the software must be distributed as well, or be available at reasonable reproduction cost. Derived Works The modification of the software and the distribution of this derived work must be allowed. Integrity of the Author's Source Code The distribution of modified source code must be allowed although restrictions to ensure the possibility to distinguish the original source code from the derived work are tolerated, e.g. requirement of different names. OPEN SOURCE DEFINITION: Open Source Initiative No Discrimination Against Persons or Groups No Discrimination Against Fields of Endeavor Distribution of License ``The rights attached to the program must apply to all to whom the program is redistributed without the need for execution of an additional license by those parties.'' License Must Not Be Specific to a Product The rights given by the license must not be different for the original distribution and any other one even when it takes place in a totally different context. License Must Not Contaminate Other Software The license must not demand any condition on the software distributed along with the licensed software, e.g. 'distribution only with other opensource software' is not allowed. So….??? Open source software vs. free software Open Source Software and Free Software are different terms for software which comes with certain rights, or freedoms, for the user. They describe two approaches and philosophies towards free software. Open Source and Free Software (or software libre) both describe software which is free from onerous licensing restrictions. Some say: Open Source is a practical software development methodology Free Software is a social movement Most Open Source software is “free” and most Free Software is open source Many now just use the term FOSS = Free and Open Source Software The term Open Source is much more prevalent in popular culture than FOSS which is why I used it in the name of this course. Free and Open Source Software (FOSS) & Free/Libre and Open Source Software (FLOSS) now commonly used to refer to both Other Terms: FreeWare – software available at no monetary cost. Not Open Source. Source Available/Shared Source - source is available for viewing, but it may not legally be modified or redistributed. Has been used by Microsoft. Closed Source – Most commercial proprietary software. Other Terms cont.. Open Standards – a loose term for a standard that is publicly available and has various rights to use associated with it. It may also include various properties of how it was designed (e.g. open process). Examples: OGC (WMS, WFS, WCS), W3C, XML, HTML, CSS, PNG, ODF (open document format)… Protocols: IP (Internet protocol), TCP Open Data – license for contributing to and distributing data Example: Open StreetMap http://www.openstreetmap.org/ Legal Concept - Licensing All FOSS software packages are licensed. The license contains the terms for how the software can be used and distributed FOSS licenses focus on giving users rights FOSS License Examples: GNU, GPL, BSD Proprietary licenses focus on restricting use in specific ways Comparing Development Cycles Proprietary Objective: maximize profits Planning & Development Beta testing (May have to pay for privilege) These cycles are scheduled based on a marketing plan Bugs may or may not be fixed Long-term maintenance contracts appear more desirable Users need good reasons to pay for upgrades…delayed fixes Stable release timed for major events…conferences etc Vendors sell software FOSS Objective: creating stable software that solves a problem Less distinction between “end user” and “developer” No vendors that divide developers from users…communication easier New fixes get out quickly If a good solution isn’t reached the project dies As long as it’s useful it will go on It’s always possible for someone new to come in and pick things up…GRASS Development Philosophy Development Community In the Open Source development community, any skilled individual can contribute to projects in many ways. writing code – development testing features writing user manuals creating training materials Management/Governance of FOSS Projects Can be led by one individual – centralized Can be led by a Steering Committee – democracy May include: Individuals – developers or users Companies Organizations FOSS vs. Proprietary Is one better than the other? To most of us the availability of source code isn’t the most important factor. But the Freedom may be. Beyond that Open Source software must be evaluated in the same ways as proprietary software Evaluations of FOSS software should ask: Will the software meet your needs? Is the project well documented? How big is the user community? How broad is the development community? Is the software modular? Software Examples: FOSS vs. Proprietary FOSS Proprietary Operating Systems Linux Windows / Mac Mobile Operating Systems Android iOS / RIM / Windows Mobile Office Software Open Office Microsoft Office Image Manipulation GIMP Adobe Photoshop Drawing Inkscape Adobe Illustrator Web Browsers FireFox Internet Explorer Web Servers Apache IIS Databases mySQL Oracle PostgreSQL SQL Server Statistics R S GIS Software: FOSS vs. Proprietary FOSS Proprietary GeoSpatial Desktop Quantum GIS ArcGIS MapWindow MapInfo gvSIG Manifold GIS GRASS GIS IDRISI uDig Intergraph Field GIS BeeGIS / Geopaparazzi ArcPAD Remote Sensing OSSIM ERDAS GRASS GIS ENVI Web Mapping MapServer ArcIMS MapGuide MapGuide GeoServer ArcGIS Server Spatial Databases SpatiaLite ESRI File Geodatabase PostGIS ArcSDE Software Version numbers Major.minor.patch --> 1.4.2 3rd version digit: For small software patches 2nd version digit: Changes in functionality…at which time the third version digit is set back to zero 1st version digit: Deep functional changes, new paradigms, or broken backward compatibility In Summary Free Software: freedom to run, study, redistribute/share and improve the software Open Source Software: at it’s core describes a development philosophy where the source code is made available to end users. FOSS: is both a legal concept & a development philosophy Lab 1 – Getting to Know Open Source for GIS Reading Assignment # 1: Due next Tuesday Chapter 2: OSASDH Answer Study Questions