SlideShare une entreprise Scribd logo
1  sur  84
Seaside
Why should you care?
~ Dynamic Stockholm 2010 ~
TM
TM
Julian Fitzell
Cincom Systems
Tuesday, November 2, 2010
What is Seaside?
Tuesday, November 2, 2010
A web framework
TM
Tuesday, November 2, 2010
A web framework^
application
TM
Tuesday, November 2, 2010
A web framework^
application
^
Smalltalk
TM
Tuesday, November 2, 2010
A web framework^
application
^
heretical?
TM
Tuesday, November 2, 2010
A web framework^
application
^
heretical?
TM
Tuesday, November 2, 2010
A web framework^
application
^
template-free
TM
Tuesday, November 2, 2010
A web framework^
application
^
open-source
TM
Tuesday, November 2, 2010
WebObjects
Tuesday, November 2, 2010
Ruby
Tuesday, November 2, 2010
Photocourtesyofhttp://www.flickr.com/photos/pragdave/173643703/
Tuesday, November 2, 2010
The web is a language
equalizer
Photocourtesyofhttp://www.flickr.com/photos/pragdave/173643703/
Tuesday, November 2, 2010
Photocourtesyofhttp://www.flickr.com/photos/pragdave/173643703/
I can’t see anything
wrong. Could you try
again?
Tuesday, November 2, 2010
“Why should
I care?”
Tuesday, November 2, 2010
Programming
costs
money
Tuesday, November 2, 2010
Programming
costs
money
lots of
Tuesday, November 2, 2010
Let’s optimize
development
Tuesday, November 2, 2010
Let’s take away the
pain
Tuesday, November 2, 2010
Let’s focus on the
features that make
our products truly
exceptional
Tuesday, November 2, 2010
So what’s
your pain?
Courtesy of stock.xchng user Bubbels
Tuesday, November 2, 2010
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<package name="mailreader-support" namespace="/" extends="mailreader-default">
<action name="Tour">
<result>/tour.html</result>
<interceptor-ref name="guest"/>
</action>
<action name="Welcome" class="mailreader2.Welcome">
<result>/Welcome.jsp</result>
<interceptor-ref name="guest"/>
</action>
<action name="Logout" class="mailreader2.Logout">
<result type="redirectAction">Welcome</result>
</action>
<action name="Login_*" method="{1}" class="mailreader2.Login">
<result name="input">/Login.jsp</result>
<result name="cancel" type="redirectAction">Welcome</result>
<result type="redirectAction">MainMenu</result>
<result name="expired" type="chain">ChangePassword</result>
<exception-mapping
exception="org.apache.struts.apps.mailreader.dao.ExpiredPasswordException"
result="expired"/>
<interceptor-ref name="guest"/>
</action>
<action name="Registration_*" method="{1}" class="mailreader2.Registration">
<result name="input">/Registration.jsp</result>
<result type="redirectAction">MainMenu</result>
<interceptor-ref name="guest"/>
</action>
</package>
XML Files?
Tuesday, November 2, 2010
Tag soup?
Courtesy of stock.xchng user lusi
Tuesday, November 2, 2010
Spaghetti
Templates?
Courtesy of stock.xchng user TouTouke
Tuesday, November 2, 2010
Waiting for
edit,
compile,
run?
Courtesy of stock.xchng user matchstick
Tuesday, November 2, 2010
Code
generation?
Courtesy of stock.xchng users wildiexx and sundesigns
Tuesday, November 2, 2010
Mapping?
Object-Relational
Courtesy of stock.xchng user theswedish
Tuesday, November 2, 2010
Passing around IDs?
Tuesday, November 2, 2010
Security?
Courtesy of stock.xchng user lusi
Tuesday, November 2, 2010
step
Processes?
Multi-
Courtesy of stock.xchng user mexikids
Tuesday, November 2, 2010
Components
Tuesday, November 2, 2010
CBA
Tuesday, November 2, 2010
CBA
Tuesday, November 2, 2010
New Item
Add
Tuesday, November 2, 2010
A B C
Tuesday, November 2, 2010
New Item
Add
Tuesday, November 2, 2010
Demo
Tuesday, November 2, 2010
New Item
Add
?
A B C
Tuesday, November 2, 2010
New Item
Add
?New Item
Add
A B C
Tuesday, November 2, 2010
New Item
Add
New Item
Add
item
item
A B C
Tuesday, November 2, 2010
a := self request: ‘A number?’.
b := self request: ‘Another?’.
self inform: a + b
Tuesday, November 2, 2010
a := self request: ‘A number?’.
b := self request: ‘Another?’.
self inform: a + b
Tuesday, November 2, 2010
Demo
Tuesday, November 2, 2010
ActionAction
WebBrowser
Tuesday, November 2, 2010
WebBrowser
TaskTask
Tuesday, November 2, 2010
WebBrowser
TaskTask
CONTINUATIONS
Tuesday, November 2, 2010
Single Tool-chain
Tuesday, November 2, 2010
“7 Things”
Courtesy of stock.xchng user chux
3
21
4
5
6 7
Tuesday, November 2, 2010
In Smalltalk,
everything is an
object
Tuesday, November 2, 2010
In Smalltalk,
everything is an
object
Seaside+
Tuesday, November 2, 2010
Templates aren’t OO
Tuesday, November 2, 2010
<h1><% print $title %><h1>
Tuesday, November 2, 2010
html heading: title
Tuesday, November 2, 2010
✓Debugging
Tuesday, November 2, 2010
Refactoring
✓
Tuesday, November 2, 2010
Callbacks...
✓
Tuesday, November 2, 2010
<a href=“/deleteItem?id=<% print
$item.id%>”>Delete</a>
Tuesday, November 2, 2010
html anchor
callback: [ self delete: item ];
with: ‘Delete’
Tuesday, November 2, 2010
Security
Courtesy of stock.xchng user julosstock
Tuesday, November 2, 2010
Cross-site scripting
(XSS)
© Mark Miller, from morguefile.com
Tuesday, November 2, 2010
Output is encoded
by default
Tuesday, November 2, 2010
html heading: title
Tuesday, November 2, 2010
Parameter injection
Courtesy of stock.xchng user foxumon
Tuesday, November 2, 2010
Parameter names are
not meaningful
Tuesday, November 2, 2010
IDs are not
passed around
Tuesday, November 2, 2010
Actions are bound to
functions
Tuesday, November 2, 2010
html anchor
callback: [ self delete: item ];
with: ‘Delete’
Tuesday, November 2, 2010
If you don’t expose it,
your users can’t do it!
Tuesday, November 2, 2010
Replay attacks
Courtesy of stock.xchng user ratnesh
Tuesday, November 2, 2010
Tuesday, November 2, 2010
Session (96-bit)
Tuesday, November 2, 2010
Page (96-bit)
Tuesday, November 2, 2010
Tuesday, November 2, 2010
Demo
Tuesday, November 2, 2010
Where can I find out
more?
Tuesday, November 2, 2010
www.seaside.st
Tuesday, November 2, 2010
Tuesday, November 2, 2010
Mailing list
Tuesday, November 2, 2010
Examples
Tuesday, November 2, 2010
Tuesday, November 2, 2010
Tuesday, November 2, 2010
Tuesday, November 2, 2010
In business, there is nothing
more valuable than a technical
advantage your competitors
don't understand.
– Paul Graham
Tuesday, November 2, 2010
Julian Fitzell
jfitzell@cincom.com
blog.fitzell.ca
Twitter: @jfitzell
www.seaside.st
Seaside is a trademark of Avi Bryant and Julian Fitzell
CINCOM and the Quadrant Logo are registered trademarks of Cincom Systems, Inc.
All other trademarks belong to their respective companies.
© 2010 Cincom Systems, Inc.
© 2009 Julian Fitzell
All rights reserved
Tuesday, November 2, 2010

