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
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
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?
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
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 !!!
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
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"
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