SlideShare a Scribd company logo
on Why Rails? How Rails? Please find latest version of the presentation at  http://viridian.in/academic_platform
Web World What is a website?  Content available remotely over a browser. What is a web application?  Create Retrieve Update Delete (CRUD) operations on content designed for a purpose. What is an enterprise application?  Applications / IT that augments business for an organization. What is SAAS?  Packaging enterprise applications as web apps.
Software as a Service Why SAAS? Entry cost is low: Don’t care to maintain server and for that matter IT staff. Don’t care OS. Don’t care programming language and database application. Don’t care how much hard disk space. Don’t care where I work from. Why not SAAS? Data is business and your data on someone else's server - Can I trust? Portability - Can I move out and still function safely?    Port out and port in data Security! security! security!      How much can I customize it?    Provide customization for client to play with. Integration with other applications?    WEB API SAAS != Rocket Science But useful only if we can support complex business logic, and write complex code to counter the WHY NOT SAAS complications.
Why Rails? Convention (Rails) versus Configuration (Java).  Model View Controller (MVC) architecture. Don't Repeat yourself (Reuse). Agile Methodology (Rails) versus SDLC (Java). Based on Ruby -> OOL, Interpreted Lang, Simple, Intuitive, Reflective (pass code as string and make it run), Command line support, etc. Hottest technologies supported: Ajax, Jquery, CSS, Oracle, MySQL, SQLLite, RESTful, APIs, XML, JSON, Web APIs, etc. Database independent applications. Open Source. Good support from a growing community. No need for heavy IDEs. Lots of behind the scene magic: Modes of operation: development, test, production, In built caching, testing, data migration support.
Why is Rails difficult to learn? Because it is a shift in paradigm Individuals  and interaction over processes and tools Agile over SDLC Working software over comprehensive documentation Interpreted language over  c ompile language Customer collaboration over contract negotiation Responding to change over following a plan C onstraints  ( Rails) over flexibility (Java )
But the question still remains… “ Rails reduces our entry cost to SAAS”. We want to build highly commoditized simple to use SAAS products which solve complex business problems at a low cost for social causes. Don’t want to repeat ourselves / reinvent wheel. Believe in setting a convention to achieve efficiency. Believe in BEST OF ALL WORLDS approach through open source APIs / projects. We want to share, work together and grow together. Want to reduce focus on technicalities and increase focus on complex business logic and getting products production ready. Whose using Rails? … why is Viridians on Rails?
LEARNING TO LEARN  RAILS YOURSELF  Rails is based on conventions. To start, you need to know the basics. But from then on, learning rails is all about self-experimenting, Googling and discovering new conventions / plugins / gems / open source APIs which solve or simplify your problems.
Dev. environment  Window XP / 32 bit machines:  MySQL (32 bit), Ruby 1.8.7, Rails 2.3.4, Mongreal Server, Scite text editor If you work on Vista, contact us.  Download (209 MB) our drag drop environment from  http://jump.fm/UNRAN Unzip contents into folder:  C:\rubyonrails Double Click and open Instant Rails It will give error that apache not working. Its fine press OK and continue.
Rails project Note:  Gem  is the ruby equivalent of Java jar.  Plugin  is nothing but an unpacked jar file. Gem code cannot be changed but plugin code can be changed.
Is my env.  working fine? *Note: 127.0.0.1 is localhost by default in Windows
Getting started… Types of methods for Models: - Virtual Attributes - Static Methods
Rails Magic in MVC terms (Gem) (Gem) (Gem)
Rake (Ruby Make) is a build tool. Uses: Pulling a list of members to send out an email. Doing nightly data calculations and reporting. Expiring and regenerating caches. Making backups of my database and subversion repository. Running any sort of data manipulation script. Create and delete databases, tables and reference data. Learn more at  http://railsenvy.com/2007/6/11/ruby-on-rails-rake-tutorial   Migrations in Viridians projects Add those yml files which need to be uploaded  before others in the before_others folder. rake db:always is a rake task to load the data from  the yaml files located in db/seed/always. It deletes  the existing records in those corresponding tables  and recreates them. Migrations & Rake Check your application at http://localhost:3000/contacts/
Other basics Sessions in Rails Sessions configuration at …\config\initializers\session_store.rb  Store session in DB at …\db\migrate\create_tables.rb    sessions table Some functions at …\app\controllers\application_controller.rb  Database queries Validations
GIT Version Control Evolution of open source version controls: CVS    SVN    GIT Features: 1. Distributed Repositories 2. Non Linear Development 3. Branching, Merging 4. Cryptic Authentication  Download:  http://git-scm.com   Even most open source rails projects are on a social coding website called as  http://github.com   Viridians wants to use GIT to manage code as technologists spread across countries code on the same projects.  Presently we are developing capability to set up a GIT Server, and master and possibly simplify usage of GIT. Once, its done, we will issue a detailed KT and installation to all.
Your friends Your first rails project:  http://media.rubyonrails.org/video/rails_blog_2.mov Online books:  http://www.railstutorial.org/book One of the best way to learn a new language is to see real projects and the code in use.  http://github.com/  is the defacto social coding website used by most open source Rails projects, plugins, gems, etc. If you want to use a plugin and need a example of how to use it, Github even allows to search for code. Screencasting has been core to the Rails community. Some well known video tutorials sites are:  http://railscasts.com ,  http://www.teachmetocode.com/ ,  http://rubyplus.org/   Official Sources:  http://guides.rubyonrails.org/  (concepts),  http://api.rubyonrails.org/  (API documentation),  http://railsapi.com/doc/rails-v2.3.5/  (easier to use api documentation) Ask the group:  http://groups.google.com/group/rubyonrails-talk Test your CSS for all browsers  http://www.my-debugbar.com/wiki/IETester/HomePage
Ritvvij Parrikh http://viridian.in   [email_address] http://groups.google.com/group/viridian_in   Thank You! Create a Viridians account at  http://my.viridian.in
Ad

