SlideShare a Scribd company logo
1 of 44
Building Social Enterprise with Ruby and Salesforce Dallas Ruby Brigade, Oct 4th, 2011 Presented by Raymond Gao
Growth of Cloud Computing & Social Enterprise
Growth of Cloud Computing
Cloud Computing will be a  $ 241 billion mkt by 2020
Market Cap of Top Cloud Computing Companies
Social Revolution 4 hours per month Web Usage Rest of the Web 2010 2011 Sources:  Ben Elowitz, Wetpaint / comScore
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
Architecture for the Real World
User  Interface Application  Logic Data  Layer Classic Application Architecture Screens exposed to the end users Your business logic Your Data Model
Idealized Situation
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?
Small Problem – Easy Fix
Just lift the car out of water
Initial Disappointment
Bring on Heavier Equipment
Whoops, That too was a surprise!
Guess what’s next?
An Example DB Schema Source: from Internet
Another Example Source: from Internet
More Examples Source: from Internet
1st attempt at reinventing the wheel
Reinvent the wheel is tougher than you think
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
Lean Approach – Smart Learning
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 !!!
Meshed Architecture (Macro View ) Community Data Models
Growth of No-SQL DBs
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
Mesh Architecture (Micro view) Additional Data Sources High Perf Data Services (No-SQL, In-Memory Cached Objects) Persistent Data Store (RDBMS) Transient Data
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
History of Ruby on Salesforce Version 0 – API era Version 1 + 2 (REST + SOAP) – Force.com Era Version 3 – (Pure REST) Database.com era
History of Ruby / Salesforce
Salesforce Social Platform
Example App – Ruby Social Network Updater
The Datbase.ComGEM Covers both Sobject & Chatter API Full CRUD on DDL side Support: User-name password Security token Oauth Flow
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
Use the Gem AddGEMstoGemfile gem 'databasedotcom' gem 'databasedotcom-rails’ (optional) Run bundleinstall
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
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")
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"
Form-building attributes Contact.label_for("Phone”)#=> "Phone Number” Contact.picklist_values("Honorific") #=> ["Mr.", "Ms.", "Dr."]
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
 Q & A
The End Blog: http://raysblog.are4.us Twitter: raygao Github: raygao Email: raygao@verizon.net

More Related Content

Similar to Building Social Enterprise with Ruby and Salesforce

Daniel Egan Msdn Tech Days Oc
Daniel Egan Msdn Tech Days OcDaniel Egan Msdn Tech Days Oc
Daniel Egan Msdn Tech Days OcDaniel Egan
 
Amazon Web Services for the .NET Developer
Amazon Web Services for the .NET DeveloperAmazon Web Services for the .NET Developer
Amazon Web Services for the .NET DeveloperRob Gillen
 
ArcReady - Architecting For The Cloud
ArcReady - Architecting For The CloudArcReady - Architecting For The Cloud
ArcReady - Architecting For The CloudMicrosoft ArcReady
 
Improve your Tech Quotient
Improve your Tech QuotientImprove your Tech Quotient
Improve your Tech QuotientTarence DSouza
 
HTML5 and the dawn of rich mobile web applications pt 1
HTML5 and the dawn of rich mobile web applications pt 1HTML5 and the dawn of rich mobile web applications pt 1
HTML5 and the dawn of rich mobile web applications pt 1James Pearce
 
Azure Introduction
Azure IntroductionAzure Introduction
Azure Introductionbrunoterkaly
 
Microsoft Cloud Computing - Windows Azure Platform
Microsoft Cloud Computing - Windows Azure PlatformMicrosoft Cloud Computing - Windows Azure Platform
Microsoft Cloud Computing - Windows Azure PlatformDavid Chou
 
Cloud Computing
Cloud ComputingCloud Computing
Cloud Computingwebscale
 
Arc Ready Cloud Computing
Arc Ready Cloud ComputingArc Ready Cloud Computing
Arc Ready Cloud ComputingPhilip Wheat
 
Building Cloud-Native Applications with Microsoft Windows Azure
Building Cloud-Native Applications with Microsoft Windows AzureBuilding Cloud-Native Applications with Microsoft Windows Azure
Building Cloud-Native Applications with Microsoft Windows AzureBill Wilder
 
You Too Can Be a Radio Host Or How We Scaled a .NET Startup And Had Fun Doing It
You Too Can Be a Radio Host Or How We Scaled a .NET Startup And Had Fun Doing ItYou Too Can Be a Radio Host Or How We Scaled a .NET Startup And Had Fun Doing It
You Too Can Be a Radio Host Or How We Scaled a .NET Startup And Had Fun Doing ItAleksandr Yampolskiy
 
Chris O'Brien - Modern SharePoint development: techniques for moving code off...
Chris O'Brien - Modern SharePoint development: techniques for moving code off...Chris O'Brien - Modern SharePoint development: techniques for moving code off...
Chris O'Brien - Modern SharePoint development: techniques for moving code off...Chris O'Brien
 
XCS110_All_Slides.pdf
XCS110_All_Slides.pdfXCS110_All_Slides.pdf
XCS110_All_Slides.pdfssuser01066a
 
Microsoft Partner Roadshow - To the Cloud
Microsoft Partner Roadshow  - To the CloudMicrosoft Partner Roadshow  - To the Cloud
Microsoft Partner Roadshow - To the CloudNigel Watson
 
Introduction to Azure DocumentDB
Introduction to Azure DocumentDBIntroduction to Azure DocumentDB
Introduction to Azure DocumentDBDenny Lee
 
Privacy Issues of Cloud Computing in the Federal Sector
Privacy Issues of Cloud Computing in the Federal SectorPrivacy Issues of Cloud Computing in the Federal Sector
Privacy Issues of Cloud Computing in the Federal SectorLew Oleinick
 
Azure presentation nnug dec 2010
Azure presentation nnug  dec 2010Azure presentation nnug  dec 2010
Azure presentation nnug dec 2010Ethos Technologies
 
Jeremy cabral search marketing summit - scraping data-driven content (1)
Jeremy cabral   search marketing summit - scraping data-driven content (1)Jeremy cabral   search marketing summit - scraping data-driven content (1)
Jeremy cabral search marketing summit - scraping data-driven content (1)Jeremy Cabral
 
Googleappengineintro 110410190620-phpapp01
Googleappengineintro 110410190620-phpapp01Googleappengineintro 110410190620-phpapp01
Googleappengineintro 110410190620-phpapp01Tony Frame
 

Similar to Building Social Enterprise with Ruby and Salesforce (20)

Daniel Egan Msdn Tech Days Oc
Daniel Egan Msdn Tech Days OcDaniel Egan Msdn Tech Days Oc
Daniel Egan Msdn Tech Days Oc
 
Amazon Web Services for the .NET Developer
Amazon Web Services for the .NET DeveloperAmazon Web Services for the .NET Developer
Amazon Web Services for the .NET Developer
 
ArcReady - Architecting For The Cloud
ArcReady - Architecting For The CloudArcReady - Architecting For The Cloud
ArcReady - Architecting For The Cloud
 
Improve your Tech Quotient
Improve your Tech QuotientImprove your Tech Quotient
Improve your Tech Quotient
 
HTML5 and the dawn of rich mobile web applications pt 1
HTML5 and the dawn of rich mobile web applications pt 1HTML5 and the dawn of rich mobile web applications pt 1
HTML5 and the dawn of rich mobile web applications pt 1
 
Azure Introduction
Azure IntroductionAzure Introduction
Azure Introduction
 
Microsoft Cloud Computing - Windows Azure Platform
Microsoft Cloud Computing - Windows Azure PlatformMicrosoft Cloud Computing - Windows Azure Platform
Microsoft Cloud Computing - Windows Azure Platform
 
Cloud Computing
Cloud ComputingCloud Computing
Cloud Computing
 
Arc Ready Cloud Computing
Arc Ready Cloud ComputingArc Ready Cloud Computing
Arc Ready Cloud Computing
 
Building Cloud-Native Applications with Microsoft Windows Azure
Building Cloud-Native Applications with Microsoft Windows AzureBuilding Cloud-Native Applications with Microsoft Windows Azure
Building Cloud-Native Applications with Microsoft Windows Azure
 
You Too Can Be a Radio Host Or How We Scaled a .NET Startup And Had Fun Doing It
You Too Can Be a Radio Host Or How We Scaled a .NET Startup And Had Fun Doing ItYou Too Can Be a Radio Host Or How We Scaled a .NET Startup And Had Fun Doing It
You Too Can Be a Radio Host Or How We Scaled a .NET Startup And Had Fun Doing It
 
Chris O'Brien - Modern SharePoint development: techniques for moving code off...
Chris O'Brien - Modern SharePoint development: techniques for moving code off...Chris O'Brien - Modern SharePoint development: techniques for moving code off...
Chris O'Brien - Modern SharePoint development: techniques for moving code off...
 
XCS110_All_Slides.pdf
XCS110_All_Slides.pdfXCS110_All_Slides.pdf
XCS110_All_Slides.pdf
 
Microsoft Partner Roadshow - To the Cloud
Microsoft Partner Roadshow  - To the CloudMicrosoft Partner Roadshow  - To the Cloud
Microsoft Partner Roadshow - To the Cloud
 
Introduction to Azure DocumentDB
Introduction to Azure DocumentDBIntroduction to Azure DocumentDB
Introduction to Azure DocumentDB
 
Data vault what's Next: Part 2
Data vault what's Next: Part 2Data vault what's Next: Part 2
Data vault what's Next: Part 2
 
Privacy Issues of Cloud Computing in the Federal Sector
Privacy Issues of Cloud Computing in the Federal SectorPrivacy Issues of Cloud Computing in the Federal Sector
Privacy Issues of Cloud Computing in the Federal Sector
 
Azure presentation nnug dec 2010
Azure presentation nnug  dec 2010Azure presentation nnug  dec 2010
Azure presentation nnug dec 2010
 
Jeremy cabral search marketing summit - scraping data-driven content (1)
Jeremy cabral   search marketing summit - scraping data-driven content (1)Jeremy cabral   search marketing summit - scraping data-driven content (1)
Jeremy cabral search marketing summit - scraping data-driven content (1)
 
Googleappengineintro 110410190620-phpapp01
Googleappengineintro 110410190620-phpapp01Googleappengineintro 110410190620-phpapp01
Googleappengineintro 110410190620-phpapp01
 

More from Raymond Gao

System modeling and design
System modeling and designSystem modeling and design
System modeling and designRaymond Gao
 
2020 Enterprise IT Outlook
2020 Enterprise IT Outlook2020 Enterprise IT Outlook
2020 Enterprise IT OutlookRaymond Gao
 
Student Presentation - Social Media & E-Commerce (Groupon) / BCO-216
Student Presentation - Social Media & E-Commerce (Groupon) / BCO-216Student Presentation - Social Media & E-Commerce (Groupon) / BCO-216
Student Presentation - Social Media & E-Commerce (Groupon) / BCO-216Raymond Gao
 
Student Presentation on Cloud Computing (MCO-205)
Student Presentation on Cloud Computing (MCO-205)Student Presentation on Cloud Computing (MCO-205)
Student Presentation on Cloud Computing (MCO-205)Raymond Gao
 
10 - Project Management
10 - Project Management10 - Project Management
10 - Project ManagementRaymond Gao
 
7 - Enterprise IT in Action
7 - Enterprise IT in Action7 - Enterprise IT in Action
7 - Enterprise IT in ActionRaymond Gao
 
5 - Infrastructure and Cloud Computing
5 - Infrastructure and Cloud Computing5 - Infrastructure and Cloud Computing
5 - Infrastructure and Cloud ComputingRaymond Gao
 
4 - Mobiility & Impacts
4 - Mobiility & Impacts4 - Mobiility & Impacts
4 - Mobiility & ImpactsRaymond Gao
 
3 - Social Media and Enterprise
3 - Social Media and Enterprise3 - Social Media and Enterprise
3 - Social Media and EnterpriseRaymond Gao
 
2 - Value Chain & Porter's 5 Forces
2 - Value Chain & Porter's 5 Forces2 - Value Chain & Porter's 5 Forces
2 - Value Chain & Porter's 5 ForcesRaymond Gao
 
IUT presentation - English
IUT presentation - EnglishIUT presentation - English
IUT presentation - EnglishRaymond Gao
 
2nd iut presentation - French
2nd iut presentation - French2nd iut presentation - French
2nd iut presentation - FrenchRaymond Gao
 
5 facets of cloud computing - Presentation to AGBC
5 facets of cloud computing - Presentation to AGBC5 facets of cloud computing - Presentation to AGBC
5 facets of cloud computing - Presentation to AGBCRaymond Gao
 
Salesforce & SAP Integration
Salesforce & SAP IntegrationSalesforce & SAP Integration
Salesforce & SAP IntegrationRaymond Gao
 
Lean Start & Cloud Computing Methodology in French
Lean Start & Cloud Computing Methodology in FrenchLean Start & Cloud Computing Methodology in French
Lean Start & Cloud Computing Methodology in FrenchRaymond Gao
 
What is CloudSpokes?
What is CloudSpokes?What is CloudSpokes?
What is CloudSpokes?Raymond Gao
 

More from Raymond Gao (19)

System modeling and design
System modeling and designSystem modeling and design
System modeling and design
 
2020 Enterprise IT Outlook
2020 Enterprise IT Outlook2020 Enterprise IT Outlook
2020 Enterprise IT Outlook
 
Student Presentation - Social Media & E-Commerce (Groupon) / BCO-216
Student Presentation - Social Media & E-Commerce (Groupon) / BCO-216Student Presentation - Social Media & E-Commerce (Groupon) / BCO-216
Student Presentation - Social Media & E-Commerce (Groupon) / BCO-216
 
Student Presentation on Cloud Computing (MCO-205)
Student Presentation on Cloud Computing (MCO-205)Student Presentation on Cloud Computing (MCO-205)
Student Presentation on Cloud Computing (MCO-205)
 
10 - Project Management
10 - Project Management10 - Project Management
10 - Project Management
 
9 - Security
9 - Security9 - Security
9 - Security
 
8 E-Commerce
8 E-Commerce8 E-Commerce
8 E-Commerce
 
7 - Enterprise IT in Action
7 - Enterprise IT in Action7 - Enterprise IT in Action
7 - Enterprise IT in Action
 
5 - Infrastructure and Cloud Computing
5 - Infrastructure and Cloud Computing5 - Infrastructure and Cloud Computing
5 - Infrastructure and Cloud Computing
 
4 - Mobiility & Impacts
4 - Mobiility & Impacts4 - Mobiility & Impacts
4 - Mobiility & Impacts
 
3 - Social Media and Enterprise
3 - Social Media and Enterprise3 - Social Media and Enterprise
3 - Social Media and Enterprise
 
2 - Value Chain & Porter's 5 Forces
2 - Value Chain & Porter's 5 Forces2 - Value Chain & Porter's 5 Forces
2 - Value Chain & Porter's 5 Forces
 
1-Intro to MIS
1-Intro to MIS1-Intro to MIS
1-Intro to MIS
 
IUT presentation - English
IUT presentation - EnglishIUT presentation - English
IUT presentation - English
 
2nd iut presentation - French
2nd iut presentation - French2nd iut presentation - French
2nd iut presentation - French
 
5 facets of cloud computing - Presentation to AGBC
5 facets of cloud computing - Presentation to AGBC5 facets of cloud computing - Presentation to AGBC
5 facets of cloud computing - Presentation to AGBC
 
Salesforce & SAP Integration
Salesforce & SAP IntegrationSalesforce & SAP Integration
Salesforce & SAP Integration
 
Lean Start & Cloud Computing Methodology in French
Lean Start & Cloud Computing Methodology in FrenchLean Start & Cloud Computing Methodology in French
Lean Start & Cloud Computing Methodology in French
 
What is CloudSpokes?
What is CloudSpokes?What is CloudSpokes?
What is CloudSpokes?
 

Recently uploaded

From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 

Recently uploaded (20)

From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 

Building Social Enterprise with Ruby and Salesforce

  • 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
  • 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
  • 15. Bring on Heavier Equipment
  • 16. Whoops, That too was a surprise!
  • 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
  • 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
  • 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

Editor's Notes

  1. Il y a plus 500 milliards membres actives pour le réseau social - Facebook.
  2. http://www.are4.us/?p=815
  3. http://www.iconspedia.com/icon/database-inactive-hot-3-12.htmlhttp://aux.iconpedia.net/uploads/16675932432049440499.png