SlideShare una empresa de Scribd logo
1 de 46
Descargar para leer sin conexión
Advanced
                           ESUG 2012 Ghent
                             Aug 30, 2012



Thursday, August 30, 12
Seaside 2.x


                            Seaside



Thursday, August 30, 12
Seaside 3.x

                          Core        Javascript

                                 JQuery
                                          Session
                      Component

Thursday, August 30, 12
What is Seaside-Core
                     • “Seaside Meta”
                     • Web Framework Framework
                     • HTTP Abstraction
                     • Servlet API
                     • Rack
                     • WSGI
Thursday, August 30, 12
Why Seaside-Core

                     • portable (dialect and server)
                     • battle tested
                     • objects, not strings
                     • familiar objects
                     • negligible overhead

Thursday, August 30, 12
Seaside 3.x

                             Core


                          Component

Thursday, August 30, 12
Seaside 3.x

                               Core


                   Component            REST


Thursday, August 30, 12
Seaside 3.x

                             Core


             Component          REST    …


Thursday, August 30, 12
WARequestHandler

                           Request


                          Response
                                     RH



Thursday, August 30, 12
WARequestHandler

                          /conferences   /esug   /2012


                             RH          RH      RH



Thursday, August 30, 12
WARequestFilter



                                 RH



Thursday, August 30, 12
WASession 2.8
                     • current request
                     • jump to
                     • last continuation
                     • continuations
                     • monitor
                     •…
Thursday, August 30, 12
WASession 3.x

                     • continuations
                     • properties
                     • (document handlers)


Thursday, August 30, 12
WARequestContext

                     • request
                     • response
                     • handler stack


Thursday, August 30, 12
Request Handler Stack

                          1    2       3

                          1     1      1

                                2      2

                                       3




Thursday, August 30, 12
WAPathConsumer
                               /conferences/esug/2012/…




                          RH                RH            RH

                   /esug/2012/…           /2012/…         /…


Thursday, August 30, 12
WADispatcher


                          ‘conferences’ -> aRequestHandler
                             ‘sponsors’ -> aRequestHandler
                                    ‘…’ -> aRequestHanlder




Thursday, August 30, 12
WASeverAdapter
                                   provides template methods for converting
                                   provides start and stop hooks
                                   provides easy integration with ser ver manager UI
                                   you don’t have to use it
                                   sets up request context




      XXRequest                   WARequest

                            SA                                            RH
    XXRespone                     WARespone


                            WARequestContext

Thursday, August 30, 12
Frank
                          a micro framework inspired by Sinatra




Thursday, August 30, 12
Seaside-REST



Thursday, August 30, 12
Disclaimer


                     •    REST in this context simply means “pretty URLs”

                     •    pretty URLs for web services, not web applications

                     •    this will feel a little weird




Thursday, August 30, 12
index
                      <get>
                      ^ ‘Hello World’




Thursday, August 30, 12
index
                      <get>
                      <path: ‘index.html’>
                      ^ ‘Hello World’




Thursday, August 30, 12
indexHtml
                      <get>
                      <path: ‘index’>
                      <produces: ‘text/html’>
                      ^ ‘<h1>Hello World</h1>’

                  Accept: text/html




Thursday, August 30, 12
indexXml
                      <get>
                      <path: ‘index’>
                      <produces: ‘text/xml’>
                      ^ ‘<hello><world/></hello>’

                  Accept: text/xml




Thursday, August 30, 12
uploadXml
                      <post>
                      <consumes: ‘text/xml’>
                      …

                  Content-Type: text/xml




Thursday, August 30, 12
uploadCsv
                      <post>
                      <consumes: ‘text/csv’>
                      …

                  Content-Type: text/csv




Thursday, August 30, 12
getAllStartingAt: start limit: limit named: name
      <get>
      <path: ‘/{name}/_all_docs?start={start}&limit={limit}’>
      ...




