SlideShare une entreprise Scribd logo
1  sur  24
puts 'hello ruby on rails'

                                                         by amol.pujari




Why should you switch to Ruby? If you are happy with Perl or Python, you don't
have to. But if you do feel there must be a better language, Ruby may be your
language of choice. Learning a new language is harmless. It gives you new
ideas and insights. You don't have to switch, just learn and try it. You may find
yourself comfortable enough with Ruby to decide to switch to it.

-    Matz      (Yukihiro      Matsumoto),      written        ruby        in   1995
Agenda.items.each {|item| puts item}

    RoR - Market Trend

    Know ruby
    
        Principles
    
        Features

    Ruby on rails
    
        Principles
    
        Building blocks
    
        Caching
    
        Security
    
        Community Support
Market Trend - Need for Ruby on Rails

    Less “Time To Market”

    Quick to build & deploy

    Its free

    Rapid application development

    Handle traffic – when needed

    Huge free libraries with strong community support
Who is using Ruby on Rails
Ruby on Rails – Todays world

    Visits/sec

    twitter 642

    scribd   940
                                                1041

    blingee 1170          1621
                                                              327

    yellowpages 1734

    penny-arcade 2069
                                                   78

    43things 4190
                                 232

    kongregate 4488
                                                                           158

    potchforkmedia 4740

    projectpath 5041
                                  Around 4000 companies have RubyOnRails

    funnyordie 5089                       adopted in last 4 years
So what is Ruby..?
Ruby

    A scripting language

    Purely Object Oriented

    Extreme dynamic

    Easy to learn, simple

    Influenced by Python, Perl and Lisp

    Open source and free

    Cross Platform
Ruby - Programming is fun, enjoy it

    You don't want to fight with the language, feel natural

    Be creative
Ruby - concise and succinct

    Concentrate on the problems

    Its like pseudo-code, simple

    Focus on human factor
Ruby - extreme dynamic

    eval, meta-programming, reflection, Open Classes
Ruby - features

    Dynamic yet strong typing

    Regular expressions, symbols, mutable strings

    Blocks, Iterators, generators

    Collections, arrays, hashes

    Interpolation, default arguments

    Operator overloading

    exception handling

    Native threads

    Custom dispatch behavior (method_missing)

    Garbage collection
if you want to try out all these examples given then
    download ruby from http://www.ruby-lang.org/en/downloads/
    open console, type irb, and enter
    have fun …
end
# so simple




                 often my code requires no comments - amol.pujari
ruby on rails




extracted by David Heinemeier Hansson from his work on Basecamp, a project
management tool by 37signals
Ruby on Rails: Rapid application development

    Web application framework

    Free

    Very less code

    Fast development & client appreciation

    Quick incremental development model

    Multiple Databases support

    Testing support

    Continues Integration support

    Deployment support

    Cloud ready solution
Ruby on Rails: Principles - CoC

    Conventions Over Configurations

    Database table name: books { id(pk), created_at, updated_at }:unicode

    Database migration: app/db/migrate/<ts>_create_books.rb

    Model: class Book => app/models/book.rb

    Views: app/views/books/

    Controller: class BooksController => app/controllers/books_controller.rb

    Unit tests: app/test/unit/book_test.rb

    Fixtures: app/test/fixtures/books.yml

    Functional tests: test/functional/books_controller_test.rb

    Routes: resources :books =>
Ruby on Rails: Principles - DRY

    Don't Repeat Yourself
Rails: building blocks

    ORM: Active Record

    Action Pack
    
        Action Dispatch
    
        Action Controller
    
        Action View

    Active Support

    Active Model, Active Resource, Action Mailer

    Railties
Rails: Active Record

    CRUD support               migrations

    Model level validations    Associations

    Callbacks                  Query interface
Rails: Active Record: Association
Rails: Active Record: Association
Rails: inbuilt caching

    SQL Caching

    caches_page :index

    caches_action :index

    Fragment caching => <% cache do %> ...<% end %>

    ActiveSupport::Cache::Store
