1. Introduction
to FLR
FLR Core
Team
Introduction
Philosophy
of FLR Introduction to FLR
What is
FLR?
Design of
FLR FLR Core Team
What’s next
?
June 22, 2011
2. Introduction
to FLR
FLR Core Outline
Team
Introduction
Philosophy
of FLR
1 Introduction
What is
FLR?
Design of
FLR
What’s next
?
3. Introduction
to FLR
FLR Core Outline
Team
Introduction
Philosophy
of FLR
1 Introduction
What is
FLR?
Design of
FLR 2 Philosophy of FLR
What’s next
?
4. Introduction
to FLR
FLR Core Outline
Team
Introduction
Philosophy
of FLR
1 Introduction
What is
FLR?
Design of
FLR 2 Philosophy of FLR
What’s next
?
3 What is FLR?
5. Introduction
to FLR
FLR Core Outline
Team
Introduction
Philosophy
of FLR
1 Introduction
What is
FLR?
Design of
FLR 2 Philosophy of FLR
What’s next
?
3 What is FLR?
4 Design of FLR
6. Introduction
to FLR
FLR Core Outline
Team
Introduction
Philosophy
of FLR
1 Introduction
What is
FLR?
Design of
FLR 2 Philosophy of FLR
What’s next
?
3 What is FLR?
4 Design of FLR
5 What’s next ?
7. Introduction
to FLR
FLR Core Need for FLR
Team
Introduction
Schnute et al. (2007 and 1998) compared the number of
Philosophy
software tools and languages currently available for stock
of FLR
assessments with the Babel tower myth:
What is
FLR?
Design of
FLR
What’s next
?
8. Introduction
to FLR
FLR Core Need for FLR
Team
Introduction
Schnute et al. (2007 and 1998) compared the number of
Philosophy
software tools and languages currently available for stock
of FLR
assessments with the Babel tower myth:
What is
FLR?
Design of ”After the people of Babel sought to build a tower to heaven, the Lord
FLR
God devised a plan (Genesis 11: 4-7). ’Behold the people is one; and
What’s next
? 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”
9. Introduction
to FLR
FLR Core Need for FLR
Team
Introduction
Schnute et al. (2007 and 1998) compared the number of
Philosophy
software tools and languages currently available for stock
of FLR
assessments with the Babel tower myth:
What is
FLR?
Design of ”After the people of Babel sought to build a tower to heaven, the Lord
FLR
God devised a plan (Genesis 11: 4-7). ’Behold the people is one; and
What’s next
? 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!”
10. Introduction
to FLR
FLR Core Goals
Team
Introduction
Philosophy
of FLR
What is
FLR?
Design of
FLR To promote and generalize the use of good quality, open
What’s next
?
source, flexible software in all areas of quantitative fisheries
research and management advice, with a key focus on
Management Strategies Evaluation.
11. Introduction
to FLR
FLR Core A brief history of FLR
Team
Introduction
Philosophy
of FLR
What is
FLR?
Design of
FLR
What’s next
?
12. Introduction
to FLR
FLR Core A brief history of FLR
Team
Introduction
Philosophy
of FLR
What is
Started by FEMS EU project
FLR?
Design of
FLR
What’s next
?
13. Introduction
to FLR
FLR Core A brief history of FLR
Team
Introduction
Philosophy
of FLR
What is
Started by FEMS EU project
FLR?
COMMIT & EFIMAS EU projects provided much of time
Design of
FLR and sweat
What’s next
?
14. Introduction
to FLR
FLR Core A brief history of FLR
Team
Introduction
Philosophy
of FLR
What is
Started by FEMS EU project
FLR?
COMMIT & EFIMAS EU projects provided much of time
Design of
FLR and sweat
What’s next
?
Presented to ICES WG Methods 2004
15. Introduction
to FLR
FLR Core A brief history of FLR
Team
Introduction
Philosophy
of FLR
What is
Started by FEMS EU project
FLR?
COMMIT & EFIMAS EU projects provided much of time
Design of
FLR and sweat
What’s next
?
Presented to ICES WG Methods 2004
FLCore version 1.0 - December 2005
FLQuant with 5 dimensions, no ” iter”
Release often, release early. Bugs galore
16. Introduction
to FLR
FLR Core A brief history of FLR
Team
Introduction
Philosophy
of FLR
What is
Started by FEMS EU project
FLR?
COMMIT & EFIMAS EU projects provided much of time
Design of
FLR and sweat
What’s next
?
Presented to ICES WG Methods 2004
FLCore version 1.0 - December 2005
FLQuant with 5 dimensions, no ” iter”
Release often, release early. Bugs galore
FLCore version 1.4 - 2007
Stable, full of treats an joy
17. Introduction
to FLR
FLR Core FLR 1.4 - The Golden Jackal
Team
Introduction
Philosophy
of FLR
What is
FLR?
Design of
FLR
What’s next
?
18. Introduction
to FLR
FLR Core A brief history of FLR
Team
Introduction
Philosophy
of FLR 2007-2009: The Silk Road to version 2
What is
FLR? New FLQuant with 6 dimensions: uncertainty in structure
Design of
Rewrite of most methods
FLR Extension of methods available
What’s next New classes: FLModel
?
Stronger use of class inheritance
Overhaul of man pages
Simplification of package map
19. Introduction
to FLR
FLR Core A brief history of FLR
Team
Introduction
Philosophy
of FLR 2007-2009: The Silk Road to version 2
What is
FLR? New FLQuant with 6 dimensions: uncertainty in structure
Design of
Rewrite of most methods
FLR Extension of methods available
What’s next New classes: FLModel
?
Stronger use of class inheritance
Overhaul of man pages
Simplification of package map
FLCore version 2.0 - January 2009
2.2: actual stable version
2.3: under development
20. Introduction
to FLR
FLR Core FLR 2.2 - Swordfish Polka
Team
Introduction
Philosophy
of FLR
What is
FLR?
Design of
FLR
What’s next
?
21. Introduction
to FLR
FLR Core Mission statement
Team
Introduction
Philosophy
of FLR
What is
The FLR project provides a platform for quantitative
FLR? fisheries science based on the R statistical language. The
Design of
FLR
guiding principles of FLR are:
What’s next
?
22. Introduction
to FLR
FLR Core Mission statement
Team
Introduction
Philosophy
of FLR
What is
The FLR project provides a platform for quantitative
FLR? fisheries science based on the R statistical language. The
Design of
FLR
guiding principles of FLR are:
What’s next openness - through community involvement and the open
?
source ethos
23. Introduction
to FLR
FLR Core Mission statement
Team
Introduction
Philosophy
of FLR
What is
The FLR project provides a platform for quantitative
FLR? fisheries science based on the R statistical language. The
Design of
FLR
guiding principles of FLR are:
What’s next openness - through community involvement and the open
?
source ethos
flexibility - through a design that does not constrain the
user to a given paradigm
24. Introduction
to FLR
FLR Core Mission statement
Team
Introduction
Philosophy
of FLR
What is
The FLR project provides a platform for quantitative
FLR? fisheries science based on the R statistical language. The
Design of
FLR
guiding principles of FLR are:
What’s next openness - through community involvement and the open
?
source ethos
flexibility - through a design that does not constrain the
user to a given paradigm
extendibility - through the provision of tools that are
ready to be personalized and adapted.
25. Introduction
to FLR
FLR Core GNU project
Team
(http://gnu.org)
Introduction
Philosophy
of FLR
What is
FLR?
Design of ”Free software is a matter of liberty, not price.”
FLR
What’s next
?
free = free speech
free != free beer
26. Introduction
to FLR
FLR Core Collaboration and Open
Team
Source
Introduction
Philosophy
of FLR
What is
FLR?
Design of ”I think the real issue about adoption of open source is that nobody
FLR
can really ever ’design’ a complex system. That’s simply not how
What’s next
? 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
27. Introduction
to FLR
FLR Core Development of FLR
Team
Introduction
Philosophy
of FLR
What is
FLR?
Design of
FLR
FLR is a collaborative development project, where distinct
What’s next
? scientists that constitute the FLR Core Team, aka ”Les
miserables” work simultaneously on code, documentation, etc.
,
28. Introduction
to FLR
FLR Core Cut the crap, what is FLR?
Team
Introduction
Philosophy
of FLR
What is
FLR?
Design of
FLR
What’s next
?
A working environment for quantitative fisheries
analysis in R!
29. Introduction
to FLR
FLR Core ... and where can I get it ?
Team
Introduction
Philosophy
of FLR
What is
FLR?
Design of Website (http://flr-project.org/)
FLR
What’s next Packages on repository
?
(install.packages(repos=”http://flr-project.org/R”))
Documentation on wiki (http://wiki.flr-project.org)
and ”Teach Yourself FLR” (http://tyflr.flr-project.org)
30. Introduction
to FLR
FLR Core Object oriented
Team
programming with S4
Introduction
Philosophy
of FLR
What is
FLR?
Design of
FLR
What’s next
?
31. Introduction
to FLR
FLR Core Object oriented
Team
programming with S4
Introduction
Philosophy
of FLR
A programming language model organized around ”objects”
What is
FLR? rather than ”actions”
Design of
FLR
What’s next
?
32. Introduction
to FLR
FLR Core Object oriented
Team
programming with S4
Introduction
Philosophy
of FLR
A programming language model organized around ”objects”
What is
FLR? rather than ”actions”
Design of
FLR
Uses R S4 classes
What’s next
?
33. Introduction
to FLR
FLR Core Object oriented
Team
programming with S4
Introduction
Philosophy
of FLR
A programming language model organized around ”objects”
What is
FLR? rather than ”actions”
Design of
FLR
Uses R S4 classes
What’s next Everything is an object of a particular class
?
34. Introduction
to FLR
FLR Core Object oriented
Team
programming with S4
Introduction
Philosophy
of FLR
A programming language model organized around ”objects”
What is
FLR? rather than ”actions”
Design of
FLR
Uses R S4 classes
What’s next Everything is an object of a particular class
?
Objects have:
35. Introduction
to FLR
FLR Core Object oriented
Team
programming with S4
Introduction
Philosophy
of FLR
A programming language model organized around ”objects”
What is
FLR? rather than ”actions”
Design of
FLR
Uses R S4 classes
What’s next Everything is an object of a particular class
?
Objects have:
members (data) and
36. Introduction
to FLR
FLR Core Object oriented
Team
programming with S4
Introduction
Philosophy
of FLR
A programming language model organized around ”objects”
What is
FLR? rather than ”actions”
Design of
FLR
Uses R S4 classes
What’s next Everything is an object of a particular class
?
Objects have:
members (data) and
methods (functions associated with it that act on member
data)
37. Introduction
to FLR
FLR Core Object oriented
Team
programming with S4
Introduction
Philosophy
of FLR
A programming language model organized around ”objects”
What is
FLR? rather than ”actions”
Design of
FLR
Uses R S4 classes
What’s next Everything is an object of a particular class
?
Objects have:
members (data) and
methods (functions associated with it that act on member
data)
Inheritence used to extend and create new classes (FLSR
inherits from FLModel)
38. Introduction
to FLR
FLR Core Object oriented
Team
programming with S4
Introduction
Philosophy
of FLR
A programming language model organized around ”objects”
What is
FLR? rather than ”actions”
Design of
FLR
Uses R S4 classes
What’s next Everything is an object of a particular class
?
Objects have:
members (data) and
methods (functions associated with it that act on member
data)
Inheritence used to extend and create new classes (FLSR
inherits from FLModel)
Classes can be members of other classes (most FLR
classes include FLQuants as members)
39. Introduction
to FLR
FLR Core Design principles
Team
Introduction
Philosophy
of FLR
What is
FLR?
Design of
FLR
What’s next
?
40. Introduction
to FLR
FLR Core Design principles
Team
Introduction
Philosophy
of FLR
What is
Classes to represent different elements of fisheries systems
FLR?
Design of
FLR
What’s next
?
41. Introduction
to FLR
FLR Core Design principles
Team
Introduction
Philosophy
of FLR
What is
Classes to represent different elements of fisheries systems
FLR?
’physical’ objects (e.g. FLStock class represents a fish
Design of
FLR stock)
What’s next
?
42. Introduction
to FLR
FLR Core Design principles
Team
Introduction
Philosophy
of FLR
What is
Classes to represent different elements of fisheries systems
FLR?
’physical’ objects (e.g. FLStock class represents a fish
Design of
FLR stock)
What’s next
? ’methodological’ objects (e.g. FLBRP class containing
methods to calculate BRP)
43. Introduction
to FLR
FLR Core Design principles
Team
Introduction
Philosophy
of FLR
What is
Classes to represent different elements of fisheries systems
FLR?
’physical’ objects (e.g. FLStock class represents a fish
Design of
FLR stock)
What’s next
? ’methodological’ objects (e.g. FLBRP class containing
methods to calculate BRP)
Link objects to create simulations - Lego blocks (MSE
example)
44. Introduction
to FLR
FLR Core Design principles
Team
Introduction
Philosophy
of FLR
What is
Classes to represent different elements of fisheries systems
FLR?
’physical’ objects (e.g. FLStock class represents a fish
Design of
FLR stock)
What’s next
? ’methodological’ objects (e.g. FLBRP class containing
methods to calculate BRP)
Link objects to create simulations - Lego blocks (MSE
example)
Learning curve: trade off between flexibility and simplicity
(no black boxes and no handle turning)
45. Introduction
to FLR
FLR Core FLR & S4
Team
FLR hierarchical model
Introduction
Philosophy
of FLR FLCore
What is
FLR?
classes
Design of methods
FLR
What’s next
?
inherits
extends
2ndry pkg
classes
methods
46. Introduction
to FLR
FLR Core Packages
Team
FLR packages' development model
Introduction
Philosophy
of FLR
FLCore
What is
FLR?
Design of
FLR
What’s next
?
FLEDA FLAssess FLash
FLBRP
FLXSA FL...
47. Introduction
to FLR
FLR Core MSE - The Lego block
Team
approach
Introduction
Philosophy
of FLR
What is
FLR?
Design of
FLR
What’s next
?
48. Introduction
to FLR
FLR Core What’s next ?
Team
Introduction
Philosophy
of FLR
What is
FLR?
Design of
FLR
What’s next
?