Thursday, August 30, 12
#shouldCacheRoutes



Thursday, August 30, 12
WARestfulComponentFilter
   count: count
   	 <get>
   	 <path: '/{count}'>
   	 self startSessionWithRoot: (WACounter new
   	 	 count: count greaseInteger;
   	 	 yourself)




Thursday, August 30, 12
Data Binding

                     • XML or JSON canvas
                     • Magritte-XML
                     • Magritte-JSON


Thursday, August 30, 12
Dialects

                     • GemStone
                     • Pharo
                     • VAST


Thursday, August 30, 12
Seaside 3.1



Thursday, August 30, 12
Session Tracking Fully Customizable

                     • query fields
                     • cookie only
                     • cookie if supported, query field otherwise
                     • cookie for browser, IP for crawler
                     • SSL session id (*)
                     • path parameter (*)
Thursday, August 30, 12
Path Parameter

                     • /;_s=KAAWl0x3c6KLnN6Q
                     • doesn’t need to be hidden form parameter
                     • required by some load balancers


Thursday, August 30, 12
WAMain gone


                     • specify initial continuation
                     • subclass WASessionContinuation if you
                          used to subclass WAMain




Thursday, August 30, 12
WAPluggableActionContinuation



                     • replace WAActionPhaseContinuation
                          subclasses with
                          WACallbackProcessingActionContinuation
                          subclasses




Thursday, August 30, 12
JSON

                     • separate from JavaScript
                      • various subtle bugs fixed
                     • canvas API


Thursday, August 30, 12
Streaming Redone

                     •    on demand flushing

                     •    continuation that flushes after rendering </head>

                     •    better portability to other servers




Thursday, August 30, 12
HTML 5



                     •#multipleValuesCallback:


Thursday, August 30, 12
Document Handlers

                     • stored in session
                      • no longer stored alongside sessions
                     • _d


Thursday, August 30, 12
Other News
                     • Nick now part of core team
                     • experimental Pharo 2.0 support
                     • walkback should open at correct place in
                          VW
                     • platforms can implement optimized HTML
                          escaping


Thursday, August 30, 12
Help Wanted


                     • Morphic Control panel for Pharo 2.0



Thursday, August 30, 12
Seaside Sprint

                     • Friday at Vooruit
                     • Saturday at Camp location
                     • (Sunday)


Thursday, August 30, 12
Seaside Sprint Sponsors


                     • Reza Razavi
                     • 2Rivers


Thursday, August 30, 12
Links

                     •    https://github.com/marschall/esug-2012-presentation

                     •    http://ss3.gemstone.com/ss/frank

                     •    http://code.google.com/p/seaside/wiki/Seaside310Changelog

                     •    http://book.seaside.st/book/advanced/restful

                     •    http://code.google.com/p/seaside/wiki/SeasideRest




Thursday, August 30, 12

Más contenido relacionado

Similar a Seaside 3.x Advanced ESUG 2012 Presentation

UX, UI, WTF
UX, UI, WTFUX, UI, WTF
UX, UI, WTFwcfay
 
Cassandra devoxx 2010
Cassandra devoxx 2010Cassandra devoxx 2010
Cassandra devoxx 2010jbellis
 
Clojure Reducers / clj-syd Aug 2012
Clojure Reducers / clj-syd Aug 2012Clojure Reducers / clj-syd Aug 2012
Clojure Reducers / clj-syd Aug 2012Leonardo Borges
 
Python &lt;3 Content systems
Python &lt;3 Content systemsPython &lt;3 Content systems
Python &lt;3 Content systemshenok80
 
Introduction to Vaadin 7
Introduction to Vaadin 7Introduction to Vaadin 7
Introduction to Vaadin 7lastrand
 
Performance & Responsive Web Design
Performance & Responsive Web DesignPerformance & Responsive Web Design
Performance & Responsive Web DesignZach Leatherman
 