config.cache_store = :memory_store
# :FileStore, :mem_cache_store, :redis,
Rails: Security

    Session Hijacking
    
        Stealing a user’s session_id
    
        Use database store and SSL

    Session Fixation
    
        Attacker fixes a session id known to her
    
        Issue a new session identifier (reset_session in RAILS)

    Cross-Site Request Forgery (CSRF)
    
        Rails includes a security token in non-GET requests

    SQL Injection
    
        Unauthorized reading/writing
    
        Model.first(:conditions => ["login = ? AND password = ?",
        entered_user_name, entered_password])
    
        attr_protected :is_admin

    HTML/JavaScript Injection
    
        h @book.description # => 'alert('script inside');'
Ruby on Rails – wider support

    Databases              Development               
                                                          Performance                 Security

     
         Ibm db2                Neatbeans                 
                                                               J-meter                      Md5, Kerberos

     
         Oracle                 Apatana                   
                                                               Yslow, Firebug               Sha1, Sha2

     
         MsSql                  Eclipse                   
                                                               Five-runs              Platforms

     
         Mysql                  Radrails                  
                                                               New-relic                    All flavors of linux
     
         Postgres          Project Management             
                                                               Http-perf                    Windows, MS DOS, Mac
     
         Sqlite                 Redmine
                                                           
                                                               Memcache, redis        CMS
     
         Mongodb                Trac
                                                           
                                                               Apache benchmark             Wordpress, Mephisto
     
         Cassandra              Basecamp
                                                      
                                                          Standards                         Comatoes, Radiant
     
         BerkleyDB              Spring loop               
                                                               XML/REST                     spree

    UI                          Assembla                  
                                                               MVC/ORM                Testing
     
         HTML 5            Repositories              
                                                          Deployment                        Cuccumber, Rspec
     
         Flash                  Svn, cvs                  
                                                               Apache                       Factory-girl, selenium
     
         Flex                   Github                    
                                                               NGINX                  Flavors

    Scripts                     Mercurial                 
                                                               Mongrel                      Jruby
     
         Ajax                   Visual Source Safe        
                                                               Glassfish                    Iron ruby
     
         Jquery            Continues Integration          
                                                               phusion-passanger            Rubinies
     
         Prototype              Capistrano
                                                           
                                                               WebSphere                    Ruby shoes
     
         Css 3                  Cruise Control
                                                           
                                                               Rack                         Sinatara
     
         Coffeescript           moonshine
                                                           
                                                               metal                        Merb
Thanks. :)




any queries?

Contenu connexe

Tendances

DataMapper on Infinispan
DataMapper on InfinispanDataMapper on Infinispan
DataMapper on InfinispanLance Ball
 
Workshop de Ruby on Rails
Workshop de Ruby on RailsWorkshop de Ruby on Rails
Workshop de Ruby on RailsFabio Akita
 
Java compilation
Java compilationJava compilation
Java compilationMike Kucera
 
Workshop de Ruby e Rails na USP Leste 2012
Workshop de Ruby e Rails na USP Leste 2012Workshop de Ruby e Rails na USP Leste 2012
Workshop de Ruby e Rails na USP Leste 2012Fabio Akita
 
Java, Ruby & Rails
Java, Ruby & RailsJava, Ruby & Rails
Java, Ruby & RailsPeter Lind
 
State of the art: Server-Side JavaScript - WebWorkersCamp IV - Open World For...
State of the art: Server-Side JavaScript - WebWorkersCamp IV - Open World For...State of the art: Server-Side JavaScript - WebWorkersCamp IV - Open World For...
State of the art: Server-Side JavaScript - WebWorkersCamp IV - Open World For...Alexandre Morgaut
 
TorqueBox at DC:JBUG - November 2011
TorqueBox at DC:JBUG - November 2011TorqueBox at DC:JBUG - November 2011
TorqueBox at DC:JBUG - November 2011bobmcwhirter
 
TorqueBox - Ruby Hoedown 2011
TorqueBox - Ruby Hoedown 2011TorqueBox - Ruby Hoedown 2011
TorqueBox - Ruby Hoedown 2011Lance Ball
 
