SlideShare uma empresa Scribd logo
1 de 46
Baixar para ler offline
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

Mais conteúdo relacionado

Semelhante a Advanced Seaside (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
 

Mais 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 programming
ESUG
 
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
ESUG
 
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 results
ESUG
 
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
ESUG
 
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
ESUG
 
Creating Unit Tests Using Genetic Programming
Creating Unit Tests Using Genetic ProgrammingCreating Unit Tests Using Genetic Programming
Creating Unit Tests Using Genetic Programming
ESUG
 
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
ESUG
 
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
ESUG
 
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
ESUG
 
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
ESUG
 
Pharo DataFrame: Past, Present, and Future
Pharo DataFrame: Past, Present, and FuturePharo DataFrame: Past, Present, and Future
Pharo DataFrame: Past, Present, and Future
ESUG
 
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
ESUG
 

Mais 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

Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 

Último (20)

Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
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
 
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
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
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
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
 
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
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
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
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
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...
 
[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
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 

Advanced Seaside

  • 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