SlideShare a Scribd company logo

Simplifying Cocoon

These slides were for a presentation at the Apache Cocoon GetTogether in 2005. From http://web.archive.org/web/20051221213534/www.cocoongt.org/speakers/andrew.html here is the synopsis: New frameworks such as Ruby on Rails are teaching the old dogs some new tricks. With the maxims of "write less code", "don't repeat yourself" and " convention over configuration", programming has become fun again. What can the Cocoon framework learn from this? Consider the lilies: most Java/XML developers fight with configuration and project building tools, and while they do XML situps, our Rails colleagues utter nice Zen-like 'umms' as their framework gently guesses at their thoughts. This session will point out the ways in which we can learn from our competitors and make life easier for our users. It will also introduce Racoon: all the fun of Rails, on Cocoon.

1 of 52
Download to read offline
Simplifying Cocoon
  Cocoon GetTogether, Amsterdam
        7th October 2005
Why?
Cocoon SUCKS!
Cocoon is a fantastic and powerful application framework
but it’s flexibility is it’s downfall: it’s simply too difficult to
know where to begin and therefore I will not be using it.
“
Three great virtues of programming
are laziness, impatience, and hubris.
Larry Wall                       ”
Laziness

Recommended

A tale of Two Passions
A tale of Two PassionsA tale of Two Passions
A tale of Two PassionsT.S. Lim
 
AdaptTo 2013: Slinging multichannel content the BrowserMap way / Device Detec...
AdaptTo 2013: Slinging multichannel content the BrowserMap way / Device Detec...AdaptTo 2013: Slinging multichannel content the BrowserMap way / Device Detec...
AdaptTo 2013: Slinging multichannel content the BrowserMap way / Device Detec...Andrew Savory
 
Gnome, linux mobile stacks, and you
Gnome, linux mobile stacks, and youGnome, linux mobile stacks, and you
Gnome, linux mobile stacks, and youAndrew Savory
 
Whose work is it anyway?
Whose work is it anyway?Whose work is it anyway?
Whose work is it anyway?Andrew Savory
 
CQCON CQ Maven Methods
CQCON CQ Maven MethodsCQCON CQ Maven Methods
CQCON CQ Maven MethodsAndrew Savory
 
Solr, Lucene, Apache, and You!
Solr, Lucene, Apache, and You!Solr, Lucene, Apache, and You!
Solr, Lucene, Apache, and You!Andrew Savory
 
Marketing to the Mobile Elite
Marketing to the Mobile EliteMarketing to the Mobile Elite
Marketing to the Mobile EliteAndrew Savory
 

More Related Content

Similar to Simplifying Cocoon

Convention of RoR, openit 2015
Convention of RoR, openit 2015Convention of RoR, openit 2015
Convention of RoR, openit 2015Yunho Jo
 
Mobile Applications with Angular 4 and Ionic 3
Mobile Applications with Angular 4 and Ionic 3Mobile Applications with Angular 4 and Ionic 3
Mobile Applications with Angular 4 and Ionic 3Oleksandr Tryshchenko
 
Happy Helming With Okteto
Happy Helming With OktetoHappy Helming With Okteto
Happy Helming With Oktetosangam biradar
 
Android Unplugged Event GDSC MJCET .pptx
Android Unplugged Event GDSC MJCET .pptxAndroid Unplugged Event GDSC MJCET .pptx
Android Unplugged Event GDSC MJCET .pptxMohdAbdulAleem4
 
Developer Day 2014 - 6 - open source iot - eclipse foundation
Developer Day 2014 - 6 - open source iot - eclipse foundationDeveloper Day 2014 - 6 - open source iot - eclipse foundation
Developer Day 2014 - 6 - open source iot - eclipse foundationThibault Cantegrel
 
Mini Hacks: Big Difference (Sally Jenkinson)
Mini Hacks: Big Difference (Sally Jenkinson) Mini Hacks: Big Difference (Sally Jenkinson)
Mini Hacks: Big Difference (Sally Jenkinson) Ladies Who Code
 
Mini hacks, big difference
Mini hacks, big differenceMini hacks, big difference
Mini hacks, big differenceSally Lait
 
Architecture for mere mortals
Architecture for mere mortalsArchitecture for mere mortals
Architecture for mere mortalsColin Lee
 