When Two Worlds Collide: Java and Ruby in the Enterprise
When Two Worlds Collide: Java and Ruby in the EnterpriseWhen Two Worlds Collide: Java and Ruby in the Enterprise
When Two Worlds Collide: Java and Ruby in the Enterprisebenbrowning
 
Open Source Compiler Construction for the JVM
Open Source Compiler Construction for the JVMOpen Source Compiler Construction for the JVM
Open Source Compiler Construction for the JVMTom Lee
 
TorqueBox - Ultrapassando a fronteira entre Java e Ruby
TorqueBox - Ultrapassando a fronteira entre Java e RubyTorqueBox - Ultrapassando a fronteira entre Java e Ruby
TorqueBox - Ultrapassando a fronteira entre Java e RubyBruno Oliveira
 
TorqueBox for Rubyists
TorqueBox for RubyistsTorqueBox for Rubyists
TorqueBox for Rubyistsbobmcwhirter
 
4장. Class Loader
4장. Class Loader4장. Class Loader
4장. Class Loader김 한도
 
.NET Architects Day - DNAD 2011
.NET Architects Day - DNAD 2011.NET Architects Day - DNAD 2011
.NET Architects Day - DNAD 2011Fabio Akita
 
A Tale of a Server Architecture (Frozen Rails 2012)
A Tale of a Server Architecture (Frozen Rails 2012)A Tale of a Server Architecture (Frozen Rails 2012)
A Tale of a Server Architecture (Frozen Rails 2012)Flowdock
 
Ruby for C#-ers (ScanDevConf 2010)
Ruby for C#-ers (ScanDevConf 2010)Ruby for C#-ers (ScanDevConf 2010)
Ruby for C#-ers (ScanDevConf 2010)Thomas Lundström
 
Apache Camel: The Swiss Army Knife of Open Source Integration
Apache Camel: The Swiss Army Knife of Open Source IntegrationApache Camel: The Swiss Army Knife of Open Source Integration
Apache Camel: The Swiss Army Knife of Open Source Integrationprajods
 

Tendances (18)

DataMapper on Infinispan
DataMapper on InfinispanDataMapper on Infinispan
DataMapper on Infinispan
 
Workshop de Ruby on Rails
Workshop de Ruby on RailsWorkshop de Ruby on Rails
Workshop de Ruby on Rails
 
Java compilation
Java compilationJava compilation
Java compilation
 
Workshop de Ruby e Rails na USP Leste 2012
Workshop de Ruby e Rails na USP Leste 2012Workshop de Ruby e Rails na USP Leste 2012
Workshop de Ruby e Rails na USP Leste 2012
 
Java, Ruby & Rails
Java, Ruby & RailsJava, Ruby & Rails
Java, Ruby & Rails
 
State of the art: Server-Side JavaScript - WebWorkersCamp IV - Open World For...
State of the art: Server-Side JavaScript - WebWorkersCamp IV - Open World For...State of the art: Server-Side JavaScript - WebWorkersCamp IV - Open World For...
State of the art: Server-Side JavaScript - WebWorkersCamp IV - Open World For...
 
TorqueBox at DC:JBUG - November 2011
TorqueBox at DC:JBUG - November 2011TorqueBox at DC:JBUG - November 2011
TorqueBox at DC:JBUG - November 2011
 
TorqueBox - Ruby Hoedown 2011
TorqueBox - Ruby Hoedown 2011TorqueBox - Ruby Hoedown 2011
TorqueBox - Ruby Hoedown 2011
 
When Two Worlds Collide: Java and Ruby in the Enterprise
When Two Worlds Collide: Java and Ruby in the EnterpriseWhen Two Worlds Collide: Java and Ruby in the Enterprise
When Two Worlds Collide: Java and Ruby in the Enterprise
 
Open Source Compiler Construction for the JVM
Open Source Compiler Construction for the JVMOpen Source Compiler Construction for the JVM
Open Source Compiler Construction for the JVM
 