More Related Content

What's hot (20)

Web Apps atop a Content Repository
Web Apps atop a Content RepositoryWeb Apps atop a Content Repository
Web Apps atop a Content Repository
Gabriel Walt
 
ASP.NET 5: What's the Big Deal
ASP.NET 5: What's the Big DealASP.NET 5: What's the Big Deal
ASP.NET 5: What's the Big Deal
Jim Duffy
 
Dotnet Basics Presentation
Dotnet Basics PresentationDotnet Basics Presentation
Dotnet Basics Presentation
Sudhakar Sharma
 
The Modern Java Web Developer - Denver JUG 2013
The Modern Java Web Developer - Denver JUG 2013The Modern Java Web Developer - Denver JUG 2013
The Modern Java Web Developer - Denver JUG 2013
Matt Raible
 
Docker meetup-nyc-v1
Docker meetup-nyc-v1Docker meetup-nyc-v1
Docker meetup-nyc-v1
Srdjan Strbanovic
 
Creating a custom API for a headless Drupal
Creating a custom API for a headless DrupalCreating a custom API for a headless Drupal
Creating a custom API for a headless Drupal
Exove
 
Introduction to MERN Stack
Introduction to MERN StackIntroduction to MERN Stack
Introduction to MERN Stack
Surya937648
 
Apache Etch Introduction @ FOSDEM 2011
Apache Etch Introduction @ FOSDEM 2011Apache Etch Introduction @ FOSDEM 2011
Apache Etch Introduction @ FOSDEM 2011
grandyho
 
Top 10 web application development frameworks 2016
Top 10 web application development frameworks 2016Top 10 web application development frameworks 2016
Top 10 web application development frameworks 2016
iMOBDEV Technologies Pvt. Ltd.
 
Spring Mvc
Spring MvcSpring Mvc
Spring Mvc
ifnu bima
 
Unpacking .NET Core | EastBanc Technologies
Unpacking .NET Core | EastBanc TechnologiesUnpacking .NET Core | EastBanc Technologies
Unpacking .NET Core | EastBanc Technologies
EastBanc Tachnologies
 
Scripted - Embracing Eclipse Orion
Scripted - Embracing Eclipse OrionScripted - Embracing Eclipse Orion
Scripted - Embracing Eclipse Orion
martinlippert
 
JavaCro'14 - Hybrid mobile apps – deploy Java web application on Android to r...
JavaCro'14 - Hybrid mobile apps – deploy Java web application on Android to r...JavaCro'14 - Hybrid mobile apps – deploy Java web application on Android to r...
JavaCro'14 - Hybrid mobile apps – deploy Java web application on Android to r...
HUJAK - Hrvatska udruga Java korisnika / Croatian Java User Association
 
NodeJs-resume
NodeJs-resumeNodeJs-resume
NodeJs-resume
Deepak Dara
 
intoduction to Grails Framework
intoduction to Grails Frameworkintoduction to Grails Framework
intoduction to Grails Framework
Harshdeep Kaur
 
Chapter 1
Chapter 1Chapter 1
Chapter 1
application developer
 
Grails At Linked
Grails At LinkedGrails At Linked
Grails At Linked
LinkedIn
 
Introduction to Ibatis by Rohit
Introduction to Ibatis by RohitIntroduction to Ibatis by Rohit
Introduction to Ibatis by Rohit
Rohit Prabhakar
 
MERN stack roadmap
MERN stack roadmapMERN stack roadmap
MERN stack roadmap
RahulDas172878
 
APEX Alpe Adria 2019 - JavaScript in APEX - do it right!
APEX Alpe Adria 2019 -  JavaScript in APEX - do it right!APEX Alpe Adria 2019 -  JavaScript in APEX - do it right!
APEX Alpe Adria 2019 - JavaScript in APEX - do it right!
Marko Gorički
 
Web Apps atop a Content Repository
Web Apps atop a Content RepositoryWeb Apps atop a Content Repository
Web Apps atop a Content Repository
Gabriel Walt
 
ASP.NET 5: What's the Big Deal
ASP.NET 5: What's the Big DealASP.NET 5: What's the Big Deal
ASP.NET 5: What's the Big Deal
Jim Duffy
 
Dotnet Basics Presentation
Dotnet Basics PresentationDotnet Basics Presentation
Dotnet Basics Presentation
Sudhakar Sharma
 
