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

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Introducing the official SlideShare app

Stunning, full-screen experience for iPhone and Android

Text the download link to your phone

Standard text messaging rates apply

Building Social Enterprise with Ruby and Salesforce

1,728
views

Published on

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

Published in: Technology, Business

1 Comment
1 Like
Statistics
Notes
No Downloads
Views
Total Views
1,728
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
11
Comments
1
Likes
1
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide
  • 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
  • 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