TorqueBox - Ultrapassando a fronteira entre Java e Ruby
TorqueBox - Ultrapassando a fronteira entre Java e RubyTorqueBox - Ultrapassando a fronteira entre Java e Ruby
TorqueBox - Ultrapassando a fronteira entre Java e Ruby
 
TorqueBox for Rubyists
TorqueBox for RubyistsTorqueBox for Rubyists
TorqueBox for Rubyists
 
4장. Class Loader
4장. Class Loader4장. Class Loader
4장. Class Loader
 
.NET Architects Day - DNAD 2011
.NET Architects Day - DNAD 2011.NET Architects Day - DNAD 2011
.NET Architects Day - DNAD 2011
 
A Tale of a Server Architecture (Frozen Rails 2012)
A Tale of a Server Architecture (Frozen Rails 2012)A Tale of a Server Architecture (Frozen Rails 2012)
A Tale of a Server Architecture (Frozen Rails 2012)
 
Devignition 2011
Devignition 2011Devignition 2011
Devignition 2011
 
Ruby for C#-ers (ScanDevConf 2010)
Ruby for C#-ers (ScanDevConf 2010)Ruby for C#-ers (ScanDevConf 2010)
Ruby for C#-ers (ScanDevConf 2010)
 
Apache Camel: The Swiss Army Knife of Open Source Integration
Apache Camel: The Swiss Army Knife of Open Source IntegrationApache Camel: The Swiss Army Knife of Open Source Integration
Apache Camel: The Swiss Army Knife of Open Source Integration
 

En vedette

Writing code for others
Writing code for othersWriting code for others
Writing code for othersAmol Pujari
 
Sqlxml vs xquery
Sqlxml vs xquerySqlxml vs xquery
Sqlxml vs xqueryAmol Pujari
 
10 SQL Tricks that You Didn't Think Were Possible
10 SQL Tricks that You Didn't Think Were Possible10 SQL Tricks that You Didn't Think Were Possible
10 SQL Tricks that You Didn't Think Were PossibleLukas Eder
 
Lightning Talk #9: How UX and Data Storytelling Can Shape Policy by Mika Aldaba
Lightning Talk #9: How UX and Data Storytelling Can Shape Policy by Mika AldabaLightning Talk #9: How UX and Data Storytelling Can Shape Policy by Mika Aldaba
Lightning Talk #9: How UX and Data Storytelling Can Shape Policy by Mika Aldabaux singapore
 

En vedette (6)

Writing code for others
Writing code for othersWriting code for others
Writing code for others
 
DB2 Native XML
DB2 Native XMLDB2 Native XML
DB2 Native XML
 
Sqlxml vs xquery
Sqlxml vs xquerySqlxml vs xquery
Sqlxml vs xquery
 
Agile scrum roles
Agile scrum rolesAgile scrum roles
Agile scrum roles
 
10 SQL Tricks that You Didn't Think Were Possible
10 SQL Tricks that You Didn't Think Were Possible10 SQL Tricks that You Didn't Think Were Possible
10 SQL Tricks that You Didn't Think Were Possible
 
Lightning Talk #9: How UX and Data Storytelling Can Shape Policy by Mika Aldaba
Lightning Talk #9: How UX and Data Storytelling Can Shape Policy by Mika AldabaLightning Talk #9: How UX and Data Storytelling Can Shape Policy by Mika Aldaba
Lightning Talk #9: How UX and Data Storytelling Can Shape Policy by Mika Aldaba
 

Similaire à Ruby on rails

Ruby and Rails for womens
Ruby and Rails for womensRuby and Rails for womens
Ruby and Rails for womenss4nx
 
JRuby - Programmer's Best Friend on JVM
JRuby - Programmer's Best Friend on JVMJRuby - Programmer's Best Friend on JVM
JRuby - Programmer's Best Friend on JVMRaimonds Simanovskis
 
Ruby on Rails All Hands Meeting
Ruby on Rails All Hands MeetingRuby on Rails All Hands Meeting
Ruby on Rails All Hands MeetingDan Davis
 
Úvod do Ruby on Rails
Úvod do Ruby on RailsÚvod do Ruby on Rails
Úvod do Ruby on RailsKarel Minarik
 
