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

Más contenido relacionado

La actualidad más candente

DataMapper on Infinispan
DataMapper on InfinispanDataMapper on Infinispan
DataMapper on Infinispan
Lance Ball
 
Java compilation
Java compilationJava compilation
Java compilation
Mike Kucera
 
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
benbrowning
 
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
Tom 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 Ruby
Bruno Oliveira
 

La actualidad más candente (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
 

Destacado

Writing code for others
Writing code for othersWriting code for others
Writing code for others
Amol Pujari
 
Sqlxml vs xquery
Sqlxml vs xquerySqlxml vs xquery
Sqlxml vs xquery
Amol Pujari
 

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

Similar a Ruby on rails

Ruby and Rails short motivation
Ruby and Rails short motivationRuby and Rails short motivation
Ruby and Rails short motivation
jistr
 
Instruments ruby on rails
Instruments ruby on railsInstruments ruby on rails
Instruments ruby on rails
pmashchak
 
Dynamic Languages & Web Frameworks in GlassFish
Dynamic Languages & Web Frameworks in GlassFishDynamic Languages & Web Frameworks in GlassFish
Dynamic Languages & Web Frameworks in GlassFish
IndicThreads
 

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

Último

Último (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?
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
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
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
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...
 
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
 
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
 
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...
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
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
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
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...
 
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
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
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
 
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...
 
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
 
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
 

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

Notas del editor

  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]