The Modern Java Web Developer - Denver JUG 2013
The Modern Java Web Developer - Denver JUG 2013The Modern Java Web Developer - Denver JUG 2013
The Modern Java Web Developer - Denver JUG 2013
Matt Raible
 
Creating a custom API for a headless Drupal
Creating a custom API for a headless DrupalCreating a custom API for a headless Drupal
Creating a custom API for a headless Drupal
Exove
 
Introduction to MERN Stack
Introduction to MERN StackIntroduction to MERN Stack
Introduction to MERN Stack
Surya937648
 
Apache Etch Introduction @ FOSDEM 2011
Apache Etch Introduction @ FOSDEM 2011Apache Etch Introduction @ FOSDEM 2011
Apache Etch Introduction @ FOSDEM 2011
grandyho
 
Unpacking .NET Core | EastBanc Technologies
Unpacking .NET Core | EastBanc TechnologiesUnpacking .NET Core | EastBanc Technologies
Unpacking .NET Core | EastBanc Technologies
EastBanc Tachnologies
 
Scripted - Embracing Eclipse Orion
Scripted - Embracing Eclipse OrionScripted - Embracing Eclipse Orion
Scripted - Embracing Eclipse Orion
martinlippert
 
intoduction to Grails Framework
intoduction to Grails Frameworkintoduction to Grails Framework
intoduction to Grails Framework
Harshdeep Kaur
 
Grails At Linked
Grails At LinkedGrails At Linked
Grails At Linked
LinkedIn
 
Introduction to Ibatis by Rohit
Introduction to Ibatis by RohitIntroduction to Ibatis by Rohit
Introduction to Ibatis by Rohit
Rohit Prabhakar
 
APEX Alpe Adria 2019 - JavaScript in APEX - do it right!
APEX Alpe Adria 2019 -  JavaScript in APEX - do it right!APEX Alpe Adria 2019 -  JavaScript in APEX - do it right!
APEX Alpe Adria 2019 - JavaScript in APEX - do it right!
Marko Gorički
 

Viewers also liked (9)

Revolutia celor 5 reguli pentru o piata adevarata de fermieri si producatori ...
Revolutia celor 5 reguli pentru o piata adevarata de fermieri si producatori ...Revolutia celor 5 reguli pentru o piata adevarata de fermieri si producatori ...
Revolutia celor 5 reguli pentru o piata adevarata de fermieri si producatori ...
Tiberiu Cazacioc, Food Identity
 
Treball PràCtiques Manel
Treball PràCtiques ManelTreball PràCtiques Manel
Treball PràCtiques Manel
gueste183c3
 
140conf Presentation | Nairobi Feb 2010
140conf Presentation | Nairobi Feb 2010140conf Presentation | Nairobi Feb 2010
140conf Presentation | Nairobi Feb 2010
Soud Hyder
 
In bucataria Violetei se aduna multi prieteni…
In bucataria Violetei se aduna multi prieteni…In bucataria Violetei se aduna multi prieteni…
In bucataria Violetei se aduna multi prieteni…
Tiberiu Cazacioc, Food Identity
 
Omgaan met nieuwe media
Omgaan met nieuwe mediaOmgaan met nieuwe media
Omgaan met nieuwe media
guestd8a0c3
 
Macelari din toata Romania, uniti-va!
Macelari din toata Romania, uniti-va!Macelari din toata Romania, uniti-va!
Macelari din toata Romania, uniti-va!
Tiberiu Cazacioc, Food Identity
 
Politica de calitate din pachetul de reformă a PAC si lanturile scurte
Politica de calitate din pachetul de reformă a PAC si lanturile scurtePolitica de calitate din pachetul de reformă a PAC si lanturile scurte
Politica de calitate din pachetul de reformă a PAC si lanturile scurte
Tiberiu Cazacioc, Food Identity
 
Prayer quotes for online
Prayer quotes for onlinePrayer quotes for online
Prayer quotes for online
Chinnababu N
 
Ouale de la sibieni sunt mai naturale, stiati ?!
Ouale de la sibieni sunt mai naturale, stiati ?!Ouale de la sibieni sunt mai naturale, stiati ?!
Ouale de la sibieni sunt mai naturale, stiati ?!
Tiberiu Cazacioc, Food Identity
 
Revolutia celor 5 reguli pentru o piata adevarata de fermieri si producatori ...
Revolutia celor 5 reguli pentru o piata adevarata de fermieri si producatori ...Revolutia celor 5 reguli pentru o piata adevarata de fermieri si producatori ...
Revolutia celor 5 reguli pentru o piata adevarata de fermieri si producatori ...
Tiberiu Cazacioc, Food Identity
 
Treball PràCtiques Manel
Treball PràCtiques ManelTreball PràCtiques Manel
Treball PràCtiques Manel
gueste183c3
 
140conf Presentation | Nairobi Feb 2010
140conf Presentation | Nairobi Feb 2010140conf Presentation | Nairobi Feb 2010
140conf Presentation | Nairobi Feb 2010
Soud Hyder
 
Omgaan met nieuwe media
Omgaan met nieuwe mediaOmgaan met nieuwe media
Omgaan met nieuwe media
guestd8a0c3
 