Cloud Computing Bootcamp On The Google App Engine For Iasa V1.2.4
Cloud Computing Bootcamp On The Google App Engine For Iasa V1.2.4Cloud Computing Bootcamp On The Google App Engine For Iasa V1.2.4
Cloud Computing Bootcamp On The Google App Engine For Iasa V1.2.4IASA
 
Medium Trust for Umbraco
Medium Trust for UmbracoMedium Trust for Umbraco
Medium Trust for UmbracoWarren Buckley
 
The world of Containers with Podman, Buildah, Skopeo by Seema - CCDays
The world of Containers with Podman, Buildah, Skopeo by Seema - CCDaysThe world of Containers with Podman, Buildah, Skopeo by Seema - CCDays
The world of Containers with Podman, Buildah, Skopeo by Seema - CCDaysCodeOps Technologies LLP
 
Why I ❤️ Kotlin Multiplatform (and want YOU to also ❤️ Kotlin Multiplatform)
Why I ❤️ Kotlin Multiplatform (and want YOU to also ❤️ Kotlin Multiplatform)Why I ❤️ Kotlin Multiplatform (and want YOU to also ❤️ Kotlin Multiplatform)
Why I ❤️ Kotlin Multiplatform (and want YOU to also ❤️ Kotlin Multiplatform)Derek Lee Boire
 
Bucketbench: Benchmarking Container Runtime Performance
Bucketbench: Benchmarking Container Runtime PerformanceBucketbench: Benchmarking Container Runtime Performance
Bucketbench: Benchmarking Container Runtime PerformancePhil Estes
 
Zero to tested
Zero to testedZero to tested
Zero to testedMagenTys
 
Colony, modularity the easy way
Colony, modularity the easy wayColony, modularity the easy way
Colony, modularity the easy wayHive Solutions
 
Kubernetes buildpacks - from a source code to the running OCI container with ...
Kubernetes buildpacks - from a source code to the running OCI container with ...Kubernetes buildpacks - from a source code to the running OCI container with ...
Kubernetes buildpacks - from a source code to the running OCI container with ...PROIDEA
 
Atmosphere 2016 - Adam Walach - Continuous IoT - with Docker, Go and Jenkins
Atmosphere 2016 - Adam Walach - Continuous IoT - with Docker, Go and JenkinsAtmosphere 2016 - Adam Walach - Continuous IoT - with Docker, Go and Jenkins
Atmosphere 2016 - Adam Walach - Continuous IoT - with Docker, Go and JenkinsPROIDEA
 

Similar to Simplifying Cocoon (20)

Convention of RoR, openit 2015
Convention of RoR, openit 2015Convention of RoR, openit 2015
Convention of RoR, openit 2015
 
Building Containers: How Many Ways Are Too Many?
Building Containers: How Many Ways Are Too Many?Building Containers: How Many Ways Are Too Many?
Building Containers: How Many Ways Are Too Many?
 
Mobile Applications with Angular 4 and Ionic 3
Mobile Applications with Angular 4 and Ionic 3Mobile Applications with Angular 4 and Ionic 3
Mobile Applications with Angular 4 and Ionic 3
 
Happy Helming With Okteto
Happy Helming With OktetoHappy Helming With Okteto
Happy Helming With Okteto
 
Android Unplugged Event GDSC MJCET .pptx
Android Unplugged Event GDSC MJCET .pptxAndroid Unplugged Event GDSC MJCET .pptx
Android Unplugged Event GDSC MJCET .pptx
 
Breaking the monolith
Breaking the monolithBreaking the monolith
Breaking the monolith
 
Developer Day 2014 - 6 - open source iot - eclipse foundation
Developer Day 2014 - 6 - open source iot - eclipse foundationDeveloper Day 2014 - 6 - open source iot - eclipse foundation
Developer Day 2014 - 6 - open source iot - eclipse foundation
 
Mini Hacks: Big Difference (Sally Jenkinson)
Mini Hacks: Big Difference (Sally Jenkinson) Mini Hacks: Big Difference (Sally Jenkinson)
Mini Hacks: Big Difference (Sally Jenkinson)
 
Mini hacks, big difference
Mini hacks, big differenceMini hacks, big difference
Mini hacks, big difference
 
Architecture for mere mortals
Architecture for mere mortalsArchitecture for mere mortals
Architecture for mere mortals
 
