Jump to navigation

Overview of FOSS

Open Source 101, Plone, Trac, and Subversion.


Open Source 101

The Quick and The Dirty of Open Source
Overview of FOSS QR Code

Open Source Initiative Logo

© 2012 This presentation is provided with a Creative Commons BY-SA copyright license

What is Open Source?

The Open Source Initiative (OSI) defines open source in terms of Open Source Software.  It requires the following criteria:

  • OSI Definition for Open Source Software
    • Free re-distribution of software
    • Availability of source code with software
    • Derived works allowed
    • Integrity of author's source code is maintained
    • No discrimination against person or groups
    • No discrimination against fields of endeavor

What is Open Source? (cont.)

  • In layman's terms
    • Anything that comes with the source that can be legally used or modified at will.
    • May include the ability or requirement to share with others.
It can be anything from software to hardware, graphics, text books, and even laws.

    Why is it good?

    • Freedom (think William Wallace in Braveheart)
    • Flexible (software contortion™)
    • Why re-invent the wheel (recycle, it's good for the environment)
    • More eyes = more secure (it takes a village)
    It provides advantages such as:
    • Avoiding vendor lock-in
    • Not forcing unwanted upgrades just to maintain support or licensing terms
    • Allowing use of multiple contractors to modify as needed
    • Ability to utilize portions from several products to create the perfect solution
    • Leveraging the work of a community of passionate developers
    • Adding security because the more people that can see the source, the more people that can find and fix bugs.


      Good for Government

      • De facto transparency
      • Governments work on behalf of their constituents.
      • Since constituents are paying for the work, should they get the benefit of using it however they wish?
      • Open source allows just that.
      • In fact, anything the federal government does is not copyrightable for this very reason.

      What it is not

      • Buggy (not the kind pulled behind a horse)
      • Poor quality
      • Insecure (not talking about self-esteem)
      • Unethical or illegal
      • While it's true that some projects have these characteristics, these qualities are not because they are open source.
      • Some proprietary or closed source software could be just as buggy, poor quality, insecure, or actually illegal, you just may not know about it because it's closed.
      • The good news with open source projects is that you have the ability to fix the above issues on your timeline using your programmer of choice instead of relying on others and their priorities.

      Who uses it?

      • You do
      • You use open source technology on a daily basis and probably don't even know it.
      • Almost 65% of all servers use Linux (an open source operating system).  Of those that use Microsoft Windows, many of those still use open source software to deliver web pages, such as Apache.
      • Android smart phones and Apple Mac OSX are built upon open source operating systems.
      • Mozilla Firefox is completely open source and Google Chrome is based on an open source browser called Chromium.

      Why use anything else?

      • Because it is not a miracle cure
      • Must be analyzed on a case by case basis
      • Some open source projects are in their infancy whereas proprietary alternatives may be turn-key solutions to your problem.
      • The Total Cost of Ownership (TCO) should be evaluated on a case by case basis.  It should include the cost of vendor lock-in for the entire platform as well as the cost of staff time for all custom enhancements.

      Related Topics

      • Open standards, protocols, and hardware
      • Free software (as in free speech)
      • Copyleft, public domain, software patents, and fair use
      • Open source licenses such as GPL, BSD, Apache, and Creative Commons
      • Transparency and net neutrality


      Who Says?


      Plone Open Source CMS


      • A content management system (CMS)

      Plone - Name and Purpose

      plone find what looking for all

      • Find what you are looking for...
      • Allows for collaboration, while eliminating duplication of effort.
      The word Plone originally comes from the electronic band Plone that used to exist on the Warp record label. The music is playful and minimalistic.
      The founders of Plone-the-Software (Alan Runyan and Alexander Limi) were listening to Plone-the-Band when they met (as well as during the initial coding/design of Plone) - and one of the original quotes floating around at the time was that "Plone should look and feel like the band sounds". Thus, a legend was born. ;)
      The current status of Plone-the-Band is not known.
      Plone is pronounced in the same manner as the word "grown". It is not spelled out when you say it, and is not an abbreviation for anything.

      Plone is Open and Accessible

      • Braille for "O" ... to be open and accessible. Available in many languages, built with accessibility in mind from the beginning.

      Plone is Pluggable, extensible, amplifies your voice

      plone plug
      • Power to integrate, modify, Plone Add-ons.  The fact that logo looks like an XLR plug — a common connector for microphones — has also been noted.
      Some other fun ideas people have thought of since: Plone makes an arrow like the ">" in HTML tags, or even the idea of growing content in a Plone Petri dish!

      Plone Easy

      A web application designed to make it easy for non-technical users to add, edit and upload content easily.

      Plone Anywhere


      Floating globe of the planet earth, in this case representing the concept of the world wide web.

      • Capable of managing content from anywhere with internet access.


      Plone Design and Features

      • Plone runs on the Zope application server, which is written in Python.
      • Plone by default stores all information in Zope's built-in transactional object database (ZODB).
      • Repeatable deployments with buildout
      • Built-in scalability with Zeo

      Plone Design and Features (cont.)

      • Granular Role-based Security
      • Excellent Workflow
      • Very capable document management system
      • Multilingual and unicode support is excellent
      • Great community

      Plone System Requirements

      What is needed to run Plone?

      • Operating System
      • Memory
      • Hardware

      Plone Operating System

      • Plone can run on almost any modern operating system.
      • Typically installed on a Linux distribution ex: OpenSuSe
      • Officially: XP or later, OSX 10.4  or later, Linux 2.6 or later.

      Plone Memory Requirements

      • Plone can run on as little as 200MB to 300MB according to their documentation.
      • There is a direct correlation between the speed of the site and RAM. Ex: As the site grows in content, users, product etc more RAM will be required for caching.
      • We have traditionally used 1-2GB of RAM for our production sites.

      Plone Hardware

      • A single processor is fine for small deployments.
      • We have used a single dual core AMD 64 processor for years for production sites.
      • Recently we have virtualized and continue to only allocate a single processor.
      • The CPU utilization is generally very low.

      Plone Hardware (cont.)

      • Storage requirements will naturally vary by project.
      • Careertech production CMS weighs in at 164GB
      • Horizon CMS just 5GB
      • Traditionally we have used single SATA 7200RPM drives. Very low cost and have done well, going on 5 years.

      Plone Installation

      • Software dependencies, not an inclusive list:
      • libjpeg, readline, zlib, libbz2, libxslt, libxml2, python, gcc
      • Note: allow your package manager to get these for you



      Case Study - The CareerTech Website


      Plone Hello! :-)

      • 2003 - There's new technology and guess what?  It's Free and Open Source.

      Plone Hello - Accessibility

      • HB2197 - Oklahoma's Electronic Information and Technology Accessibility Law

      Plone Goodbye :-(

      • Too much change, too quick, without process - can turn a good thing bad in the eyes of our users.
      • In the eyes of rigid divisional areas, Plone was the devil. And if speaking its name was Taboo.

      Plone in Hiding - Still Gives Freely

      • While Plone and its magical abilities were embraced by the IT staff and a few divisions ready to move forward, it largely disappeared from view as an option for agency websites.
      • With Accessibility laws about to pass, Plone didn't care it had been rejected, it still gave all it could.
      • Plone stripped down to HTML templates created from the accessible output of Plone.

      plone logo 800x215px outline

        Plone Re-Invented - From the ground up

        • Change is hard, but with some freebies it can be made a heck of a lot easier.
        • WebTechs adoption, change is noticed.
        • Plone silently and humbly pushes on, helping the content find accessible homes across the world wide web.

        Plone Re-Invented - Through a Design Process

        design process

        Plone Re-Invented - Permission Granted (minus the budget)

        • Completely overhaul all the agency's websites. So what can be do without a budget?
        • Web Team formed
        • Web Design Process implemented


          Discovery Process Diagram

          • Internal and External Audits of CareerTech (CT) Websites and their use of CT Branding.
          • Through the years many CareerTech related websites formed to meet the needs of their expanding services to various customers.


          Discovery - Ummm...

          ct logo audit many brands

          • Result: CareerTech had grown too localized and independent of one another and its brand equity was suffering.  People knew of particular services, but rarely knew they were part of the CareerTech education system.

          Discovery – Audit Results

          • CT Website needs to be united and updated in the following areas:
            • Brand Identity Design
            • Consistent and Customer-focused Navigation Design
            • Content Management System (CMS) for Technical Infrastructure

          Discovery – Requirements

          Conceptional graphic with plotter printer on one side and then a huge website site map on the right with a WebTech silhouette holding paperwork on the right.

          Discovery - Requirements

          • Feature Requirements - Feedback from out current web contributors, aka WebTechs.  Our customers have hearts.
          • Content Requirements - Site-map Project workshops conducted for WebTechs.
          • Total Site-maps: 60 total websites.
            • 56 are major agency content areas or divisional websites
            • 4 are web applications or other and will remain standalone systems.
          • Requirements Document - Management sign-off before moving forward.


          Design - Choosing the right CMS

          • You have your requirements, time to shop.
          • You mean other than plone? Yes, the wonderful world of open source CMS.

          various os cms

          Design - Choosing the right CMS (cont.)

          • CMS matrix
          • Testing and demos

          Design - Plone Rises!

          Say wha?  Why did Plone rise above the rest?

          • Ease of end customer editing and it's folder like organization of content.
          • Possibility to extend with other systems we have built on Plone and Zope framework.


          Design - Plone Internally Branded: CT UNITED

          ct united website banner

          • Plone is masked during migration. Combining the power of many sites into one.

          Design - Plone Skin Before (Default)

          Design - Plone Skin After (CT UNITED)

          New Graphical User Interface to match current brand identity:


          Design - Homepage Features


          Design - Homepage Features (cont.)


          View detailed explanation of the homepage features


          Design - Search Feature

          • You can search across the entire site! To accomplish this, simply use the Global Search Bar:


          Design - Search Feature: Live and Instant Results

          • The "Live Search" provides instant options as you type:


          Design - Search Feature: Quickly Narrow Your Search

          • You can quickly narrow your search at any time and focus only on one section or area of the site at a time:



          Credits and Sources

          Plone Development - Templates, Add-ons, and Coding

          design process 03 development

          Developing Plone

          • Zope template attribute language (TAL)
          • Form generation
          • Buildout
          • Add-ons


          • TAL allows dynamic generation of XHTML compliant web pages. Zope and Plone fans never hesitate to claim it's the best templating system in the world.
          • Add and edit forms automatically generated from a schema.
          • Buildout is the system building program that provides that ability to replicate a deployment.
          • The Plone community created a rich add-on or plugin catalog. The slideshow on the home page of okcareertech.org extends one of the add-ons found in that catalog.



          • Introduction and System Requirements

          Trac - What is Trac?

          • Project Management software
          • Ticketing System “issue tracking”
          • Versioning integration

          Trac Features

          • Wiki = A vehicle to provide project informaiton via the web to stake holders or other interested parties.
          • Timeline = Similar to an event log, but web based. Displays transational events such as edits, uploads, and comments.
          • Tickets = Feature rich CRM tool, include email notifications, custom components, custom reports etc.

          Trac System Requirements

          • HDD 3GB for our production site
          • 1GB RAM
          • Previously 1 SATA 7200 drive, runs great Virtualized

          Trac Installation

          • You will need a Linux distro with apache and python, setuptools, Genshi “python library used for HTML output, SQLLite, PostgreSQL or MySQL.
          • You can check it out from their repository or build it from source.
          • Create a project environment
          • Create the Apache directory
          • Configure Authentication

          Trac Installation cont.

          • Create a project environment
            • This is where you can configure customizations like email notifications etc.
          • Create the Apache directory
          • Configure Authentication
            • Apache password file
            • Provision users with Trac roles

          Trac Integrated Versioning

          • Integrated versioning is optional but huge!!!
          • Integral development tool used by our developers.


          Who's to blame

          Configuration Management

          Process of managing the code and documentation of an evolving software system.

          Configuration management planning
          Defining the standards and procedures that should be used for configuration management
          Change management
          Analysing costs and benefits of proposed changes
          Version and release management
          Identifying and keeping track of the versions of a system
          System building
          Compiling and linking software components into an application
          • Planning is largely decided by policy makers, but a good plan allows for adaptation for individual projects
          • Change management is handled by the project request process
          • VCS is what I'll be talking about
          • An example of system building programs: make, buildout

          Version Control

          State or snapshot of a system's source (eg. code, documentation, other resources)

          Version numbering

          • Incrementing the leftmost number indicates a major enhancement or a great deal of additional functionality
          • The middle number represents minor enhancements or additions
          • The rightmost number counts bugfixes

          Support for Version Control

          All version control systems provide a basic set of capabilities

          1. Version and release identification
          2. Storage management
          3. Independent development
          4. Change History
          5. Project support
          • Subversion (and many other VCSs) use delta compression for efficient storage

          Independent Development

          Independent Development

          Independent Development

          Independent Development

          Change History

          Change History

          Open-source Version Control Systems

          • Client-server
            • CVS
            • Subversion (SVN)
          • Distributed
            • Git
            • Mercurial
            • SVK

          Feedback & Questions

          • Question time.
          Related content
          Open Source Plone CMS
          Jump to content