Politica de calitate din pachetul de reformă a PAC si lanturile scurte
Politica de calitate din pachetul de reformă a PAC si lanturile scurtePolitica de calitate din pachetul de reformă a PAC si lanturile scurte
Politica de calitate din pachetul de reformă a PAC si lanturile scurte
Tiberiu Cazacioc, Food Identity
 
Prayer quotes for online
Prayer quotes for onlinePrayer quotes for online
Prayer quotes for online
Chinnababu N
 
Ad

Similar to Viridians on Rails (20)

Rails Concept
Rails ConceptRails Concept
Rails Concept
Javed Hussain
 
Ruby On Rails
Ruby On RailsRuby On Rails
Ruby On Rails
anides
 
A Tour of Ruby On Rails
A Tour of Ruby On RailsA Tour of Ruby On Rails
A Tour of Ruby On Rails
David Keener
 
Ruby On Rails
Ruby On RailsRuby On Rails
Ruby On Rails
Gautam Rege
 
Ruby on Rails Scaffold_ Create Your App In Minutes
Ruby on Rails Scaffold_ Create Your App In MinutesRuby on Rails Scaffold_ Create Your App In Minutes
Ruby on Rails Scaffold_ Create Your App In Minutes
rorbitssoftware
 
Ruby Rails Web Development.pdf
Ruby Rails Web Development.pdfRuby Rails Web Development.pdf
Ruby Rails Web Development.pdf
Ayesha Siddika
 
Instruments ruby on rails
Instruments ruby on railsInstruments ruby on rails
Instruments ruby on rails
pmashchak
 
Ruby On Rails Presentation
Ruby On Rails PresentationRuby On Rails Presentation
Ruby On Rails Presentation
Paul Pajo
 
Node.js and the MEAN Stack Building Full-Stack Web Applications.pdf
Node.js and the MEAN Stack Building Full-Stack Web Applications.pdfNode.js and the MEAN Stack Building Full-Stack Web Applications.pdf
Node.js and the MEAN Stack Building Full-Stack Web Applications.pdf
lubnayasminsebl
 
Practical WebAssembly with Apex, wasmRS, and nanobus
Practical WebAssembly with Apex, wasmRS, and nanobusPractical WebAssembly with Apex, wasmRS, and nanobus
Practical WebAssembly with Apex, wasmRS, and nanobus
Jarrod Overson
 
Ruby On Rails Seminar Basis Softexpo Feb2010
Ruby On Rails Seminar Basis Softexpo Feb2010Ruby On Rails Seminar Basis Softexpo Feb2010
Ruby On Rails Seminar Basis Softexpo Feb2010
arif44
 
DiUS Computing Lca Rails Final
DiUS  Computing Lca Rails FinalDiUS  Computing Lca Rails Final
DiUS Computing Lca Rails Final
Robert Postill
 
8 Node.js Frameworks Every Developer Should Know [UPDATED].pptx
8 Node.js Frameworks Every Developer Should Know [UPDATED].pptx8 Node.js Frameworks Every Developer Should Know [UPDATED].pptx
8 Node.js Frameworks Every Developer Should Know [UPDATED].pptx
75waytechnologies
 
Install Ruby on Rails Like a Pro: Effortless Guide
Install Ruby on Rails Like a Pro: Effortless GuideInstall Ruby on Rails Like a Pro: Effortless Guide
Install Ruby on Rails Like a Pro: Effortless Guide
rorbitssoftware
 
Docker For Ruby On Rails : Meaning, Benefits, & Use Cases
Docker For Ruby On Rails : Meaning, Benefits, & Use CasesDocker For Ruby On Rails : Meaning, Benefits, & Use Cases
Docker For Ruby On Rails : Meaning, Benefits, & Use Cases
rorbitssoftware
 
Node PDX: Intro to Sails.js
Node PDX: Intro to Sails.jsNode PDX: Intro to Sails.js
Node PDX: Intro to Sails.js
Mike McNeil
 
Building Application with Ruby On Rails Framework
Building Application with Ruby On Rails FrameworkBuilding Application with Ruby On Rails Framework
Building Application with Ruby On Rails Framework
Edureka!
 
Laravel - A Trending PHP Framework
Laravel - A Trending PHP FrameworkLaravel - A Trending PHP Framework
Laravel - A Trending PHP Framework
ijtsrd
 
December 4 SDForum Java Sig Presentation
December 4 SDForum Java Sig PresentationDecember 4 SDForum Java Sig Presentation
December 4 SDForum Java Sig Presentation
Jonathan Abrams
 
Ror Seminar With agilebd.org on 23 Jan09
Ror Seminar With agilebd.org on 23 Jan09Ror Seminar With agilebd.org on 23 Jan09
Ror Seminar With agilebd.org on 23 Jan09
Shaer Hassan
 
Ruby On Rails
Ruby On RailsRuby On Rails
Ruby On Rails
anides
 
A Tour of Ruby On Rails
A Tour of Ruby On RailsA Tour of Ruby On Rails
A Tour of Ruby On Rails
David Keener
 
