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?
Ad

More Related Content

What's hot (18)

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

Viewers also liked (6)

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
 
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
 
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
 
Ad

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
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
 
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
 
Ú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
 
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 : First Mile
Ruby on Rails : First MileRuby on Rails : First Mile
Ruby on Rails : First Mile
Gourab 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 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
 
Ad

Recently uploaded (20)

Andrew Marnell: Transforming Business Strategy Through Data-Driven Insights
Andrew Marnell: Transforming Business Strategy Through Data-Driven InsightsAndrew Marnell: Transforming Business Strategy Through Data-Driven Insights
Andrew Marnell: Transforming Business Strategy Through Data-Driven Insights
Andrew Marnell
 
Manifest Pre-Seed Update | A Humanoid OEM Deeptech In France
Manifest Pre-Seed Update | A Humanoid OEM Deeptech In FranceManifest Pre-Seed Update | A Humanoid OEM Deeptech In France
Manifest Pre-Seed Update | A Humanoid OEM Deeptech In France
chb3
 
Complete Guide to Advanced Logistics Management Software in Riyadh.pdf
Complete Guide to Advanced Logistics Management Software in Riyadh.pdfComplete Guide to Advanced Logistics Management Software in Riyadh.pdf
Complete Guide to Advanced Logistics Management Software in Riyadh.pdf
Software Company
 
Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...
Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...
Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...
Noah Loul
 
TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...
TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...
TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...
TrustArc
 
SAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdf
SAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdfSAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdf
SAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdf
Precisely
 
Into The Box Conference Keynote Day 1 (ITB2025)
Into The Box Conference Keynote Day 1 (ITB2025)Into The Box Conference Keynote Day 1 (ITB2025)
Into The Box Conference Keynote Day 1 (ITB2025)
Ortus Solutions, Corp
 
Technology Trends in 2025: AI and Big Data Analytics
Technology Trends in 2025: AI and Big Data AnalyticsTechnology Trends in 2025: AI and Big Data Analytics
Technology Trends in 2025: AI and Big Data Analytics
InData Labs
 
The Evolution of Meme Coins A New Era for Digital Currency ppt.pdf
The Evolution of Meme Coins A New Era for Digital Currency ppt.pdfThe Evolution of Meme Coins A New Era for Digital Currency ppt.pdf
The Evolution of Meme Coins A New Era for Digital Currency ppt.pdf
Abi john
 
Designing Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep Dive
Designing Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep DiveDesigning Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep Dive
Designing Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep Dive
ScyllaDB
 
Splunk Security Update | Public Sector Summit Germany 2025
Splunk Security Update | Public Sector Summit Germany 2025Splunk Security Update | Public Sector Summit Germany 2025
Splunk Security Update | Public Sector Summit Germany 2025
Splunk
 
Greenhouse_Monitoring_Presentation.pptx.
Greenhouse_Monitoring_Presentation.pptx.Greenhouse_Monitoring_Presentation.pptx.
Greenhouse_Monitoring_Presentation.pptx.
hpbmnnxrvb
 
Big Data Analytics Quick Research Guide by Arthur Morgan
Big Data Analytics Quick Research Guide by Arthur MorganBig Data Analytics Quick Research Guide by Arthur Morgan
Big Data Analytics Quick Research Guide by Arthur Morgan
Arthur Morgan
 
Cyber Awareness overview for 2025 month of security
Cyber Awareness overview for 2025 month of securityCyber Awareness overview for 2025 month of security
Cyber Awareness overview for 2025 month of security
riccardosl1
 
How analogue intelligence complements AI
How analogue intelligence complements AIHow analogue intelligence complements AI
How analogue intelligence complements AI
Paul Rowe
 
What is Model Context Protocol(MCP) - The new technology for communication bw...
What is Model Context Protocol(MCP) - The new technology for communication bw...What is Model Context Protocol(MCP) - The new technology for communication bw...
What is Model Context Protocol(MCP) - The new technology for communication bw...
Vishnu Singh Chundawat
 
Cybersecurity Identity and Access Solutions using Azure AD
Cybersecurity Identity and Access Solutions using Azure ADCybersecurity Identity and Access Solutions using Azure AD
Cybersecurity Identity and Access Solutions using Azure AD
VICTOR MAESTRE RAMIREZ
 
DevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptx
DevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptxDevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptx
DevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptx
Justin Reock
 
Dev Dives: Automate and orchestrate your processes with UiPath Maestro
Dev Dives: Automate and orchestrate your processes with UiPath MaestroDev Dives: Automate and orchestrate your processes with UiPath Maestro
Dev Dives: Automate and orchestrate your processes with UiPath Maestro
UiPathCommunity
 
Special Meetup Edition - TDX Bengaluru Meetup #52.pptx
Special Meetup Edition - TDX Bengaluru Meetup #52.pptxSpecial Meetup Edition - TDX Bengaluru Meetup #52.pptx
Special Meetup Edition - TDX Bengaluru Meetup #52.pptx
shyamraj55
 
