SlideShare uma empresa Scribd logo
1 de 46
Baixar para ler offline
flexible software analysis with
moosetechnology.org


www.tudorgirba.com
nolog y.org
    oose tech
m
nolog y.org
    oose tech
m
nolog y.org
    oose tech
m
smen t.com
     m ane- asse
hu
development
development   assessment
assessment
data   knowledge
data   tools   knowledge
data   tools   models   knowledge
data   tools   models   knowledge
data               tools    models   knowledge




moose
         techno
                l   ogy.org
data              importers   models




moose
         techno
                l   ogy.org
data              importers   models   analyses




moose
         techno
                l   ogy.org
0   0



                                                   ...
 McCabe                     3 ,0
          = 21
                       75
                   =
               C
            L O
                      God
           elect: #is
 classes s




moose
           techno
                  l                      ogy.org
0   0



                                                   ...
 McCabe                     3 ,0
          = 21
                       75
                   =
               C
            L O
                      God
           elect: #is
 classes s




moose
           techno
                  l                      ogy.org
0   0



                                                   ...
 McCabe                     3 ,0
          = 21
                       75
                   =
               C
            L O
                      God
           elect: #is
 classes s




moose
           techno
                  l                      ogy.org
0   0



                                                   ...
 McCabe                     3 ,0
          = 21
                       75
                   =
               C
            L O
                      God
           elect: #is
 classes s




moose
           techno
                  l                      ogy.org
0   0



                                                   ...
 McCabe                     3 ,0
          = 21
                       75
                   =
               C
            L O
                      God
           elect: #is
 classes s




moose
           techno
                  l                      ogy.org
0   0



                                                   ...
 McCabe                     3 ,0
          = 21
                       75
                   =
               C
            L O
                      God
           elect: #is
 classes s




moose
           techno
                  l                      ogy.org
0   0



                                                   ...
 McCabe                     3 ,0
          = 21
                       75
                   =
               C
            L O
                      God
           elect: #is
 classes s




moose
           techno
                  l                      ogy.org
0   0



                                                   ...
 McCabe                     3 ,0
          = 21
                       75
                   =
               C
            L O
                      God
           elect: #is
 classes s




moose
           techno
                  l                      ogy.org
data   importers   models   analyses
data   importers   models    analyses




                   engines
data              importers   models    analyses




                                engines
moose
         techno
                l   ogy.org
What is this made of?
What is this made of?
b := GLMTabulator new.          b transmit
b column: #namespaces;             toOutsidePort: #class;
  column: #classes;                from: #classes.
  column: #methods.             b transmit to: #methods;