Ruby on Rails Scaffold_ Create Your App In Minutes
Ruby on Rails Scaffold_ Create Your App In MinutesRuby on Rails Scaffold_ Create Your App In Minutes
Ruby on Rails Scaffold_ Create Your App In Minutes
rorbitssoftware
 
Ruby Rails Web Development.pdf
Ruby Rails Web Development.pdfRuby Rails Web Development.pdf
Ruby Rails Web Development.pdf
Ayesha Siddika
 
Instruments ruby on rails
Instruments ruby on railsInstruments ruby on rails
Instruments ruby on rails
pmashchak
 
Ruby On Rails Presentation
Ruby On Rails PresentationRuby On Rails Presentation
Ruby On Rails Presentation
Paul Pajo
 
Node.js and the MEAN Stack Building Full-Stack Web Applications.pdf
Node.js and the MEAN Stack Building Full-Stack Web Applications.pdfNode.js and the MEAN Stack Building Full-Stack Web Applications.pdf
Node.js and the MEAN Stack Building Full-Stack Web Applications.pdf
lubnayasminsebl
 
Practical WebAssembly with Apex, wasmRS, and nanobus
Practical WebAssembly with Apex, wasmRS, and nanobusPractical WebAssembly with Apex, wasmRS, and nanobus
Practical WebAssembly with Apex, wasmRS, and nanobus
Jarrod Overson
 
Ruby On Rails Seminar Basis Softexpo Feb2010
Ruby On Rails Seminar Basis Softexpo Feb2010Ruby On Rails Seminar Basis Softexpo Feb2010
Ruby On Rails Seminar Basis Softexpo Feb2010
arif44
 
DiUS Computing Lca Rails Final
DiUS  Computing Lca Rails FinalDiUS  Computing Lca Rails Final
DiUS Computing Lca Rails Final
Robert Postill
 
8 Node.js Frameworks Every Developer Should Know [UPDATED].pptx
8 Node.js Frameworks Every Developer Should Know [UPDATED].pptx8 Node.js Frameworks Every Developer Should Know [UPDATED].pptx
8 Node.js Frameworks Every Developer Should Know [UPDATED].pptx
75waytechnologies
 
Install Ruby on Rails Like a Pro: Effortless Guide
Install Ruby on Rails Like a Pro: Effortless GuideInstall Ruby on Rails Like a Pro: Effortless Guide
Install Ruby on Rails Like a Pro: Effortless Guide
rorbitssoftware
 
Docker For Ruby On Rails : Meaning, Benefits, & Use Cases
Docker For Ruby On Rails : Meaning, Benefits, & Use CasesDocker For Ruby On Rails : Meaning, Benefits, & Use Cases
Docker For Ruby On Rails : Meaning, Benefits, & Use Cases
rorbitssoftware
 
Node PDX: Intro to Sails.js
Node PDX: Intro to Sails.jsNode PDX: Intro to Sails.js
Node PDX: Intro to Sails.js
Mike McNeil
 
Building Application with Ruby On Rails Framework
Building Application with Ruby On Rails FrameworkBuilding Application with Ruby On Rails Framework
Building Application with Ruby On Rails Framework
Edureka!
 
Laravel - A Trending PHP Framework
Laravel - A Trending PHP FrameworkLaravel - A Trending PHP Framework
Laravel - A Trending PHP Framework
ijtsrd
 
December 4 SDForum Java Sig Presentation
December 4 SDForum Java Sig PresentationDecember 4 SDForum Java Sig Presentation
December 4 SDForum Java Sig Presentation
Jonathan Abrams
 
Ror Seminar With agilebd.org on 23 Jan09
Ror Seminar With agilebd.org on 23 Jan09Ror Seminar With agilebd.org on 23 Jan09
Ror Seminar With agilebd.org on 23 Jan09
Shaer Hassan
 
Ad

Recently uploaded (20)

AI and Data Privacy in 2025: Global Trends
AI and Data Privacy in 2025: Global TrendsAI and Data Privacy in 2025: Global Trends
AI and Data Privacy in 2025: Global Trends
InData Labs
 
Heap, Types of Heap, Insertion and Deletion
Heap, Types of Heap, Insertion and DeletionHeap, Types of Heap, Insertion and Deletion
Heap, Types of Heap, Insertion and Deletion
Jaydeep Kale
 
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
 
Drupalcamp Finland – Measuring Front-end Energy Consumption
Drupalcamp Finland – Measuring Front-end Energy ConsumptionDrupalcamp Finland – Measuring Front-end Energy Consumption
Drupalcamp Finland – Measuring Front-end Energy Consumption
Exove
 
Massive Power Outage Hits Spain, Portugal, and France: Causes, Impact, and On...
Massive Power Outage Hits Spain, Portugal, and France: Causes, Impact, and On...Massive Power Outage Hits Spain, Portugal, and France: Causes, Impact, and On...
Massive Power Outage Hits Spain, Portugal, and France: Causes, Impact, and On...
Aqusag Technologies
 
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
 
2025-05-Q4-2024-Investor-Presentation.pptx
2025-05-Q4-2024-Investor-Presentation.pptx2025-05-Q4-2024-Investor-Presentation.pptx
2025-05-Q4-2024-Investor-Presentation.pptx
Samuele Fogagnolo
 
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
 
