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

                                                         by amol.pujari




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

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




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




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

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

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

     
         MsSql                  Eclipse                   
                                                               Five-runs              Platforms

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




any queries?

Contenu connexe

Tendances

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

Tendances (18)

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

En vedette

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

En vedette (6)

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

Similaire à Ruby on rails

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

Similaire à Ruby on rails (20)

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

Dernier

EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?Antenna Manufacturer Coco
 
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 Processorsdebabhi2
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 

Dernier (20)

EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
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...
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
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?
 
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
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Apidays 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...
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 

Ruby on rails

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

Notes de l'éditeur

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