#!/usr/bin/python
# -*- coding: iso-8859-15 -*-
# Copyright© 2003 Francesco Potortì
# The Python classes are distributed under the GNU LGPL
# The text of the slides can be copied verbatim in any form
#
# Use the Slides package from <http://itamarst.org/software/slides/>
# also available as the python-slides Debian package (not in woody)
#
# Execute this file to obtain a series of HTML files in the current directory
from slides import Lecture, NumSlide, Slide, Bullet, SubBullet, PRE, URL, \
		   Center, Image, Heading, TitleSlide, toHTML


class Tag:
  """Surround with <tag>..</tag>."""
  def __init__(self, tag, *texts): self.tag = tag; self.texts = texts
  def toHTML(self):
    return '<%s>%s</%s>' % (self.tag, "".join(map(toHTML, self.texts)), self.tag)

class Text:
  """Sequence of strings and instances."""
  def __init__(self, *texts): self.texts = texts
  def toHTML(self):
    return "".join(map(toHTML, self.texts)) + '\n'

class Html:
  """Sequence of strings."""
  def __init__(self, *texts): self.texts = texts
  def toHTML(self):
    return "".join(self.texts)

class Newline:
  """Newlines (specify number)."""
  def __init__(self, number): self.number = number
  def toHTML(self):
    result = '\n'
    for i in range(0, self.number): result += '<br>&nbsp;<br>'
    return result+'\n'