AI EngineHost Review: Revolutionary USA Datacenter-Based Hosting with NVIDIA ...
AI EngineHost Review: Revolutionary USA Datacenter-Based Hosting with NVIDIA ...AI EngineHost Review: Revolutionary USA Datacenter-Based Hosting with NVIDIA ...
AI EngineHost Review: Revolutionary USA Datacenter-Based Hosting with NVIDIA ...
SOFTTECHHUB
 
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
 
How analogue intelligence complements AI
How analogue intelligence complements AIHow analogue intelligence complements AI
How analogue intelligence complements AI
Paul Rowe
 
Procurement Insights Cost To Value Guide.pptx
Procurement Insights Cost To Value Guide.pptxProcurement Insights Cost To Value Guide.pptx
Procurement Insights Cost To Value Guide.pptx
Jon Hansen
 
HCL Nomad Web – Best Practices und Verwaltung von Multiuser-Umgebungen
HCL Nomad Web – Best Practices und Verwaltung von Multiuser-UmgebungenHCL Nomad Web – Best Practices und Verwaltung von Multiuser-Umgebungen
HCL Nomad Web – Best Practices und Verwaltung von Multiuser-Umgebungen
panagenda
 
Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...
Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...
Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...
Impelsys Inc.
 
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
 
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
 
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
 
How Can I use the AI Hype in my Business Context?
How Can I use the AI Hype in my Business Context?How Can I use the AI Hype in my Business Context?
How Can I use the AI Hype in my Business Context?
Daniel Lehner
 
Rusty Waters: Elevating Lakehouses Beyond Spark
Rusty Waters: Elevating Lakehouses Beyond SparkRusty Waters: Elevating Lakehouses Beyond Spark
Rusty Waters: Elevating Lakehouses Beyond Spark
carlyakerly1
 
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
 
AI and Data Privacy in 2025: Global Trends
AI and Data Privacy in 2025: Global TrendsAI and Data Privacy in 2025: Global Trends
AI and Data Privacy in 2025: Global Trends
InData Labs
 
Heap, Types of Heap, Insertion and Deletion
Heap, Types of Heap, Insertion and DeletionHeap, Types of Heap, Insertion and Deletion
Heap, Types of Heap, Insertion and Deletion
Jaydeep Kale
 
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
 
Drupalcamp Finland – Measuring Front-end Energy Consumption
Drupalcamp Finland – Measuring Front-end Energy ConsumptionDrupalcamp Finland – Measuring Front-end Energy Consumption
Drupalcamp Finland – Measuring Front-end Energy Consumption
Exove
 
Massive Power Outage Hits Spain, Portugal, and France: Causes, Impact, and On...
Massive Power Outage Hits Spain, Portugal, and France: Causes, Impact, and On...Massive Power Outage Hits Spain, Portugal, and France: Causes, Impact, and On...
Massive Power Outage Hits Spain, Portugal, and France: Causes, Impact, and On...
Aqusag Technologies
 
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
 
2025-05-Q4-2024-Investor-Presentation.pptx
2025-05-Q4-2024-Investor-Presentation.pptx2025-05-Q4-2024-Investor-Presentation.pptx
2025-05-Q4-2024-Investor-Presentation.pptx
Samuele Fogagnolo
 
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
 
AI EngineHost Review: Revolutionary USA Datacenter-Based Hosting with NVIDIA ...
AI EngineHost Review: Revolutionary USA Datacenter-Based Hosting with NVIDIA ...AI EngineHost Review: Revolutionary USA Datacenter-Based Hosting with NVIDIA ...
AI EngineHost Review: Revolutionary USA Datacenter-Based Hosting with NVIDIA ...
SOFTTECHHUB
 
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
 
How analogue intelligence complements AI
How analogue intelligence complements AIHow analogue intelligence complements AI
How analogue intelligence complements AI
Paul Rowe
 
Procurement Insights Cost To Value Guide.pptx
Procurement Insights Cost To Value Guide.pptxProcurement Insights Cost To Value Guide.pptx
Procurement Insights Cost To Value Guide.pptx
Jon Hansen
 
HCL Nomad Web – Best Practices und Verwaltung von Multiuser-Umgebungen
HCL Nomad Web – Best Practices und Verwaltung von Multiuser-UmgebungenHCL Nomad Web – Best Practices und Verwaltung von Multiuser-Umgebungen
HCL Nomad Web – Best Practices und Verwaltung von Multiuser-Umgebungen
panagenda
 
Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...
Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...
Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...
Impelsys Inc.
 
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
 
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
 
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
 
How Can I use the AI Hype in my Business Context?
How Can I use the AI Hype in my Business Context?How Can I use the AI Hype in my Business Context?
How Can I use the AI Hype in my Business Context?
Daniel Lehner
 
Rusty Waters: Elevating Lakehouses Beyond Spark
Rusty Waters: Elevating Lakehouses Beyond SparkRusty Waters: Elevating Lakehouses Beyond Spark
Rusty Waters: Elevating Lakehouses Beyond Spark
carlyakerly1
 
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
 