Cloud Computing Bootcamp On The Google App Engine For Iasa V1.2.4
Cloud Computing Bootcamp On The Google App Engine For Iasa V1.2.4Cloud Computing Bootcamp On The Google App Engine For Iasa V1.2.4
Cloud Computing Bootcamp On The Google App Engine For Iasa V1.2.4
 
Medium Trust for Umbraco
Medium Trust for UmbracoMedium Trust for Umbraco
Medium Trust for Umbraco
 
The world of Containers with Podman, Buildah, Skopeo by Seema - CCDays
The world of Containers with Podman, Buildah, Skopeo by Seema - CCDaysThe world of Containers with Podman, Buildah, Skopeo by Seema - CCDays
The world of Containers with Podman, Buildah, Skopeo by Seema - CCDays
 
Chatbots
ChatbotsChatbots
Chatbots
 
Why I ❤️ Kotlin Multiplatform (and want YOU to also ❤️ Kotlin Multiplatform)
Why I ❤️ Kotlin Multiplatform (and want YOU to also ❤️ Kotlin Multiplatform)Why I ❤️ Kotlin Multiplatform (and want YOU to also ❤️ Kotlin Multiplatform)
Why I ❤️ Kotlin Multiplatform (and want YOU to also ❤️ Kotlin Multiplatform)
 
Bucketbench: Benchmarking Container Runtime Performance
Bucketbench: Benchmarking Container Runtime PerformanceBucketbench: Benchmarking Container Runtime Performance
Bucketbench: Benchmarking Container Runtime Performance
 
Zero to tested
Zero to testedZero to tested
Zero to tested
 
Colony, modularity the easy way
Colony, modularity the easy wayColony, modularity the easy way
Colony, modularity the easy way
 
Kubernetes buildpacks - from a source code to the running OCI container with ...
Kubernetes buildpacks - from a source code to the running OCI container with ...Kubernetes buildpacks - from a source code to the running OCI container with ...
Kubernetes buildpacks - from a source code to the running OCI container with ...
 
Atmosphere 2016 - Adam Walach - Continuous IoT - with Docker, Go and Jenkins
Atmosphere 2016 - Adam Walach - Continuous IoT - with Docker, Go and JenkinsAtmosphere 2016 - Adam Walach - Continuous IoT - with Docker, Go and Jenkins
Atmosphere 2016 - Adam Walach - Continuous IoT - with Docker, Go and Jenkins
 

More from Andrew Savory

Economics of innovation in mobile
Economics of innovation in mobileEconomics of innovation in mobile
Economics of innovation in mobileAndrew Savory
 
Mobile distributions and upstream challenges
Mobile distributions and upstream challengesMobile distributions and upstream challenges
Mobile distributions and upstream challengesAndrew Savory
 
Open source in mobile
Open source in mobileOpen source in mobile
Open source in mobileAndrew Savory
 
Open Apps - Good, Bad or Ugly?
Open Apps - Good, Bad or Ugly?Open Apps - Good, Bad or Ugly?
Open Apps - Good, Bad or Ugly?Andrew Savory
 
Collaborative Development for the future of Mobile
Collaborative Development for the future of MobileCollaborative Development for the future of Mobile
Collaborative Development for the future of MobileAndrew Savory
 
A to z of open mobile
A to z of open mobileA to z of open mobile
A to z of open mobileAndrew Savory
 

More from Andrew Savory (8)

Economics of innovation in mobile
Economics of innovation in mobileEconomics of innovation in mobile
Economics of innovation in mobile
 
XML and XSLT
XML and XSLTXML and XSLT
XML and XSLT
 
What Students Want
What Students WantWhat Students Want
What Students Want
 
Mobile distributions and upstream challenges
Mobile distributions and upstream challengesMobile distributions and upstream challenges
Mobile distributions and upstream challenges
 
Open source in mobile
Open source in mobileOpen source in mobile
Open source in mobile
 
Open Apps - Good, Bad or Ugly?
Open Apps - Good, Bad or Ugly?Open Apps - Good, Bad or Ugly?
Open Apps - Good, Bad or Ugly?
 
Collaborative Development for the future of Mobile
Collaborative Development for the future of MobileCollaborative Development for the future of Mobile
Collaborative Development for the future of Mobile
 