Introduction To Rails
Introduction To RailsIntroduction To Rails
Introduction To RailsEric Gruber
 
Ruby and Rails short motivation
Ruby and Rails short motivationRuby and Rails short motivation
Ruby and Rails short motivationjistr
 
Ruby on Rails (RoR) as a back-end processor for Apex
Ruby on Rails (RoR) as a back-end processor for Apex Ruby on Rails (RoR) as a back-end processor for Apex
Ruby on Rails (RoR) as a back-end processor for Apex Espen Brækken
 
Merb For The Enterprise
Merb For The EnterpriseMerb For The Enterprise
Merb For The EnterpriseMatt Aimonetti
 
Ruby on Rails : First Mile
Ruby on Rails : First MileRuby on Rails : First Mile
Ruby on Rails : First MileGourab Mitra
 
Lessons Learned Integrating Cocoon, Jackrabbit And Solr
Lessons Learned Integrating Cocoon, Jackrabbit And SolrLessons Learned Integrating Cocoon, Jackrabbit And Solr
Lessons Learned Integrating Cocoon, Jackrabbit And SolrLars Trieloff
 
Ruby on Rails (RoR) as a back-end processor for Apex
Ruby on Rails (RoR) as a back-end processor for Apex Ruby on Rails (RoR) as a back-end processor for Apex
Ruby on Rails (RoR) as a back-end processor for Apex Espen Brækken
 
Instruments ruby on rails
Instruments ruby on railsInstruments ruby on rails
Instruments ruby on railspmashchak
 
Dynamic Languages & Web Frameworks in GlassFish
Dynamic Languages & Web Frameworks in GlassFishDynamic Languages & Web Frameworks in GlassFish
Dynamic Languages & Web Frameworks in GlassFishIndicThreads
 

Similaire à Ruby on rails (20)

Ruby and Rails for womens
Ruby and Rails for womensRuby and Rails for womens
Ruby and Rails for womens
 
JRuby - Programmer's Best Friend on JVM
JRuby - Programmer's Best Friend on JVMJRuby - Programmer's Best Friend on JVM
JRuby - Programmer's Best Friend on JVM
 
Ruby on Rails All Hands Meeting
Ruby on Rails All Hands MeetingRuby on Rails All Hands Meeting
Ruby on Rails All Hands Meeting
 
Ruby On Rails
Ruby On RailsRuby On Rails
Ruby On Rails
 
Úvod do Ruby on Rails
Úvod do Ruby on RailsÚvod do Ruby on Rails
Úvod do Ruby on Rails
 
Introduction To Rails
Introduction To RailsIntroduction To Rails
Introduction To Rails
 
Evolution of Rails
Evolution of RailsEvolution of Rails
Evolution of Rails
 
Merb tutorial
Merb tutorialMerb tutorial
Merb tutorial
 
Ruby and Rails short motivation
Ruby and Rails short motivationRuby and Rails short motivation
Ruby and Rails short motivation
 
Ruby on Rails (RoR) as a back-end processor for Apex
Ruby on Rails (RoR) as a back-end processor for Apex Ruby on Rails (RoR) as a back-end processor for Apex
Ruby on Rails (RoR) as a back-end processor for Apex
 
Merb For The Enterprise
Merb For The EnterpriseMerb For The Enterprise
Merb For The Enterprise
 
Ruby On Rails
Ruby On RailsRuby On Rails
Ruby On Rails
 
Why Ruby on Rail for your next project?
Why Ruby on Rail for your next project? Why Ruby on Rail for your next project?
Why Ruby on Rail for your next project?
 
Ruby on Rails : First Mile
Ruby on Rails : First MileRuby on Rails : First Mile
Ruby on Rails : First Mile
 
Bhavesh ro r
Bhavesh ro rBhavesh ro r
Bhavesh ro r
 
Lessons Learned Integrating Cocoon, Jackrabbit And Solr
Lessons Learned Integrating Cocoon, Jackrabbit And SolrLessons Learned Integrating Cocoon, Jackrabbit And Solr
Lessons Learned Integrating Cocoon, Jackrabbit And Solr
 