Viridians on Rails

  • 1. on Why Rails? How Rails? Please find latest version of the presentation at http://viridian.in/academic_platform
  • 2. Web World What is a website? Content available remotely over a browser. What is a web application? Create Retrieve Update Delete (CRUD) operations on content designed for a purpose. What is an enterprise application? Applications / IT that augments business for an organization. What is SAAS? Packaging enterprise applications as web apps.
  • 3. Software as a Service Why SAAS? Entry cost is low: Don’t care to maintain server and for that matter IT staff. Don’t care OS. Don’t care programming language and database application. Don’t care how much hard disk space. Don’t care where I work from. Why not SAAS? Data is business and your data on someone else's server - Can I trust? Portability - Can I move out and still function safely?  Port out and port in data Security! security! security!   How much can I customize it?  Provide customization for client to play with. Integration with other applications?  WEB API SAAS != Rocket Science But useful only if we can support complex business logic, and write complex code to counter the WHY NOT SAAS complications.
  • 4. Why Rails? Convention (Rails) versus Configuration (Java). Model View Controller (MVC) architecture. Don't Repeat yourself (Reuse). Agile Methodology (Rails) versus SDLC (Java). Based on Ruby -> OOL, Interpreted Lang, Simple, Intuitive, Reflective (pass code as string and make it run), Command line support, etc. Hottest technologies supported: Ajax, Jquery, CSS, Oracle, MySQL, SQLLite, RESTful, APIs, XML, JSON, Web APIs, etc. Database independent applications. Open Source. Good support from a growing community. No need for heavy IDEs. Lots of behind the scene magic: Modes of operation: development, test, production, In built caching, testing, data migration support.
  • 5. Why is Rails difficult to learn? Because it is a shift in paradigm Individuals and interaction over processes and tools Agile over SDLC Working software over comprehensive documentation Interpreted language over c ompile language Customer collaboration over contract negotiation Responding to change over following a plan C onstraints ( Rails) over flexibility (Java )
  • 6. But the question still remains… “ Rails reduces our entry cost to SAAS”. We want to build highly commoditized simple to use SAAS products which solve complex business problems at a low cost for social causes. Don’t want to repeat ourselves / reinvent wheel. Believe in setting a convention to achieve efficiency. Believe in BEST OF ALL WORLDS approach through open source APIs / projects. We want to share, work together and grow together. Want to reduce focus on technicalities and increase focus on complex business logic and getting products production ready. Whose using Rails? … why is Viridians on Rails?
  • 7. LEARNING TO LEARN RAILS YOURSELF Rails is based on conventions. To start, you need to know the basics. But from then on, learning rails is all about self-experimenting, Googling and discovering new conventions / plugins / gems / open source APIs which solve or simplify your problems.
  • 8. Dev. environment Window XP / 32 bit machines: MySQL (32 bit), Ruby 1.8.7, Rails 2.3.4, Mongreal Server, Scite text editor If you work on Vista, contact us. Download (209 MB) our drag drop environment from http://jump.fm/UNRAN Unzip contents into folder: C:\rubyonrails Double Click and open Instant Rails It will give error that apache not working. Its fine press OK and continue.
  • 9. Rails project Note: Gem is the ruby equivalent of Java jar. Plugin is nothing but an unpacked jar file. Gem code cannot be changed but plugin code can be changed.
  • 10. Is my env. working fine? *Note: 127.0.0.1 is localhost by default in Windows
  • 11. Getting started… Types of methods for Models: - Virtual Attributes - Static Methods
  • 12. Rails Magic in MVC terms (Gem) (Gem) (Gem)
  • 13. Rake (Ruby Make) is a build tool. Uses: Pulling a list of members to send out an email. Doing nightly data calculations and reporting. Expiring and regenerating caches. Making backups of my database and subversion repository. Running any sort of data manipulation script. Create and delete databases, tables and reference data. Learn more at http://railsenvy.com/2007/6/11/ruby-on-rails-rake-tutorial Migrations in Viridians projects Add those yml files which need to be uploaded before others in the before_others folder. rake db:always is a rake task to load the data from the yaml files located in db/seed/always. It deletes the existing records in those corresponding tables and recreates them. Migrations & Rake Check your application at http://localhost:3000/contacts/
  • 14. Other basics Sessions in Rails Sessions configuration at …\config\initializers\session_store.rb Store session in DB at …\db\migrate\create_tables.rb  sessions table Some functions at …\app\controllers\application_controller.rb Database queries Validations
  • 15. GIT Version Control Evolution of open source version controls: CVS  SVN  GIT Features: 1. Distributed Repositories 2. Non Linear Development 3. Branching, Merging 4. Cryptic Authentication Download: http://git-scm.com Even most open source rails projects are on a social coding website called as http://github.com Viridians wants to use GIT to manage code as technologists spread across countries code on the same projects. Presently we are developing capability to set up a GIT Server, and master and possibly simplify usage of GIT. Once, its done, we will issue a detailed KT and installation to all.
  • 16. Your friends Your first rails project: http://media.rubyonrails.org/video/rails_blog_2.mov Online books: http://www.railstutorial.org/book One of the best way to learn a new language is to see real projects and the code in use. http://github.com/ is the defacto social coding website used by most open source Rails projects, plugins, gems, etc. If you want to use a plugin and need a example of how to use it, Github even allows to search for code. Screencasting has been core to the Rails community. Some well known video tutorials sites are: http://railscasts.com , http://www.teachmetocode.com/ , http://rubyplus.org/ Official Sources: http://guides.rubyonrails.org/ (concepts), http://api.rubyonrails.org/ (API documentation), http://railsapi.com/doc/rails-v2.3.5/ (easier to use api documentation) Ask the group: http://groups.google.com/group/rubyonrails-talk Test your CSS for all browsers http://www.my-debugbar.com/wiki/IETester/HomePage
  • 17. Ritvvij Parrikh http://viridian.in [email_address] http://groups.google.com/group/viridian_in Thank You! Create a Viridians account at http://my.viridian.in