b transmit to: #namespaces;       from: #methods.
  andShow: [:a |                B := GLMTabulator new.
    a tree                      B title: 'Code Browser'.
      display: [ :model |       B row: #nav;
        model allNamespaces       row: #details.
        select: #isRoot ];      B transmit to: #nav;
      children: #childScopes;     andShow: [:a |
      format: #name ].              a custom: b ].
b transmit to: #classes;        B transmit to: #details;
  from: #namespaces;              from: #nav port: #class;
  andShow: [:a |                  andShow: [:a |
    a list                          a text
      display: #classes;              display: #sourceText ].
      format: #name ].          B transmit to: #details;
b transmit to: #methods;          from: #nav port: #method;
  from: #classes;                 andShow: [:a |
  andShow: [:a |                    a text
    a list                            display: #sourceText ].
      display: #methods;
      format: #signature ].
s eboo k.org
th emoo
data              importers   models    analyses




                                engines
moose
         techno
                l   ogy.org
development   assessment
development   assessment
development   assessment
explicit

development   assessment   tailored

                           educated
explicit

development   assessment            tailored

                                    educated



                                    smen t.com
                      m ane- asse
                 hu
flexible software analysis with
moosetechnology.org


www.tudorgirba.com
Tudor Gîrba
              www.tudorgirba.com




http://creativecommons.org/licenses/by-nc-sa/3.0/

Mais conteúdo relacionado

Mais de Tudor Girba

1800+ TED talks later
1800+ TED talks later1800+ TED talks later
1800+ TED talks laterTudor Girba
 
Software assessment by example (lecture at the University of Bern)
Software assessment by example (lecture at the University of Bern)Software assessment by example (lecture at the University of Bern)
Software assessment by example (lecture at the University of Bern)Tudor Girba
 
Humane assessment: Taming the elephant from the development room
Humane assessment: Taming the elephant from the development roomHumane assessment: Taming the elephant from the development room
Humane assessment: Taming the elephant from the development roomTudor Girba
 
Moose: how to solve real problems without reading code
Moose: how to solve real problems without reading codeMoose: how to solve real problems without reading code
Moose: how to solve real problems without reading codeTudor Girba
 
Software Environmentalism (ECOOP 2014 Keynote)
Software Environmentalism (ECOOP 2014 Keynote)Software Environmentalism (ECOOP 2014 Keynote)
Software Environmentalism (ECOOP 2014 Keynote)Tudor Girba
 
The emergent nature of software systems
The emergent nature of software systemsThe emergent nature of software systems
The emergent nature of software systemsTudor Girba
 
Presenting is storytelling at Uni Zurich - slides (2014-03-05)
Presenting is storytelling at Uni Zurich - slides (2014-03-05)Presenting is storytelling at Uni Zurich - slides (2014-03-05)
Presenting is storytelling at Uni Zurich - slides (2014-03-05)Tudor Girba
 
Presenting is storytelling at Uni Zurich - handouts (2014-03-05)
Presenting is storytelling at Uni Zurich - handouts (2014-03-05)Presenting is storytelling at Uni Zurich - handouts (2014-03-05)
Presenting is storytelling at Uni Zurich - handouts (2014-03-05)Tudor Girba
 
Underneath Scrum: Reflective Thinking (talk at Scrum Breakfast Bern, 2013)
Underneath Scrum: Reflective Thinking (talk at Scrum Breakfast Bern, 2013)Underneath Scrum: Reflective Thinking (talk at Scrum Breakfast Bern, 2013)
Underneath Scrum: Reflective Thinking (talk at Scrum Breakfast Bern, 2013)Tudor Girba
 
Demo-driven innovation teaser
Demo-driven innovation teaserDemo-driven innovation teaser
Demo-driven innovation teaserTudor Girba
 
Software assessment essentials (lecture at the University of Bern 2013)
Software assessment essentials (lecture at the University of Bern 2013)Software assessment essentials (lecture at the University of Bern 2013)
Software assessment essentials (lecture at the University of Bern 2013)Tudor Girba
 
Demo-driven innovation (University of Zurich, June 2013)
Demo-driven innovation (University of Zurich, June 2013)Demo-driven innovation (University of Zurich, June 2013)
Demo-driven innovation (University of Zurich, June 2013)Tudor Girba
 
Humane assessment with Moose at GOTO Aarhus 2011
Humane assessment with Moose at GOTO Aarhus 2011Humane assessment with Moose at GOTO Aarhus 2011
Humane assessment with Moose at GOTO Aarhus 2011Tudor Girba
 
Holistic software assessment at the University of Zurich
Holistic software assessment at the University of ZurichHolistic software assessment at the University of Zurich
Holistic software assessment at the University of ZurichTudor Girba
 
Petitparser at the Deep into Smalltalk School 2011
Petitparser at the Deep into Smalltalk School 2011Petitparser at the Deep into Smalltalk School 2011
Petitparser at the Deep into Smalltalk School 2011Tudor Girba
 
11 - Programming languages
11 - Programming languages11 - Programming languages
11 - Programming languagesTudor Girba
 
10 - Models and languages
10 - Models and languages10 - Models and languages
10 - Models and languagesTudor Girba
 
09 - Program verification
09 - Program verification09 - Program verification
09 - Program verificationTudor Girba
 

Mais de Tudor Girba (20)

1800+ TED talks later
1800+ TED talks later1800+ TED talks later
1800+ TED talks later
 
Software assessment by example (lecture at the University of Bern)
Software assessment by example (lecture at the University of Bern)Software assessment by example (lecture at the University of Bern)
Software assessment by example (lecture at the University of Bern)
 
Humane assessment: Taming the elephant from the development room
Humane assessment: Taming the elephant from the development roomHumane assessment: Taming the elephant from the development room
Humane assessment: Taming the elephant from the development room
 
Moose: how to solve real problems without reading code
Moose: how to solve real problems without reading codeMoose: how to solve real problems without reading code
Moose: how to solve real problems without reading code
 
Software Environmentalism (ECOOP 2014 Keynote)
Software Environmentalism (ECOOP 2014 Keynote)Software Environmentalism (ECOOP 2014 Keynote)
Software Environmentalism (ECOOP 2014 Keynote)
 
The emergent nature of software systems
The emergent nature of software systemsThe emergent nature of software systems
The emergent nature of software systems
 
Presenting is storytelling at Uni Zurich - slides (2014-03-05)
Presenting is storytelling at Uni Zurich - slides (2014-03-05)Presenting is storytelling at Uni Zurich - slides (2014-03-05)
Presenting is storytelling at Uni Zurich - slides (2014-03-05)
 
Presenting is storytelling at Uni Zurich - handouts (2014-03-05)
Presenting is storytelling at Uni Zurich - handouts (2014-03-05)Presenting is storytelling at Uni Zurich - handouts (2014-03-05)
Presenting is storytelling at Uni Zurich - handouts (2014-03-05)
 
Underneath Scrum: Reflective Thinking (talk at Scrum Breakfast Bern, 2013)
Underneath Scrum: Reflective Thinking (talk at Scrum Breakfast Bern, 2013)Underneath Scrum: Reflective Thinking (talk at Scrum Breakfast Bern, 2013)
Underneath Scrum: Reflective Thinking (talk at Scrum Breakfast Bern, 2013)
 
Demo-driven innovation teaser
Demo-driven innovation teaserDemo-driven innovation teaser
Demo-driven innovation teaser
 
Software assessment essentials (lecture at the University of Bern 2013)
Software assessment essentials (lecture at the University of Bern 2013)Software assessment essentials (lecture at the University of Bern 2013)
Software assessment essentials (lecture at the University of Bern 2013)
 
Demo-driven innovation (University of Zurich, June 2013)
Demo-driven innovation (University of Zurich, June 2013)Demo-driven innovation (University of Zurich, June 2013)
Demo-driven innovation (University of Zurich, June 2013)
 
Humane assessment with Moose at GOTO Aarhus 2011
Humane assessment with Moose at GOTO Aarhus 2011Humane assessment with Moose at GOTO Aarhus 2011
Humane assessment with Moose at GOTO Aarhus 2011
 
Holistic software assessment at the University of Zurich
Holistic software assessment at the University of ZurichHolistic software assessment at the University of Zurich
Holistic software assessment at the University of Zurich
 
Petitparser at the Deep into Smalltalk School 2011
Petitparser at the Deep into Smalltalk School 2011Petitparser at the Deep into Smalltalk School 2011
Petitparser at the Deep into Smalltalk School 2011
 
12 - Overview
12 - Overview12 - Overview
12 - Overview
 
11 - Programming languages
11 - Programming languages11 - Programming languages
11 - Programming languages
 
10 - Models and languages
10 - Models and languages10 - Models and languages
10 - Models and languages
 
09 - Program verification
09 - Program verification09 - Program verification
09 - Program verification
 
08 - Complexity
08 - Complexity08 - Complexity
08 - Complexity
 

Último

Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embeddingZilliz
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsNathaniel Shimoni
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demoHarshalMandlekar2
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESmohitsingh558521
 

Último (20)

Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embedding
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directions
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demo
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
 

Flexible analysis with Moose at Jazoon 2011

  • 1. flexible software analysis with moosetechnology.org www.tudorgirba.com
  • 2. nolog y.org oose tech m
  • 3. nolog y.org oose tech m
  • 4. nolog y.org oose tech m
  • 5. smen t.com m ane- asse hu
  • 7. development assessment
  • 9.
  • 10.
  • 11. data knowledge
  • 12. data tools knowledge
  • 13. data tools models knowledge
  • 14. data tools models knowledge
  • 15. data tools models knowledge moose techno l ogy.org
  • 16. data importers models moose techno l ogy.org
  • 17. data importers models analyses moose techno l ogy.org
  • 18. 0 0 ... McCabe 3 ,0 = 21 75 = C L O God elect: #is classes s moose techno l ogy.org
  • 19. 0 0 ... McCabe 3 ,0 = 21 75 = C L O God elect: #is classes s moose techno l ogy.org
  • 20. 0 0 ... McCabe 3 ,0 = 21 75 = C L O God elect: #is classes s moose techno l ogy.org
  • 21.
  • 22.
  • 23.
  • 24. 0 0 ... McCabe 3 ,0 = 21 75 = C L O God elect: #is classes s moose techno l ogy.org
  • 25. 0 0 ... McCabe 3 ,0 = 21 75 = C L O God elect: #is classes s moose techno l ogy.org
  • 26.
  • 27.
  • 28. 0 0 ... McCabe 3 ,0 = 21 75 = C L O God elect: #is classes s moose techno l ogy.org
  • 29. 0 0 ... McCabe 3 ,0 = 21 75 = C L O God elect: #is classes s moose techno l ogy.org
  • 30. 0 0 ... McCabe 3 ,0 = 21 75 = C L O God elect: #is classes s moose techno l ogy.org
  • 31. data importers models analyses
  • 32. data importers models analyses engines
  • 33. data importers models analyses engines moose techno l ogy.org
  • 34. What is this made of?
  • 35.
  • 36. What is this made of?
  • 37. b := GLMTabulator new. b transmit b column: #namespaces; toOutsidePort: #class; column: #classes; from: #classes. column: #methods. b transmit to: #methods; b transmit to: #namespaces; from: #methods. andShow: [:a | B := GLMTabulator new. a tree B title: 'Code Browser'. display: [ :model | B row: #nav; model allNamespaces row: #details. select: #isRoot ]; B transmit to: #nav; children: #childScopes; andShow: [:a | format: #name ]. a custom: b ]. b transmit to: #classes; B transmit to: #details; from: #namespaces; from: #nav port: #class; andShow: [:a | andShow: [:a | a list a text display: #classes; display: #sourceText ]. format: #name ]. B transmit to: #details; b transmit to: #methods; from: #nav port: #method; from: #classes; andShow: [:a | andShow: [:a | a text a list display: #sourceText ]. display: #methods; format: #signature ].
  • 39. data importers models analyses engines moose techno l ogy.org
  • 40. development assessment
  • 41. development assessment
  • 42. development assessment
  • 43. explicit development assessment tailored educated
  • 44. explicit development assessment tailored educated smen t.com m ane- asse hu
  • 45. flexible software analysis with moosetechnology.org www.tudorgirba.com
  • 46. Tudor Gîrba www.tudorgirba.com http://creativecommons.org/licenses/by-nc-sa/3.0/