intro to flr

48
Introduction to FLR FLR Core Team Introduction Philosophy of FLR What is FLR? Design of FLR What’s next ? Introduction to FLR FLR Core Team June 22, 2011

Upload: ernesto-jardim

Post on 01-Nov-2014

1.208 views

Category:

Education


3 download

DESCRIPTION

 

TRANSCRIPT

Page 1: Intro to FLR

Introductionto FLR

FLR CoreTeam

Introduction

Philosophyof FLR

What isFLR?

Design ofFLR

What’s next?

Introduction to FLR

FLR Core Team

June 22, 2011

Page 2: Intro to FLR

Introductionto FLR

FLR CoreTeam

Introduction

Philosophyof FLR

What isFLR?

Design ofFLR

What’s next?

Outline

1 Introduction

2 Philosophy of FLR

3 What is FLR?

4 Design of FLR

5 What’s next ?

Page 3: Intro to FLR

Introductionto FLR

FLR CoreTeam

Introduction

Philosophyof FLR

What isFLR?

Design ofFLR

What’s next?

Outline

1 Introduction

2 Philosophy of FLR

3 What is FLR?

4 Design of FLR

5 What’s next ?

Page 4: Intro to FLR

Introductionto FLR

FLR CoreTeam

Introduction

Philosophyof FLR

What isFLR?

Design ofFLR

What’s next?

Outline

1 Introduction

2 Philosophy of FLR

3 What is FLR?

4 Design of FLR

5 What’s next ?

Page 5: Intro to FLR

Introductionto FLR

FLR CoreTeam

Introduction

Philosophyof FLR

What isFLR?

Design ofFLR

What’s next?

Outline

1 Introduction

2 Philosophy of FLR

3 What is FLR?

4 Design of FLR

5 What’s next ?

Page 6: Intro to FLR

Introductionto FLR

FLR CoreTeam

Introduction

Philosophyof FLR

What isFLR?

Design ofFLR

What’s next?

Outline

1 Introduction

2 Philosophy of FLR

3 What is FLR?

4 Design of FLR

5 What’s next ?

Page 7: Intro to FLR

Introductionto FLR

FLR CoreTeam

Introduction

Philosophyof FLR

What isFLR?

Design ofFLR

What’s next?

Need for FLR

Schnute et al. (2007 and 1998) compared the number ofsoftware tools and languages currently available for stockassessments with the Babel tower myth:

”After the people of Babel sought to build a tower to heaven, the Lord

God devised a plan (Genesis 11: 4-7). ’Behold the people is one; and

they all have one language; and this they began to do; and now nothing

will be restrained from them, which they have imagined to do.... Let us

go down, and there confound their language, that they may not

understand one another’s speech.’ Italics highlight the prospects for

accomplishment with a common language, if the scientific community

could ever agree on one”

”The cosmic plan for confounding software languages seems to be

working remarkably well among the community of quantitative fishery

scientists!”

Page 8: Intro to FLR

Introductionto FLR

FLR CoreTeam

Introduction

Philosophyof FLR

What isFLR?

Design ofFLR

What’s next?

Need for FLR

Schnute et al. (2007 and 1998) compared the number ofsoftware tools and languages currently available for stockassessments with the Babel tower myth:

”After the people of Babel sought to build a tower to heaven, the Lord

God devised a plan (Genesis 11: 4-7). ’Behold the people is one; and

they all have one language; and this they began to do; and now nothing

will be restrained from them, which they have imagined to do.... Let us

go down, and there confound their language, that they may not

understand one another’s speech.’ Italics highlight the prospects for

accomplishment with a common language, if the scientific community

could ever agree on one”

”The cosmic plan for confounding software languages seems to be

working remarkably well among the community of quantitative fishery

scientists!”

Page 9: Intro to FLR

Introductionto FLR

FLR CoreTeam

Introduction

Philosophyof FLR

What isFLR?

Design ofFLR

What’s next?

Need for FLR

Schnute et al. (2007 and 1998) compared the number ofsoftware tools and languages currently available for stockassessments with the Babel tower myth:

”After the people of Babel sought to build a tower to heaven, the Lord

God devised a plan (Genesis 11: 4-7). ’Behold the people is one; and

they all have one language; and this they began to do; and now nothing

will be restrained from them, which they have imagined to do.... Let us

go down, and there confound their language, that they may not

understand one another’s speech.’ Italics highlight the prospects for

accomplishment with a common language, if the scientific community

could ever agree on one”

”The cosmic plan for confounding software languages seems to be

