SlideShare a Scribd company logo
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?

More Related Content

What's hot

DataMapper on Infinispan
DataMapper on InfinispanDataMapper on Infinispan
DataMapper on Infinispan
Lance Ball
 
Workshop de Ruby on Rails
Workshop de Ruby on RailsWorkshop de Ruby on Rails
Workshop de Ruby on Rails
Fabio Akita
 
Java compilation
Java compilationJava compilation
Java compilation
Mike 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 2012
Fabio Akita
 
Java, Ruby & Rails
Java, Ruby & RailsJava, Ruby & Rails
Java, Ruby & Rails
Peter 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 2011
bobmcwhirter
 
TorqueBox - Ruby Hoedown 2011
TorqueBox - Ruby Hoedown 2011TorqueBox - Ruby Hoedown 2011
TorqueBox - Ruby Hoedown 2011
Lance 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 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
 
TorqueBox for Rubyists
TorqueBox for RubyistsTorqueBox for Rubyists
TorqueBox for Rubyists
bobmcwhirter
 
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
Fabio 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
 
Devignition 2011
Devignition 2011Devignition 2011
Devignition 2011
tobiascrawley
 
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 Integration
prajods
 

What's hot (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
 

Viewers also liked

Writing code for others
Writing code for othersWriting code for others
Writing code for others
Amol Pujari
 
DB2 Native XML
DB2 Native XMLDB2 Native XML
DB2 Native XML
Amol Pujari
 
Sqlxml vs xquery
Sqlxml vs xquerySqlxml vs xquery
Sqlxml vs xquery
Amol Pujari
 
Agile scrum roles
Agile scrum rolesAgile scrum roles
Agile scrum roles
David Tzemach
 
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
Lukas 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 Aldaba
ux singapore
 

Viewers also liked (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 to Ruby on rails

Ruby and Rails for womens
Ruby and Rails for womensRuby and Rails for womens
Ruby and Rails for womens
s4nx
 
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
Raimonds Simanovskis
 
Ruby on Rails All Hands Meeting
Ruby on Rails All Hands MeetingRuby on Rails All Hands Meeting
Ruby on Rails All Hands Meeting
Dan Davis
 
Ruby On Rails
Ruby On RailsRuby On Rails
Ruby On Rails
Gautam Rege
 
Úvod do Ruby on Rails
Úvod do Ruby on RailsÚvod do Ruby on Rails
Úvod do Ruby on Rails
Karel Minarik
 
Introduction To Rails
Introduction To RailsIntroduction To Rails
Introduction To Rails
Eric Gruber
 
Evolution of Rails
Evolution of RailsEvolution of Rails
Evolution of Rails
Lakshan Perera
 
Merb tutorial
Merb tutorialMerb tutorial
Merb tutorial
Sukjoon Kim
 
Ruby and Rails short motivation
Ruby and Rails short motivationRuby and Rails short motivation
Ruby and Rails short motivation
jistr
 
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 Enterprise
Matt Aimonetti
 
Ruby On Rails
Ruby On RailsRuby On Rails
Ruby On Rails
Eric Berry
 
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?
InSTEDD iLab Southeast Asia
 
Ruby on Rails : First Mile
Ruby on Rails : First MileRuby on Rails : First Mile
Ruby on Rails : First Mile
Gourab Mitra
 
Bhavesh ro r
Bhavesh ro rBhavesh ro r
Bhavesh ro r
bhavesh-gloscon
 
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
Lars 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 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
 
Ruby on rails
Ruby on railsRuby on rails
Ruby on rails
chamomilla
 

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

Recently uploaded

“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”
Claudio Di Ciccio
 
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
Edge AI and Vision Alliance
 
RESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for studentsRESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for students
KAMESHS29
 
UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6
DianaGray10
 
Artificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopmentArtificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopment
Octavian Nadolu
 
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
SOFTTECHHUB
 
20240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 202420240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 2024
Matthew Sinclair
 
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAUHCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
panagenda
 
Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1
DianaGray10
 
Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
mikeeftimakis1
 
Mariano G Tinti - Decoding SpaceX
Mariano G Tinti - Decoding SpaceXMariano G Tinti - Decoding SpaceX
Mariano G Tinti - Decoding SpaceX
Mariano Tinti
 
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
Neo4j
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
Adtran
 
AI 101: An Introduction to the Basics and Impact of Artificial Intelligence
AI 101: An Introduction to the Basics and Impact of Artificial IntelligenceAI 101: An Introduction to the Basics and Impact of Artificial Intelligence
AI 101: An Introduction to the Basics and Impact of Artificial Intelligence
IndexBug
 
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
Neo4j
 
Driving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success StoryDriving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success Story
Safe Software
 
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
SOFTTECHHUB
 
Programming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup SlidesProgramming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup Slides
Zilliz
 
GraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracyGraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracy
Tomaz Bratanic
 
20240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 202420240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 2024
Matthew Sinclair
 

Recently uploaded (20)

“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”
 
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
 
RESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for studentsRESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for students
 
UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6
 
Artificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopmentArtificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopment
 
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
 
20240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 202420240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 2024
 
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAUHCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
 
Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1
 
Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
 
Mariano G Tinti - Decoding SpaceX
Mariano G Tinti - Decoding SpaceXMariano G Tinti - Decoding SpaceX
Mariano G Tinti - Decoding SpaceX
 
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
 
AI 101: An Introduction to the Basics and Impact of Artificial Intelligence
AI 101: An Introduction to the Basics and Impact of Artificial IntelligenceAI 101: An Introduction to the Basics and Impact of Artificial Intelligence
AI 101: An Introduction to the Basics and Impact of Artificial Intelligence
 
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
 
Driving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success StoryDriving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success Story
 
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
 
Programming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup SlidesProgramming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup Slides
 
GraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracyGraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracy
 
20240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 202420240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 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

Editor's Notes

  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]