Ruby on Rails (RoR) as a back-end processor for Apex
Ruby on Rails (RoR) as a back-end processor for Apex Ruby on Rails (RoR) as a back-end processor for Apex
Ruby on Rails (RoR) as a back-end processor for Apex
 
Instruments ruby on rails
Instruments ruby on railsInstruments ruby on rails
Instruments ruby on rails
 
Dynamic Languages & Web Frameworks in GlassFish
Dynamic Languages & Web Frameworks in GlassFishDynamic Languages & Web Frameworks in GlassFish
Dynamic Languages & Web Frameworks in GlassFish
 
Ruby on rails
Ruby on railsRuby on rails
Ruby on rails
 

Dernier

What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?Antenna Manufacturer Coco
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
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
 
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
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessPixlogix Infotech
 
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
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
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
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 

Dernier (20)

What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
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
 
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...
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
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
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
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
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 

Ruby on rails

  • 1. puts 'hello ruby on rails' by amol.pujari Why should you switch to Ruby? If you are happy with Perl or Python, you don't have to. But if you do feel there must be a better language, Ruby may be your language of choice. Learning a new language is harmless. It gives you new ideas and insights. You don't have to switch, just learn and try it. You may find yourself comfortable enough with Ruby to decide to switch to it. - Matz (Yukihiro Matsumoto), written ruby in 1995
  • 2. Agenda.items.each {|item| puts item}  RoR - Market Trend  Know ruby  Principles  Features  Ruby on rails  Principles  Building blocks  Caching  Security  Community Support
  • 3. Market Trend - Need for Ruby on Rails  Less “Time To Market”  Quick to build & deploy  Its free  Rapid application development  Handle traffic – when needed  Huge free libraries with strong community support
  • 4. Who is using Ruby on Rails
  • 5. Ruby on Rails – Todays world  Visits/sec  twitter 642  scribd 940 1041  blingee 1170 1621 327  yellowpages 1734  penny-arcade 2069 78  43things 4190 232  kongregate 4488 158  potchforkmedia 4740  projectpath 5041 Around 4000 companies have RubyOnRails  funnyordie 5089 adopted in last 4 years
  • 6. So what is Ruby..?
  • 7. Ruby  A scripting language  Purely Object Oriented  Extreme dynamic  Easy to learn, simple  Influenced by Python, Perl and Lisp  Open source and free  Cross Platform
  • 8. Ruby - Programming is fun, enjoy it  You don't want to fight with the language, feel natural  Be creative
  • 9. Ruby - concise and succinct  Concentrate on the problems  Its like pseudo-code, simple  Focus on human factor
  • 10. Ruby - extreme dynamic  eval, meta-programming, reflection, Open Classes
  • 11. Ruby - features  Dynamic yet strong typing  Regular expressions, symbols, mutable strings  Blocks, Iterators, generators  Collections, arrays, hashes  Interpolation, default arguments  Operator overloading  exception handling  Native threads  Custom dispatch behavior (method_missing)  Garbage collection
  • 12. if you want to try out all these examples given then download ruby from http://www.ruby-lang.org/en/downloads/ open console, type irb, and enter have fun … end # so simple often my code requires no comments - amol.pujari
  • 13. ruby on rails extracted by David Heinemeier Hansson from his work on Basecamp, a project management tool by 37signals
  • 14. Ruby on Rails: Rapid application development  Web application framework  Free  Very less code  Fast development & client appreciation  Quick incremental development model  Multiple Databases support  Testing support  Continues Integration support  Deployment support  Cloud ready solution
  • 15. Ruby on Rails: Principles - CoC  Conventions Over Configurations  Database table name: books { id(pk), created_at, updated_at }:unicode  Database migration: app/db/migrate/<ts>_create_books.rb  Model: class Book => app/models/book.rb  Views: app/views/books/  Controller: class BooksController => app/controllers/books_controller.rb  Unit tests: app/test/unit/book_test.rb  Fixtures: app/test/fixtures/books.yml  Functional tests: test/functional/books_controller_test.rb  Routes: resources :books =>
  • 16. Ruby on Rails: Principles - DRY  Don't Repeat Yourself
  • 17. Rails: building blocks  ORM: Active Record  Action Pack  Action Dispatch  Action Controller  Action View  Active Support  Active Model, Active Resource, Action Mailer  Railties
  • 18. Rails: Active Record  CRUD support  migrations  Model level validations  Associations  Callbacks  Query interface
  • 19. Rails: Active Record: Association
  • 20. Rails: Active Record: Association
  • 21. Rails: inbuilt caching  SQL Caching  caches_page :index  caches_action :index  Fragment caching => <% cache do %> ...<% end %>  ActiveSupport::Cache::Store config.cache_store = :memory_store # :FileStore, :mem_cache_store, :redis,
  • 22. Rails: Security  Session Hijacking  Stealing a user’s session_id  Use database store and SSL  Session Fixation  Attacker fixes a session id known to her  Issue a new session identifier (reset_session in RAILS)  Cross-Site Request Forgery (CSRF)  Rails includes a security token in non-GET requests  SQL Injection  Unauthorized reading/writing  Model.first(:conditions => ["login = ? AND password = ?", entered_user_name, entered_password])  attr_protected :is_admin  HTML/JavaScript Injection  h @book.description # => 'alert('script inside');'
  • 23. Ruby on Rails – wider support  Databases  Development  Performance  Security  Ibm db2  Neatbeans  J-meter  Md5, Kerberos  Oracle  Apatana  Yslow, Firebug  Sha1, Sha2  MsSql  Eclipse  Five-runs  Platforms  Mysql  Radrails  New-relic  All flavors of linux  Postgres  Project Management  Http-perf  Windows, MS DOS, Mac  Sqlite  Redmine  Memcache, redis  CMS  Mongodb  Trac  Apache benchmark  Wordpress, Mephisto  Cassandra  Basecamp  Standards  Comatoes, Radiant  BerkleyDB  Spring loop  XML/REST  spree  UI  Assembla  MVC/ORM  Testing  HTML 5  Repositories  Deployment  Cuccumber, Rspec  Flash  Svn, cvs  Apache  Factory-girl, selenium  Flex  Github  NGINX  Flavors  Scripts  Mercurial  Mongrel  Jruby  Ajax  Visual Source Safe  Glassfish  Iron ruby  Jquery  Continues Integration  phusion-passanger  Rubinies  Prototype  Capistrano  WebSphere  Ruby shoes  Css 3  Cruise Control  Rack  Sinatara  Coffeescript  moonshine  metal  Merb