working remarkably well among the community of quantitative fishery

scientists!”

Page 10: Intro to FLR

Introductionto FLR

FLR CoreTeam

Introduction

Philosophyof FLR

What isFLR?

Design ofFLR

What’s next?

Goals

To promote and generalize the use of good quality, opensource, flexible software in all areas of quantitative fisheriesresearch and management advice, with a key focus onManagement Strategies Evaluation.

Page 11: Intro to FLR

Introductionto FLR

FLR CoreTeam

Introduction

Philosophyof FLR

What isFLR?

Design ofFLR

What’s next?

A brief history of FLR

I Started by FEMS EU project

I COMMIT & EFIMAS EU projects provided much of timeand sweat

I Presented to ICES WG Methods 2004I FLCore version 1.0 - December 2005

I FLQuant with 5 dimensions, no ”iter”I Release often, release early. Bugs galore

I FLCore version 1.4 - 2007

I Stable, full of treats an joy

Page 12: Intro to FLR

Introductionto FLR

FLR CoreTeam

Introduction

Philosophyof FLR

What isFLR?

Design ofFLR

What’s next?

A brief history of FLR

I Started by FEMS EU project

I COMMIT & EFIMAS EU projects provided much of timeand sweat

I Presented to ICES WG Methods 2004I FLCore version 1.0 - December 2005

I FLQuant with 5 dimensions, no ”iter”I Release often, release early. Bugs galore

I FLCore version 1.4 - 2007

I Stable, full of treats an joy

Page 13: Intro to FLR

Introductionto FLR

FLR CoreTeam

Introduction

Philosophyof FLR

What isFLR?

Design ofFLR

What’s next?

A brief history of FLR

I Started by FEMS EU project

I COMMIT & EFIMAS EU projects provided much of timeand sweat

I Presented to ICES WG Methods 2004I FLCore version 1.0 - December 2005

I FLQuant with 5 dimensions, no ”iter”I Release often, release early. Bugs galore

I FLCore version 1.4 - 2007

I Stable, full of treats an joy

Page 14: Intro to FLR

Introductionto FLR

FLR CoreTeam

Introduction

Philosophyof FLR

What isFLR?

Design ofFLR

What’s next?

A brief history of FLR

I Started by FEMS EU project

I COMMIT & EFIMAS EU projects provided much of timeand sweat

I Presented to ICES WG Methods 2004

I FLCore version 1.0 - December 2005

I FLQuant with 5 dimensions, no ”iter”I Release often, release early. Bugs galore

I FLCore version 1.4 - 2007

I Stable, full of treats an joy

Page 15: Intro to FLR

Introductionto FLR

FLR CoreTeam

Introduction

Philosophyof FLR

What isFLR?

Design ofFLR

What’s next?

A brief history of FLR

I Started by FEMS EU project

I COMMIT & EFIMAS EU projects provided much of timeand sweat

I Presented to ICES WG Methods 2004I FLCore version 1.0 - December 2005

I FLQuant with 5 dimensions, no ”iter”I Release often, release early. Bugs galore

I FLCore version 1.4 - 2007

I Stable, full of treats an joy

Page 16: Intro to FLR

Introductionto FLR

FLR CoreTeam

Introduction

Philosophyof FLR

What isFLR?

Design ofFLR

What’s next?

A brief history of FLR

I Started by FEMS EU project

I COMMIT & EFIMAS EU projects provided much of timeand sweat

I Presented to ICES WG Methods 2004I FLCore version 1.0 - December 2005

I FLQuant with 5 dimensions, no ”iter”I Release often, release early. Bugs galore

I FLCore version 1.4 - 2007I Stable, full of treats an joy

Page 17: Intro to FLR

Introductionto FLR

FLR CoreTeam

Introduction

Philosophyof FLR

What isFLR?

Design ofFLR

What’s next?

FLR 1.4 - The Golden Jackal

Page 18: Intro to FLR

Introductionto FLR

FLR CoreTeam

Introduction

Philosophyof FLR

What isFLR?

Design ofFLR

What’s next?

A brief history of FLR

I 2007-2009: The Silk Road to version 2I New FLQuant with 6 dimensions: uncertainty in structureI Rewrite of most methodsI Extension of methods availableI New classes: FLModelI Stronger use of class inheritanceI Overhaul of man pagesI Simplification of package map

I FLCore version 2.0 - January 2009

I 2.2: actual stable versionI 2.3: under development

Page 19: Intro to FLR

Introductionto FLR

FLR CoreTeam

Introduction

