SlideShare a Scribd company logo
1 of 52
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
Impatience
Hubris
Is it right?
Running Cocoon
“
Everything should be made
as simple as possible,
but not simpler.
Albert Einstein
                  ”
./build.sh
BUILD SUCCESSFUL
Total time: 12 minutes 26 seconds
Binary or not?
./cocoon.sh servlet
./cocoon.sh
Easy Install
Building Cocoon
Blocks, M2,
obsolescence
The GUI phenomenon
Configuration
Convention over
 configuration
“
Out of intense complexities

                          ”
intense simplicities emerge.
Winston Churchill
Developing with
   Cocoon
Two types of developer
Ant
Maven Cocoon plugin
What Rails does right
“
Simplicity is the
ultimate sophistication
Leonardo da Vinci
                    ”
Write less code
Don’t repeat yourself
Rails meets
Cocoon:
Raccoon
Template application
Dynamic generation...
Cool videos
Starting a Cocoon app
Adding “controller”
Databases
Dynamic forms
Any questions?

More Related Content

Similar to Simplifying Cocoon GetTogether Amsterdam 2005

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
Mini hacks, big differenceMini hacks, big difference
Mini hacks, big differenceSally Lait
 
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
 
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 GetTogether Amsterdam 2005 (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
Mini hacks, big differenceMini hacks, big difference
Mini hacks, big difference
 
Mini Hacks: Big Difference (Sally Jenkinson)
Mini Hacks: Big Difference (Sally Jenkinson) Mini Hacks: Big Difference (Sally Jenkinson)
Mini Hacks: Big Difference (Sally Jenkinson)
 
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

Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 

Recently uploaded (20)

Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 

Simplifying Cocoon GetTogether Amsterdam 2005

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