SlideShare uma empresa Scribd logo
1 de 12
Where I’ve Been™ Redefining the social travel experience. FindLocal. TravelGlobally. ShareEverything.
WIB Platform
Auth Layer WIB Platform Network Abstraction Layer WIB Auth Layer AMF Facebook Bebo Site API Myspace Via AJAX HI5 Friendster API (oAuth) whereivebeen.com Partners WIB ImgSrv
Network Abstraction
Template Engine WIB Stencil  Extends Includes FeedItem Component Notification Email Text FBML HTML Qotd Edit Profile
Stencil Preview
i18n Internationalization function t($string) <div id="invite-friends-header-prompt"> 	<?= t(‘Where have your friends been?’) ?>  	<span><?= t(‘Invite your friends. ’) ?></span> </div> Our ‘t’ function wraps its output in <fb:int> tags for fbml
i18n Each Page Request Does this string NOT exist in the strings table in our db 	add it to the strings table in our db If user wants English,  	output string Else 	md5 (string and language code) to make a key 	if the cache holds a string with this key 		output from cache 	else does our database hold a string with this key 		put string in cache		 		output from database 	else default:  		//no translation yet 		output original string function t($string) <div id="invite-friends-header-prompt"> 	<?= t(‘Where have your friends been?’) ?>  	<span><?= t(‘Invite your friends. ’) ?></span> </div>
i18n Daily Cron function t($string) <div id="invite-friends-header-prompt"> 	<?= t(‘Where have your friends been?’) ?>  	<span><?= t(‘Invite your friends. ’) ?></span> </div> For all strings not pushed to Facebook yet 	Use FQL to add strings to Facebook db Get all strings from Facebook via FQL,  	for each string we get from Facebook	 	md5 (english string and language code) to make a key 	write the translation and key to our translations db
Dynamic ImgSrv Show me an image User requests image ,[object Object]
dynimg.whereivebeen.comFacebook Facebook EC2 Machine running pound and MySql WIB API Network Abstraction Layer img1 img2 img3 img4 img5 API (oAuth) WIB Auth Layer S3 Image store Over 1MM Bin Cache 2 hours WIB Platform
Discover Where I’ve Been   Fresh New Design   Modular site structure   Local search options   Scalable Platform   Built from the ground up 728 x 90

Mais conteúdo relacionado

Destaque

Plum Deluxe Press Kit / Media Kit
Plum Deluxe Press Kit / Media KitPlum Deluxe Press Kit / Media Kit
Plum Deluxe Press Kit / Media KitAndy Hayes
 
Website Advice that Works - Make More Sales
Website Advice that Works - Make More SalesWebsite Advice that Works - Make More Sales
Website Advice that Works - Make More SalesAndy Hayes
 
Nicholas Marnitz 4 Life Games
Nicholas Marnitz 4 Life GamesNicholas Marnitz 4 Life Games
Nicholas Marnitz 4 Life GamesNicholas Marnitz
 
Inference and Observation Scienetific Method And Lab Safety
Inference and Observation Scienetific Method And Lab SafetyInference and Observation Scienetific Method And Lab Safety
Inference and Observation Scienetific Method And Lab Safetyanna3485
 
Medidas de tendencia central
Medidas de tendencia centralMedidas de tendencia central
Medidas de tendencia centralbillod
 
經營是浪漫的逐夢歷程
經營是浪漫的逐夢歷程經營是浪漫的逐夢歷程
經營是浪漫的逐夢歷程TAAZE 讀冊生活
 
PV NOTÍCIAS - EDIÇÃO Nº11
PV NOTÍCIAS - EDIÇÃO Nº11PV NOTÍCIAS - EDIÇÃO Nº11
PV NOTÍCIAS - EDIÇÃO Nº11Jonasblog
 
PORTIFOLIO moVIMenTo '16
PORTIFOLIO moVIMenTo '16PORTIFOLIO moVIMenTo '16
PORTIFOLIO moVIMenTo '16Pedro Otaviano
 
Weller pleasures+perils social media
Weller pleasures+perils social mediaWeller pleasures+perils social media
Weller pleasures+perils social mediaKatrin Weller
 

Destaque (16)

My avatar
My  avatarMy  avatar
My avatar
 
Plum Deluxe Press Kit / Media Kit
Plum Deluxe Press Kit / Media KitPlum Deluxe Press Kit / Media Kit
Plum Deluxe Press Kit / Media Kit
 
Anlayamadim
AnlayamadimAnlayamadim
Anlayamadim
 
Website Advice that Works - Make More Sales
Website Advice that Works - Make More SalesWebsite Advice that Works - Make More Sales
Website Advice that Works - Make More Sales
 
Grupos
GruposGrupos
Grupos
 
Nicholas Marnitz 4 Life Games
Nicholas Marnitz 4 Life GamesNicholas Marnitz 4 Life Games
Nicholas Marnitz 4 Life Games
 