Philosophyof FLR

What isFLR?

Design ofFLR

What’s next?

A brief history of FLR

I 2007-2009: The Silk Road to version 2I New FLQuant with 6 dimensions: uncertainty in structureI Rewrite of most methodsI Extension of methods availableI New classes: FLModelI Stronger use of class inheritanceI Overhaul of man pagesI Simplification of package map

I FLCore version 2.0 - January 2009I 2.2: actual stable versionI 2.3: under development

Page 20: Intro to FLR

Introductionto FLR

FLR CoreTeam

Introduction

Philosophyof FLR

What isFLR?

Design ofFLR

What’s next?

FLR 2.2 - Swordfish Polka

Page 21: Intro to FLR

Introductionto FLR

FLR CoreTeam

Introduction

Philosophyof FLR

What isFLR?

Design ofFLR

What’s next?

Mission statement

The FLR project provides a platform for quantitativefisheries science based on the R statistical language. Theguiding principles of FLR are:

I openness - through community involvement and the opensource ethos

I flexibility - through a design that does not constrain theuser to a given paradigm

I extendibility - through the provision of tools that areready to be personalized and adapted.

Page 22: Intro to FLR

Introductionto FLR

FLR CoreTeam

Introduction

Philosophyof FLR

What isFLR?

Design ofFLR

What’s next?

Mission statement

The FLR project provides a platform for quantitativefisheries science based on the R statistical language. Theguiding principles of FLR are:

I openness - through community involvement and the opensource ethos

I flexibility - through a design that does not constrain theuser to a given paradigm

I extendibility - through the provision of tools that areready to be personalized and adapted.

Page 23: Intro to FLR

Introductionto FLR

FLR CoreTeam

Introduction

Philosophyof FLR

What isFLR?

Design ofFLR

What’s next?

Mission statement

The FLR project provides a platform for quantitativefisheries science based on the R statistical language. Theguiding principles of FLR are:

I openness - through community involvement and the opensource ethos

I flexibility - through a design that does not constrain theuser to a given paradigm

I extendibility - through the provision of tools that areready to be personalized and adapted.

Page 24: Intro to FLR

Introductionto FLR

FLR CoreTeam

Introduction

Philosophyof FLR

What isFLR?

Design ofFLR

What’s next?

Mission statement

The FLR project provides a platform for quantitativefisheries science based on the R statistical language. Theguiding principles of FLR are:

I openness - through community involvement and the opensource ethos

I flexibility - through a design that does not constrain theuser to a given paradigm

I extendibility - through the provision of tools that areready to be personalized and adapted.

Page 25: Intro to FLR

Introductionto FLR

FLR CoreTeam

Introduction

Philosophyof FLR

What isFLR?

Design ofFLR

What’s next?