A to z of open mobile
A to z of open mobileA to z of open mobile
A to z of open mobile
 

Recently uploaded

Roundtable_-_API_Research__Testing_Tools.pdf
Roundtable_-_API_Research__Testing_Tools.pdfRoundtable_-_API_Research__Testing_Tools.pdf
Roundtable_-_API_Research__Testing_Tools.pdfMostafa Higazy
 
Synergy in Leadership and Product Excellence: A Blueprint for Growth by CPO, ...
Synergy in Leadership and Product Excellence: A Blueprint for Growth by CPO, ...Synergy in Leadership and Product Excellence: A Blueprint for Growth by CPO, ...
Synergy in Leadership and Product Excellence: A Blueprint for Growth by CPO, ...Product School
 
ASTRAZENECA. Knowledge Graphs Powering a Fast-moving Global Life Sciences Org...
ASTRAZENECA. Knowledge Graphs Powering a Fast-moving Global Life Sciences Org...ASTRAZENECA. Knowledge Graphs Powering a Fast-moving Global Life Sciences Org...
ASTRAZENECA. Knowledge Graphs Powering a Fast-moving Global Life Sciences Org...Neo4j
 
Pragmatic UI testing with Compose Semantics.pdf
Pragmatic UI testing with Compose Semantics.pdfPragmatic UI testing with Compose Semantics.pdf
Pragmatic UI testing with Compose Semantics.pdfinfogdgmi
 
My Journey towards Artificial Intelligence
My Journey towards Artificial IntelligenceMy Journey towards Artificial Intelligence
My Journey towards Artificial IntelligenceVijayananda Mohire
 
Revolutionizing The Banking Industry: The Monzo Way by CPO, Monzo
Revolutionizing The Banking Industry: The Monzo Way by CPO, MonzoRevolutionizing The Banking Industry: The Monzo Way by CPO, Monzo
Revolutionizing The Banking Industry: The Monzo Way by CPO, MonzoProduct School
 
Launching New Products In Companies Where It Matters Most by Product Director...
Launching New Products In Companies Where It Matters Most by Product Director...Launching New Products In Companies Where It Matters Most by Product Director...
Launching New Products In Companies Where It Matters Most by Product Director...Product School
 
"AIRe - AI Reliability Engineering", Denys Vasyliev
"AIRe - AI Reliability Engineering", Denys Vasyliev"AIRe - AI Reliability Engineering", Denys Vasyliev
"AIRe - AI Reliability Engineering", Denys VasylievFwdays
 
"DevOps Practisting Platform on EKS with Karpenter autoscaling", Dmytro Kozhevin
"DevOps Practisting Platform on EKS with Karpenter autoscaling", Dmytro Kozhevin"DevOps Practisting Platform on EKS with Karpenter autoscaling", Dmytro Kozhevin
"DevOps Practisting Platform on EKS with Karpenter autoscaling", Dmytro KozhevinFwdays
 
How to write an effective Cyber Incident Response Plan
How to write an effective Cyber Incident Response PlanHow to write an effective Cyber Incident Response Plan
How to write an effective Cyber Incident Response PlanDatabarracks
 
"Testing of Helm Charts or There and Back Again", Yura Rochniak
"Testing of Helm Charts or There and Back Again", Yura Rochniak"Testing of Helm Charts or There and Back Again", Yura Rochniak
"Testing of Helm Charts or There and Back Again", Yura RochniakFwdays
 
Mind your App Footprint 🐾⚡️🌱 (@FlutterHeroes 2024)
Mind your App Footprint 🐾⚡️🌱 (@FlutterHeroes 2024)Mind your App Footprint 🐾⚡️🌱 (@FlutterHeroes 2024)
Mind your App Footprint 🐾⚡️🌱 (@FlutterHeroes 2024)François
 
Harnessing the Power of GenAI for Exceptional Product Outcomes by Booking.com...
Harnessing the Power of GenAI for Exceptional Product Outcomes by Booking.com...Harnessing the Power of GenAI for Exceptional Product Outcomes by Booking.com...
Harnessing the Power of GenAI for Exceptional Product Outcomes by Booking.com...Product School
 
