SlideShare una empresa de 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

Más contenido relacionado

Destacado

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
Andy Hayes
 
Nicholas Marnitz 4 Life Games
Nicholas Marnitz 4 Life GamesNicholas Marnitz 4 Life Games
Nicholas Marnitz 4 Life Games
Nicholas 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 Safety
anna3485
 
經營是浪漫的逐夢歷程
經營是浪漫的逐夢歷程經營是浪漫的逐夢歷程
經營是浪漫的逐夢歷程
TAAZE 讀冊生活
 

Destacado (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
 

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

What I brought back from Austin
What I brought back from AustinWhat I brought back from Austin
What I brought back from Austin
Lisa Adkins
 
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
ematrix
 

Similar 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 with examples
HTML5 with examplesHTML5 with examples
HTML5 with examples
 
Html5
Html5Html5
Html5
 
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

Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Victor Rentea
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Victor Rentea
 

Último (20)

Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
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
 
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
 
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
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
 
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
 
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptx
 
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
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 
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, ...
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontology
 
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
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 

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 del 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