SlideShare uma empresa Scribd logo
1 de 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>

Mais conteúdo relacionado

Mais procurados

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
 

Mais procurados (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
 

Destaque

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
 

Destaque (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...
 

Semelhante a 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
 

Semelhante a 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
 

Último

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
 
Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024SynarionITSolutions
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsRoshan Dwivedi
 
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
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesBoston Institute of Analytics
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...DianaGray10
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
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 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
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyKhushali Kathiriya
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdflior mazor
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024The Digital Insurer
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century educationjfdjdjcjdnsjd
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 

Último (20)

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
 
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
 
Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
 
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...
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
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
 
+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 - 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, ...
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 

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>