GNU project(http://gnu.org)

”Free software is a matter of liberty, not price.”

free = free speech

free != free beer

Page 26: Intro to FLR

Introductionto FLR

FLR CoreTeam

Introduction

Philosophyof FLR

What isFLR?

Design ofFLR

What’s next?

Collaboration and OpenSource

”I think the real issue about adoption of open source is that nobody

can really ever ’design’ a complex system. That’s simply not how

things work: people aren’t that smart - nobody is. And what open

source allows is to not actually ’design’ things, but let them evolve,

through lots of different pressures in the market, and having the end

result just continually improve”

Linus Torvalds

Page 27: Intro to FLR

Introductionto FLR

FLR CoreTeam

Introduction

Philosophyof FLR

What isFLR?

Design ofFLR

What’s next?

Development of FLR

FLR is a collaborative development project, where distinctscientists that constitute the FLR Core Team, aka ”Lesmiserables”, work simultaneously on code, documentation, etc.

Page 28: Intro to FLR

Introductionto FLR

FLR CoreTeam

Introduction

Philosophyof FLR

What isFLR?

Design ofFLR

What’s next?

Cut the crap, what is FLR?

A working environment for quantitative fisheriesanalysis in R!

Page 29: Intro to FLR

Introductionto FLR

FLR CoreTeam

Introduction

Philosophyof FLR

What isFLR?

Design ofFLR

What’s next?

... and where can I get it ?

I Website (http://flr-project.org/)

I Packages on repository(install.packages(repos=”http://flr-project.org/R”))

I Documentation on wiki (http://wiki.flr-project.org)

I and ”Teach Yourself FLR” (http://tyflr.flr-project.org)

Page 30: Intro to FLR

Introductionto FLR

FLR CoreTeam

Introduction

Philosophyof FLR

What isFLR?

Design ofFLR

What’s next?

Object orientedprogramming with S4

I A programming language model organized around ”objects”rather than ”actions”

I Uses R S4 classes

I Everything is an object of a particular classI Objects have:

I members (data) andI methods (functions associated with it that act on member

data)

I Inheritence used to extend and create new classes (FLSRinherits from FLModel)

I Classes can be members of other classes (most FLRclasses include FLQuants as members)

Page 31: Intro to FLR

Introductionto FLR

FLR CoreTeam

Introduction

Philosophyof FLR

What isFLR?

Design ofFLR

What’s next?

Object orientedprogramming with S4

I A programming language model organized around ”objects”rather than ”actions”

I Uses R S4 classes

I Everything is an object of a particular classI Objects have:

I members (data) andI methods (functions associated with it that act on member

data)

I Inheritence used to extend and create new classes (FLSRinherits from FLModel)

I Classes can be members of other classes (most FLRclasses include FLQuants as members)

Page 32: Intro to FLR

Introductionto FLR

FLR CoreTeam

Introduction

Philosophyof FLR

What isFLR?

Design ofFLR

What’s next?

Object orientedprogramming with S4

I A programming language model organized around ”objects”rather than ”actions”

I Uses R S4 classes

I Everything is an object of a particular classI Objects have:

I members (data) andI methods (functions associated with it that act on member

data)

I Inheritence used to extend and create new classes (FLSRinherits from FLModel)

I Classes can be members of other classes (most FLRclasses include FLQuants as members)

Page 33: Intro to FLR

Introductionto FLR

FLR CoreTeam

Introduction

Philosophyof FLR

What isFLR?

Design ofFLR

What’s next?

Object orientedprogramming with S4

I A programming language model organized around ”objects”rather than ”actions”

I Uses R S4 classes

I Everything is an object of a particular class

I Objects have:

I members (data) andI methods (functions associated with it that act on member

data)

I Inheritence used to extend and create new classes (FLSRinherits from FLModel)

I Classes can be members of other classes (most FLRclasses include FLQuants as members)

Page 34: Intro to FLR

Introductionto FLR

FLR CoreTeam

Introduction

Philosophyof FLR

What isFLR?

Design ofFLR

What’s next?

Object orientedprogramming with S4

I A programming language model organized around ”objects”rather than ”actions”

I Uses R S4 classes

I Everything is an object of a particular classI Objects have:

I members (data) andI methods (functions associated with it that act on member

data)

I Inheritence used to extend and create new classes (FLSRinherits from FLModel)

I Classes can be members of other classes (most FLRclasses include FLQuants as members)

Page 35: Intro to FLR

Introductionto FLR

FLR CoreTeam

Introduction

Philosophyof FLR

What isFLR?

Design ofFLR

What’s next?

Object orientedprogramming with S4

I A programming language model organized around ”objects”rather than ”actions”

I Uses R S4 classes

I Everything is an object of a particular classI Objects have:

I members (data) and

I methods (functions associated with it that act on memberdata)

I Inheritence used to extend and create new classes (FLSRinherits from FLModel)

I Classes can be members of other classes (most FLRclasses include FLQuants as members)

Page 36: Intro to FLR

Introductionto FLR

FLR CoreTeam

Introduction

Philosophyof FLR

What isFLR?

Design ofFLR

What’s next?

Object orientedprogramming with S4

I A programming language model organized around ”objects”rather than ”actions”

I Uses R S4 classes

I Everything is an object of a particular classI Objects have:

I members (data) andI methods (functions associated with it that act on member

data)

I Inheritence used to extend and create new classes (FLSRinherits from FLModel)

I Classes can be members of other classes (most FLRclasses include FLQuants as members)

Page 37: Intro to FLR

Introductionto FLR

FLR CoreTeam

Introduction

Philosophyof FLR

What isFLR?

Design ofFLR

What’s next?

Object orientedprogramming with S4

I A programming language model organized around ”objects”rather than ”actions”

I Uses R S4 classes

I Everything is an object of a particular classI Objects have:

I members (data) andI methods (functions associated with it that act on member

data)

I Inheritence used to extend and create new classes (FLSRinherits from FLModel)

I Classes can be members of other classes (most FLRclasses include FLQuants as members)

Page 38: Intro to FLR

Introductionto FLR

FLR CoreTeam

Introduction

Philosophyof FLR

What isFLR?

Design ofFLR

What’s next?

Object orientedprogramming with S4

I A programming language model organized around ”objects”rather than ”actions”

I Uses R S4 classes

I Everything is an object of a particular classI Objects have:

I members (data) andI methods (functions associated with it that act on member

data)

I Inheritence used to extend and create new classes (FLSRinherits from FLModel)

I Classes can be members of other classes (most FLRclasses include FLQuants as members)

Page 39: Intro to FLR

Introductionto FLR

FLR CoreTeam

Introduction

Philosophyof FLR

What isFLR?

Design ofFLR

What’s next?

Design principles

I Classes to represent different elements of fisheries systems

I ’physical’ objects (e.g. FLStock class represents a fishstock)

I ’methodological’ objects (e.g. FLBRP class containingmethods to calculate BRP)

I Link objects to create simulations - Lego blocks (MSEexample)

I Learning curve: trade off between flexibility and simplicity(no black boxes and no handle turning)

Page 40: Intro to FLR

Introductionto FLR

FLR CoreTeam

Introduction

Philosophyof FLR

What isFLR?

Design ofFLR

What’s next?

Design principles

I Classes to represent different elements of fisheries systems

I ’physical’ objects (e.g. FLStock class represents a fishstock)

I ’methodological’ objects (e.g. FLBRP class containingmethods to calculate BRP)

I Link objects to create simulations - Lego blocks (MSEexample)

I Learning curve: trade off between flexibility and simplicity(no black boxes and no handle turning)

Page 41: Intro to FLR

Introductionto FLR

FLR CoreTeam

Introduction

Philosophyof FLR

What isFLR?

Design ofFLR

What’s next?

Design principles

I Classes to represent different elements of fisheries systems

I ’physical’ objects (e.g. FLStock class represents a fishstock)

I ’methodological’ objects (e.g. FLBRP class containingmethods to calculate BRP)

I Link objects to create simulations - Lego blocks (MSEexample)

I Learning curve: trade off between flexibility and simplicity(no black boxes and no handle turning)

Page 42: Intro to FLR

Introductionto FLR

FLR CoreTeam

Introduction

Philosophyof FLR

What isFLR?

Design ofFLR

What’s next?

Design principles

I Classes to represent different elements of fisheries systems

I ’physical’ objects (e.g. FLStock class represents a fishstock)

I ’methodological’ objects (e.g. FLBRP class containingmethods to calculate BRP)

I Link objects to create simulations - Lego blocks (MSEexample)

I Learning curve: trade off between flexibility and simplicity(no black boxes and no handle turning)

Page 43: Intro to FLR

Introductionto FLR

FLR CoreTeam

Introduction

Philosophyof FLR

What isFLR?

Design ofFLR

What’s next?

Design principles

I Classes to represent different elements of fisheries systems

I ’physical’ objects (e.g. FLStock class represents a fishstock)

I ’methodological’ objects (e.g. FLBRP class containingmethods to calculate BRP)

I Link objects to create simulations - Lego blocks (MSEexample)

I Learning curve: trade off between flexibility and simplicity(no black boxes and no handle turning)

Page 44: Intro to FLR

Introductionto FLR

FLR CoreTeam

Introduction

Philosophyof FLR

What isFLR?

Design ofFLR

What’s next?

Design principles

I Classes to represent different elements of fisheries systems

I ’physical’ objects (e.g. FLStock class represents a fishstock)

I ’methodological’ objects (e.g. FLBRP class containingmethods to calculate BRP)

I Link objects to create simulations - Lego blocks (MSEexample)

I Learning curve: trade off between flexibility and simplicity(no black boxes and no handle turning)

Page 45: Intro to FLR

Introductionto FLR

FLR CoreTeam

Introduction

Philosophyof FLR

What isFLR?

Design ofFLR

What’s next?

FLR & S4FLR hierarchical model

FLCore

classesmethods

2ndry pkg

classesmethods

extends

inherits

Page 46: Intro to FLR

Introductionto FLR

FLR CoreTeam

Introduction

Philosophyof FLR

What isFLR?

Design ofFLR

What’s next?

PackagesFLR packages' development model

FLCore

FLEDA FLAssess

FLXSA FL...

FLash

FLBRP

Page 47: Intro to FLR

Introductionto FLR

FLR CoreTeam

Introduction

Philosophyof FLR

What isFLR?

Design ofFLR

What’s next?

MSE - The Lego blockapproach

Page 48: Intro to FLR

Introductionto FLR

FLR CoreTeam

Introduction

Philosophyof FLR

What isFLR?

Design ofFLR

What’s next?

What’s next ?