SlideShare ist ein Scribd-Unternehmen logo
1 von 55
Top 5 Tips for Building Viral Social Web Applications and Sites Jonathan LeBlanc Developer Evangelist Email: jleblanc@x.com Twitter: @jcleblanc
Programming Social Applications Building Viral Experiences with OpenSocial, OAuth, OpenID, and Distributed Web Frameworks http://shop.oreilly.com/product/0636920014201.do Foundation for socializing applications and websites. Open Source foundation.
Using Open Source Solutions The foundation for “Programming Social Applications” Open source is not the be all end all, it’s simply a solid foundation.
The Core Principals Build for the relevant social & interest graphs Understand your sharing model and integrate early Use the work that other companies have invested in Build for all available outlets Use emerging social technologies
The Core Principals Build for the relevant social & interest graphs Understand your sharing model and integrate early Use the work that other companies have invested in Build for all available outlets Use emerging social technologies
Build for relevant graphs A Poll When do you integrate social outreach channels in your products?
Build for relevant graphs What do social and interest graphs consist of?
Build for relevant graphs Understanding Relationship Models Follower Model Connection Model Group Model
Build for relevant graphs Integration Success and Failure of Zynga ,[object Object]
Second integration of “Mafia Wars” and “FishVille” in late 2010.   Higher install rates, new viral channels and little integration pain.,[object Object]
Build for relevant graphs WebFinger: Origin through the finger protocol finger jleblanc@x.com Login name: jleblanc In real life: Jonathan LeBlanc Home phone:  123-4567 Office: San Jose, CA Last Login: Tue Oct 4 12:41 on ttys000 jleblanc@x.com http://www.jcleblanc.com
Build for relevant graphs WebFinger: How it Works
Build for relevant graphs WebFinger: How it Works
Build for relevant graphs WebFinger: How it Works
Build for relevant graphs WebFinger: Performing WebFinger Discovery curl http://gmail.com/.well-known/host-meta  <XRD xmlns='http://docs.oasis-open.org/ns/xri/xrd-1.0'  xmlns:hm='http://host-meta.net/xrd/1.0'>    <hm:Hostxmlns='http://host-meta.net/xrd/1.0'> gmail.com</hm:Host>    <Link rel='lrdd' template=       'http://www.google.com/s2/webfinger/?q={uri}'>       <Title>Resource Descriptor</Title>    </Link> </XRD>
Build for relevant graphs WebFinger: Performing WebFinger Discovery curl http://www.google.com/s2/webfinger/?q=nakedtechnologist@gmail.com The User Profile: http://www.google.com/profiles/nakedtechnologist The portable contacts link: http://www-opensocial.googleusercontent.com/api/people/118167121283215553793/ The public Google Buzz feed:  https://www.googleapis.com/buzz/v1/activities/118167121283215553793/@public
The Core Principals Build for the relevant social & interest graphs Understand your sharing model and integrate early Use the work that other companies have invested in Build for all available outlets Use emerging social technologies
Understanding your sharing model The real life versus online social graph
Understanding your sharing model Sharing Models The Opt-in Model The Opt-out Model
Understanding your sharing model Case study: The oversharing application
Understanding your sharing model Example Technology: PubSubHubbub http://code.google.com/p/pubsubhubbub/
Understanding your sharing model PubSubHubbub: How it Works
Understanding your sharing model PubSubHubbub: How it Works
Understanding your sharing model PubSubHubbub: How it Works
Understanding your sharing model PubSubHubbub: How it Works
Understanding your sharing model PubSubHubbub: How it Works
Understanding your sharing model Example Technology: The Salmon Protocol www.salmon-protocol.org
Understanding your sharing model The Salmon Protocol: How it Works
Understanding your sharing model The Salmon Protocol: How it Works
Understanding your sharing model The Salmon Protocol: How it Works
Understanding your sharing model The Salmon Protocol: Things to Consider ,[object Object]
How does the publisher prevent spam or abuse?
How does the publisher ensure the quality of the updates?,[object Object]
 LRDD (Link-based Resource Descriptor)Provider verifies signature via public keys obtained during discovery.