Introducing the New FME Community Webinar - Feb 21, 2024 (2).pdf
Introducing the New FME Community Webinar - Feb 21, 2024 (2).pdfIntroducing the New FME Community Webinar - Feb 21, 2024 (2).pdf
Introducing the New FME Community Webinar - Feb 21, 2024 (2).pdfSafe Software
 
From Challenger to Champion: How SpiraPlan Outperforms JIRA+Plugins
From Challenger to Champion: How SpiraPlan Outperforms JIRA+PluginsFrom Challenger to Champion: How SpiraPlan Outperforms JIRA+Plugins
From Challenger to Champion: How SpiraPlan Outperforms JIRA+PluginsInflectra
 
The Future of Product, by Founder & CEO, Product School
The Future of Product, by Founder & CEO, Product SchoolThe Future of Product, by Founder & CEO, Product School
The Future of Product, by Founder & CEO, Product SchoolProduct School
 
Battle of React State Managers in frontend applications
Battle of React State Managers in frontend applicationsBattle of React State Managers in frontend applications
Battle of React State Managers in frontend applicationsEvangelia Mitsopoulou
 
Act Like an Owner, Challenge Like a VC by former CPO, Tripadvisor
Act Like an Owner,  Challenge Like a VC by former CPO, TripadvisorAct Like an Owner,  Challenge Like a VC by former CPO, Tripadvisor
Act Like an Owner, Challenge Like a VC by former CPO, TripadvisorProduct School
 
Empowering Net-Zero: Digital Insights and Funding Opportunities for Industria...
Empowering Net-Zero: Digital Insights and Funding Opportunities for Industria...Empowering Net-Zero: Digital Insights and Funding Opportunities for Industria...
Empowering Net-Zero: Digital Insights and Funding Opportunities for Industria...IES VE
 
HBR SERIES METAL HOUSED RESISTORS POWER ELECTRICAL ABSORBS HIGH CURRENT DURIN...
HBR SERIES METAL HOUSED RESISTORS POWER ELECTRICAL ABSORBS HIGH CURRENT DURIN...HBR SERIES METAL HOUSED RESISTORS POWER ELECTRICAL ABSORBS HIGH CURRENT DURIN...
HBR SERIES METAL HOUSED RESISTORS POWER ELECTRICAL ABSORBS HIGH CURRENT DURIN...htrindia
 

Recently uploaded (20)

Roundtable_-_API_Research__Testing_Tools.pdf
Roundtable_-_API_Research__Testing_Tools.pdfRoundtable_-_API_Research__Testing_Tools.pdf
Roundtable_-_API_Research__Testing_Tools.pdf
 
Synergy in Leadership and Product Excellence: A Blueprint for Growth by CPO, ...
Synergy in Leadership and Product Excellence: A Blueprint for Growth by CPO, ...Synergy in Leadership and Product Excellence: A Blueprint for Growth by CPO, ...
Synergy in Leadership and Product Excellence: A Blueprint for Growth by CPO, ...
 
ASTRAZENECA. Knowledge Graphs Powering a Fast-moving Global Life Sciences Org...
ASTRAZENECA. Knowledge Graphs Powering a Fast-moving Global Life Sciences Org...ASTRAZENECA. Knowledge Graphs Powering a Fast-moving Global Life Sciences Org...
ASTRAZENECA. Knowledge Graphs Powering a Fast-moving Global Life Sciences Org...
 
Pragmatic UI testing with Compose Semantics.pdf
Pragmatic UI testing with Compose Semantics.pdfPragmatic UI testing with Compose Semantics.pdf
Pragmatic UI testing with Compose Semantics.pdf
 
My Journey towards Artificial Intelligence
My Journey towards Artificial IntelligenceMy Journey towards Artificial Intelligence
My Journey towards Artificial Intelligence
 
Revolutionizing The Banking Industry: The Monzo Way by CPO, Monzo
Revolutionizing The Banking Industry: The Monzo Way by CPO, MonzoRevolutionizing The Banking Industry: The Monzo Way by CPO, Monzo
Revolutionizing The Banking Industry: The Monzo Way by CPO, Monzo
 
Launching New Products In Companies Where It Matters Most by Product Director...
Launching New Products In Companies Where It Matters Most by Product Director...Launching New Products In Companies Where It Matters Most by Product Director...
Launching New Products In Companies Where It Matters Most by Product Director...
 