Contenu connexe

En vedette (11)

At the Extremities of Extreme (Agile North 2011)
At the Extremities of Extreme (Agile North 2011)At the Extremities of Extreme (Agile North 2011)
At the Extremities of Extreme (Agile North 2011)
 
Hunt International Training & Speaking Overview --- January 2013
Hunt International Training & Speaking Overview --- January 2013Hunt International Training & Speaking Overview --- January 2013
Hunt International Training & Speaking Overview --- January 2013
 
Seaside - Why should you care? (OSDC.fr 2010)
Seaside - Why should you care? (OSDC.fr 2010)Seaside - Why should you care? (OSDC.fr 2010)
Seaside - Why should you care? (OSDC.fr 2010)
 
Appl Phys Lett 96 211103
Appl Phys Lett 96 211103Appl Phys Lett 96 211103
Appl Phys Lett 96 211103
 
Oração do arcanjo miguel para limpeza espiritual em 21 dias
Oração do arcanjo miguel para limpeza espiritual em 21 diasOração do arcanjo miguel para limpeza espiritual em 21 dias
Oração do arcanjo miguel para limpeza espiritual em 21 dias
 
At the Extremities of Extreme (SPA 2011)
At the Extremities of Extreme (SPA 2011)At the Extremities of Extreme (SPA 2011)
At the Extremities of Extreme (SPA 2011)
 