Similar a Seaside 3.x Advanced ESUG 2012 Presentation (8)

UX, UI, WTF
UX, UI, WTFUX, UI, WTF
UX, UI, WTF
 
Node jsworkshop
Node jsworkshopNode jsworkshop
Node jsworkshop
 
Cassandra devoxx 2010
Cassandra devoxx 2010Cassandra devoxx 2010
Cassandra devoxx 2010
 
Clojure Reducers / clj-syd Aug 2012
Clojure Reducers / clj-syd Aug 2012Clojure Reducers / clj-syd Aug 2012
Clojure Reducers / clj-syd Aug 2012
 
Python &lt;3 Content systems
Python &lt;3 Content systemsPython &lt;3 Content systems
Python &lt;3 Content systems
 
Vaadin 7
Vaadin 7Vaadin 7
Vaadin 7
 
Introduction to Vaadin 7
Introduction to Vaadin 7Introduction to Vaadin 7
Introduction to Vaadin 7
 
Performance & Responsive Web Design
Performance & Responsive Web DesignPerformance & Responsive Web Design
Performance & Responsive Web Design
 

Más de ESUG

Workshop: Identifying concept inventories in agile programming
Workshop: Identifying concept inventories in agile programmingWorkshop: Identifying concept inventories in agile programming
Workshop: Identifying concept inventories in agile programmingESUG
 
Technical documentation support in Pharo
Technical documentation support in PharoTechnical documentation support in Pharo
Technical documentation support in PharoESUG
 
The Pharo Debugger and Debugging tools: Advances and Roadmap
The Pharo Debugger and Debugging tools: Advances and RoadmapThe Pharo Debugger and Debugging tools: Advances and Roadmap
The Pharo Debugger and Debugging tools: Advances and RoadmapESUG
 
Sequence: Pipeline modelling in Pharo
Sequence: Pipeline modelling in PharoSequence: Pipeline modelling in Pharo
Sequence: Pipeline modelling in PharoESUG
 
Migration process from monolithic to micro frontend architecture in mobile ap...
Migration process from monolithic to micro frontend architecture in mobile ap...Migration process from monolithic to micro frontend architecture in mobile ap...
Migration process from monolithic to micro frontend architecture in mobile ap...ESUG
 
Analyzing Dart Language with Pharo: Report and early results
Analyzing Dart Language with Pharo: Report and early resultsAnalyzing Dart Language with Pharo: Report and early results
Analyzing Dart Language with Pharo: Report and early resultsESUG
 
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6ESUG
 
A Unit Test Metamodel for Test Generation
A Unit Test Metamodel for Test GenerationA Unit Test Metamodel for Test Generation
A Unit Test Metamodel for Test GenerationESUG
 
Creating Unit Tests Using Genetic Programming
Creating Unit Tests Using Genetic ProgrammingCreating Unit Tests Using Genetic Programming
Creating Unit Tests Using Genetic ProgrammingESUG
 
Threaded-Execution and CPS Provide Smooth Switching Between Execution Modes
Threaded-Execution and CPS Provide Smooth Switching Between Execution ModesThreaded-Execution and CPS Provide Smooth Switching Between Execution Modes
Threaded-Execution and CPS Provide Smooth Switching Between Execution ModesESUG
 
Exploring GitHub Actions through EGAD: An Experience Report
Exploring GitHub Actions through EGAD: An Experience ReportExploring GitHub Actions through EGAD: An Experience Report
Exploring GitHub Actions through EGAD: An Experience ReportESUG
 
Pharo: a reflective language A first systematic analysis of reflective APIs
Pharo: a reflective language A first systematic analysis of reflective APIsPharo: a reflective language A first systematic analysis of reflective APIs
Pharo: a reflective language A first systematic analysis of reflective APIsESUG
 
Garbage Collector Tuning
Garbage Collector TuningGarbage Collector Tuning
Garbage Collector TuningESUG
 
