SlideShare une entreprise Scribd logo
1  sur  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>

Contenu connexe

Tendances

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
 

Tendances (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
 

En vedette

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
 

En vedette (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...
 

Similaire à 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
 

Similaire à 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
 

Dernier

Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfPrecisely
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostZilliz
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DayH2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DaySri Ambati
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 

Dernier (20)

Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DayH2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 

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>