Real-time Collaborative Development (Jazoon 2011)
Real-time Collaborative Development (Jazoon 2011)Real-time Collaborative Development (Jazoon 2011)
Real-time Collaborative Development (Jazoon 2011)
 
The Literary Works Of Alice Walker
The Literary Works Of Alice WalkerThe Literary Works Of Alice Walker
The Literary Works Of Alice Walker
 
IEEE LEOS Optical MEMS
IEEE LEOS Optical MEMSIEEE LEOS Optical MEMS
IEEE LEOS Optical MEMS
 
Comsol2009 Paper
Comsol2009 PaperComsol2009 Paper
Comsol2009 Paper
 
Slide presentasi pmk 249 2011
Slide presentasi pmk 249 2011Slide presentasi pmk 249 2011
Slide presentasi pmk 249 2011
 

Similaire à Seaside - Why should you care? (Dynamic Stockholm 2010)

Multi dimensional profiling
Multi dimensional profilingMulti dimensional profiling
Multi dimensional profiling
bergel
 
AtlasCamp 2010: Implementing a custom JIRA UI using plugins 2.0 - Andreas Knecht
AtlasCamp 2010: Implementing a custom JIRA UI using plugins 2.0 - Andreas KnechtAtlasCamp 2010: Implementing a custom JIRA UI using plugins 2.0 - Andreas Knecht
AtlasCamp 2010: Implementing a custom JIRA UI using plugins 2.0 - Andreas Knecht
Atlassian
 
AtlasCamp 2010: Needs more jQuery - Using advanced Javascript in Atlassian Pl...
AtlasCamp 2010: Needs more jQuery - Using advanced Javascript in Atlassian Pl...AtlasCamp 2010: Needs more jQuery - Using advanced Javascript in Atlassian Pl...
AtlasCamp 2010: Needs more jQuery - Using advanced Javascript in Atlassian Pl...
Atlassian
 
AtlasCamp 2010: Needs more jQuery - Using advanced Javascript in Atlassian Pl...
AtlasCamp 2010: Needs more jQuery - Using advanced Javascript in Atlassian Pl...AtlasCamp 2010: Needs more jQuery - Using advanced Javascript in Atlassian Pl...
AtlasCamp 2010: Needs more jQuery - Using advanced Javascript in Atlassian Pl...
Atlassian
 
AtlasCamp 2010: Needs more jQuery - Using advanced Javascript in Atlassian Pl...
AtlasCamp 2010: Needs more jQuery - Using advanced Javascript in Atlassian Pl...AtlasCamp 2010: Needs more jQuery - Using advanced Javascript in Atlassian Pl...
AtlasCamp 2010: Needs more jQuery - Using advanced Javascript in Atlassian Pl...
Atlassian
 
RIA Unleashed - Developing for the TV with litl os
RIA Unleashed - Developing for the TV with litl osRIA Unleashed - Developing for the TV with litl os
RIA Unleashed - Developing for the TV with litl os
ryancanulla
 

Similaire à Seaside - Why should you care? (Dynamic Stockholm 2010) (20)

Multi dimensional profiling
Multi dimensional profilingMulti dimensional profiling
Multi dimensional profiling
 