"AIRe - AI Reliability Engineering", Denys Vasyliev
"AIRe - AI Reliability Engineering", Denys Vasyliev"AIRe - AI Reliability Engineering", Denys Vasyliev
"AIRe - AI Reliability Engineering", Denys Vasyliev
 
"DevOps Practisting Platform on EKS with Karpenter autoscaling", Dmytro Kozhevin
"DevOps Practisting Platform on EKS with Karpenter autoscaling", Dmytro Kozhevin"DevOps Practisting Platform on EKS with Karpenter autoscaling", Dmytro Kozhevin
"DevOps Practisting Platform on EKS with Karpenter autoscaling", Dmytro Kozhevin
 
How to write an effective Cyber Incident Response Plan
How to write an effective Cyber Incident Response PlanHow to write an effective Cyber Incident Response Plan
How to write an effective Cyber Incident Response Plan
 
"Testing of Helm Charts or There and Back Again", Yura Rochniak
"Testing of Helm Charts or There and Back Again", Yura Rochniak"Testing of Helm Charts or There and Back Again", Yura Rochniak
"Testing of Helm Charts or There and Back Again", Yura Rochniak
 
Mind your App Footprint 🐾⚡️🌱 (@FlutterHeroes 2024)
Mind your App Footprint 🐾⚡️🌱 (@FlutterHeroes 2024)Mind your App Footprint 🐾⚡️🌱 (@FlutterHeroes 2024)
Mind your App Footprint 🐾⚡️🌱 (@FlutterHeroes 2024)
 
Harnessing the Power of GenAI for Exceptional Product Outcomes by Booking.com...
Harnessing the Power of GenAI for Exceptional Product Outcomes by Booking.com...Harnessing the Power of GenAI for Exceptional Product Outcomes by Booking.com...
Harnessing the Power of GenAI for Exceptional Product Outcomes by Booking.com...
 
Introducing the New FME Community Webinar - Feb 21, 2024 (2).pdf
Introducing the New FME Community Webinar - Feb 21, 2024 (2).pdfIntroducing the New FME Community Webinar - Feb 21, 2024 (2).pdf
Introducing the New FME Community Webinar - Feb 21, 2024 (2).pdf
 
From Challenger to Champion: How SpiraPlan Outperforms JIRA+Plugins
From Challenger to Champion: How SpiraPlan Outperforms JIRA+PluginsFrom Challenger to Champion: How SpiraPlan Outperforms JIRA+Plugins
From Challenger to Champion: How SpiraPlan Outperforms JIRA+Plugins
 
The Future of Product, by Founder & CEO, Product School
The Future of Product, by Founder & CEO, Product SchoolThe Future of Product, by Founder & CEO, Product School
The Future of Product, by Founder & CEO, Product School
 
Battle of React State Managers in frontend applications
Battle of React State Managers in frontend applicationsBattle of React State Managers in frontend applications
Battle of React State Managers in frontend applications
 
Act Like an Owner, Challenge Like a VC by former CPO, Tripadvisor
Act Like an Owner,  Challenge Like a VC by former CPO, TripadvisorAct Like an Owner,  Challenge Like a VC by former CPO, Tripadvisor
Act Like an Owner, Challenge Like a VC by former CPO, Tripadvisor
 
Empowering Net-Zero: Digital Insights and Funding Opportunities for Industria...
Empowering Net-Zero: Digital Insights and Funding Opportunities for Industria...Empowering Net-Zero: Digital Insights and Funding Opportunities for Industria...
Empowering Net-Zero: Digital Insights and Funding Opportunities for Industria...
 
HBR SERIES METAL HOUSED RESISTORS POWER ELECTRICAL ABSORBS HIGH CURRENT DURIN...
HBR SERIES METAL HOUSED RESISTORS POWER ELECTRICAL ABSORBS HIGH CURRENT DURIN...HBR SERIES METAL HOUSED RESISTORS POWER ELECTRICAL ABSORBS HIGH CURRENT DURIN...
HBR SERIES METAL HOUSED RESISTORS POWER ELECTRICAL ABSORBS HIGH CURRENT DURIN...
 

Simplifying Cocoon