The Core Principals Build for the relevant social & interest graphs Understand your sharing model and integrate early Use the work that other companies have invested in Build for all available outlets Use emerging social technologies
Use Existing Technology Don’t reinvent the wheel!
Use Existing Technology Partner Strategies: Failure to Integrate Company “ABC” ,[object Object]
They created their own OAuth implementation since we did not have an appropriate SDK.
Integration failed near completion of the code.,[object Object]
Use Existing Technology Open Graph Protocol: How Web Semantics Work
Use Existing Technology Open Graph Protocol: How Web Semantics Work Geo <span class="geo">    <span class="latitude">52.48</span>,    <span class="longitude">-1.89</span> </span> vCard <div class="vcard">       <div class="fn">Joe Doe</div>       <div class="org">The Example Company</div>       <div class="tel">604-555-1234</div>       <a class="url" href="http://site.com/">http://site.com/</a>  </div>
Use Existing Technology Open Graph Protocol: Vision of the Semantic Web
Use Existing Technology Open Graph Protocol: Reality of the Semantic Web
Use Existing Technology Open Graph Protocol: What Changed
Use Existing Technology Open Graph Protocol: The Metadata Format <html xmlns:og="http://ogp.me/ns#"> <head> <title>Restaurant at Wente Vineyards – Livermore</title> <meta property="og:url"               content="http://www.yelp.com/biz/gATFcG9HTaXJpg"> <meta property="og:type" content="restaurant">  <meta property="og:title"               content="The Restaurant at Wente Vineyards">  <meta property="og:image"               content="http://media2.px.yelpcdn.com/iVSnIs">  ... </head> ... </html>
Use Existing Technology Open Graph Protocol: What is Defined? ,[object Object]
 Location
 Contact Information
 Video Data
 Audio Data
 Objects
 Activities
 Businesses
 Groups
 Organizations

Weitere ähnliche Inhalte

Ähnlich wie Top 5 Tips for Building Viral Social Web Applications and Sites

BarCamp KL H20 Open Social Hackathon
BarCamp KL H20 Open Social HackathonBarCamp KL H20 Open Social Hackathon
BarCamp KL H20 Open Social Hackathon
marvin337
 

Ähnlich wie Top 5 Tips for Building Viral Social Web Applications and Sites (20)

Goodle Developer Days Munich 2008 - Open Social Update
Goodle Developer Days Munich 2008 - Open Social UpdateGoodle Developer Days Munich 2008 - Open Social Update
Goodle Developer Days Munich 2008 - Open Social Update
 
BarCamp KL H20 Open Social Hackathon
BarCamp KL H20 Open Social HackathonBarCamp KL H20 Open Social Hackathon
BarCamp KL H20 Open Social Hackathon
 
RockYou at Girls in Tech Developer Forum
RockYou at Girls in Tech Developer ForumRockYou at Girls in Tech Developer Forum
RockYou at Girls in Tech Developer Forum
 
Goodle Developer Days London 2008 - Open Social Update
Goodle Developer Days London 2008 - Open Social UpdateGoodle Developer Days London 2008 - Open Social Update
Goodle Developer Days London 2008 - Open Social Update
 
Oct. 4, 2011 webcast top 5 tips for building viral social web applications an...
Oct. 4, 2011 webcast top 5 tips for building viral social web applications an...Oct. 4, 2011 webcast top 5 tips for building viral social web applications an...
Oct. 4, 2011 webcast top 5 tips for building viral social web applications an...
 
Open Social
Open SocialOpen Social
Open Social
 
Succeeding with FOSS!
Succeeding with FOSS!Succeeding with FOSS!
Succeeding with FOSS!
 
Citrix Labs Rapid Prototyping Workshop
Citrix Labs Rapid Prototyping WorkshopCitrix Labs Rapid Prototyping Workshop
Citrix Labs Rapid Prototyping Workshop
 
Building a social network website from scratch
Building a social network website from scratchBuilding a social network website from scratch
Building a social network website from scratch
 
Hacktoberfest 23.pptx
Hacktoberfest 23.pptxHacktoberfest 23.pptx
Hacktoberfest 23.pptx
 
Rise of the Open Source Program Office for LinuxCon 2016
Rise of the Open Source Program Office for LinuxCon 2016Rise of the Open Source Program Office for LinuxCon 2016
Rise of the Open Source Program Office for LinuxCon 2016
 
