• 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,202 views

 

Statistics

Views

Total Views
1,202
Views on SlideShare
1,202
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
  • 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) Presentation Transcript

  • 1. TM Seaside TM Why should you care? Julian Fitzell Cincom Systems
  • 2. What is Seaside?
  • 3. TM A web framework
  • 4. TM applica tion A web^framework
  • 5. TM applica tion A^web^framework Smallt a lk
  • 6. TM applica tion A^web^framework hereti cal?
  • 7. TM applica tion A^web^framework hereti cal?
  • 8. TM applica tion A^web^framework templa te -free
  • 9. TM applica tion A^web^framework open-s ou rce
  • 10. WebObjects
  • 11. Ruby
  • 12. Photo courtesy of http://www.flickr.com/photos/pragdave/173643703/
  • 13. equalizer The web is a language Photo courtesy of http://www.flickr.com/photos/pragdave/173643703/
  • 14. again? I can’t see anything wrong. Could you try Photo courtesy of http://www.flickr.com/photos/pragdave/173643703/
  • 15. “Why should I care?”
  • 16. Productivity
  • 17. Productivity gag?
  • 18. Programming costs money
  • 19. Programming costs lots of money
  • 20. Let’s optimize development
  • 21. Let’s take away the pain
  • 22. Let’s focus on the features that make our products truly exceptional
  • 23. In business, there is nothing more valuable than a technical advantage your competitors don't understand. – Paul Graham
  • 24. So what’s your pain? Courtesy of stock.xchng user Bubbels
  • 25. <?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>
  • 26. Tag soup? Courtesy of stock.xchng user lusi
  • 27. Spaghetti Templates? Courtesy of stock.xchng user TouTouke
  • 28. Waiting for edit, compile, run? Courtesy of stock.xchng user matchstick
  • 29. Code generation? Courtesy of stock.xchng users wildiexx and sundesigns
  • 30. Object-Relational Mapping? Courtesy of stock.xchng user theswedish
  • 31. Passing around IDs?
  • 32. Security? Courtesy of stock.xchng user lusi
  • 33. Multi- step Processes? Courtesy of stock.xchng user mexikids
  • 34. Components
  • 35. C A B
  • 36. A B C
  • 37. New Item Add
  • 38. A B C
  • 39. New Item Add
  • 40. Demo
  • 41. New Item A B C ? Add
  • 42. New Item A B C Add New Item Add ?
  • 43. New Item A B C Add item New Item Add item
  • 44. a := self request: ‘A number?’. b := self request: ‘Another?’. self inform: a + b
  • 45. a := self request: ‘A number?’. b := self request: ‘Another?’. self inform: a + b
  • 46. Demo
  • 47. Action Action Web Browser
  • 48. Task Task Web Browser
  • 49. Task Task NS Web Browser IO AT NU TI N CO
  • 50. Single Tool-chain
  • 51. Courtesy of stock.xchng user chux 1 2 “7 Things” 3 4 5 6 7
  • 52. In Smalltalk, everything is an object
  • 53. Seaside + In Smalltalk, everything is an object
  • 54. Templates aren’t OO
  • 55. <h1><% print $title %><h1>
  • 56. html heading: title
  • 57. ✓ Debugging
  • 58. ✓ Refactoring
  • 59. ✓ Callbacks...
  • 60. <a href=“/deleteItem?id=<% print $item.id%>”>Delete</a>
  • 61. html anchor callback: [ self delete: item ]; with: ‘Delete’
  • 62. Security Courtesy of stock.xchng user julosstock
  • 63. Cross-site scripting (XSS) © Mark Miller, from morguefile.com
  • 64. Output is encoded by default
  • 65. html heading: title
  • 66. Parameter injection Courtesy of stock.xchng user foxumon
  • 67. Parameter names are not meaningful
  • 68. IDs are not passed around
  • 69. Actions are bound to functions
  • 70. html anchor callback: [ self delete: item ]; with: ‘Delete’
  • 71. If you don’t expose it, your users can’t do it!
  • 72. Replay attacks Courtesy of stock.xchng user ratnesh
  • 73. 6-b it) (9 ess ion S
  • 74. 6-b it) ge (9 Pa
  • 75. Demo
  • 76. Where can I find out more?
  • 77. www.seaside.st
  • 78. Mailing list
  • 79. Examples
  • 80. 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