Editor's Notes

  • #9: Ramesh - Vista
  • #10: Start -> Run -> cmd > cd C: ubyonrails > use_ruby > cd C: ubyonrails ails_apps > rails project_name -d mysql <<project_name>>/ ..../app ......../controller -> A controller handles a web request from the user. ......../helpers -> Functions which help GUI mainly. ......../models -> Each file corresponds to a table in database. ......../views ............../layouts -> template of view files. ............../<controller_name> -> folder corresponding to each controller. ................../viewfiles.html.erb -> Run it through ruby interpreteur and generate html file. A view file corresponding to each function in a controller. ..../config ......../environments -> Holds 3 configuration files one each for production, test and development env. ......../initializers -> Constants. ......../environment file -> General configuration. ......../database.yml file -> Database connection configuration per environment (prod, test, dev). ......../routes file -> Routing of incoming web requests to appropriate code. ..../db ......../migrate -> Holds migration files to creata tables, upload data, upload test data, etc. (like SQL scripts) ......../seed ............../always -> yml files for reference data. ............../before_others -> Holds yml files needed to be run always first. ......../schema.rb -> Holds database table structures. Rails automatically creates it. Never manually change it. ......../seeds.rb -> ignore. ..../doc -> RubyDocs. Ignore not important ..../lib -> ignore ..../log -> ignore ..../public ......../images -> Holds pictures that are to be shown on website. ......../javascript -> Javascript. ......../stylesheets -> CSS. ..../private -> Does not come with rails but at Viridians we add this folder to store user images and files. The public folder is exposed and hence a security risk. ..../script -> Scripts to create, manage and launch various rails services. ..../test -> ignore ..../tmp -> ignore ..../vendor ......../plugins -> 3rd party Plugins used by the project. ......../gems -> Holds 3rd party gems which have been frozen. README-> ignore Rakefile-> ignore
  • #11: Start MYSQL Server   > cd project_name > ruby script/server => Booting Mongrel => Rails 2.3.2 application starting on http://0.0.0.0:3000 => Call with -d to detach => Ctrl-C to shutdown server   Go to browser and type http://localhost:3000/
  • #12: > ruby scriptgenerate scaffold contact name:string weblink:string email:string password:string -> Creates contacts_controller with new, create, edit, update, delete, show, index methods. Contacts model and contacts view folder with new, edit, show, index view files. Links accessible are http://website.com/contacts/new http://website.com/contacts/edit/1 http://website.com/contacts/show/1 http://website.com/contacts/index   > ruby scriptgenerate controller password -> Rails promotes creating restful design. Now considering, we need to create 3 functions, edit_password, forgot_password, create_random_password. Instead of adding them to contacts controller, create a dummy controller called passwords and dump these functions in the passwords controller.   > ruby scriptgenerate model page name:string header_str:string -> Creates a model file alone / table.   rake db:drop -> Drop database schema   rake db:create -> Add database schema   rake db:migrate RAILS_ENV=production VERSION=<<>> -> Create tables and upload datavalues based on db/migrations files   > ruby script/server => Booting Mongrel => Rails 2.3.2 application starting on http://0.0.0.0:3000 => Call with -d to detach => Ctrl-C to shutdown server
  • #14: rake db:drop -> Drop database schema rake db:create -> Add database schema  rake db:migrate RAILS_ENV=production VERSION=<<>> -> Create tables and upload datavalues based on db/migrations files   > ruby script/server => Booting Mongrel => Rails 2.3.2 application starting on http://0.0.0.0:3000 => Call with -d to detach => Ctrl-C to shutdown server
  • #15: Sessions in Rails Sessions configuration at …configinitializerssession_store.rb ActionController::Base.session = { :key => '_blabla', :secret => ‘….‘} ActionController::Base.session_store = :active_record_store Store session in DB at …dbmigratecreate_tables.rb  sessions table Some functions at …appcontrollersapplication_controller.rb current_user_session, current_user, require_user, require_no_user Methods in Models User Model Virtual attributes on object def name return first_name + last_name end Static Methods def self.randomize_username …. End Database queries User.find_by_first_name(‘Vikram’) User.all(:conditions => {:first_name => ‘Vikram’, :last_name => ‘Aditya’}, :order => “created_at DESC”) User.first(:conditions => {:first_name => ‘Vikram’})