lecture = Lecture("Free software and research <br> " +
                  "<small>Francesco Potort&igrave;, 2003</small>",

#-------------------------------------------------------------------------
TitleSlide
("Free software and research",
 Tag("big", "or"),
 Tag("big", "why free software is a natural choice"),           
 Tag("big", "in a research environment"),
 Newline(2),
 Html("Francesco Potort&igrave;"),
 "researcher at ISTI - CNR, Pisa (IT)",
 Newline(2),
 Text("this presentation is at ",
      URL("http://softwarelibero.it/documentazione/online/ricerca-pot200307/research-00.html")),
 Text("source code in ", URL("research.py")),
),

#-------------------------------------------------------------------------
Slide
("What is free software?",
 Bullet("Free software is software that grants freedom to its users"),
 Bullet("Freedom is granted by use of an appropriate copyright license"),
 Bullet("Free licenses grant the users the right to run, study, copy, ",
        "modify and redistribute modified copies of the software"),
 Bullet("Without a copyright license, none of the above is permitted by "
        "international copyright laws (Berne copyright convention); ",
        "see also ", URL("http://www.templetons.com/brad/copymyths.html")),
),

#-----------------------------------------------------------------------
Slide
("The four freedoms",
 Text("The four software freedoms by Richard Stallman, 1985 (",
     URL("http://www.gnu.org/philosophy/free-sw.html"), "):"),
 Tag("p", "0: The freedom to run the program, for any purpose"),
 Tag("p", "1: The freedom to study and modify the program"),
 Tag("p", "2: The freedom to redistribute copies"),
 Tag("p", "3: The freedom to release your improvements"),
 Bullet("Freedoms 1 and 3 require access to the source code"),
),

#-----------------------------------------------------------------------
#Slide
#("The facts and the opinions",
# Bullet("What we have seen up to now are the hard facts; ",
#        "here are some more", SubBullet(
#  Bullet("Free software definition born 1984"),
#  Bullet("GNU GPL license born 1985"),
#  Bullet("BSD license born 1989"),
#  Bullet("Open source definition born 1997"))),
# Bullet("All the rest that you read here or elsewhere are purposes, ",
#        "consequences, interpretations, some very important, all debatable; ",
#        "here are some", SubBullet(
#  Bullet("granting freedom, building a community, ethical reasons"),
#  Bullet("development method, commercial viability, price, quality"),
#  Bullet("open source versus free software, the future of free software"))),
#),

#-------------------------------------------------------------------------
Slide
("The four dimensions of free software",
 Bullet("Free software is a license model", SubBullet(
  Bullet("the four software freedoms by Richard Stallman, 1985"),
  Bullet("the open source definition, 1998"))),
 Bullet("Free software development models", SubBullet(
  Bullet("the cathedral and the bazaar are both used"))),
 Bullet("Free software social ideals", SubBullet(
  Bullet("free software is about freedom and society, "
         "quality and convenience may come as a consequence"),
  Bullet("open source is about quality and convenience, "
         "freedom may come as a consequence"))),
 Bullet("Free software communities", SubBullet(
  Bullet("hackers, groups and mailing lists"))),
),

#-------------------------------------------------------------------------
#Slide
#("Free software at INRIA (FR)",
# Bullet("INRIA does not have a formal policy with regard to free software"),
# Bullet("In 1998, INRIA officers speak about free software ",
#        Tag("small", "<",
#            URL("http://www.inria.fr/actualites/colloques/1998/FETEINTERNET98synthese-fra.html"),
#            ">")),
# Bullet("INRIA mentions a post-doctorate in free software in its 1998-2002 ",
#        "strategic program"),
# Bullet("2003-2007 strategic program mentions free software <",
#        URL("http://www.inria.fr/inria/strategie/4.1.fr.html"), ">"),
# Bullet("INRIA distributes a research software CD at <",
#        URL("http://www.inria.fr/valorisation/logiciels/cederom.en.html"), ">"),
#),

#-------------------------------------------------------------------------
Slide
("Practical advantages: a developer's view",
 Bullet("You have a large body of free software to start with"),
 Bullet("Your program is easily diffused, because people can copy it freely"),
 Bullet("If it is found useful, people may start to improve it"),
 Bullet("If the license is a copyleft license, improvements are diffused"),
 Bullet("Your reputation spreads as easily as your software does"),
 Bullet("Commercial usage: software advertises by itself"),
),

#-------------------------------------------------------------------------
Slide
("Practical advantages: a user's view",
 Bullet("Common free software is obtained at little cost"),
 Bullet("It is often well maintained and standards compliant"),
 Bullet("It probably does not do strange things behind your back"),
 Bullet("You can have it changed or customised by anyone"),
 Bullet("You can learn by looking at the code and studying it"),
 Bullet("You are FREE!  You can give it to a friend, copy it from ",
        "your office to your home computer, you are not obliged to "
        "accept obscure end user agreements to use it legally"),
),

#-------------------------------------------------------------------------
Slide
("Practical advantages: a political view",
 Bullet("A free software environment encourages:", SubBullet(
  Bullet("cooperation between people"),
  Bullet("knowledge diffusion and mutual control"),
  Bullet("standards compliance and interoperability"),
  Bullet("shifting business model from license revenues to services, ",
         "promoting human competence"))),
 Bullet("A free software environment discourages:", SubBullet(
  Bullet("monopolies"),
  Bullet("provider lock-in"),
  Bullet("forced obsolescence, unorthodox practices"))),
 Bullet("Software is increasingly affecting our lives: ",
        "the public should have control over it"),
),

#-------------------------------------------------------------------------
Slide
("Common misconceptions and false assessments",
 Bullet("Free software is a software development model"),
 Bullet("Free software is technically superior / inferior"),
 Bullet("Free software is without cost"),
 Bullet("Free software is non-copyrighted material"),
 Bullet("Writing free software forces me to release it publicly"),
 Bullet("A free license will create a community around my program"),
),

#-------------------------------------------------------------------------
Slide
("Free software and research",
 Bullet("Modern science is connaturate with the free exchange of knowledge"),
 Bullet("Free software is a natural product of a research environment ",
        "because research", SubBullet(
  Bullet("grows by learning from others' results"),
  Bullet("grows by accumulation of findings"),
  Bullet("bases its credibility on independent scrutiny"),
  Bullet("results are reliable because they are independently repeatable"))),
 Bullet("Research languishes without cooperation"),
),

#-------------------------------------------------------------------------
Slide
("Advantages in academia: scientific production",
 Bullet("Works based on free software implementations are naturally ",
        "apt to be published, because:", SubBullet(
  Bullet("working methods are fully disclosed"),
  Bullet("dissemination of results is encouraged"),
  Bullet("results are easily cited, reused and incrementally improved"))),
 Bullet("Writing free software is convenient for research institutions ",
        "because:", SubBullet(
  Bullet("it is something of which an institution can be proud"),
  Bullet("it helps with giving and receiving contributions from many sources"),
  Bullet("it reduces the problems linked with copyright attribution"))),
),

#-------------------------------------------------------------------------
Slide
("Advantages in academia: commercial applications",
 Bullet("Spinoffs can be created without licensing problems"),
 Bullet("Good way to create and promote new standards"),
 Bullet("Technological transfer is eased"),
 Bullet("Spinoffs or internal commercial sections can coexist ",
        "with internal research development and mutually benefit ",
        "from each other"),
),

#-------------------------------------------------------------------------
Slide
("Encouraging the production of free software in research institutions",
 Bullet("Publicly funded research should disseminate its results ",
        "because this", SubBullet(
  Bullet("contributes to public knowledge"),
  Bullet("is a propellent to research advancement"),
  Bullet("creates a software base for the industry to exploit"))),
 Bullet("Research projects should aim at producing free software"),
 Bullet("Free software should be regarded as a research achievement ",
        "per se, by creating a network of software peer reviewers"),
 Bullet("Spinoffs based on free software should be favoured"),
),

#-------------------------------------------------------------------------
Slide
("Cultural environment",
 Bullet("Scientists should be aware that", SubBullet(
  Bullet("publicly funded research should ",
         "benefit the public by means of free licenses"),
  Bullet("diffusing software is as commendable as diffusing research ",
         "findings"),
  Bullet("source software disclosure in scientific papers has the same ",
         "value as disclosing the details of any other procedure"))), 
 Bullet("Scientific institutions may  state these concepts publicly"),
),

#-------------------------------------------------------------------------
Slide
("How to make a program free",
 Bullet("Always accompany your software with a ", Tag("kbd", "LICENSE.TXT"),
        " file"),
 Bullet("On the top of each source file, write", SubBullet(
  Bullet("Copyright© 2002, 2003 Name Surname"),
  Bullet("This software is released with the terms contained in ",
         Tag("kbd", "LICENSE.TXT")))),
 Bullet("Use one of these three licenses", SubBullet(
  Bullet("GNU GPL: for programs that should remain free in any case, ",
         "whether  modified or not"),
  Bullet("GNU LGPL: same as above, plus it allows linking with "
         "GPL-incompatible programs"),
  Bullet("New BSD or MIT X licenses: no restrictions, ",
         "for programs that should have maximum diffusion"))),
),

#-------------------------------------------------------------------------
Slide
("Acknowledgements",
 Bullet("Piero Maestrini, director of ISTI (",
        URL("http://www.isti.cnr.it/"), "), for its support and ",
        "for the idea of software peer review"),
 Bullet("Associazione software libero (",
        URL("http://softwarelibero.it/"), "), for discussions and ",
        "encouragement"),
),

)
lecture.renderHTML(".", "research-%02d.html", css="ricerca.css")

#Local variables:
#compile-command: buffer-file-name
#py-indent-offset: 2
#end:
