• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
35 Years of Open Source Software
 

35 Years of Open Source Software

on

  • 21,006 views

History of Free and Open Source Software. From the university lab to the enterprise. New Zealand Computer Society Innovation Conference.

History of Free and Open Source Software. From the university lab to the enterprise. New Zealand Computer Society Innovation Conference.

Thanks to Evonne Cheung for her awesome graphics!

Statistics

Views

Total Views
21,006
Views on SlideShare
17,514
Embed Views
3,492

Actions

Likes
35
Downloads
656
Comments
7

68 Embeds 3,492

http://vospe.com 1474
http://www.geek.com 404
http://blog.afkham.org 306
http://agrupamento-vertical-canelas.edu.pt 257
http://mylescarrick.com 135
http://www.spatiallyrelevant.org 134
http://emprendewiki.com 123
http://dicyg.fi-c.unam.mx 94
http://www.emprendewiki.com 54
http://fuzzytolerance.info 50
http://www.scoop.it 48
http://dicyg.fi-c.unam.mx:8080 43
http://www.helishi.net 36
http://alfrescote.blogspot.com.es 32
http://liraucio.wordpress.com 31
http://alfrescote.blogspot.com 30
http://desireeblogs.com 29
http://galaxiagutenberg.wordpress.com 24
http://deutschonlineiasibucuresti.blogspot.com 14
http://translate.googleusercontent.com 13
http://www.ikbear.com 13
http://dawsonite.dawsoncollege.qc.ca 10
http://demonstech.blogspot.com 9
http://www.digiborigenes.fr 9
http://deutschonlineiasibucuresti.blogspot.ro 8
http://elearning.ipvc.pt 8
http://ig-chowdhury.blogspot.com 7
http://ciberdix.net 7
https://sabasocial.saba.com 6
http://arandomjam.blogspot.com 6
http://blog.bostondave.net 5
http://xurxomartinez.posterous.com 5
http://static.slidesharecdn.com 4
http://www.jebatmalaya.com 4
http://www.bibliotete.com 4
http://grou.ps 4
http://www.cirip.ro 4
http://arandomjam.blogspot.com.au 4
http://deutschonlineiasibucuresti.blogspot.ru 4
https://na1.sabapeoplecloud.com 4
http://www.linkedin.com 3
http://hisdet.local 3
http://feeds.feedburner.com 2
http://newhighscore.tumblr.com 2
http://www.emprender360.com.ar 2
http://localhost:8000 2
https://lti-examples.heroku.com 1
http://webcache.googleusercontent.com 1
http://www.start.helishi.net 1
http://web.archive.org 1
More...

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

CC Attribution-ShareAlike LicenseCC Attribution-ShareAlike License

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel

