Road to Rails

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.

0 comments

Post a comment

    Post a comment
    Embed Video
    Edit your comment Cancel

    Favorites, Groups & Events

    Road to Rails - Presentation Transcript

    1. Ruby on Rails Paolo Perrotta
    2. Who we Are, What we Do. Mithun Training & Consulting is a fully independent training and consultancy company, focusing on quality improvement processes and techniques. Mithun Training & Consulting B.V. P.O. Box 898 3800 AW Amersfoort Netherlands T +31 (0)33-457 0840 F +31 (0)33-457 0839 W www.mithun.nl M info@mithun.nl
    3. <Paolo Perrotta>
    4. developer
    5. author
    6. teacher
    7. Ruby on Rails
    8. Rails
    9. RoR
    10. <what is Rails?>
    11. Rails is a framework for building database-backed web applications in Ruby.
    12. Rails is a framework for building database-backed web applications in Ruby.
    13. Rails is a framework for building database-backed web applications in Ruby.
    14. Rails, anyone?
    15. hot or not?
    16. early 2005 first time I heard about Ruby on Rails
    17. <outrageous claims>
    18. “[You] could develop a web application at least ten times faster with Rails than you could with a typical Java framework [...] without making any sacrifices in the quality of your application.” Curt Hibbs
    19. “[You] could develop a web application at least ten times faster with Rails than you could with a typical Java framework [...] without making any sacrifices in the quality of your application.” Curt Hibbs Cust Hibbs is a Senior Soft ware Engineer at Boeing. He was one of the authors of WordStar for Windows.
    20. “Rails is the most well thought-out web development framework I’ve ever used.” James Duncan Davidson
    21. “Rails is the most well thought-out web development framework I’ve ever used.” James Duncan Davidson JDD is the author of Tomcat and Ant.
    22. “Powerful web applications that formerly might have taken weeks or months to develop can be produced in a matter of days [with Rails].” Tim O'Reilly
    23. “Powerful web applications that formerly might have taken weeks or months to develop can be produced in a matter of days [with Rails].” Tim O'Reilly Tim is “that” O’Reilly - the editor.
    24. “Rails has become a standard to which even well- established tools are comparing themselves to.” Martin Fowler
    25. “Rails has become a standard to which even well- established tools are comparing themselves to.” Martin Fowler Author of “Refactoring”.
    26. one more quote...
    27. “Ruby on Rails is astounding. Using it is like watching a kung-fu movie, where a dozen bad-ass frameworks prepare to beat up the little newcomer only to be handed their asses in a variety of imaginative ways.” Nathan Torkington
    28. “Ruby on Rails is astounding. Using it is like watching a kung-fu movie, where a dozen bad-ass frameworks prepare to beat up the little newcomer only to be handed their asses in a variety of imaginative ways.” Nathan Torkington Chairman at OScon
    29. Thanks to Joey deVilla for this picture (http:// accordionguy.blogware.com/ Photos/2006/02/ bruce_on_rails.jpg)
    30. <tonight>
    31. presentation: road to Rails
    32. demo
    33. break
    34. talking (Ruby?) (ActiveRecord?)
    35. talking (Ruby?) (ActiveRecord?)
    36. talking (Ruby?) (ActiveRecord?)
    37. presentation: state of Rails
    38. wrap-up
    39. <road to Rails>
    40. <web development>
    41. why does it matter?
    42. <challenges>
    43. technical
    44. people
    45. <the medium>
    46. unreliable
    47. HTTP
    48. stateless
    49. no memory
    50. no sessions
    51. <the server>
    52. integration
    53. RDBs
    54. Object-Oriented
    55. mismatch
    56. performance
    57. many users
    58. parallel programming
    59. security
    60. abuse
    61. <the client>
    62. the browser
    63. thin client
    64. stupid client
    65. it sucks.
    66. HTML
    67. primitive GUI
    68. constraining
    69. flow
    70. compatibility
    71. many configurations
    72. many browsers
    73. many OSs
    74. many devices
    75. <the process>
    76. quick
    77. continuous feedback
    78. moving target
    79. <technologies>
    80. static
    81. just pages
    82. forms
    83. CGI
    84. C
    85. Perl
    86. not secure
    87. slow
    88. web languages
    89. ASP
    90. PHP
    91. template
    92. HTML+code
    93. <? $db = \"DATABASE NAME\"; $admin = \"MYSQL USER NAME\"; $adpass = \"MYSQL PASSWORD\"; $mysql_link = mysql_connect(\"localhost\", $admin, $adpass); mysql_select_db($db, $mysql_link); ?> <HTML> <BODY> <script language=\"php\"> if($react == \"delete_user\") { if($user) { $query = \"DELETE from login WHERE user='$user' \"; $result = mysql_query($query, $mysql_link); if(mysql_num_rows($result)) { print(\"<strong>$user</strong> successfully deleted<p>\"); } } else { print(\"<strong>no users to delete yet.</strong><p>\"); } } </script> <form method=\"POST\" action=\"admin.php3\"><div align=\"center\"><center><p>Delete Users <input type=\"hidden\" name=\"react\" value=\"delete_user\"> <select name=\"user\" size=\"1\"> <script language=\"php\"> $query = \"SELECT user FROM login ORDER BY user\"; $result = mysql_query($query, $mysql_link); ...
    94. <? $db = \"DATABASE NAME\"; $admin = \"MYSQL USER NAME\"; $adpass = \"MYSQL PASSWORD\"; $mysql_link = mysql_connect(\"localhost\", $admin, $adpass); mysql_select_db($db, $mysql_link); ?> <HTML> <BODY> <script language=\"php\"> if($react == \"delete_user\") { if($user) { $query = \"DELETE from login WHERE user='$user' \"; $result = mysql_query($query, $mysql_link); if(mysql_num_rows($result)) { print(\"<strong>$user</strong> successfully deleted<p>\"); } } else { print(\"<strong>no users to delete yet.</strong><p>\"); } } </script> <form method=\"POST\" action=\"admin.php3\"><div align=\"center\"><center><p>Delete Users <input type=\"hidden\" name=\"react\" value=\"delete_user\"> <select name=\"user\" size=\"1\"> <script language=\"php\"> $query = \"SELECT user FROM login ORDER BY user\"; $result = mysql_query($query, $mysql_link); ...
    95. <? $db = \"DATABASE NAME\"; $admin = \"MYSQL USER NAME\"; $adpass = \"MYSQL PASSWORD\"; $mysql_link = mysql_connect(\"localhost\", $admin, $adpass); mysql_select_db($db, $mysql_link); ?> <HTML> <BODY> <script language=\"php\"> if($react == \"delete_user\") { if($user) { $query = \"DELETE from login WHERE user='$user' \"; $result = mysql_query($query, $mysql_link); if(mysql_num_rows($result)) { print(\"<strong>$user</strong> successfully deleted<p>\"); } } else { print(\"<strong>no users to delete yet.</strong><p>\"); } } </script> <form method=\"POST\" action=\"admin.php3\"><div align=\"center\"><center><p>Delete Users <input type=\"hidden\" name=\"react\" value=\"delete_user\"> <select name=\"user\" size=\"1\"> <script language=\"php\"> $query = \"SELECT user FROM login ORDER BY user\"; $result = mysql_query($query, $mysql_link); ...
    96. <? $db = \"DATABASE NAME\"; $admin = \"MYSQL USER NAME\"; $adpass = \"MYSQL PASSWORD\"; $mysql_link = mysql_connect(\"localhost\", $admin, $adpass); mysql_select_db($db, $mysql_link); ?> <HTML> <BODY> <script language=\"php\"> if($react == \"delete_user\") { if($user) { $query = \"DELETE from login WHERE user='$user' \"; $result = mysql_query($query, $mysql_link); if(mysql_num_rows($result)) { print(\"<strong>$user</strong> successfully deleted<p>\"); } } else { print(\"<strong>no users to delete yet.</strong><p>\"); } } </script> <form method=\"POST\" action=\"admin.php3\"><div align=\"center\"><center><p>Delete Users <input type=\"hidden\" name=\"react\" value=\"delete_user\"> <select name=\"user\" size=\"1\"> <script language=\"php\"> $query = \"SELECT user FROM login ORDER BY user\"; $result = mysql_query($query, $mysql_link); ...
    97. tm Big Ball of Mud
    98. Java
    99. J2EE
    100. JSP
    101. many frameworks
    102. Struts
    103. many layers
    104. complex
    105. bloated
    106. XML configuration
    107. <?xml version=\"1.0\"?> <!DOCTYPE ejb-jar PUBLIC '-//Sun Microsystems, Inc.//DTD Enterprise JavaBeans 1.1//EN' 'http://java.sun.com/j2ee/dtds/ejb-jar_1_1.dtd'> <ejb-jar> <enterprise-beans> <!-- A minimal session EJB deployment --> <session> <ejb-name>PostingEJB</ejb-name> <home>ejbs.PostingHome</home> <remote>ejbs.Posting</remote> <ejb-class>ejbs.PostingBean</ejb-class> <!-- or Stateless --> <session-type>Stateful</session-type> <transaction-type>Container</transaction-type> </session> <!-- A minimal CMP entity EJB deployment --> <entity> <ejb-name>Bid</ejb-name> <home>ejbe.BidHome</home> <remote>ejbe.Bid</remote> <ejb-class>ejbe.BidBean</ejb-class> <persistence-type>Container</persistence-type> <prim-key-class>ejbe.BidPK</prim-key-class> <reentrant>False</reentrant> <cmp-field><field-name>bid</field-name></cmp-field> <cmp-field><field-name>bidder</field-name></cmp-field> <cmp-field><field-name>bidDate</field-name></cmp-field> <cmp-field><field-name>id</field-name></cmp-field> </entity> <!-- A minimal BMP entity EJB deployment --> <entity> <ejb-name>BidBMP</ejb-name> ...
    108. the client side
    109. Java applets
    110. ActiveX
    111. Flash
    112. JavaScript
    113. XMLHttpRequest
    114. asynchronous
    115. AJAX
    116. better GUIs
    117. difficult
    118. <state of the art>
    119. on the server
    120. J2EE (or C#)
    121. enterprisey
    122. PHP
    123. bigballofmuddy
    124. on the client
    125. AJAX
    126. clumsy
    127. not really great
    128. anything better?
    129. Rails
    130. <the Rails Way>
    131. I
    132. KISS
    133. Keep It Simple (Stupid)
    134. Keep It Simple (Stupid)
    135. II
    136. DRY
    137. Don’t Repeat Yourself
    138. III
    139. Convention over Configuration
    140. Convention over Configuration
    141. I - KISS II - DRY III - CoC
    142. <demo>
    143. <break>
    144. <talk>

    + paoloperrottapaoloperrotta, 3 years ago

    custom

    1736 views, 0 favs, 2 embeds more stats

    From the "Rails: Hot or Not?" session at Sioux (Ein more

    More info about this document

    © All Rights Reserved

    Go to text version

    • Total Views 1736
      • 1720 on SlideShare
      • 16 from embeds
    • Comments 0
    • Favorites 0
    • Downloads 0
    Most viewed embeds
    • 15 views on http://www.lonerunners.net
    • 1 views on http://209.85.165.104

    more

    All embeds
    • 15 views on http://www.lonerunners.net
    • 1 views on http://209.85.165.104

    less

    Flagged as inappropriate Flag as inappropriate
    Flag as inappropriate

    Select your reason for flagging this presentation as inappropriate. If needed, use the feedback form to let us know more details.

    Cancel
    File a copyright complaint
    Having problems? Go to our helpdesk?

    Categories