OpenID vs Facebook Connect vs FriendConnect
OpenID vs Facebook Connect vs FriendConnectOpenID vs Facebook Connect vs FriendConnect
OpenID vs Facebook Connect vs FriendConnect
 
Fundamentals of Open Source Development
Fundamentals of Open Source DevelopmentFundamentals of Open Source Development
Fundamentals of Open Source Development
 
Open source and then some: An Introduction
Open source and then some: An IntroductionOpen source and then some: An Introduction
Open source and then some: An Introduction
 
Software Development Analytics Intro. Twitter OSS workshop
Software Development Analytics Intro. Twitter OSS workshopSoftware Development Analytics Intro. Twitter OSS workshop
Software Development Analytics Intro. Twitter OSS workshop
 
Futuropolis 2058 Singapore - OpenSocial, a standard for the social web
Futuropolis 2058 Singapore - OpenSocial, a standard for the social webFuturopolis 2058 Singapore - OpenSocial, a standard for the social web
Futuropolis 2058 Singapore - OpenSocial, a standard for the social web
 
Shiny Agency's Facebook Development Guidelines
Shiny Agency's Facebook Development GuidelinesShiny Agency's Facebook Development Guidelines
Shiny Agency's Facebook Development Guidelines
 
Stronger than Chuck Norris: SharePoint in clouds, on earth, in subway and in ...
Stronger than Chuck Norris: SharePoint in clouds, on earth, in subway and in ...Stronger than Chuck Norris: SharePoint in clouds, on earth, in subway and in ...
Stronger than Chuck Norris: SharePoint in clouds, on earth, in subway and in ...
 
GSP East 2008: Open Social: Open For Business
GSP East 2008: Open Social: Open For BusinessGSP East 2008: Open Social: Open For Business
GSP East 2008: Open Social: Open For Business
 
resume4
resume4resume4
resume4
 

Mehr von Jonathan LeBlanc

Mehr von Jonathan LeBlanc (20)

JavaScript App Security: Auth and Identity on the Client
JavaScript App Security: Auth and Identity on the ClientJavaScript App Security: Auth and Identity on the Client
JavaScript App Security: Auth and Identity on the Client
 
Improving Developer Onboarding Through Intelligent Data Insights
Improving Developer Onboarding Through Intelligent Data InsightsImproving Developer Onboarding Through Intelligent Data Insights
Improving Developer Onboarding Through Intelligent Data Insights
 
Better Data with Machine Learning and Serverless
Better Data with Machine Learning and ServerlessBetter Data with Machine Learning and Serverless
Better Data with Machine Learning and Serverless
 
Best Practices for Application Development with Box
Best Practices for Application Development with BoxBest Practices for Application Development with Box
Best Practices for Application Development with Box
 
Box Platform Overview
Box Platform OverviewBox Platform Overview
Box Platform Overview
 
Box Platform Developer Workshop
Box Platform Developer WorkshopBox Platform Developer Workshop
Box Platform Developer Workshop
 
Modern Cloud Data Security Practices
Modern Cloud Data Security PracticesModern Cloud Data Security Practices
Modern Cloud Data Security Practices
 
Box Authentication Types
Box Authentication TypesBox Authentication Types
Box Authentication Types
 
Understanding Box UI Elements
Understanding Box UI ElementsUnderstanding Box UI Elements
Understanding Box UI Elements
 
Understanding Box applications, tokens, and scoping
Understanding Box applications, tokens, and scopingUnderstanding Box applications, tokens, and scoping
Understanding Box applications, tokens, and scoping
 
The Future of Online Money: Creating Secure Payments Globally
The Future of Online Money: Creating Secure Payments GloballyThe Future of Online Money: Creating Secure Payments Globally
The Future of Online Money: Creating Secure Payments Globally
 
Modern API Security with JSON Web Tokens
Modern API Security with JSON Web TokensModern API Security with JSON Web Tokens
Modern API Security with JSON Web Tokens
 
Creating an In-Aisle Purchasing System from Scratch
Creating an In-Aisle Purchasing System from ScratchCreating an In-Aisle Purchasing System from Scratch
Creating an In-Aisle Purchasing System from Scratch
 