Inference and Observation Scienetific Method And Lab Safety
Inference and Observation Scienetific Method And Lab SafetyInference and Observation Scienetific Method And Lab Safety
Inference and Observation Scienetific Method And Lab Safety
 
Et newa6
Et newa6Et newa6
Et newa6
 
O atraso no sonho de Deus
O atraso no sonho de DeusO atraso no sonho de Deus
O atraso no sonho de Deus
 
Medidas de tendencia central
Medidas de tendencia centralMedidas de tendencia central
Medidas de tendencia central
 
經營是浪漫的逐夢歷程
經營是浪漫的逐夢歷程經營是浪漫的逐夢歷程
經營是浪漫的逐夢歷程
 
PV NOTÍCIAS - EDIÇÃO Nº11
PV NOTÍCIAS - EDIÇÃO Nº11PV NOTÍCIAS - EDIÇÃO Nº11
PV NOTÍCIAS - EDIÇÃO Nº11
 
Aula geometria
Aula geometriaAula geometria
Aula geometria
 
PORTIFOLIO moVIMenTo '16
PORTIFOLIO moVIMenTo '16PORTIFOLIO moVIMenTo '16
PORTIFOLIO moVIMenTo '16
 
Revisão de Química 1
Revisão de Química 1Revisão de Química 1
Revisão de Química 1
 
Weller pleasures+perils social media
Weller pleasures+perils social mediaWeller pleasures+perils social media
Weller pleasures+perils social media
 

Semelhante a Facebook Developer Garage London, Craig Ulliott, Where I've Been

Developing and testing ajax components
Developing and testing ajax componentsDeveloping and testing ajax components
Developing and testing ajax componentsIgnacio Coloma
 
OpenSocial - GTUG Stockholm Meeting Oct 1 2009
OpenSocial - GTUG Stockholm Meeting Oct 1 2009OpenSocial - GTUG Stockholm Meeting Oct 1 2009
OpenSocial - GTUG Stockholm Meeting Oct 1 2009Jacob Gyllenstierna
 
What I brought back from Austin
What I brought back from AustinWhat I brought back from Austin
What I brought back from AustinLisa Adkins
 
Mashups & APIs
Mashups & APIsMashups & APIs
Mashups & APIsPamela Fox
 
Java Script
Java ScriptJava Script
Java Scriptsiddaram
 
Yahoo Mobile Widgets
Yahoo Mobile WidgetsYahoo Mobile Widgets
Yahoo Mobile WidgetsJose Palazon
 
KMUTNB - Internet Programming 3/7
KMUTNB - Internet Programming 3/7KMUTNB - Internet Programming 3/7
KMUTNB - Internet Programming 3/7phuphax
 
Page Caching Resurrected
Page Caching ResurrectedPage Caching Resurrected
Page Caching ResurrectedBen Scofield
 
HTML5 with examples
HTML5 with examplesHTML5 with examples
HTML5 with examplesgopivthmk
 
10 Things You're Not Doing [IBM Lotus Notes Domino Application Development]
10 Things You're Not Doing [IBM Lotus Notes Domino Application Development]10 Things You're Not Doing [IBM Lotus Notes Domino Application Development]
10 Things You're Not Doing [IBM Lotus Notes Domino Application Development]Chris Toohey
 
Flex For Flash Developers Ff 2006 Final
Flex For Flash Developers Ff 2006 FinalFlex For Flash Developers Ff 2006 Final
Flex For Flash Developers Ff 2006 Finalematrix
 

Semelhante a Facebook Developer Garage London, Craig Ulliott, Where I've Been (20)

Developing and testing ajax components
Developing and testing ajax componentsDeveloping and testing ajax components
Developing and testing ajax components
 
Vb.Net Web Forms
Vb.Net  Web FormsVb.Net  Web Forms
Vb.Net Web Forms
 
OpenSocial - GTUG Stockholm Meeting Oct 1 2009
OpenSocial - GTUG Stockholm Meeting Oct 1 2009OpenSocial - GTUG Stockholm Meeting Oct 1 2009
OpenSocial - GTUG Stockholm Meeting Oct 1 2009
 
HTML5 Fundamentals
HTML5 FundamentalsHTML5 Fundamentals
HTML5 Fundamentals
 
What I brought back from Austin
What I brought back from AustinWhat I brought back from Austin
What I brought back from Austin
 
Front End on Rails
Front End on RailsFront End on Rails
Front End on Rails
 
Mashups & APIs
Mashups & APIsMashups & APIs
Mashups & APIs
 
Java Script
Java ScriptJava Script
Java Script
 
BluePrint Mobile Framework
BluePrint Mobile FrameworkBluePrint Mobile Framework
BluePrint Mobile Framework
 
Yahoo Mobile Widgets
Yahoo Mobile WidgetsYahoo Mobile Widgets
Yahoo Mobile Widgets
 
KMUTNB - Internet Programming 3/7
KMUTNB - Internet Programming 3/7KMUTNB - Internet Programming 3/7
KMUTNB - Internet Programming 3/7
 
