Building Social Enterprise with Ruby and Salesforce
Upcoming SlideShare
Loading in...5
×
 

Like this? Share it with your network

Share

Building Social Enterprise with Ruby and Salesforce

on

  • 1,922 views

This was my presentation at the Oct 4th, Dallas Ruby Brigade night. It covers Lean Methodology and using DatabaseDotCom and Ruby ...

This was my presentation at the Oct 4th, Dallas Ruby Brigade night. It covers Lean Methodology and using DatabaseDotCom and Ruby
Source Code
https://github.com/raygao/DallasRubyPresentation

Statistics

Views

Total Views
1,922
Views on SlideShare
1,922
Embed Views
0

Actions

Likes
1
Downloads
10
Comments
1

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment
  • Il y a plus 500 milliards membres actives pour le réseau social - Facebook.
  • http://www.are4.us/?p=815
  • http://www.iconspedia.com/icon/database-inactive-hot-3-12.htmlhttp://aux.iconpedia.net/uploads/16675932432049440499.png

Building Social Enterprise with Ruby and Salesforce Presentation Transcript

  • 1. Building Social Enterprise with Ruby and Salesforce
    Dallas Ruby Brigade, Oct 4th, 2011
    Presented by Raymond Gao
  • 2. Growth of Cloud Computing & Social Enterprise
  • 3. Growth of Cloud Computing
  • 4. Cloud Computing will be a $ 241 billion mkt by 2020
  • 5. Market Cap of Top Cloud Computing Companies
  • 6. Social Revolution
    4 hours
    per month
    Web Usage
    Rest of the Web
    2010
    2011
    Sources: Ben Elowitz, Wetpaint / comScore
  • 7. Facebook Members (Growth of Social Networking)
    More than 500 million active users
    over 900 million objects (pages, groups, events and community pages)
    About 70% of Facebook users are outside the United States
    9 Novembre, 2010
    2010 IUT Cloud Computing Seminar
    7
  • 8. Architecture for the Real World
  • 9. User
    Interface
    Application
    Logic
    Data
    Layer
    Classic Application Architecture
    Screens exposed to the end users
    Your business logic
    Your Data Model
  • 10. Idealized Situation
  • 11. How are your opinions?
    What do you like most?
    What do you like least?
    What kinds of difficulties have you had?
    What do you think the real world is like?
  • 12. Small Problem – Easy Fix
  • 13. Just lift the car out of water
  • 14. Initial Disappointment
  • 15. Bring on Heavier Equipment
  • 16. Whoops, That too was a surprise!
  • 17. Guess what’s next?
  • 18. An Example DB Schema
    Source: from Internet
  • 19. Another Example
    Source: from Internet
  • 20. More Examples
    Source: from Internet
  • 21. 1st attempt at reinventing the wheel
  • 22. Reinvent the wheel is tougher than you think
  • 23. Classic Approach Meets Classic Problems
    Too Simplistic
    Linear model
    Inflexible
    Static Input / Output
    Either Quality, Time, or Cost
    Read my blog - http://www.are4.us/?p=815
  • 24. Lean Approach – Smart Learning
  • 25. Data Store is everywhere
    Browsers (Chrome, Firefox, IE, Opera)
    Mobile devices (Iphone, Android, Blackberry, Windows CE, Symbian)
    Adobe Flash Applications
    Desktop Applications
    Game Consoles,
    Everywhere !!!
  • 26. Meshed Architecture (Macro View )
    Community Data Models
  • 27. Growth of No-SQL DBs
  • 28. Some Causes
    SW developers are not natural born DBAs
    Developing a good data scheme is pretty tough
    Convince your partner to use your DB scheme is tougher!
    DB administration could be a full time job
    Backup
    Security
    Profiles
    Etc
  • 29. Mesh Architecture (Micro view)
    Additional Data Sources
    High Perf
    Data Services
    (No-SQL, In-Memory
    Cached Objects)
    Persistent
    Data Store
    (RDBMS)
    Transient Data
  • 30. Benefits of Ruby on SF
    There are lots of incentive to use Ruby
    Tools for building web-apps (ERB, HAML, Markdowns)
    Methodology (BDD – Cucumbe, Rspec, Shoulda)
    Testing (Webrat, Capybara, Unit Testing)
    Ease of Deployment & code version & collaboration (Git)
    Extensive Code libraries – Github & RubyGems
    Many more
  • 31. History of Ruby on Salesforce
    Version 0 – API era
    Version 1 + 2 (REST + SOAP) – Force.com Era
    Version 3 – (Pure REST) Database.com era
  • 32. History of Ruby / Salesforce
  • 33. Salesforce Social Platform
  • 34. Example App – Ruby Social Network Updater
  • 35. The Datbase.ComGEM
    Covers both Sobject & Chatter API
    Full CRUD on DDL side
    Support:
    User-name password
    Security token
    Oauth Flow
  • 36. Basic Steps
    Use the GEMs
    Create a client with Consumer key + secret
    Authenticate (3 options)
    Materialize an Sobject + set Namespace (module name)
    CRUD operation on the object
    Form-building attributes
  • 37. Use the Gem
    AddGEMstoGemfile
    gem 'databasedotcom'
    gem 'databasedotcom-rails’ (optional)
    Run bundleinstall
  • 38. Initialize the client
    # configure client id/secret explicitly # client = Databasedotcom::Client.new :client_id => "xxx", :client_secret => "yyy"
    # configure client id/secret from a YAML file # client = Databasedotcom::Client.new "databasedotcom.yml"
    # configure client id/secret from the environment # client = Databasedotcom::Client.new
  • 39. Authenticate
    # authenticate with a username and password client.authenticate(:username => "wayne@manor.com", :password => "arkham")
    # authenticate with a callback hash from Omniauthclient.authenticate(hash_from_omniauth)
    # authenticate with an externally-acquired OAuth2 access token client.authenticate(:token => "whoa-that-is-long")
  • 40. Materialize a SObject Class
    CRUD operations
    client.materialize("Contact")
    Contact.attributes#=> ["Name", "Company", "Phone"]
    ron= Contact.find("rons_id")
    puts ron["Company"] #=> "The Olde Company, Inc."
    ron["Company"] = "Some New Gig, LLC"
    ron.reload["Company"] #=> "The Olde Company, Inc."
    ron["Company"] = "Some New Gig, LLC"
    ron.save
    ron.reload["Company"]#=> "Some New Gig, LLC"
  • 41. Form-building attributes
    Contact.label_for("Phone”)#=> "Phone Number”
    Contact.picklist_values("Honorific") #=> ["Mr.", "Ms.", "Dr."]
  • 42. Get More Info
    Presentation - http://dreamforce-demo.heroku.com/slides#slide17
    API doc - http://rubydoc.info/gems/databasedotcom/frames
    Join the Google Group ActiveSalesforcehttp://groups.google.com/group/activesalesforce
  • 43. Q & A
  • 44. The End
    Blog: http://raysblog.are4.us
    Twitter: raygao
    Github: raygao
    Email: raygao@verizon.net