17 of 7 previous next Post a comment

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
  • Beautiful and very informative!!
    Are you sure you want to
    Your message goes here
    Processing…
  • Wow! Beautifully captured. Thanks for sharing!
    Are you sure you want to
    Your message goes here
    Processing…
  • Great snapshot of Open Source and the evolution of it!
    Are you sure you want to
    Your message goes here
    Processing…
  • Wow Francois - that's magnificent.
    Are you sure you want to
    Your message goes here
    Processing…
  • Hopefully this rough audio track will turn this sequence of pictures into a coherent story :)
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    35 Years of Open Source Software 35 Years of Open Source Software Presentation Transcript

    • The Age of Incompatible Expensive Machines
    • selling hardware
    • 1968 hardware software
    • FORTRAN COBOL Algol
    • #!/usr/bin/perl foreach (@pkglines) { # close REASON or chomp; # This program is free software; you can redistribute it and/or modify die "Can't close FILE [$file]: $!n"; $linenbr++; # it under the terms of the GNU General Public License as published by } if (/^Package:/) { # the Free Software Foundation; either version 2 of the License, or ($label, $pkg) = split(/:s+/,$_,2); # (at your option) any later version. # $pkgcnt++; # # Main program starts here. printf "pkg(%4.4d) pkg=[%s]n",$pkgcnt,$pkg if $debug >= 1; # This program is distributed in the hope that it will be useful, # $has_pkg = 1; ### we have necessary section # but WITHOUT ANY WARRANTY; without even the implied warranty of GetOptions('q|quiet' => $quiet, next; # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 's|sparse' => $sparse, } # GNU General Public License for more details. 'e|explain!' => $explain, if (/^Status:/) { # 'reason-dir=s' => $reasondir, my $label = ""; 'd|debug+' => $debug, ($label, $pkgstatus) = split(/:s+/,$_,2); use strict; 'h|help' => $help); print "tpkgstatus=[$pkgstatus]n" if $debug >= 1; use warnings; $pkg_status{$pkg} = $pkgstatus; if ($help) { ($plan, $state, $status) = split(/s+/,$pkgstatus); use Getopt::Long; usage(); print "ttplan=[$plan]n" if $debug >= 1; exit 0; print "ttstate=[$state]n" if $debug >= 1; # Declaration of important/main variables. } print "ttstatus=[$status]n" if $debug >= 1; my $quiet = 0; $has_status = 1; ### we have necessary section my $sparse = 0; opendir(REASONDIR, $reasondir) or next; my $help = 0; die "Can't open DIR [$reasondir]: $!n"; } my $explain = 1; # Parse all the reason files in $reasondir except those beginning with if (/^Section:/) { my $debug = 0; # a . or ending with a ~ my $label = ""; my $reasondir = '/usr/share/vrms/reasons/'; parse_reason_file("$reasondir/$_") ($label, $section) = split(/:s+/,$_,2); my %reason = (); foreach (grep {!/~$/ && !/^./} readdir(REASONDIR)); print "tsection=[$section]n" if $debug >= 1; closedir REASONDIR or $has_section = 1; ### we have necessary section # die "Can't close DIR [$reasondir]: $!n"; if ($section =~ /contrib|non-free|restricted|multiverse/) { # Auxiliary functions section (FIXME: put them in a file by themselves). ### read thru rest of array to find descr instead of waiting for it source code # my $statusfile = '/var/lib/dpkg/status'; my $found_descr =0; my $is_nonfree = 0; ### preset none found, yet while (! $found_descr) { # sub usage: my %nonfree = (); if ($linenbr > $#pkglines) { # Input: nothing. my $is_other_nonfree = 0; ### preset none found, yet ### iff badly formed entry ensure blank description # Output: Messages to stdout telling the usage of the program. my %other_nonfree = (); print "tEEEE shortdescr=[$shortdescr]n" if $debug >= 1; sub usage() { my $is_contrib = 0; ### preset none found, yet last; print <<EOF; my %contrib = (); } Usage: vrms [OPTIONS] ... my $is_other_contrib = 0; ### preset none found, yet my $dline = $pkglines[$linenbr++]; my %other_contrib = (); if($dline =~ /^Description:/) { --quiet, -q Do nothing if there are no non-free packages installed. my %pkg_status = (); ($label, $shortdescr) = split(/:s+/,$dline,2); --explain, -e Give a brief explanation of why a package is non-free, my $pkgcnt = 0; print "tshortdescr=[$shortdescr]n" if $debug >= 1; if available. my $clumpcnt = 0; $found_descr = 1; --sparse, -s Just list non-free packages, nothing else. my $dontcarelines = 5; ### no. of lines a non-installed entry may have in the } --reason-dir=DIR Use DIR as the reason directory. statusfile } --help, -h Display this help. if ($section =~ /contrib/) { --debug, -d Generate debugging information. if (lc $status eq 'installed') { my $sysname = ""; $is_contrib = 1; All options can be prefixed with "no" (eg: --noexplain) to turn them off. chop($sysname = `uname -n`); $contrib{$pkg} = $shortdescr; EOF } else { } open(PKG_SOURCE, "< $statusfile") or $is_other_contrib = 1; die "Can't open FILE [$statusfile]: $!n"; $other_contrib{$pkg} = $shortdescr; # sub parse_reason_file: } # Input: the name of a reason file and the global hash %reason $/ = ""; ### snarf a paragraph at a time } else { # Output: the hash %reason filled with reasons from the input file while(<PKG_SOURCE>) { if (lc $status eq 'installed') { # (FIXME: %reason shouldn't be global) my $clump = $_; $is_nonfree = 1; sub parse_reason_file { $clumpcnt++; $nonfree{$pkg} = $shortdescr; my $file = shift; my (@pkglines) = split(/n/, $clump); } else { print "Parsing reason file $filen" if $debug >= 1; ### iff more than $dontcarelines lines, package is installed, so process it $is_other_nonfree = 1; open(REASON, "<", $file) or ### (speed-up by skipping don't-care entries) $other_nonfree{$pkg} = $shortdescr; die "Can't open FILE [$file]: $!n"; if (@pkglines > $dontcarelines) { } my $pkg = ""; ### name of this package } while (my $line = <REASON>) { my $pkgstatus = ""; ### status } chomp $line; my $plan = ""; ### install plan (hold, deinstall, purge, install, etc.) last; ### this is last desriptor of package we care about so end loop # Grab a line of the form 'package: reason', skip if we don't match my $state = ""; ### state (ok or ???) } else { my ($pkg, $reason) = ($line =~ /^(S+):s+(.*)s*$/) or next; my $status = ""; ### status (installed, not-installed, etc.) ### un-processed lines from package info print "'$pkg' because '$reason'n" if ($debug >= 1); my $section = ""; ### section this is where non-free is marked if($debug >= 1) { my $shortdescr = ""; ### one-liner description of pkg print "tt--- $_n"; # If this is _our_ master file, then prefer anything my $linenbr = 0; ### current line number of this pkackag's info } # else (so that package maintainers can override) my $label = ""; ### junk field (not used, except to catch split values) } next if exists $reason{$pkg} and $file =~ //vrms$/; my $has_pkg = 0; ### reset the markers } my $has_status = 0; if (!$has_status or !$has_pkg) { $reason{$pkg} = $reason; my $has_section = 0; print STDERR "vrms: ERROR- Badly formed dpkg-status entry #$clumpcnt!n"; } print STDERR " pkg=[$pkg], pkgstatus=[$pkgstatus], section=[$section] n"; }
    • The Birth of UNIX
    • UNIX.zip UNIX-source.zip
    • trade secret
    • most widely and deeply understood trade secret in the history of computing
    • sharing innovations & bug fixes
    • The Birth of Proprietary Software
    • 1980
    • proprietary software
    • sharing
    • shareware
    • The Rise of Free Software
    • 1984
    • Free Software
    • Free as in speech
    • Free as in freedom
    • Free as in beer
    • 1. use 2. copy 3. modify 4. contribute
    • 1989, 1991 GPL
    • you must extend the same freedoms to others
    • copyleft
    • permissive licenses
    • you give complete freedom to developers
    • 1993
    • 1995
    • 2000 $1,000,000,000
    • Free Software Becomes Mainstream
    • 1998
    • Open Source is Everywhere
    • all software
    • 2005–2007
    • Software Freedom as Inspiration
    • open data
    • open access
    • Questions? francois@catalyst.net.nz @fmarier
    • Photo credits: ibm 360 with people: http://www.flickr.com/photos/cote/54408562/sizes/l/in/photostream/ cdc6600: https://secure.wikimedia.org/wikipedia/en/wiki/File:Personable_Computer.jpg ken and dennis with medals: https://secure.wikimedia.org/wikipedia/commons/wiki/File:Medal_lg.jpeg warrington logo: http://wikieducator.org/File:Warrington_logo.png ashs logo: http://wikieducator.org/File:ASHS_logo.png wanted poster: http://www.flickr.com/photos/mscaprikell/59580038/in/photostream/ tape: http://www.flickr.com/photos/leejordan/486911915/ tim o'reilly: https://secure.wikimedia.org/wikipedia/commons/wiki/File:Tim_O%27Reilly_in_Foo_China_200 fsf logo: https://secure.wikimedia.org/wikipedia/en/wiki/File:FSF-Logo.svg tux: https://secure.wikimedia.org/wikipedia/commons/wiki/File:Tux.svg open source: https://secure.wikimedia.org/wikipedia/commons/wiki/File:Opensource.svg stock market: http://www.flickr.com/photos/thewalkingirony/3051500551/ android logo: https://secure.wikimedia.org/wikipedia/en/wiki/File:Android_logo.svg in-flight entertainment: http://www.flickr.com/photos/kalleboo/2473197800/ samsung tv: http://www.flickr.com/photos/johannesfreund/2320330661/ Linus: http://en.wikipedia.org/wiki/File:Linus_Torvalds.jpeg Bill Gates: http://en.wikipedia.org/wiki/File:Bill_Gates_in_WEF_,2007.jpg Bruce Perens: [not CC] http://perens.com/press/photos/ Lawrence Lessig: http://en.wikipedia.org/wiki/File:Lessig_portrait.jpg Jimmy Wales: http://en.wikipedia.org/wiki/File:Jimmy_Wales_Fundraiser_Appeal_edit.jpg Steve Ballmer: http://en.wikipedia.org/wiki/File:Steve_ballmer_2007_outdoors2.jpg us department of justice: https://secure.wikimedia.org/wikipedia/en/wiki/File:US-DeptOfJustice-Seal.svg