Improving Performance Through Object Lifetime Profiling: the DataFrame Case
Improving Performance Through Object Lifetime Profiling: the DataFrame CaseImproving Performance Through Object Lifetime Profiling: the DataFrame Case
Improving Performance Through Object Lifetime Profiling: the DataFrame CaseESUG
 
Pharo DataFrame: Past, Present, and Future
Pharo DataFrame: Past, Present, and FuturePharo DataFrame: Past, Present, and Future
Pharo DataFrame: Past, Present, and FutureESUG
 
thisContext in the Debugger
thisContext in the DebuggerthisContext in the Debugger
thisContext in the DebuggerESUG
 
Websockets for Fencing Score
Websockets for Fencing ScoreWebsockets for Fencing Score
Websockets for Fencing ScoreESUG
 
ShowUs: PharoJS.org Develop in Pharo, Run on JavaScript
ShowUs: PharoJS.org Develop in Pharo, Run on JavaScriptShowUs: PharoJS.org Develop in Pharo, Run on JavaScript
ShowUs: PharoJS.org Develop in Pharo, Run on JavaScriptESUG
 
Advanced Object- Oriented Design Mooc
Advanced Object- Oriented Design MoocAdvanced Object- Oriented Design Mooc
Advanced Object- Oriented Design MoocESUG
 
A New Architecture Reconciling Refactorings and Transformations
A New Architecture Reconciling Refactorings and TransformationsA New Architecture Reconciling Refactorings and Transformations
A New Architecture Reconciling Refactorings and TransformationsESUG
 

Más de ESUG (20)

Workshop: Identifying concept inventories in agile programming
Workshop: Identifying concept inventories in agile programmingWorkshop: Identifying concept inventories in agile programming
Workshop: Identifying concept inventories in agile programming
 
Technical documentation support in Pharo
Technical documentation support in PharoTechnical documentation support in Pharo
Technical documentation support in Pharo
 
The Pharo Debugger and Debugging tools: Advances and Roadmap
The Pharo Debugger and Debugging tools: Advances and RoadmapThe Pharo Debugger and Debugging tools: Advances and Roadmap
The Pharo Debugger and Debugging tools: Advances and Roadmap
 
Sequence: Pipeline modelling in Pharo
Sequence: Pipeline modelling in PharoSequence: Pipeline modelling in Pharo
Sequence: Pipeline modelling in Pharo
 
Migration process from monolithic to micro frontend architecture in mobile ap...
Migration process from monolithic to micro frontend architecture in mobile ap...Migration process from monolithic to micro frontend architecture in mobile ap...
Migration process from monolithic to micro frontend architecture in mobile ap...
 
Analyzing Dart Language with Pharo: Report and early results
Analyzing Dart Language with Pharo: Report and early resultsAnalyzing Dart Language with Pharo: Report and early results
Analyzing Dart Language with Pharo: Report and early results
 
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6
 
A Unit Test Metamodel for Test Generation
A Unit Test Metamodel for Test GenerationA Unit Test Metamodel for Test Generation
A Unit Test Metamodel for Test Generation
 
Creating Unit Tests Using Genetic Programming
Creating Unit Tests Using Genetic ProgrammingCreating Unit Tests Using Genetic Programming
Creating Unit Tests Using Genetic Programming
 
Threaded-Execution and CPS Provide Smooth Switching Between Execution Modes
Threaded-Execution and CPS Provide Smooth Switching Between Execution ModesThreaded-Execution and CPS Provide Smooth Switching Between Execution Modes
Threaded-Execution and CPS Provide Smooth Switching Between Execution Modes
 
Exploring GitHub Actions through EGAD: An Experience Report
Exploring GitHub Actions through EGAD: An Experience ReportExploring GitHub Actions through EGAD: An Experience Report
Exploring GitHub Actions through EGAD: An Experience Report
 