Notes de l'éditeur

  1. [email_address]
  2. [email_address]
  3. [email_address]
  4. [email_address]
  5. [email_address]
  6. [email_address]
  7. [email_address]
  8. [email_address]
  9. [email_address]
  10. [email_address]
  11. [email_address] -Ruby has a wealth of other features, among which are the following: Ruby has exception handling features, like Java or Python, to make it easy to handle errors. Ruby features a true mark-and-sweep garbage collector for all Ruby objects. No need to maintain reference counts in extension libraries. As Matz says, “This is better for your health.” Writing C extensions in Ruby is easier than in Perl or Python, with a very elegant API for calling Ruby from C. This includes calls for embedding Ruby in software, for use as a scripting language. A SWIG interface is also available. Ruby can load extension libraries dynamically if an OS allows. Ruby features OS independent threading. Thus, for all platforms on which Ruby runs, you also have multithreading, regardless of if the OS supports it or not, even on MS-DOS! Ruby is highly portable: it is developed mostly on GNU/Linux, but works on many types of UNIX, Mac OS X, Windows 95/98/Me/NT/2000/XP, DOS, BeOS, OS/2, etc.
  12. [email_address]
  13. [email_address]
  14. [email_address]
  15. [email_address]
  16. [email_address]
  17. [email_address]
  18. [email_address]
  19. [email_address]
  20. [email_address]
  21. [email_address]
  22. [email_address]
  23. [email_address]
  24. [email_address]