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

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 TerraformAndrey Devyatkin
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024The Digital Insurer
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MIND CTI
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businesspanagenda
 
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...apidays
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
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 WoodJuan lago vázquez
 
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, ...apidays
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProduct Anonymous
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesrafiqahmad00786416
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoffsammart93
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Jeffrey Haguewood
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...Zilliz
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWERMadyBayot
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 

Último (20)

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
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
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...
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
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
 
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, ...
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 

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