Pharo: a reflective language A first systematic analysis of reflective APIs
Pharo: a reflective language A first systematic analysis of reflective APIsPharo: a reflective language A first systematic analysis of reflective APIs
Pharo: a reflective language A first systematic analysis of reflective APIs
 
Garbage Collector Tuning
Garbage Collector TuningGarbage Collector Tuning
Garbage Collector Tuning
 
Improving Performance Through Object Lifetime Profiling: the DataFrame Case
Improving Performance Through Object Lifetime Profiling: the DataFrame CaseImproving Performance Through Object Lifetime Profiling: the DataFrame Case
Improving Performance Through Object Lifetime Profiling: the DataFrame Case
 
Pharo DataFrame: Past, Present, and Future
Pharo DataFrame: Past, Present, and FuturePharo DataFrame: Past, Present, and Future
Pharo DataFrame: Past, Present, and Future
 
thisContext in the Debugger
thisContext in the DebuggerthisContext in the Debugger
thisContext in the Debugger
 
Websockets for Fencing Score
Websockets for Fencing ScoreWebsockets for Fencing Score
Websockets for Fencing Score
 
ShowUs: PharoJS.org Develop in Pharo, Run on JavaScript
ShowUs: PharoJS.org Develop in Pharo, Run on JavaScriptShowUs: PharoJS.org Develop in Pharo, Run on JavaScript
ShowUs: PharoJS.org Develop in Pharo, Run on JavaScript
 
Advanced Object- Oriented Design Mooc
Advanced Object- Oriented Design MoocAdvanced Object- Oriented Design Mooc
Advanced Object- Oriented Design Mooc
 
A New Architecture Reconciling Refactorings and Transformations
A New Architecture Reconciling Refactorings and TransformationsA New Architecture Reconciling Refactorings and Transformations
A New Architecture Reconciling Refactorings and Transformations
 

Último

EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsRoshan Dwivedi
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
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
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...gurkirankumar98700
 
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
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
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
 
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
 

Último (20)

EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
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
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
 
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...
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
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
 
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...
 