Secure Payments Over Mixed Communication Media
Secure Payments Over Mixed Communication MediaSecure Payments Over Mixed Communication Media
Secure Payments Over Mixed Communication Media
 
Protecting the Future of Mobile Payments
Protecting the Future of Mobile PaymentsProtecting the Future of Mobile Payments
Protecting the Future of Mobile Payments
 
Node.js Authentication and Data Security
Node.js Authentication and Data SecurityNode.js Authentication and Data Security
Node.js Authentication and Data Security
 
PHP Identity and Data Security
PHP Identity and Data SecurityPHP Identity and Data Security
PHP Identity and Data Security
 
Secure Payments Over Mixed Communication Media
Secure Payments Over Mixed Communication MediaSecure Payments Over Mixed Communication Media
Secure Payments Over Mixed Communication Media
 
Protecting the Future of Mobile Payments
Protecting the Future of Mobile PaymentsProtecting the Future of Mobile Payments
Protecting the Future of Mobile Payments
 
Future of Identity, Data, and Wearable Security
Future of Identity, Data, and Wearable SecurityFuture of Identity, Data, and Wearable Security
Future of Identity, Data, and Wearable Security
 

Kürzlich hochgeladen

Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 

Kürzlich hochgeladen (20)

DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdf
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
Cyberprint. Dark Pink Apt Group [EN].pdf
Cyberprint. Dark Pink Apt Group [EN].pdfCyberprint. Dark Pink Apt Group [EN].pdf
Cyberprint. Dark Pink Apt Group [EN].pdf
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 