Editor's Notes

  1. Anecdote: In my experience, two years as a Mac user does crazy things to your brain. You come to wonder why everything isn’t as simple as point-and-click or drag-and-drop, and you develop an impatience for anything that isn’t self-evident and totally obvious to work with. This means that working with Cocoon can sometimes be a challenge! Mostly, Devil’s Advocate here. A chance to get some RTs off my chest in a non-threatening environment (i.e. in front of 120+ people)
  2. Three great virtues of programming are laziness, impatience, and hubris. -- Larry Wall, http://www.oreilly.com/catalog/opensources/book/larry.html I’m going to apply those virtues to Cocoon.
  3. (Crop/skip photo? photo of sleeping person) People talk about “XML sit-ups”, sounds like too much hard work. We don’t actively dislike XML like some Rails folk seem to, but it would be nice to give our fingers a rest from typing. Don’t do anything the computer can do for you. Lower the barrier to entry by making as many things as possible as easy as possible.
  4. (photo of someone looking at watch?) Shortest possible time between download and productivity. People want results NOW, or if possible, YESTERDAY. Flow is good, but it can still take some time to see results when building Cocoon applications (an eternity in comparison to Rails, which we’ll talk about later). Hopefully Torsten is going to help with my impatience in his talk on Rapid Application Development with javaflow and the compiling class loader.
  5. Overbearing pride or presumption: the ultimate presumption is to tell Cocoon developers that are infinitely better than me that we’re doing it all wrong. I’d like to apologise in advance: sorry :-) I’m not presuming that people aren’t aware of this - these are not new ideas, rather a collection of similar ideas gathered in one place. The presumption is that we can make this happen given the conservative resources at play (time, money). Maybe this talk will help make resources available.
  6. Before I go any further, I’ll answer a question many of you may be asking - why would we do this? Should a powerful tool like Cocoon be easy to use? Should Cocoon go after the “low hanging fruit” in the web application arena? Why wouldn’t we? If we don’t, we’re one step closer to thermal death. Stefano’s email about Cocoon obsolete.
  7. Let’s take a look at what you need to do to get up and running with Cocoon: - download the latest distribution from the web site. - build. - run. Poll: how many people have downloaded Cocoon? (RAISE OWN HAND, KEEP HAND RAISED) How many people have successfully built Cocoon? How many people have successfully run Cocoon? How many people thought the process was simple enough?
  8. Can we make this process simpler? Or is it already as simple as possible?
  9. (add scrolling build text if possible?) 1700+ lines during build. 12 minutes from clean. Make clear it’s a powerbook. Maybe I need a new machine? What happens if I’m trying to build it in Kuala Lumpur on a 486? (fade to next slide)
  10. Why aren’t we building easy binaries for people? (PAUSE) Acknowledge that fairly soon people will need to build in order to customise the blocks they are using, but initially - why? Remember, LAZINESS. IMPATIENCE. (Reference thread on binary vs. source only distro, and thread on new M2 build binaries.) Timeline: 2003-03-23: Stefano proposes a source-only distribution (with cleaner build) 2005-09-nn: Proposal to make binaries as part of C2.2 M2 builds
  11. Eschew verbosity. If most people are doing this, why specify servlet? What’s the most common use-case? Don’t need to make other options unavailable, just pick simple default. (Rails: ./script/server)
  12. Here’s the HUBRIS. Can we simplify further? I believe so. EASIER RUNNING. Forget the two-step ./build.sh; ./cocoon.sh, refactor mercilessly. Let’s have a new cocoon script. It should: - Check to see if a version is built, if so, runs it. Otherwise, call ./build.sh - Default to most likely option - ‘webapp’. - Be sensibly overridden with additional parameters, or individual scripts still used.
  13. (pic: jack in a box?) Rails has it ... ish. I reckon we can do better. Here’s my crazy thoughts: - Binary installer for as many platforms as possible (Mac done?) - Should automatically startup/shutdown - Configured through system preference pane?
  14. Talked a bit about building already, but only as far as getting a copy of Cocoon running. Let’s look more closely at the issues of building a customised copy of Cocoon.
  15. (Change word to something implying timeliness? Picture of speeding clock?) The move to blocks and refactoring of C2.2 means this section may very quickly become redundant. It may even have happened during the hackathon over the last two days.
  16. GUI build tool thread crops up from time to time. Replacing blocks.properties and build.properties with a friendlier alternative.
  17. (fade to second screenshot?) (add screenshot of pronetics builder?) Upayavira’s initial Installer, from DD-MM-YY.
  18. The Pro-netics version of the build generator.
  19. RT: we have a perfectly decent web application framework - why not build cocoon from within Cocoon? Bootstrapping issues: ship a minimal war that can run the configuration and build process independent of the main build directory? I have a dream. Why don’t we: - Offer friendly descriptions of high-level functionality (task-based?). - Resolve dependencies in the GUI before building. - Offer advanced options for power users.
  20. No more XML sit-ups. Where can we streamline configuration? A lot can be done with a smarter Rails-alike framework generator. (More later on that). But how about simplifying what we’ve got? Do we have too complex a set of needs to offer convention? Is it a philosophical, aesthetic, logistic, or political question? Java vs. Ruby; Java is either flexible or bloated Ruby is either agile or unscalable If it’s philosophical, aesthetic, or political then we have a problem. If the question is just logistics, we should do it because we can; simplicity is always a good thing.
  21. How do we identify the convention? We don’t identify convention, we simplify what we’ve got. Whatever convention emerges out of the practice of simplification, is what is convention at the moment. Let’s talk about one way to simplify configuration. web.xml , cocoon.xconf, sitemap.xmap, ... Let’s use a really good tool I know of to work on the XML for us. Assuming we ship a simple Cocoon webapp for building Cocoon, why not make it do more?
  22. Screenshot(s): configuring Cocoon webapp with GUI - Selecting sitemap components (need ajax expandable yada; binding to generators in sitemap (which is updated from blocks build)) - Defining pipelines - Configuring database connections: a gui to guide them through (more on this later? create from SQL? Not talking sophisticated OR-mapping at this point, going after CRUD guys here) - ...?
  23. I believe there are two types of developer: artisans of complexity and simplicity lovers - those that want a framework to show them best-practice and do as much of the work as possible for them - those that expect their application to exceed the limits of the framework, or to have many external dependencies and great complexity. We’ll deal with the first lot later. This is for the second lot.
  24. This time last year, we were using Ant and patching an installation of Cocoon as we went along. It works, it’s lightweight, it solves many concerns of building Cocoon projects. A template application is available at http://www.luminas.co.uk/gt2005/ Problems: fragile; doesn’t solve the customised Cocoon problem in a terribly elegant way; can’t easily handle lots of external dependencies (ballooning lib directory). Bertrand/Marc approach of copying Cocoon++
  25. Otego’s Maven Cocoon plug-in: best kept secret? It: - Handles blocks.properties/build.properties for you - Builds Cocoon when needed - Uses maven, so all the benefits of maven - Can generate a self-deployable Cocoon jar file
  26. We’ve looked at a few areas where Cocoon could do better for the users. By looking at other frameworks we can get more good ideas.
  27. (fade bottom?) Rails makes it REALLY simple to get up and running with a sample webapp. Without writing many lines of code and minimal effort, you can do basic CreateReadUpdateDelete webapps. These may not be the typical Cocoon webapp, but why couldn’t they be? Through simplifying the framework we may truly achieve sophistication.
  28. Auto-generate where possible. Default templates, bindings, flowscript, pipelines? Bean generators? Let’s get xdoclet examples out there!
  29. When I was first thinking about this, the Summer of Code project to add CForms libraries had not begun. Still writing a lot from scratch, would be great to build up library of common cocoon components (at a more abstract/higher level than blocks)
  30. This is my attempt at solving (or at least studying) some of the problems I’ve outlined. (Racoon in programme, lots of other Racoons)
  31. Need to talk about how this differs from Bertrand’s proposal: Obviously cocoon has many samples and is starting to have example application available. I wanted to go one step further and provide people with a “best practice” starting point for a Cocoon application. - generates required directories and files from the command-line - provides a servlet container as Cocoon does, but deployed in each of your applications. - Can get running with: ./racoon myapp cd myapp; ./server
  32. Create sitemaps, cforms and flow on the fly from a database. Generate objects ‘dynamically’ from templates (if not there already)
  33. What truly sets the Rails community apart is the slick marketing they are doing. Their ‘15 minute blog’ is a prime example. Let’s see if we can do it in Racoon ...
  34. Getting up and running; being able to see -something- within the first 30s of development (Better than 12 minutes of compilation first!)
  35. Adding controller
  36. Dynamic database editing