Page Caching Resurrected
Page Caching ResurrectedPage Caching Resurrected
Page Caching Resurrected
 
JSP Custom Tags
JSP Custom TagsJSP Custom Tags
JSP Custom Tags
 
Lecture1 B Frames&Forms
Lecture1 B  Frames&FormsLecture1 B  Frames&Forms
Lecture1 B Frames&Forms
 
Html5
Html5Html5
Html5
 
HTML5 with examples
HTML5 with examplesHTML5 with examples
HTML5 with examples
 
When Why What of WWW
When Why What of WWWWhen Why What of WWW
When Why What of WWW
 
10 Things You're Not Doing [IBM Lotus Notes Domino Application Development]
10 Things You're Not Doing [IBM Lotus Notes Domino Application Development]10 Things You're Not Doing [IBM Lotus Notes Domino Application Development]
10 Things You're Not Doing [IBM Lotus Notes Domino Application Development]
 
Flex For Flash Developers Ff 2006 Final
Flex For Flash Developers Ff 2006 FinalFlex For Flash Developers Ff 2006 Final
Flex For Flash Developers Ff 2006 Final
 
Html 101
Html 101Html 101
Html 101
 

Último

Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
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
 
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
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
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
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfMounikaPolabathina
 
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
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 

Último (20)

Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
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
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
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
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
 
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
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 

Facebook Developer Garage London, Craig Ulliott, Where I've Been

  • 1. Where I’ve Been™ Redefining the social travel experience. FindLocal. TravelGlobally. ShareEverything.
  • 3. Auth Layer WIB Platform Network Abstraction Layer WIB Auth Layer AMF Facebook Bebo Site API Myspace Via AJAX HI5 Friendster API (oAuth) whereivebeen.com Partners WIB ImgSrv
  • 5. Template Engine WIB Stencil Extends Includes FeedItem Component Notification Email Text FBML HTML Qotd Edit Profile
  • 7. i18n Internationalization function t($string) <div id="invite-friends-header-prompt"> <?= t(‘Where have your friends been?’) ?> <span><?= t(‘Invite your friends. ’) ?></span> </div> Our ‘t’ function wraps its output in <fb:int> tags for fbml
  • 8. i18n Each Page Request Does this string NOT exist in the strings table in our db add it to the strings table in our db If user wants English, output string Else md5 (string and language code) to make a key if the cache holds a string with this key output from cache else does our database hold a string with this key put string in cache output from database else default: //no translation yet output original string function t($string) <div id="invite-friends-header-prompt"> <?= t(‘Where have your friends been?’) ?> <span><?= t(‘Invite your friends. ’) ?></span> </div>
  • 9. i18n Daily Cron function t($string) <div id="invite-friends-header-prompt"> <?= t(‘Where have your friends been?’) ?> <span><?= t(‘Invite your friends. ’) ?></span> </div> For all strings not pushed to Facebook yet Use FQL to add strings to Facebook db Get all strings from Facebook via FQL, for each string we get from Facebook md5 (english string and language code) to make a key write the translation and key to our translations db
  • 10.
  • 11. dynimg.whereivebeen.comFacebook Facebook EC2 Machine running pound and MySql WIB API Network Abstraction Layer img1 img2 img3 img4 img5 API (oAuth) WIB Auth Layer S3 Image store Over 1MM Bin Cache 2 hours WIB Platform
  • 12. Discover Where I’ve Been Fresh New Design Modular site structure Local search options Scalable Platform Built from the ground up 728 x 90

Notas do Editor

  1. Building a network and a business around and ontop of multiple other platforms presents an interesting architecture challenge. Where I’ve Been is essentially a set of API’s and Abstraction layers mixed with a templating system that we call stencils.
  2. Wrapping the Platform tier we have an authentication layer, this is the layer that users of our .com authenticate against directly. Most functionality on the .com website is preformed via AJAX, so we have a JavaScript client library for that. For each social network we release our application onto we create a client library (which is normally a wrapper of their own official library that normalizes the methods we use in our network). Finally we have a oAuth REST API which (currently in ALPHA with only one partner) which allows partners to access our technology (with the API you could potentially recreate the entire site somewhere else) We also use AMF for our flash products such as the maps.
  3. We write these networks as plug-ins and once added, the functionality from that network is made available immediately. You can add multiple networks to an account and authenticatie to your account from multiple sources. When we utilize communication channels such as feed items, we just create Where I’ve Been feed items and the API will use the best available network for that user, convert to the required format and send it out. There are many advantages to this approach, but one main one is being able to adapt very quickly when things change all the time, not pointing any fingers of course (facebook)
  4. Any good framework should have all the layout and content separated from the business logic, for this we created a system we call stencils. Every visible feature you see on the site has a mixture of CSS, JS, HTML, FBML, and TXT files. We can render then inside each other, they can be sent through the various communication channels, they can all be AB tested and they have standardized tracking and a real time viral coefficient