Andrew Marnell: Transforming Business Strategy Through Data-Driven Insights
Andrew Marnell: Transforming Business Strategy Through Data-Driven InsightsAndrew Marnell: Transforming Business Strategy Through Data-Driven Insights
Andrew Marnell: Transforming Business Strategy Through Data-Driven Insights
Andrew Marnell
 
Manifest Pre-Seed Update | A Humanoid OEM Deeptech In France
Manifest Pre-Seed Update | A Humanoid OEM Deeptech In FranceManifest Pre-Seed Update | A Humanoid OEM Deeptech In France
Manifest Pre-Seed Update | A Humanoid OEM Deeptech In France
chb3
 
Complete Guide to Advanced Logistics Management Software in Riyadh.pdf
Complete Guide to Advanced Logistics Management Software in Riyadh.pdfComplete Guide to Advanced Logistics Management Software in Riyadh.pdf
Complete Guide to Advanced Logistics Management Software in Riyadh.pdf
Software Company
 
Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...
Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...
Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...
Noah Loul
 
TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...
TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...
TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...
TrustArc
 
SAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdf
SAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdfSAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdf
SAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdf
Precisely
 
Into The Box Conference Keynote Day 1 (ITB2025)
Into The Box Conference Keynote Day 1 (ITB2025)Into The Box Conference Keynote Day 1 (ITB2025)
Into The Box Conference Keynote Day 1 (ITB2025)
Ortus Solutions, Corp
 
Technology Trends in 2025: AI and Big Data Analytics
Technology Trends in 2025: AI and Big Data AnalyticsTechnology Trends in 2025: AI and Big Data Analytics
Technology Trends in 2025: AI and Big Data Analytics
InData Labs
 
The Evolution of Meme Coins A New Era for Digital Currency ppt.pdf
The Evolution of Meme Coins A New Era for Digital Currency ppt.pdfThe Evolution of Meme Coins A New Era for Digital Currency ppt.pdf
The Evolution of Meme Coins A New Era for Digital Currency ppt.pdf
Abi john
 
Designing Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep Dive
Designing Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep DiveDesigning Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep Dive
Designing Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep Dive
ScyllaDB
 
Splunk Security Update | Public Sector Summit Germany 2025
Splunk Security Update | Public Sector Summit Germany 2025Splunk Security Update | Public Sector Summit Germany 2025
Splunk Security Update | Public Sector Summit Germany 2025
Splunk
 
Greenhouse_Monitoring_Presentation.pptx.
Greenhouse_Monitoring_Presentation.pptx.Greenhouse_Monitoring_Presentation.pptx.
Greenhouse_Monitoring_Presentation.pptx.
hpbmnnxrvb
 
Big Data Analytics Quick Research Guide by Arthur Morgan
Big Data Analytics Quick Research Guide by Arthur MorganBig Data Analytics Quick Research Guide by Arthur Morgan
Big Data Analytics Quick Research Guide by Arthur Morgan
Arthur Morgan
 
Cyber Awareness overview for 2025 month of security
Cyber Awareness overview for 2025 month of securityCyber Awareness overview for 2025 month of security
Cyber Awareness overview for 2025 month of security
riccardosl1
 
How analogue intelligence complements AI
How analogue intelligence complements AIHow analogue intelligence complements AI
How analogue intelligence complements AI
Paul Rowe
 
What is Model Context Protocol(MCP) - The new technology for communication bw...
What is Model Context Protocol(MCP) - The new technology for communication bw...What is Model Context Protocol(MCP) - The new technology for communication bw...
What is Model Context Protocol(MCP) - The new technology for communication bw...
Vishnu Singh Chundawat
 
Cybersecurity Identity and Access Solutions using Azure AD
Cybersecurity Identity and Access Solutions using Azure ADCybersecurity Identity and Access Solutions using Azure AD
Cybersecurity Identity and Access Solutions using Azure AD
VICTOR MAESTRE RAMIREZ
 
DevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptx
DevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptxDevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptx
DevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptx
Justin Reock
 
Dev Dives: Automate and orchestrate your processes with UiPath Maestro
Dev Dives: Automate and orchestrate your processes with UiPath MaestroDev Dives: Automate and orchestrate your processes with UiPath Maestro
Dev Dives: Automate and orchestrate your processes with UiPath Maestro
UiPathCommunity
 
Special Meetup Edition - TDX Bengaluru Meetup #52.pptx
Special Meetup Edition - TDX Bengaluru Meetup #52.pptxSpecial Meetup Edition - TDX Bengaluru Meetup #52.pptx
Special Meetup Edition - TDX Bengaluru Meetup #52.pptx
shyamraj55
 

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

  • #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]
  • #12: [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.
  • #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]
  • #25: [email_address]