AtlasCamp 2010: Implementing a custom JIRA UI using plugins 2.0 - Andreas Knecht
AtlasCamp 2010: Implementing a custom JIRA UI using plugins 2.0 - Andreas KnechtAtlasCamp 2010: Implementing a custom JIRA UI using plugins 2.0 - Andreas Knecht
AtlasCamp 2010: Implementing a custom JIRA UI using plugins 2.0 - Andreas Knecht
 
Integrating php withrabbitmq_zendcon
Integrating php withrabbitmq_zendconIntegrating php withrabbitmq_zendcon
Integrating php withrabbitmq_zendcon
 
Human APIs
Human APIsHuman APIs
Human APIs
 
AtlasCamp 2010: Needs more jQuery - Using advanced Javascript in Atlassian Pl...
AtlasCamp 2010: Needs more jQuery - Using advanced Javascript in Atlassian Pl...AtlasCamp 2010: Needs more jQuery - Using advanced Javascript in Atlassian Pl...
AtlasCamp 2010: Needs more jQuery - Using advanced Javascript in Atlassian Pl...
 
AtlasCamp 2010: Needs more jQuery - Using advanced Javascript in Atlassian Pl...
AtlasCamp 2010: Needs more jQuery - Using advanced Javascript in Atlassian Pl...AtlasCamp 2010: Needs more jQuery - Using advanced Javascript in Atlassian Pl...
AtlasCamp 2010: Needs more jQuery - Using advanced Javascript in Atlassian Pl...
 
AtlasCamp 2010: Needs more jQuery - Using advanced Javascript in Atlassian Pl...
AtlasCamp 2010: Needs more jQuery - Using advanced Javascript in Atlassian Pl...AtlasCamp 2010: Needs more jQuery - Using advanced Javascript in Atlassian Pl...
AtlasCamp 2010: Needs more jQuery - Using advanced Javascript in Atlassian Pl...
 
Productcamp montreal 2010
Productcamp montreal 2010Productcamp montreal 2010
Productcamp montreal 2010
 
ZOMG WHY IS THIS CODE SO SLOW
ZOMG WHY IS THIS CODE SO SLOWZOMG WHY IS THIS CODE SO SLOW
ZOMG WHY IS THIS CODE SO SLOW
 
Poisoning Rubinius: The _why and How
Poisoning Rubinius: The _why and HowPoisoning Rubinius: The _why and How
Poisoning Rubinius: The _why and How
 
HTML5 Apps - Mobile Developer Summit Bangalore
HTML5 Apps - Mobile Developer Summit BangaloreHTML5 Apps - Mobile Developer Summit Bangalore
HTML5 Apps - Mobile Developer Summit Bangalore
 
Html5 Development
Html5 DevelopmentHtml5 Development
Html5 Development
 
Mobile Future - Mobile Developer Summit Bangalore
Mobile Future - Mobile Developer Summit BangaloreMobile Future - Mobile Developer Summit Bangalore
Mobile Future - Mobile Developer Summit Bangalore
 
04 Reports
04 Reports04 Reports
04 Reports
 
Ajax solr
Ajax solrAjax solr
Ajax solr
 
Flowcon - Mixing Lean UX & Agile Development
Flowcon - Mixing Lean UX & Agile DevelopmentFlowcon - Mixing Lean UX & Agile Development
Flowcon - Mixing Lean UX & Agile Development
 
Introduction to G0V.tw 2013
Introduction to G0V.tw 2013Introduction to G0V.tw 2013
Introduction to G0V.tw 2013
 
Spacebits at Codebits
Spacebits at CodebitsSpacebits at Codebits
Spacebits at Codebits
 
Flash Forward to the Future: Media Innovation: China
Flash Forward to the Future: Media Innovation: China  Flash Forward to the Future: Media Innovation: China
Flash Forward to the Future: Media Innovation: China
 
RIA Unleashed - Developing for the TV with litl os
RIA Unleashed - Developing for the TV with litl osRIA Unleashed - Developing for the TV with litl os
RIA Unleashed - Developing for the TV with litl os
 

Dernier

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
vu2urc
 

Dernier (20)

GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
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
 
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
 
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...
 
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
 
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...
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
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
 
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...
 
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
 
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
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
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
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
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
 
[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
 

Seaside - Why should you care? (Dynamic Stockholm 2010)