SlideShare a Scribd company logo
1 of 146
Ruby on Rails
      Paolo Perrotta
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
<Paolo Perrotta>
developer
author
teacher
Ruby on Rails
Rails
RoR
<what is Rails?>
Rails is a
  framework for
     building
 database-backed
web applications
     in Ruby.
Rails is a
  framework for
     building
 database-backed
web applications
     in Ruby.
Rails is a
  framework for
     building
 database-backed
web applications
     in Ruby.
Rails, anyone?
hot or not?
early 2005
first time I heard
about Ruby on Rails
<outrageous claims>
“[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
“[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.
“Rails is the most well thought-out web development
              framework I’ve ever used.”

                          James Duncan Davidson
“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.
“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
“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.
“Rails has become a standard to which even well-
 established tools are comparing themselves to.”

                                   Martin Fowler
“Rails has become a standard to which even well-
 established tools are comparing themselves to.”

                                   Martin Fowler
     Author of
     “Refactoring”.
one more quote...
“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
“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
Thanks to Joey deVilla for
this picture (http://
accordionguy.blogware.com/
Photos/2006/02/
bruce_on_rails.jpg)
<tonight>
presentation:
road to Rails
demo
break
talking
    (Ruby?)
(ActiveRecord?)
talking
    (Ruby?)
(ActiveRecord?)
talking
    (Ruby?)
(ActiveRecord?)
presentation:
state of Rails
wrap-up
<road to Rails>
<web development>
why does it matter?
<challenges>
technical
people
<the medium>
unreliable
HTTP
stateless
no memory
no sessions
<the server>
integration
RDBs
Object-Oriented
mismatch
performance
many users
parallel programming
security
abuse
<the client>
the browser
thin client
stupid client
it sucks.
HTML
primitive GUI
constraining
flow
compatibility
many configurations
many browsers
many OSs
many devices
<the process>
quick
continuous feedback
moving target
<technologies>
static
just pages
forms
CGI
C
Perl
not secure
slow
web languages
ASP
PHP
template
HTML+code
<?
$db = quot;DATABASE NAMEquot;;
$admin = quot;MYSQL USER NAMEquot;;
$adpass = quot;MYSQL PASSWORDquot;;
$mysql_link = mysql_connect(quot;localhostquot;, $admin, $adpass);
mysql_select_db($db, $mysql_link);
?>
<HTML>
<BODY>
<script language=quot;phpquot;>
if($react == quot;delete_userquot;) {
    if($user) {
       $query = quot;DELETE from login WHERE user='$user' quot;;
       $result = mysql_query($query, $mysql_link);
          if(mysql_num_rows($result)) {
             print(quot;<strong>$user</strong> successfully deleted<p>quot;);
          }
    } else {
       print(quot;<strong>no users to delete yet.</strong><p>quot;);
    }
}
</script>
<form method=quot;POSTquot; action=quot;admin.php3quot;><div
align=quot;centerquot;><center><p>Delete Users
<input type=quot;hiddenquot; name=quot;reactquot; value=quot;delete_userquot;>
<select name=quot;userquot; size=quot;1quot;>
<script language=quot;phpquot;>
    $query = quot;SELECT user FROM login ORDER BY userquot;;
    $result = mysql_query($query, $mysql_link);
...
<?
$db = quot;DATABASE NAMEquot;;
$admin = quot;MYSQL USER NAMEquot;;
$adpass = quot;MYSQL PASSWORDquot;;
$mysql_link = mysql_connect(quot;localhostquot;, $admin, $adpass);
mysql_select_db($db, $mysql_link);
?>
<HTML>
<BODY>
<script language=quot;phpquot;>
if($react == quot;delete_userquot;) {
    if($user) {
       $query = quot;DELETE from login WHERE user='$user' quot;;
       $result = mysql_query($query, $mysql_link);
          if(mysql_num_rows($result)) {
             print(quot;<strong>$user</strong> successfully deleted<p>quot;);
          }
    } else {
       print(quot;<strong>no users to delete yet.</strong><p>quot;);
    }
}
</script>
<form method=quot;POSTquot; action=quot;admin.php3quot;><div
align=quot;centerquot;><center><p>Delete Users
<input type=quot;hiddenquot; name=quot;reactquot; value=quot;delete_userquot;>
<select name=quot;userquot; size=quot;1quot;>
<script language=quot;phpquot;>
    $query = quot;SELECT user FROM login ORDER BY userquot;;
    $result = mysql_query($query, $mysql_link);
...
<?
$db = quot;DATABASE NAMEquot;;
$admin = quot;MYSQL USER NAMEquot;;
$adpass = quot;MYSQL PASSWORDquot;;
$mysql_link = mysql_connect(quot;localhostquot;, $admin, $adpass);
mysql_select_db($db, $mysql_link);
?>
<HTML>
<BODY>
<script language=quot;phpquot;>
if($react == quot;delete_userquot;) {
    if($user) {
       $query = quot;DELETE from login WHERE user='$user' quot;;
       $result = mysql_query($query, $mysql_link);
          if(mysql_num_rows($result)) {
             print(quot;<strong>$user</strong> successfully deleted<p>quot;);
          }
    } else {
       print(quot;<strong>no users to delete yet.</strong><p>quot;);
    }
}
</script>
<form method=quot;POSTquot; action=quot;admin.php3quot;><div
align=quot;centerquot;><center><p>Delete Users
<input type=quot;hiddenquot; name=quot;reactquot; value=quot;delete_userquot;>
<select name=quot;userquot; size=quot;1quot;>
<script language=quot;phpquot;>
    $query = quot;SELECT user FROM login ORDER BY userquot;;
    $result = mysql_query($query, $mysql_link);
...
<?
$db = quot;DATABASE NAMEquot;;
$admin = quot;MYSQL USER NAMEquot;;
$adpass = quot;MYSQL PASSWORDquot;;
$mysql_link = mysql_connect(quot;localhostquot;, $admin, $adpass);
mysql_select_db($db, $mysql_link);
?>
<HTML>
<BODY>
<script language=quot;phpquot;>
if($react == quot;delete_userquot;) {
    if($user) {
       $query = quot;DELETE from login WHERE user='$user' quot;;
       $result = mysql_query($query, $mysql_link);
          if(mysql_num_rows($result)) {
             print(quot;<strong>$user</strong> successfully deleted<p>quot;);
          }
    } else {
       print(quot;<strong>no users to delete yet.</strong><p>quot;);
    }
}
</script>
<form method=quot;POSTquot; action=quot;admin.php3quot;><div
align=quot;centerquot;><center><p>Delete Users
<input type=quot;hiddenquot; name=quot;reactquot; value=quot;delete_userquot;>
<select name=quot;userquot; size=quot;1quot;>
<script language=quot;phpquot;>
    $query = quot;SELECT user FROM login ORDER BY userquot;;
    $result = mysql_query($query, $mysql_link);
...
tm
Big Ball of Mud
Java
J2EE
JSP
many frameworks
Struts
many layers
complex
bloated
XML configuration
<?xml version=quot;1.0quot;?>

<!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>
 ...
the client side
Java applets
ActiveX
Flash
JavaScript
XMLHttpRequest
asynchronous
AJAX
better GUIs
difficult
<state of the art>
on the server
J2EE (or C#)
enterprisey
PHP
bigballofmuddy
on the client
AJAX
clumsy
not really great
anything better?
Rails
<the Rails Way>
I
KISS
Keep It Simple
   (Stupid)
Keep It Simple
   (Stupid)
II
DRY
Don’t Repeat Yourself
III
Convention
     over
Configuration
Convention
     over
Configuration
I - KISS
 II - DRY
III - CoC
<demo>
<break>
<talk>

More Related Content

What's hot

Dreamweaver CS6, jQuery, PhoneGap, mobile design
Dreamweaver CS6, jQuery, PhoneGap, mobile designDreamweaver CS6, jQuery, PhoneGap, mobile design
Dreamweaver CS6, jQuery, PhoneGap, mobile designDee Sadler
 
Java One Presentation - Ruby on Rails meets Enterprise
Java One Presentation - Ruby on Rails meets EnterpriseJava One Presentation - Ruby on Rails meets Enterprise
Java One Presentation - Ruby on Rails meets Enterprisedan_mcweeney
 
Ruby on Rails Meets Enterprise Applications
Ruby on Rails Meets Enterprise ApplicationsRuby on Rails Meets Enterprise Applications
Ruby on Rails Meets Enterprise Applicationsdan_mcweeney
 
API Technical Writing
API Technical WritingAPI Technical Writing
API Technical WritingSarah Maddox
 
Game Development Using HTML 5
Game Development Using HTML 5Game Development Using HTML 5
Game Development Using HTML 5osa_ora
 
Why You Need a Front End Developer
Why You Need a Front End DeveloperWhy You Need a Front End Developer
Why You Need a Front End DeveloperMike Wilcox
 
Killing the Angle Bracket
Killing the Angle BracketKilling the Angle Bracket
Killing the Angle Bracketjnewmanux
 
Front-End Frameworks: a quick overview
Front-End Frameworks: a quick overviewFront-End Frameworks: a quick overview
Front-End Frameworks: a quick overviewDiacode
 
Taiwan Web Standards Talk 2011
Taiwan Web Standards Talk 2011Taiwan Web Standards Talk 2011
Taiwan Web Standards Talk 2011Zi Bin Cheah
 
State of jQuery June 2013 - Portland
State of jQuery June 2013 - PortlandState of jQuery June 2013 - Portland
State of jQuery June 2013 - Portlanddmethvin
 
Building Mobile Applications with Ionic
Building Mobile Applications with IonicBuilding Mobile Applications with Ionic
Building Mobile Applications with IonicMorris Singer
 
Realize mais com HTML 5 e CSS 3 - 16 EDTED - RJ
Realize mais com HTML 5 e CSS 3 - 16 EDTED - RJRealize mais com HTML 5 e CSS 3 - 16 EDTED - RJ
Realize mais com HTML 5 e CSS 3 - 16 EDTED - RJLeonardo Balter
 
Responsive Web Design: Clever Tips and Techniques
Responsive Web Design: Clever Tips and TechniquesResponsive Web Design: Clever Tips and Techniques
Responsive Web Design: Clever Tips and TechniquesVitaly Friedman
 
jQuery For Beginners - jQuery Conference 2009
jQuery For Beginners - jQuery Conference 2009jQuery For Beginners - jQuery Conference 2009
jQuery For Beginners - jQuery Conference 2009Ralph Whitbeck
 
NodeJS for Novices - 28/Oct/13 - Winnipeg, MB
NodeJS for Novices - 28/Oct/13 - Winnipeg, MBNodeJS for Novices - 28/Oct/13 - Winnipeg, MB
NodeJS for Novices - 28/Oct/13 - Winnipeg, MBDavid Wesst
 
Ruby and Rails by Example (GeekCamp edition)
Ruby and Rails by Example (GeekCamp edition)Ruby and Rails by Example (GeekCamp edition)
Ruby and Rails by Example (GeekCamp edition)bryanbibat
 
Rich and Beautiful: Making Attractive Apps in HTML5 [Wpg 2013]
Rich and Beautiful: Making Attractive Apps in HTML5 [Wpg 2013]Rich and Beautiful: Making Attractive Apps in HTML5 [Wpg 2013]
Rich and Beautiful: Making Attractive Apps in HTML5 [Wpg 2013]David Wesst
 
Modern Front-End Development
Modern Front-End DevelopmentModern Front-End Development
Modern Front-End Developmentmwrather
 

What's hot (20)

Dreamweaver CS6, jQuery, PhoneGap, mobile design
Dreamweaver CS6, jQuery, PhoneGap, mobile designDreamweaver CS6, jQuery, PhoneGap, mobile design
Dreamweaver CS6, jQuery, PhoneGap, mobile design
 
Java One Presentation - Ruby on Rails meets Enterprise
Java One Presentation - Ruby on Rails meets EnterpriseJava One Presentation - Ruby on Rails meets Enterprise
Java One Presentation - Ruby on Rails meets Enterprise
 
Ruby on Rails Meets Enterprise Applications
Ruby on Rails Meets Enterprise ApplicationsRuby on Rails Meets Enterprise Applications
Ruby on Rails Meets Enterprise Applications
 
API Technical Writing
API Technical WritingAPI Technical Writing
API Technical Writing
 
Game Development Using HTML 5
Game Development Using HTML 5Game Development Using HTML 5
Game Development Using HTML 5
 
Why You Need a Front End Developer
Why You Need a Front End DeveloperWhy You Need a Front End Developer
Why You Need a Front End Developer
 
Killing the Angle Bracket
Killing the Angle BracketKilling the Angle Bracket
Killing the Angle Bracket
 
Oracle APEX & PhoneGap
Oracle APEX & PhoneGapOracle APEX & PhoneGap
Oracle APEX & PhoneGap
 
Front-End Frameworks: a quick overview
Front-End Frameworks: a quick overviewFront-End Frameworks: a quick overview
Front-End Frameworks: a quick overview
 
Taiwan Web Standards Talk 2011
Taiwan Web Standards Talk 2011Taiwan Web Standards Talk 2011
Taiwan Web Standards Talk 2011
 
State of jQuery June 2013 - Portland
State of jQuery June 2013 - PortlandState of jQuery June 2013 - Portland
State of jQuery June 2013 - Portland
 
Building Mobile Applications with Ionic
Building Mobile Applications with IonicBuilding Mobile Applications with Ionic
Building Mobile Applications with Ionic
 
What is HTML 5?
What is HTML 5?What is HTML 5?
What is HTML 5?
 
Realize mais com HTML 5 e CSS 3 - 16 EDTED - RJ
Realize mais com HTML 5 e CSS 3 - 16 EDTED - RJRealize mais com HTML 5 e CSS 3 - 16 EDTED - RJ
Realize mais com HTML 5 e CSS 3 - 16 EDTED - RJ
 
Responsive Web Design: Clever Tips and Techniques
Responsive Web Design: Clever Tips and TechniquesResponsive Web Design: Clever Tips and Techniques
Responsive Web Design: Clever Tips and Techniques
 
jQuery For Beginners - jQuery Conference 2009
jQuery For Beginners - jQuery Conference 2009jQuery For Beginners - jQuery Conference 2009
jQuery For Beginners - jQuery Conference 2009
 
NodeJS for Novices - 28/Oct/13 - Winnipeg, MB
NodeJS for Novices - 28/Oct/13 - Winnipeg, MBNodeJS for Novices - 28/Oct/13 - Winnipeg, MB
NodeJS for Novices - 28/Oct/13 - Winnipeg, MB
 
Ruby and Rails by Example (GeekCamp edition)
Ruby and Rails by Example (GeekCamp edition)Ruby and Rails by Example (GeekCamp edition)
Ruby and Rails by Example (GeekCamp edition)
 
Rich and Beautiful: Making Attractive Apps in HTML5 [Wpg 2013]
Rich and Beautiful: Making Attractive Apps in HTML5 [Wpg 2013]Rich and Beautiful: Making Attractive Apps in HTML5 [Wpg 2013]
Rich and Beautiful: Making Attractive Apps in HTML5 [Wpg 2013]
 
Modern Front-End Development
Modern Front-End DevelopmentModern Front-End Development
Modern Front-End Development
 

Viewers also liked

Introduction to using the R200 camera & Realsense SDK in Unity3d - Jon Collins
Introduction to using the R200 camera & Realsense SDK in Unity3d - Jon CollinsIntroduction to using the R200 camera & Realsense SDK in Unity3d - Jon Collins
Introduction to using the R200 camera & Realsense SDK in Unity3d - Jon CollinsBeMyApp
 
Simカットしてみました - LT駆動開発#25
Simカットしてみました - LT駆動開発#25Simカットしてみました - LT駆動開発#25
Simカットしてみました - LT駆動開発#25NAKAOKU Takahiro
 
React on rails v6.1 at LA Ruby, November 2016
React on rails v6.1 at LA Ruby, November 2016React on rails v6.1 at LA Ruby, November 2016
React on rails v6.1 at LA Ruby, November 2016Justin Gordon
 
Métodos Anticonceptivos: aspectos generales, métodos naturales y de barrera. ...
Métodos Anticonceptivos: aspectos generales, métodos naturales y de barrera. ...Métodos Anticonceptivos: aspectos generales, métodos naturales y de barrera. ...
Métodos Anticonceptivos: aspectos generales, métodos naturales y de barrera. ...SOSTelemedicina UCV
 
Meta Data and Quality of Data for OGD Platform India
Meta Data and Quality of Data for OGD Platform IndiaMeta Data and Quality of Data for OGD Platform India
Meta Data and Quality of Data for OGD Platform IndiaData Portal India
 
Open Data for Business: The U.S. Experience
Open Data for Business: The U.S. ExperienceOpen Data for Business: The U.S. Experience
Open Data for Business: The U.S. ExperienceData Portal India
 
Data Driven Decision Making in Ministry of Health and Family Welfare
Data Driven Decision Making in Ministry of Health and Family WelfareData Driven Decision Making in Ministry of Health and Family Welfare
Data Driven Decision Making in Ministry of Health and Family WelfareData Portal India
 
Entrevista crowdfunding Revista Fusión Asturias
Entrevista crowdfunding Revista Fusión AsturiasEntrevista crowdfunding Revista Fusión Asturias
Entrevista crowdfunding Revista Fusión AsturiasInxeniu Internet Media SL
 
テーマに機能を含めちゃダメなんて誰が決めた! テーマをモリモリにカスタマイズする
 テーマに機能を含めちゃダメなんて誰が決めた! テーマをモリモリにカスタマイズする テーマに機能を含めちゃダメなんて誰が決めた! テーマをモリモリにカスタマイズする
テーマに機能を含めちゃダメなんて誰が決めた! テーマをモリモリにカスタマイズする文樹 高橋
 
Gramática: Presente del Indicativo
Gramática: Presente del IndicativoGramática: Presente del Indicativo
Gramática: Presente del IndicativoNecoechea
 
Simulacro de evacuacion 2016
Simulacro de evacuacion 2016Simulacro de evacuacion 2016
Simulacro de evacuacion 2016webmasteriensp
 
Nuestra brigada de salud 2016
Nuestra brigada de salud 2016Nuestra brigada de salud 2016
Nuestra brigada de salud 2016webmasteriensp
 
Dia de la familia 2016
Dia de la familia 2016Dia de la familia 2016
Dia de la familia 2016webmasteriensp
 
úLtimo simulacro de evacuación en el año 2016
úLtimo simulacro de evacuación en el año 2016úLtimo simulacro de evacuación en el año 2016
úLtimo simulacro de evacuación en el año 2016webmasteriensp
 
Review of new alerts on PROTON PUMP INHIBITORS (PPI) adverse effects 2016 UPD...
Review of new alerts on PROTON PUMP INHIBITORS (PPI) adverse effects 2016 UPD...Review of new alerts on PROTON PUMP INHIBITORS (PPI) adverse effects 2016 UPD...
Review of new alerts on PROTON PUMP INHIBITORS (PPI) adverse effects 2016 UPD...PAWAN V. KULKARNI
 

Viewers also liked (20)

La hora
La horaLa hora
La hora
 
Inverse of matrix
Inverse of matrixInverse of matrix
Inverse of matrix
 
Introduction to using the R200 camera & Realsense SDK in Unity3d - Jon Collins
Introduction to using the R200 camera & Realsense SDK in Unity3d - Jon CollinsIntroduction to using the R200 camera & Realsense SDK in Unity3d - Jon Collins
Introduction to using the R200 camera & Realsense SDK in Unity3d - Jon Collins
 
Simカットしてみました - LT駆動開発#25
Simカットしてみました - LT駆動開発#25Simカットしてみました - LT駆動開発#25
Simカットしてみました - LT駆動開発#25
 
React on rails v4
React on rails v4React on rails v4
React on rails v4
 
React on rails v6.1 at LA Ruby, November 2016
React on rails v6.1 at LA Ruby, November 2016React on rails v6.1 at LA Ruby, November 2016
React on rails v6.1 at LA Ruby, November 2016
 
Curso de introducción a solvencia ii
Curso de introducción a solvencia ii   Curso de introducción a solvencia ii
Curso de introducción a solvencia ii
 
Métodos Anticonceptivos: aspectos generales, métodos naturales y de barrera. ...
Métodos Anticonceptivos: aspectos generales, métodos naturales y de barrera. ...Métodos Anticonceptivos: aspectos generales, métodos naturales y de barrera. ...
Métodos Anticonceptivos: aspectos generales, métodos naturales y de barrera. ...
 
Meta Data and Quality of Data for OGD Platform India
Meta Data and Quality of Data for OGD Platform IndiaMeta Data and Quality of Data for OGD Platform India
Meta Data and Quality of Data for OGD Platform India
 
Open Data for Business: The U.S. Experience
Open Data for Business: The U.S. ExperienceOpen Data for Business: The U.S. Experience
Open Data for Business: The U.S. Experience
 
Data Driven Decision Making in Ministry of Health and Family Welfare
Data Driven Decision Making in Ministry of Health and Family WelfareData Driven Decision Making in Ministry of Health and Family Welfare
Data Driven Decision Making in Ministry of Health and Family Welfare
 
EVANNEX Glove Box Bumper Installation for Model S and X
EVANNEX Glove Box Bumper Installation for Model S and XEVANNEX Glove Box Bumper Installation for Model S and X
EVANNEX Glove Box Bumper Installation for Model S and X
 
Entrevista crowdfunding Revista Fusión Asturias
Entrevista crowdfunding Revista Fusión AsturiasEntrevista crowdfunding Revista Fusión Asturias
Entrevista crowdfunding Revista Fusión Asturias
 
テーマに機能を含めちゃダメなんて誰が決めた! テーマをモリモリにカスタマイズする
 テーマに機能を含めちゃダメなんて誰が決めた! テーマをモリモリにカスタマイズする テーマに機能を含めちゃダメなんて誰が決めた! テーマをモリモリにカスタマイズする
テーマに機能を含めちゃダメなんて誰が決めた! テーマをモリモリにカスタマイズする
 
Gramática: Presente del Indicativo
Gramática: Presente del IndicativoGramática: Presente del Indicativo
Gramática: Presente del Indicativo
 
Simulacro de evacuacion 2016
Simulacro de evacuacion 2016Simulacro de evacuacion 2016
Simulacro de evacuacion 2016
 
Nuestra brigada de salud 2016
Nuestra brigada de salud 2016Nuestra brigada de salud 2016
Nuestra brigada de salud 2016
 
Dia de la familia 2016
Dia de la familia 2016Dia de la familia 2016
Dia de la familia 2016
 
úLtimo simulacro de evacuación en el año 2016
úLtimo simulacro de evacuación en el año 2016úLtimo simulacro de evacuación en el año 2016
úLtimo simulacro de evacuación en el año 2016
 
Review of new alerts on PROTON PUMP INHIBITORS (PPI) adverse effects 2016 UPD...
Review of new alerts on PROTON PUMP INHIBITORS (PPI) adverse effects 2016 UPD...Review of new alerts on PROTON PUMP INHIBITORS (PPI) adverse effects 2016 UPD...
Review of new alerts on PROTON PUMP INHIBITORS (PPI) adverse effects 2016 UPD...
 

Similar to Road to Rails

RubyEnRails2007 - Dr Nic Williams - Keynote
RubyEnRails2007 - Dr Nic Williams - KeynoteRubyEnRails2007 - Dr Nic Williams - Keynote
RubyEnRails2007 - Dr Nic Williams - KeynoteDr Nic Williams
 
Ruby on Rails survival guide of an aged Java developer
Ruby on Rails survival guide of an aged Java developerRuby on Rails survival guide of an aged Java developer
Ruby on Rails survival guide of an aged Java developergicappa
 
Consegi 2010 - Dicas de Desenvolvimento Web com Ruby
Consegi 2010 - Dicas de Desenvolvimento Web com RubyConsegi 2010 - Dicas de Desenvolvimento Web com Ruby
Consegi 2010 - Dicas de Desenvolvimento Web com RubyFabio Akita
 
Familiar HTML5 - 事例とサンプルコードから学ぶ 身近で普通に使わているHTML5
Familiar HTML5 - 事例とサンプルコードから学ぶ 身近で普通に使わているHTML5Familiar HTML5 - 事例とサンプルコードから学ぶ 身近で普通に使わているHTML5
Familiar HTML5 - 事例とサンプルコードから学ぶ 身近で普通に使わているHTML5Sadaaki HIRAI
 
Ruby on Rails workshop for beginner
Ruby on Rails workshop for beginnerRuby on Rails workshop for beginner
Ruby on Rails workshop for beginnerUmair Amjad
 
Connecting the Worlds of Java and Ruby with JRuby
Connecting the Worlds of Java and Ruby with JRubyConnecting the Worlds of Java and Ruby with JRuby
Connecting the Worlds of Java and Ruby with JRubyNick Sieger
 
Rails Presentation (Anton Dmitriyev)
Rails Presentation (Anton Dmitriyev)Rails Presentation (Anton Dmitriyev)
Rails Presentation (Anton Dmitriyev)True-Vision
 
Introduction to Client Side Dev in SharePoint Workshop
Introduction to Client Side Dev in SharePoint WorkshopIntroduction to Client Side Dev in SharePoint Workshop
Introduction to Client Side Dev in SharePoint WorkshopMark Rackley
 
[Coscup 2012] JavascriptMVC
[Coscup 2012] JavascriptMVC[Coscup 2012] JavascriptMVC
[Coscup 2012] JavascriptMVCAlive Kuo
 
#NewMeetup Performance
#NewMeetup Performance#NewMeetup Performance
#NewMeetup PerformanceJustin Cataldo
 
Rapid Prototyping FTW!!!
Rapid Prototyping FTW!!!Rapid Prototyping FTW!!!
Rapid Prototyping FTW!!!cloudbring
 
JRuby + Rails = Awesome Java Web Framework at Jfokus 2011
JRuby + Rails = Awesome Java Web Framework at Jfokus 2011JRuby + Rails = Awesome Java Web Framework at Jfokus 2011
JRuby + Rails = Awesome Java Web Framework at Jfokus 2011Nick Sieger
 
(Updated) SharePoint & jQuery Guide
(Updated) SharePoint & jQuery Guide(Updated) SharePoint & jQuery Guide
(Updated) SharePoint & jQuery GuideMark Rackley
 
Use Web Skills To Build Mobile Apps
Use Web Skills To Build Mobile AppsUse Web Skills To Build Mobile Apps
Use Web Skills To Build Mobile AppsNathan Smith
 
JavaScript For People Who Don't Code
JavaScript For People Who Don't CodeJavaScript For People Who Don't Code
JavaScript For People Who Don't CodeChristopher Schmitt
 
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...tdc-globalcode
 
Solid and Sustainable Development in Scala
Solid and Sustainable Development in ScalaSolid and Sustainable Development in Scala
Solid and Sustainable Development in Scalascalaconfjp
 

Similar to Road to Rails (20)

Ruby on Rails Presentation
Ruby on Rails PresentationRuby on Rails Presentation
Ruby on Rails Presentation
 
RubyEnRails2007 - Dr Nic Williams - Keynote
RubyEnRails2007 - Dr Nic Williams - KeynoteRubyEnRails2007 - Dr Nic Williams - Keynote
RubyEnRails2007 - Dr Nic Williams - Keynote
 
Ruby on Rails survival guide of an aged Java developer
Ruby on Rails survival guide of an aged Java developerRuby on Rails survival guide of an aged Java developer
Ruby on Rails survival guide of an aged Java developer
 
Consegi 2010 - Dicas de Desenvolvimento Web com Ruby
Consegi 2010 - Dicas de Desenvolvimento Web com RubyConsegi 2010 - Dicas de Desenvolvimento Web com Ruby
Consegi 2010 - Dicas de Desenvolvimento Web com Ruby
 
Familiar HTML5 - 事例とサンプルコードから学ぶ 身近で普通に使わているHTML5
Familiar HTML5 - 事例とサンプルコードから学ぶ 身近で普通に使わているHTML5Familiar HTML5 - 事例とサンプルコードから学ぶ 身近で普通に使わているHTML5
Familiar HTML5 - 事例とサンプルコードから学ぶ 身近で普通に使わているHTML5
 
Ruby on Rails workshop for beginner
Ruby on Rails workshop for beginnerRuby on Rails workshop for beginner
Ruby on Rails workshop for beginner
 
Connecting the Worlds of Java and Ruby with JRuby
Connecting the Worlds of Java and Ruby with JRubyConnecting the Worlds of Java and Ruby with JRuby
Connecting the Worlds of Java and Ruby with JRuby
 
Rails Presentation (Anton Dmitriyev)
Rails Presentation (Anton Dmitriyev)Rails Presentation (Anton Dmitriyev)
Rails Presentation (Anton Dmitriyev)
 
Introduction to Client Side Dev in SharePoint Workshop
Introduction to Client Side Dev in SharePoint WorkshopIntroduction to Client Side Dev in SharePoint Workshop
Introduction to Client Side Dev in SharePoint Workshop
 
[Coscup 2012] JavascriptMVC
[Coscup 2012] JavascriptMVC[Coscup 2012] JavascriptMVC
[Coscup 2012] JavascriptMVC
 
#NewMeetup Performance
#NewMeetup Performance#NewMeetup Performance
#NewMeetup Performance
 
Rapid Prototyping FTW!!!
Rapid Prototyping FTW!!!Rapid Prototyping FTW!!!
Rapid Prototyping FTW!!!
 
JRuby + Rails = Awesome Java Web Framework at Jfokus 2011
JRuby + Rails = Awesome Java Web Framework at Jfokus 2011JRuby + Rails = Awesome Java Web Framework at Jfokus 2011
JRuby + Rails = Awesome Java Web Framework at Jfokus 2011
 
Intro to Rails
Intro to RailsIntro to Rails
Intro to Rails
 
(Updated) SharePoint & jQuery Guide
(Updated) SharePoint & jQuery Guide(Updated) SharePoint & jQuery Guide
(Updated) SharePoint & jQuery Guide
 
Use Web Skills To Build Mobile Apps
Use Web Skills To Build Mobile AppsUse Web Skills To Build Mobile Apps
Use Web Skills To Build Mobile Apps
 
Supa fast Ruby + Rails
Supa fast Ruby + RailsSupa fast Ruby + Rails
Supa fast Ruby + Rails
 
JavaScript For People Who Don't Code
JavaScript For People Who Don't CodeJavaScript For People Who Don't Code
JavaScript For People Who Don't Code
 
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
 
Solid and Sustainable Development in Scala
Solid and Sustainable Development in ScalaSolid and Sustainable Development in Scala
Solid and Sustainable Development in Scala
 

Recently uploaded

Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Zilliz
 
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 WorkerThousandEyes
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobeapidays
 
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxRemote DBA Services
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamUiPathCommunity
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusZilliz
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...apidays
 
JohnPollard-hybrid-app-RailsConf2024.pptx
JohnPollard-hybrid-app-RailsConf2024.pptxJohnPollard-hybrid-app-RailsConf2024.pptx
JohnPollard-hybrid-app-RailsConf2024.pptxJohnPollard37
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdfSandro Moreira
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxRustici Software
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Orbitshub
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWERMadyBayot
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodJuan lago vázquez
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...apidays
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Victor Rentea
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...apidays
 
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 TerraformAndrey Devyatkin
 

Recently uploaded (20)

Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)
 
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
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptx
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
JohnPollard-hybrid-app-RailsConf2024.pptx
JohnPollard-hybrid-app-RailsConf2024.pptxJohnPollard-hybrid-app-RailsConf2024.pptx
JohnPollard-hybrid-app-RailsConf2024.pptx
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
 
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
 

Road to Rails

  • 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.
  • 8.
  • 10. Rails
  • 11. RoR
  • 13. Rails is a framework for building database-backed web applications in Ruby.
  • 14. Rails is a framework for building database-backed web applications in Ruby.
  • 15. Rails is a framework for building database-backed web applications in Ruby.
  • 18. early 2005 first time I heard about Ruby on Rails
  • 20. “[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
  • 21. “[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.
  • 22. “Rails is the most well thought-out web development framework I’ve ever used.” James Duncan Davidson
  • 23. “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.
  • 24. “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
  • 25. “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.
  • 26. “Rails has become a standard to which even well- established tools are comparing themselves to.” Martin Fowler
  • 27. “Rails has become a standard to which even well- established tools are comparing themselves to.” Martin Fowler Author of “Refactoring”.
  • 29. “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
  • 30. “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
  • 31. Thanks to Joey deVilla for this picture (http:// accordionguy.blogware.com/ Photos/2006/02/ bruce_on_rails.jpg)
  • 34. demo
  • 35. break
  • 36. talking (Ruby?) (ActiveRecord?)
  • 37. talking (Ruby?) (ActiveRecord?)
  • 38. talking (Ruby?) (ActiveRecord?)
  • 43. why does it matter?
  • 49. HTTP
  • 55. RDBs
  • 62. abuse
  • 68. HTML
  • 71. flow
  • 78. quick
  • 84. forms
  • 85. CGI
  • 86. C
  • 87. Perl
  • 89. slow
  • 91. ASP
  • 92. PHP
  • 95. <? $db = quot;DATABASE NAMEquot;; $admin = quot;MYSQL USER NAMEquot;; $adpass = quot;MYSQL PASSWORDquot;; $mysql_link = mysql_connect(quot;localhostquot;, $admin, $adpass); mysql_select_db($db, $mysql_link); ?> <HTML> <BODY> <script language=quot;phpquot;> if($react == quot;delete_userquot;) { if($user) { $query = quot;DELETE from login WHERE user='$user' quot;; $result = mysql_query($query, $mysql_link); if(mysql_num_rows($result)) { print(quot;<strong>$user</strong> successfully deleted<p>quot;); } } else { print(quot;<strong>no users to delete yet.</strong><p>quot;); } } </script> <form method=quot;POSTquot; action=quot;admin.php3quot;><div align=quot;centerquot;><center><p>Delete Users <input type=quot;hiddenquot; name=quot;reactquot; value=quot;delete_userquot;> <select name=quot;userquot; size=quot;1quot;> <script language=quot;phpquot;> $query = quot;SELECT user FROM login ORDER BY userquot;; $result = mysql_query($query, $mysql_link); ...
  • 96. <? $db = quot;DATABASE NAMEquot;; $admin = quot;MYSQL USER NAMEquot;; $adpass = quot;MYSQL PASSWORDquot;; $mysql_link = mysql_connect(quot;localhostquot;, $admin, $adpass); mysql_select_db($db, $mysql_link); ?> <HTML> <BODY> <script language=quot;phpquot;> if($react == quot;delete_userquot;) { if($user) { $query = quot;DELETE from login WHERE user='$user' quot;; $result = mysql_query($query, $mysql_link); if(mysql_num_rows($result)) { print(quot;<strong>$user</strong> successfully deleted<p>quot;); } } else { print(quot;<strong>no users to delete yet.</strong><p>quot;); } } </script> <form method=quot;POSTquot; action=quot;admin.php3quot;><div align=quot;centerquot;><center><p>Delete Users <input type=quot;hiddenquot; name=quot;reactquot; value=quot;delete_userquot;> <select name=quot;userquot; size=quot;1quot;> <script language=quot;phpquot;> $query = quot;SELECT user FROM login ORDER BY userquot;; $result = mysql_query($query, $mysql_link); ...
  • 97. <? $db = quot;DATABASE NAMEquot;; $admin = quot;MYSQL USER NAMEquot;; $adpass = quot;MYSQL PASSWORDquot;; $mysql_link = mysql_connect(quot;localhostquot;, $admin, $adpass); mysql_select_db($db, $mysql_link); ?> <HTML> <BODY> <script language=quot;phpquot;> if($react == quot;delete_userquot;) { if($user) { $query = quot;DELETE from login WHERE user='$user' quot;; $result = mysql_query($query, $mysql_link); if(mysql_num_rows($result)) { print(quot;<strong>$user</strong> successfully deleted<p>quot;); } } else { print(quot;<strong>no users to delete yet.</strong><p>quot;); } } </script> <form method=quot;POSTquot; action=quot;admin.php3quot;><div align=quot;centerquot;><center><p>Delete Users <input type=quot;hiddenquot; name=quot;reactquot; value=quot;delete_userquot;> <select name=quot;userquot; size=quot;1quot;> <script language=quot;phpquot;> $query = quot;SELECT user FROM login ORDER BY userquot;; $result = mysql_query($query, $mysql_link); ...
  • 98. <? $db = quot;DATABASE NAMEquot;; $admin = quot;MYSQL USER NAMEquot;; $adpass = quot;MYSQL PASSWORDquot;; $mysql_link = mysql_connect(quot;localhostquot;, $admin, $adpass); mysql_select_db($db, $mysql_link); ?> <HTML> <BODY> <script language=quot;phpquot;> if($react == quot;delete_userquot;) { if($user) { $query = quot;DELETE from login WHERE user='$user' quot;; $result = mysql_query($query, $mysql_link); if(mysql_num_rows($result)) { print(quot;<strong>$user</strong> successfully deleted<p>quot;); } } else { print(quot;<strong>no users to delete yet.</strong><p>quot;); } } </script> <form method=quot;POSTquot; action=quot;admin.php3quot;><div align=quot;centerquot;><center><p>Delete Users <input type=quot;hiddenquot; name=quot;reactquot; value=quot;delete_userquot;> <select name=quot;userquot; size=quot;1quot;> <script language=quot;phpquot;> $query = quot;SELECT user FROM login ORDER BY userquot;; $result = mysql_query($query, $mysql_link); ...
  • 100. Java
  • 101. J2EE
  • 102. JSP
  • 104. Struts
  • 109. <?xml version=quot;1.0quot;?> <!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> ...
  • 113. Flash
  • 117. AJAX
  • 124. PHP
  • 127. AJAX
  • 128. clumsy
  • 131. Rails
  • 133. I
  • 134. KISS
  • 135. Keep It Simple (Stupid)
  • 136. Keep It Simple (Stupid)
  • 137. II
  • 138. DRY
  • 140. III
  • 141. Convention over Configuration
  • 142. Convention over Configuration
  • 143. I - KISS II - DRY III - CoC
  • 144. <demo>
  • 146. <talk>