Top 5 Tips for Building Viral Social Web Applications and Sites

  • 1. Top 5 Tips for Building Viral Social Web Applications and Sites Jonathan LeBlanc Developer Evangelist Email: jleblanc@x.com Twitter: @jcleblanc
  • 2. Programming Social Applications Building Viral Experiences with OpenSocial, OAuth, OpenID, and Distributed Web Frameworks http://shop.oreilly.com/product/0636920014201.do Foundation for socializing applications and websites. Open Source foundation.
  • 3. Using Open Source Solutions The foundation for “Programming Social Applications” Open source is not the be all end all, it’s simply a solid foundation.
  • 4. The Core Principals Build for the relevant social & interest graphs Understand your sharing model and integrate early Use the work that other companies have invested in Build for all available outlets Use emerging social technologies
  • 5. The Core Principals Build for the relevant social & interest graphs Understand your sharing model and integrate early Use the work that other companies have invested in Build for all available outlets Use emerging social technologies
  • 6. Build for relevant graphs A Poll When do you integrate social outreach channels in your products?
  • 7. Build for relevant graphs What do social and interest graphs consist of?
  • 8. Build for relevant graphs Understanding Relationship Models Follower Model Connection Model Group Model
  • 9.
  • 10.
  • 11. Build for relevant graphs WebFinger: Origin through the finger protocol finger jleblanc@x.com Login name: jleblanc In real life: Jonathan LeBlanc Home phone: 123-4567 Office: San Jose, CA Last Login: Tue Oct 4 12:41 on ttys000 jleblanc@x.com http://www.jcleblanc.com
  • 12. Build for relevant graphs WebFinger: How it Works
  • 13. Build for relevant graphs WebFinger: How it Works
  • 14. Build for relevant graphs WebFinger: How it Works
  • 15. Build for relevant graphs WebFinger: Performing WebFinger Discovery curl http://gmail.com/.well-known/host-meta <XRD xmlns='http://docs.oasis-open.org/ns/xri/xrd-1.0' xmlns:hm='http://host-meta.net/xrd/1.0'> <hm:Hostxmlns='http://host-meta.net/xrd/1.0'> gmail.com</hm:Host> <Link rel='lrdd' template= 'http://www.google.com/s2/webfinger/?q={uri}'> <Title>Resource Descriptor</Title> </Link> </XRD>
  • 16. Build for relevant graphs WebFinger: Performing WebFinger Discovery curl http://www.google.com/s2/webfinger/?q=nakedtechnologist@gmail.com The User Profile: http://www.google.com/profiles/nakedtechnologist The portable contacts link: http://www-opensocial.googleusercontent.com/api/people/118167121283215553793/ The public Google Buzz feed: https://www.googleapis.com/buzz/v1/activities/118167121283215553793/@public
  • 17. The Core Principals Build for the relevant social & interest graphs Understand your sharing model and integrate early Use the work that other companies have invested in Build for all available outlets Use emerging social technologies
  • 18. Understanding your sharing model The real life versus online social graph
  • 19. Understanding your sharing model Sharing Models The Opt-in Model The Opt-out Model
  • 20. Understanding your sharing model Case study: The oversharing application
  • 21. Understanding your sharing model Example Technology: PubSubHubbub http://code.google.com/p/pubsubhubbub/
  • 22. Understanding your sharing model PubSubHubbub: How it Works
  • 23. Understanding your sharing model PubSubHubbub: How it Works
  • 24. Understanding your sharing model PubSubHubbub: How it Works
  • 25. Understanding your sharing model PubSubHubbub: How it Works
  • 26. Understanding your sharing model PubSubHubbub: How it Works
  • 27. Understanding your sharing model Example Technology: The Salmon Protocol www.salmon-protocol.org
  • 28. Understanding your sharing model The Salmon Protocol: How it Works
  • 29. Understanding your sharing model The Salmon Protocol: How it Works
  • 30. Understanding your sharing model The Salmon Protocol: How it Works
  • 31.
  • 32. How does the publisher prevent spam or abuse?
  • 33.
  • 34. LRDD (Link-based Resource Descriptor)Provider verifies signature via public keys obtained during discovery.
  • 35. The Core Principals Build for the relevant social & interest graphs Understand your sharing model and integrate early Use the work that other companies have invested in Build for all available outlets Use emerging social technologies
  • 36. Use Existing Technology Don’t reinvent the wheel!
  • 37.
  • 38. They created their own OAuth implementation since we did not have an appropriate SDK.
  • 39.
  • 40. Use Existing Technology Open Graph Protocol: How Web Semantics Work
  • 41. Use Existing Technology Open Graph Protocol: How Web Semantics Work Geo <span class="geo"> <span class="latitude">52.48</span>, <span class="longitude">-1.89</span> </span> vCard <div class="vcard"> <div class="fn">Joe Doe</div> <div class="org">The Example Company</div> <div class="tel">604-555-1234</div> <a class="url" href="http://site.com/">http://site.com/</a> </div>
  • 42. Use Existing Technology Open Graph Protocol: Vision of the Semantic Web
  • 43. Use Existing Technology Open Graph Protocol: Reality of the Semantic Web
  • 44. Use Existing Technology Open Graph Protocol: What Changed
  • 45. Use Existing Technology Open Graph Protocol: The Metadata Format <html xmlns:og="http://ogp.me/ns#"> <head> <title>Restaurant at Wente Vineyards – Livermore</title> <meta property="og:url" content="http://www.yelp.com/biz/gATFcG9HTaXJpg"> <meta property="og:type" content="restaurant"> <meta property="og:title" content="The Restaurant at Wente Vineyards"> <meta property="og:image" content="http://media2.px.yelpcdn.com/iVSnIs"> ... </head> ... </html>
  • 46.
  • 58. Products and Entertainment
  • 59.
  • 60.
  • 61.
  • 62. Build for all available outletsOpenSocial View Foundations Profile Full Home
  • 63. Build for all available outletsExample Technology: Activity Streams Defines a social activity Platform agnostic Integrated into OpenSocial
  • 64. The Core Principals Build for the relevant social & interest graphs Understand your sharing model and integrate early Use the work that other companies have invested in Build for all available outlets Use emerging social technologies
  • 65.
  • 66.
  • 67. Use emerging social technologies A Poll Do you or your companies allot time for emerging technologies?
  • 68. Use emerging social technologies Authorization Systems – OAuth 1 Authorize applications and sites to do something on your behalf. Signing done on side of integrator. Lengthy integration process.
  • 69. Use emerging social technologies Authorization Systems – OAuth2 Significantly improved integration time. Communication over HTTPS
  • 70. ? Questions Jonathan LeBlanc Twitter: @jcleblanc E-Mail: jleblanc@x.com http://www.slideshare.net/jcleblanc