• Save

Loading…

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

Like this presentation? Why not share!

Seaside - Why should you care? (OSDC.fr 2010)

on

  • 1,145 views

 

Statistics

Views

Total Views
1,145
Slideshare-icon Views on SlideShare
1,145
Embed Views
0

Actions

Likes
1
Downloads
0
Comments
5

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel

15 of 5 Post a comment

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
  • Video is available at http://vimeo.com/17503969
    Are you sure you want to
    Your message goes here
    Processing…
  • elbeho
    Thank you for your work and I'll wait for it.
    Are you sure you want to
    Your message goes here
    Processing…
  • I'm working on the video... sorry for the delay.
    Are you sure you want to
    Your message goes here
    Processing…
  • It was videoed but I haven't seen it posted yet...
    Are you sure you want to
    Your message goes here
    Processing…
  • Is there a video ofthis talk?
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Seaside - Why should you care? (OSDC.fr 2010) Seaside - Why should you care? (OSDC.fr 2010) Presentation Transcript

    • TM Seaside TM Why should you care? Julian Fitzell Cincom Systems
    • What is Seaside?
    • TM A web framework
    • TM applica tion A web^framework
    • TM applica tion A^web^framework Smallt a lk
    • TM applica tion A^web^framework hereti cal?
    • TM applica tion A^web^framework hereti cal?
    • TM applica tion A^web^framework templa te -free
    • TM applica tion A^web^framework open-s ou rce
    • WebObjects
    • Ruby
    • Photo courtesy of http://www.flickr.com/photos/pragdave/173643703/
    • equalizer The web is a language Photo courtesy of http://www.flickr.com/photos/pragdave/173643703/
    • again? I can’t see anything wrong. Could you try Photo courtesy of http://www.flickr.com/photos/pragdave/173643703/
    • “Why should I care?”
    • Productivity
    • Productivity gag?
    • Programming costs money
    • Programming costs lots of money
    • Let’s optimize development
    • Let’s take away the pain
    • Let’s focus on the features that make our products truly exceptional
    • In business, there is nothing more valuable than a technical advantage your competitors don't understand. – Paul Graham
    • So what’s your pain? Courtesy of stock.xchng user Bubbels
    • <?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> XML Files? <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>
    • Tag soup? Courtesy of stock.xchng user lusi
    • Spaghetti Templates? Courtesy of stock.xchng user TouTouke
    • Waiting for edit, compile, run? Courtesy of stock.xchng user matchstick
    • Code generation? Courtesy of stock.xchng users wildiexx and sundesigns
    • Object-Relational Mapping? Courtesy of stock.xchng user theswedish
    • Passing around IDs?
    • Security? Courtesy of stock.xchng user lusi
    • Multi- step Processes? Courtesy of stock.xchng user mexikids
    • Components
    • C A B
    • A B C
    • New Item Add
    • A B C
    • New Item Add
    • Demo
    • New Item A B C ? Add
    • New Item A B C Add New Item Add ?
    • New Item A B C Add item New Item Add item
    • a := self request: ‘A number?’. b := self request: ‘Another?’. self inform: a + b
    • a := self request: ‘A number?’. b := self request: ‘Another?’. self inform: a + b
    • Demo
    • Action Action Web Browser
    • Task Task Web Browser
    • Task Task NS Web Browser IO AT NU TI N CO
    • Single Tool-chain
    • Courtesy of stock.xchng user chux 1 2 “7 Things” 3 4 5 6 7
    • In Smalltalk, everything is an object
    • Seaside + In Smalltalk, everything is an object
    • Templates aren’t OO
    • <h1><% print $title %><h1>
    • html heading: title
    • ✓ Debugging
    • ✓ Refactoring
    • ✓ Callbacks...
    • <a href=“/deleteItem?id=<% print $item.id%>”>Delete</a>
    • html anchor callback: [ self delete: item ]; with: ‘Delete’
    • Security Courtesy of stock.xchng user julosstock
    • Cross-site scripting (XSS) © Mark Miller, from morguefile.com
    • Output is encoded by default
    • html heading: title
    • Parameter injection Courtesy of stock.xchng user foxumon
    • Parameter names are not meaningful
    • IDs are not passed around
    • Actions are bound to functions
    • html anchor callback: [ self delete: item ]; with: ‘Delete’
    • If you don’t expose it, your users can’t do it!
    • Replay attacks Courtesy of stock.xchng user ratnesh
    • 6-b it) (9 ess ion S
    • 6-b it) ge (9 Pa
    • Demo
    • Where can I find out more?
    • www.seaside.st
    • Mailing list
    • Examples
    • Julian Fitzell jfitzell@cincom.com blog.fitzell.ca Twitter: @jfitzell www.seaside.st Seaside is a trademark of Avi Bryant and Julian Fitzell © 2010 Cincom Systems, Inc. CINCOM and the Quadrant Logo are registered trademarks of Cincom Systems, Inc. © 2009 Julian Fitzell All other trademarks belong to their respective companies. All rights reserved