Seaside 3.x Advanced ESUG 2012 Presentation

  • 1. Advanced ESUG 2012 Ghent Aug 30, 2012 Thursday, August 30, 12
  • 2. Seaside 2.x Seaside Thursday, August 30, 12
  • 3. Seaside 3.x Core Javascript JQuery Session Component Thursday, August 30, 12
  • 4. What is Seaside-Core • “Seaside Meta” • Web Framework Framework • HTTP Abstraction • Servlet API • Rack • WSGI Thursday, August 30, 12
  • 5. Why Seaside-Core • portable (dialect and server) • battle tested • objects, not strings • familiar objects • negligible overhead Thursday, August 30, 12
  • 6. Seaside 3.x Core Component Thursday, August 30, 12
  • 7. Seaside 3.x Core Component REST Thursday, August 30, 12
  • 8. Seaside 3.x Core Component REST … Thursday, August 30, 12
  • 9. WARequestHandler Request Response RH Thursday, August 30, 12
  • 10. WARequestHandler /conferences /esug /2012 RH RH RH Thursday, August 30, 12
  • 11. WARequestFilter RH Thursday, August 30, 12
  • 12. WASession 2.8 • current request • jump to • last continuation • continuations • monitor •… Thursday, August 30, 12
  • 13. WASession 3.x • continuations • properties • (document handlers) Thursday, August 30, 12
  • 14. WARequestContext • request • response • handler stack Thursday, August 30, 12
  • 15. Request Handler Stack 1 2 3 1 1 1 2 2 3 Thursday, August 30, 12
  • 16. WAPathConsumer /conferences/esug/2012/… RH RH RH /esug/2012/… /2012/… /… Thursday, August 30, 12
  • 17. WADispatcher ‘conferences’ -> aRequestHandler ‘sponsors’ -> aRequestHandler ‘…’ -> aRequestHanlder Thursday, August 30, 12
  • 18. WASeverAdapter provides template methods for converting provides start and stop hooks provides easy integration with ser ver manager UI you don’t have to use it sets up request context XXRequest WARequest SA RH XXRespone WARespone WARequestContext Thursday, August 30, 12
  • 19. Frank a micro framework inspired by Sinatra Thursday, August 30, 12
  • 21. Disclaimer • REST in this context simply means “pretty URLs” • pretty URLs for web services, not web applications • this will feel a little weird Thursday, August 30, 12
  • 22. index <get> ^ ‘Hello World’ Thursday, August 30, 12
  • 23. index <get> <path: ‘index.html’> ^ ‘Hello World’ Thursday, August 30, 12
  • 24. indexHtml <get> <path: ‘index’> <produces: ‘text/html’> ^ ‘<h1>Hello World</h1>’ Accept: text/html Thursday, August 30, 12
  • 25. indexXml <get> <path: ‘index’> <produces: ‘text/xml’> ^ ‘<hello><world/></hello>’ Accept: text/xml Thursday, August 30, 12
  • 26. uploadXml <post> <consumes: ‘text/xml’> … Content-Type: text/xml Thursday, August 30, 12
  • 27. uploadCsv <post> <consumes: ‘text/csv’> … Content-Type: text/csv Thursday, August 30, 12
  • 28. getAllStartingAt: start limit: limit named: name <get> <path: ‘/{name}/_all_docs?start={start}&limit={limit}’> ... Thursday, August 30, 12
  • 30. WARestfulComponentFilter count: count <get> <path: '/{count}'> self startSessionWithRoot: (WACounter new count: count greaseInteger; yourself) Thursday, August 30, 12
  • 31. Data Binding • XML or JSON canvas • Magritte-XML • Magritte-JSON Thursday, August 30, 12
  • 32. Dialects • GemStone • Pharo • VAST Thursday, August 30, 12
  • 34. Session Tracking Fully Customizable • query fields • cookie only • cookie if supported, query field otherwise • cookie for browser, IP for crawler • SSL session id (*) • path parameter (*) Thursday, August 30, 12
  • 35. Path Parameter • /;_s=KAAWl0x3c6KLnN6Q • doesn’t need to be hidden form parameter • required by some load balancers Thursday, August 30, 12
  • 36. WAMain gone • specify initial continuation • subclass WASessionContinuation if you used to subclass WAMain Thursday, August 30, 12
  • 37. WAPluggableActionContinuation • replace WAActionPhaseContinuation subclasses with WACallbackProcessingActionContinuation subclasses Thursday, August 30, 12
  • 38. JSON • separate from JavaScript • various subtle bugs fixed • canvas API Thursday, August 30, 12
  • 39. Streaming Redone • on demand flushing • continuation that flushes after rendering </head> • better portability to other servers Thursday, August 30, 12
  • 40. HTML 5 •#multipleValuesCallback: Thursday, August 30, 12
  • 41. Document Handlers • stored in session • no longer stored alongside sessions • _d Thursday, August 30, 12
  • 42. Other News • Nick now part of core team • experimental Pharo 2.0 support • walkback should open at correct place in VW • platforms can implement optimized HTML escaping Thursday, August 30, 12
  • 43. Help Wanted • Morphic Control panel for Pharo 2.0 Thursday, August 30, 12
  • 44. Seaside Sprint • Friday at Vooruit • Saturday at Camp location • (Sunday) Thursday, August 30, 12
  • 45. Seaside Sprint Sponsors • Reza Razavi • 2Rivers Thursday, August 30, 12
  • 46. Links • https://github.com/marschall/esug-2012-presentation • http://ss3.gemstone.com/ss/frank • http://code.google.com/p/seaside/wiki/Seaside310Changelog • http://book.seaside.st/book/advanced/restful • http://code.google.com/p/seaside/wiki/SeasideRest Thursday, August 30, 12