SlideShare a Scribd company logo
1 of 53
Download to read offline
Internationalizing the
(failing) New York
Times
WordCamp U.S.
(Donald J. Trump, President)
December 3, 2016
Scott Taylor
• Sr. Software Engineer, Web Frameworks

Formerly Interactive News

Formerly Blogs

The (failing) New York Times
• WordPress Core Developer
Why did we use WordPress?
• WordPress is bootstrapped with i18n
• Easy to support l10n by adding translation files
• Easy to separate languages using multisite
• For new products, helpful to be able to control the
front-end and the back-end
• Gulp plugins make it easy to generate PO/MO files
Gulp is a streaming
build system
• Tasks are written in code
instead of config (cough:
Grunt)
• gulp.pipe makes it easy to
chain tasks
const	po	=	new	PO();	
po.items	=	items;	
po.save(file);	
gulp.src(file)	
		.pipe(gettext())	
		.pipe(gulp.dest(dest))
Docker is the world’s leading software containerization
platform
Open-source system for automating deployment, scaling,
and management of containerized applications.
SNS
Amazon Simple Notification Service (Amazon SNS) is a
fast, flexible, fully managed push notification service
that lets you send individual messages or to fan-out
messages to large numbers of recipients
S3
Amazon Simple Storage Service (Amazon S3) is object
storage with a simple web service interface to store
and retrieve any amount of data from anywhere on the
web.
RDS
Amazon Relational Database Service (Amazon RDS)
makes it easy to set up, operate, and scale a relational
database in the cloud.
ElastiCache
Amazon ElastiCache is a web service that makes it easy
to deploy, operate, and scale an in-memory data store
or cache in the cloud.
What is a PHP
project?
gulp	
node_modules	
vendor	
wordpress/	
wp-content	
index.php	
wp-config.php	
.babelrc	
.eslintrc.json	
Dockerfile	
gulpfile.babel.js

composer.json	
composer.lock	
package.json	
yarn.lock
<?php	
require_once(	__DIR__	.	'/wp-config.php'	);	
wp();	
do_action(	'template_redirect'	);	
if	(	'HEAD'	===	$app['request']->getMethod()	&&	
		apply_filters(	'exit_on_http_head',	true	)	)	{	
		exit();	
}	
if	(	is_robots()	)	{	
		do_action(	'do_robots'	);	
}	elseif	(	is_feed()	)	{	
		do_feed();	
}	else	{	
		do_action(	'nyt_template_render',	$app	);	
}
Composer
Package
Management for
PHP
"prefer-dist":	true,	
				"sort-packages":	true	
		},	
		repositories":	[	
				{	
						"type":"composer",	
						"url":"https://wpackagist.org"	
				}	
		],	
		"require":	{	
				"aws/aws-sdk-php":	"^3.19",	
				"doctrine/orm":	"^2.5",	
				"guzzlehttp/guzzle":	"^6.2",	
				"monolog/monolog":	"^1.21",	
				"mustache/mustache":	"^2.11",	
				"pimple/pimple":	"^3.0",	
				"symfony/asset":	"^3.1",	
				"symfony/http-foundation":	"^3.1",	
				"symfony/validator":	"^3.1",	
				"wpackagist-plugin/akismet":	"^3.2",	
				"wpackagist-plugin/amp":	"^0.3.3",	
				"wpackagist-plugin/debug-bar":	"^0.8.4",	
				"wpackagist-plugin/debug-bar-console":	"^0.3.0",	
				"wpackagist-plugin/socialflow":	"^2.7"	
		},	
		"prefer-stable":	true,	
		"autoload":	{	
	 "psr-4":	{	
	 		"NYT"	:	"lib/php",	
	 		"NYTTheme":	"wp-content/themes/shell/php",	
	 		"NYTBylines"	:	"wp-content/plugins/nyt-wp-bylines/php",	
	 		"NYTMedia"	:	"wp-content/plugins/nyt-wp-media/php"	
				}
//	all	Composer	dependencies	are	available	
require(	__SRC__	.	'/vendor/autoload.php'	);	
//	Load	resource	in	the	DI	Container	
$app	=	new	NYTApp();	
$app->register(	new	NYTAppProvider()	);	
$app->register(	new	NYTCacheProvider()	);	
$app->register(	new	NYTDatabaseProvider()	);	
$app->register(	new	NYTSymfonyProvider()	);	
$app->register(	new	NYTAWSProvider()	);	
NYTgetApp(	$app	);
Mustache
}
Logic-less templates.
{{<	admin/layout	}}	
{{$	content	}}	
<div	class="wrap">	
	 <h1>	
	 	 {{	title	}}	
	 	 {{#	title_link_url	}}	
										<a	href="{{	.	}}"	class="page-title-action">{{	l10n.add_new	}}</a>	
									{{/	title_link_url	}}	
	 	 {{{	search	}}}	
	 </h1>	
	 {{#	message	}}	
	 <div	id="message"	class="updated	notice	is-dismissible">	
	 	 <p>{{{	.	}}}</p>	
	 </div>	
	 {{/	message	}}	
	 <form	id="posts-filter"	method="get">	
	 	 {{{	list_table_views	}}}	
	 	 {{{	list_table_display	}}}	
	 	 <div	id="ajax-response"></div>	
	 	 {{{	find_posts_div	}}}	
	 </form>	
</div>	
{{/	content	}}	
{{/	admin/layout	}}
Guzzle
Guzzle is a PHP HTTP client that makes it easy to send
HTTP requests and trivial to integrate with web services.
Symfony
Best-in-class PHP
Components
HttpFoundation
The component defines
an object-oriented layer
for the HTTP
specification.
Doctrine
• Around since 2006 with very stable, high-quality
codebase.
• Extremely flexible and powerful object-mapping and
query features.
• Support for both high-level and low-level database
programming for all use-cases.
• Large Community and integrations with many different
frameworks (Symfony, Zend Framework, CodeIgniter,
Flow, Lithium, etc)
Pimple
A Simple PHP Dependency Injection Container
$app['doctrine.connection']	=	function	(	$app	)	{	
		return	new	Connection(	
				[	
						'host'	=>	$app['db.host'],	
						'user'	=>	$app['db.user'],	
						'password'	=>	$app['db.password'],	
				],	
				$app['doctrine.nyt.driver'],	
				$app['doctrine.config']	
		);	
};	
$app['db']	=	function	(	$app	)	{	
		$conn	=	$app['doctrine.connection'];	
		return	EntityManager::create(		
				$conn,		
				$app['doctrine.config'],		
				$conn->getEventManager()		
		);	
};
<?php	
namespace	NYTCache;	
use	NYTApp;	
class	ObjectCache	implements	WPCacheInterface	{	
		public	function	__construct(	App	$app	)	{	
				$this->memcached	=	$app['memcached'];	
				$this->cache	=	$app['cache.chain'];	
				$this->arrayCache	=	$app['cache.array'];	
				$this->tablePrefix	=	$app['table_prefix'];	
				$this->globalPrefix	=	is_multisite()	?	''	:	$this->tablePrefix;	
				$this->sitePrefix	=	(	is_multisite()	?		
						$app['blog_id']	:		
						$this->tablePrefix	)	.	':';	
		}	
}
<?php	
namespace	NYTCache;	
interface	WPCacheInterface	{	
	 public	function	key(	$key,	string	$group	=	'default'	);	
	 public	function	get(	$id,	string	$group	=	'default'	);	
	 public	function	set(	$id,	$data,	string	$group	=	'default',	int	$expire	=	0	);	
	 public	function	add(	$id,	$data,	string	$group	=	'default',	int	$expire	=	0	);	
	 public	function	replace(	$id,	$data,	string	$group	=	'default',	int	$expire	=	0	);	
	 public	function	delete(	$id,	string	$group	=	'default'	);	
	 public	function	incr(	$id,	int	$n	=	1,	string	$group	=	'default'	);	
	 public	function	decr(	$id,	int	$n	=	1,	string	$group	=	'default'	);	
	 public	function	flush();	
	 public	function	close();	
	 public	function	switch_to_blog(	int	$blog_id	);	
	 public	function	add_global_groups(	$groups	);	
	 public	function	add_non_persistent_groups(	$groups	);	
}
Silex
A PHP microframework for
PHP. It is built on the
shoulders of Symfony and
Pimple and also inspired by
sinatra.
require_once('vendor/autoload.php');		
$app	=	new	SilexApplication();		
$app->get('/hello/{name}',	function($name)	use	($app)	{		
				return	'Hello	'	.	$app->escape($name);		
});		
$app->run();
Hack / HHVM
Hack is a programming language for HHVM, both from
Facebook.
Features of Hack
• Backwards compatibility with PHP
• Type annotations catch bugs before runtime.
• AsyncIO
• Collections
What are Collections?
$a	=	Vector	{'a',	'b',	'c'};
$b	=	Map	{	
		'a'	=>	888,		
		'b'	=>	23,		
		'f'	=>	0,	
};
$c	=	Set	{'A',	'B',	'C'};
Ordered sequence of values
Sequence of values keyed to string or int values:
Ordered collection of unique values (string or int)
What are Shapes?
type	Taco	=	shape(	
		'id'	=>	string,		
		'url'	=>	string,		
		'filling'	=>	string	
);	
$taco	=	shape(	
		'id'	=>	'573065673A34Y',		
		'url'	=>	'http://tacos.com',		
		'filling'	=>	'carnitas'	
);	
function	foo(Taco	$taco):	void	{	
		echo	$taco['filling'];	
		//	...	
}
The scope for errors is
significantly reduced.
Is WordPress a
PHP project?
JavaScript
A brave new world
Yarn
https://yarnpkg.com/
Improved package manager
for JavaScript, from Facebook
Install:
brew install yarn
Examples:
yarn add react
yarn install
yarn upgrade
https://code.facebook.com/posts/1840075619545360
Flow
A Static Type Checker for JavaScript
React
A JavaScript library for building user interfaces
Redux is a predictable state container for JavaScript apps.
Immutable collections for JavaScript
Relay
A JavaScript framework for building data-driven React
applications
GraphQL
A query language for your API
Atom is a text editor that's modern, approachable, yet
hackable to the core—a tool you can customize to do
anything but also use productively without ever
touching a config file.
Isomorphic Apps
http://nerds.airbnb.com/isomorphic-javascript-future-web-apps/
http://nerds.airbnb.com/isomorphic-javascript-future-web-apps/
A toolkit that
encapsulates and
manages the
configuration for
isomorphic web apps
//	@flow	
import	React	from	'react';	
import	styles	from	'./Loading.scss';	
const	Loading	=	()	=>	(	
		<p	className={styles.loading}>	
				Loading…	
		</p>	
);	
export	default	Loading;

More Related Content

What's hot

Modern Web Application Development Workflow - EclipseCon US 2014
Modern Web Application Development Workflow - EclipseCon US 2014Modern Web Application Development Workflow - EclipseCon US 2014
Modern Web Application Development Workflow - EclipseCon US 2014Stéphane Bégaudeau
 
I Can Haz More Performanz?
I Can Haz More Performanz?I Can Haz More Performanz?
I Can Haz More Performanz?Andy Melichar
 
wp cli- don’t fear the command line
wp cli- don’t fear the command linewp cli- don’t fear the command line
wp cli- don’t fear the command lineDwayne McDaniel
 
Creating SmartPhone Apps Using WordPress
Creating SmartPhone Apps Using WordPressCreating SmartPhone Apps Using WordPress
Creating SmartPhone Apps Using WordPresscodebangla
 
Nürnberg WooCommerce Talk - 11/24/16
Nürnberg WooCommerce Talk - 11/24/16Nürnberg WooCommerce Talk - 11/24/16
Nürnberg WooCommerce Talk - 11/24/16tshellberg
 
Developing Plugins For WordPress
Developing Plugins For WordPressDeveloping Plugins For WordPress
Developing Plugins For WordPressLester Chan
 
Modern Web Applications Utilizing HTML5 (Dev Con TLV 06-2013)
Modern Web Applications Utilizing HTML5 (Dev Con TLV 06-2013)Modern Web Applications Utilizing HTML5 (Dev Con TLV 06-2013)
Modern Web Applications Utilizing HTML5 (Dev Con TLV 06-2013)Ido Green
 
Using composer with WordPress
Using composer with WordPressUsing composer with WordPress
Using composer with WordPressMicah Wood
 
WordPress REST API v2: Overview & Exploring
WordPress REST API v2: Overview & ExploringWordPress REST API v2: Overview & Exploring
WordPress REST API v2: Overview & ExploringNick Pelton
 
Getting Started With WP REST API
Getting Started With WP REST APIGetting Started With WP REST API
Getting Started With WP REST APIKishor Kumar
 
WordPress plugin development
WordPress plugin developmentWordPress plugin development
WordPress plugin developmentarryaas
 
The Ultimate WordPress Development Environment
The Ultimate WordPress Development EnvironmentThe Ultimate WordPress Development Environment
The Ultimate WordPress Development EnvironmentMatt Geri
 
WordPress development checklist
WordPress development checklistWordPress development checklist
WordPress development checklistBinh Quan Duc
 
Working in Harmony: Manchester - Optimize development and content workflows
Working in Harmony: Manchester - Optimize development and content workflowsWorking in Harmony: Manchester - Optimize development and content workflows
Working in Harmony: Manchester - Optimize development and content workflowsEdmund Turbin
 
Modern Web Application Development Workflow - EclipseCon France 2014
Modern Web Application Development Workflow - EclipseCon France 2014Modern Web Application Development Workflow - EclipseCon France 2014
Modern Web Application Development Workflow - EclipseCon France 2014Stéphane Bégaudeau
 
WordPress and The Command Line
WordPress and The Command LineWordPress and The Command Line
WordPress and The Command LineKelly Dwan
 
The Hitchhiker's Guide to Building a Progressive Web App
The Hitchhiker's Guide to Building a Progressive Web AppThe Hitchhiker's Guide to Building a Progressive Web App
The Hitchhiker's Guide to Building a Progressive Web AppChristopher Nguyen
 

What's hot (20)

Modern Web Application Development Workflow - EclipseCon US 2014
Modern Web Application Development Workflow - EclipseCon US 2014Modern Web Application Development Workflow - EclipseCon US 2014
Modern Web Application Development Workflow - EclipseCon US 2014
 
I Can Haz More Performanz?
I Can Haz More Performanz?I Can Haz More Performanz?
I Can Haz More Performanz?
 
Working in harmony
Working in harmonyWorking in harmony
Working in harmony
 
Welcome to the World of WordPress
Welcome to the World of WordPressWelcome to the World of WordPress
Welcome to the World of WordPress
 
wp cli- don’t fear the command line
wp cli- don’t fear the command linewp cli- don’t fear the command line
wp cli- don’t fear the command line
 
Creating SmartPhone Apps Using WordPress
Creating SmartPhone Apps Using WordPressCreating SmartPhone Apps Using WordPress
Creating SmartPhone Apps Using WordPress
 
Nürnberg WooCommerce Talk - 11/24/16
Nürnberg WooCommerce Talk - 11/24/16Nürnberg WooCommerce Talk - 11/24/16
Nürnberg WooCommerce Talk - 11/24/16
 
Developing Plugins For WordPress
Developing Plugins For WordPressDeveloping Plugins For WordPress
Developing Plugins For WordPress
 
Modern Web Applications Utilizing HTML5 (Dev Con TLV 06-2013)
Modern Web Applications Utilizing HTML5 (Dev Con TLV 06-2013)Modern Web Applications Utilizing HTML5 (Dev Con TLV 06-2013)
Modern Web Applications Utilizing HTML5 (Dev Con TLV 06-2013)
 
Way of the Future
Way of the FutureWay of the Future
Way of the Future
 
Using composer with WordPress
Using composer with WordPressUsing composer with WordPress
Using composer with WordPress
 
WordPress REST API v2: Overview & Exploring
WordPress REST API v2: Overview & ExploringWordPress REST API v2: Overview & Exploring
WordPress REST API v2: Overview & Exploring
 
Getting Started With WP REST API
Getting Started With WP REST APIGetting Started With WP REST API
Getting Started With WP REST API
 
WordPress plugin development
WordPress plugin developmentWordPress plugin development
WordPress plugin development
 
The Ultimate WordPress Development Environment
The Ultimate WordPress Development EnvironmentThe Ultimate WordPress Development Environment
The Ultimate WordPress Development Environment
 
WordPress development checklist
WordPress development checklistWordPress development checklist
WordPress development checklist
 
Working in Harmony: Manchester - Optimize development and content workflows
Working in Harmony: Manchester - Optimize development and content workflowsWorking in Harmony: Manchester - Optimize development and content workflows
Working in Harmony: Manchester - Optimize development and content workflows
 
Modern Web Application Development Workflow - EclipseCon France 2014
Modern Web Application Development Workflow - EclipseCon France 2014Modern Web Application Development Workflow - EclipseCon France 2014
Modern Web Application Development Workflow - EclipseCon France 2014
 
WordPress and The Command Line
WordPress and The Command LineWordPress and The Command Line
WordPress and The Command Line
 
The Hitchhiker's Guide to Building a Progressive Web App
The Hitchhiker's Guide to Building a Progressive Web AppThe Hitchhiker's Guide to Building a Progressive Web App
The Hitchhiker's Guide to Building a Progressive Web App
 

Viewers also liked

Driving Conversions with Content
Driving Conversions with ContentDriving Conversions with Content
Driving Conversions with ContentBenjamin S Powell
 
Persona™
Persona™Persona™
Persona™Course5i
 
Let's Encrypt! Wait. Why? How?
Let's Encrypt! Wait. Why? How?Let's Encrypt! Wait. Why? How?
Let's Encrypt! Wait. Why? How?Nancy Thanki
 
So You've Released A WordPress Product... Now What?
So You've Released A WordPress Product... Now What?So You've Released A WordPress Product... Now What?
So You've Released A WordPress Product... Now What?Ines van Essen - van Dijk
 
New york time`s case analysis final
New york time`s case analysis finalNew york time`s case analysis final
New york time`s case analysis finalAhmad Taher, MBA
 
From Shadows to Limelight: How women found their voice at WordCamp Montreal
From Shadows to Limelight: How women found their voice at WordCamp MontrealFrom Shadows to Limelight: How women found their voice at WordCamp Montreal
From Shadows to Limelight: How women found their voice at WordCamp MontrealKathryn Presner
 
New York times Paywall case study
New York times Paywall case study New York times Paywall case study
New York times Paywall case study amritpal kaur
 
WordCamp US 2016 - How to Talk Content: A Guide for Developers
WordCamp US 2016 - How to Talk Content: A Guide for DevelopersWordCamp US 2016 - How to Talk Content: A Guide for Developers
WordCamp US 2016 - How to Talk Content: A Guide for DevelopersLisa Melegari
 
WordPress: Getting Under the Hood
WordPress: Getting Under the HoodWordPress: Getting Under the Hood
WordPress: Getting Under the HoodScott Taylor
 
State of the Word 2014
State of the Word 2014State of the Word 2014
State of the Word 2014photomatt
 
State of the Word 2015, WordCamp US
State of the Word 2015, WordCamp USState of the Word 2015, WordCamp US
State of the Word 2015, WordCamp USphotomatt
 
Why do-people-share-online-new-york-times-study
Why do-people-share-online-new-york-times-studyWhy do-people-share-online-new-york-times-study
Why do-people-share-online-new-york-times-studyJoan McLaughlin
 
data science @NYT ; inaugural Data Science Initiative Lecture
data science @NYT ; inaugural Data Science Initiative Lecturedata science @NYT ; inaugural Data Science Initiative Lecture
data science @NYT ; inaugural Data Science Initiative Lecturechris wiggins
 
Open Source Creativity
Open Source CreativityOpen Source Creativity
Open Source CreativitySara Cannon
 

Viewers also liked (15)

Driving Conversions with Content
Driving Conversions with ContentDriving Conversions with Content
Driving Conversions with Content
 
Persona™
Persona™Persona™
Persona™
 
Let's Encrypt! Wait. Why? How?
Let's Encrypt! Wait. Why? How?Let's Encrypt! Wait. Why? How?
Let's Encrypt! Wait. Why? How?
 
So You've Released A WordPress Product... Now What?
So You've Released A WordPress Product... Now What?So You've Released A WordPress Product... Now What?
So You've Released A WordPress Product... Now What?
 
New york time`s case analysis final
New york time`s case analysis finalNew york time`s case analysis final
New york time`s case analysis final
 
From Shadows to Limelight: How women found their voice at WordCamp Montreal
From Shadows to Limelight: How women found their voice at WordCamp MontrealFrom Shadows to Limelight: How women found their voice at WordCamp Montreal
From Shadows to Limelight: How women found their voice at WordCamp Montreal
 
New York times Paywall case study
New York times Paywall case study New York times Paywall case study
New York times Paywall case study
 
WordCamp US 2016 - How to Talk Content: A Guide for Developers
WordCamp US 2016 - How to Talk Content: A Guide for DevelopersWordCamp US 2016 - How to Talk Content: A Guide for Developers
WordCamp US 2016 - How to Talk Content: A Guide for Developers
 
WordPress: Getting Under the Hood
WordPress: Getting Under the HoodWordPress: Getting Under the Hood
WordPress: Getting Under the Hood
 
Iceberg.Life
Iceberg.LifeIceberg.Life
Iceberg.Life
 
State of the Word 2014
State of the Word 2014State of the Word 2014
State of the Word 2014
 
State of the Word 2015, WordCamp US
State of the Word 2015, WordCamp USState of the Word 2015, WordCamp US
State of the Word 2015, WordCamp US
 
Why do-people-share-online-new-york-times-study
Why do-people-share-online-new-york-times-studyWhy do-people-share-online-new-york-times-study
Why do-people-share-online-new-york-times-study
 
data science @NYT ; inaugural Data Science Initiative Lecture
data science @NYT ; inaugural Data Science Initiative Lecturedata science @NYT ; inaugural Data Science Initiative Lecture
data science @NYT ; inaugural Data Science Initiative Lecture
 
Open Source Creativity
Open Source CreativityOpen Source Creativity
Open Source Creativity
 

Similar to Internationalizing The New York Times

Normalizing x pages web development
Normalizing x pages web development Normalizing x pages web development
Normalizing x pages web development Shean McManus
 
Experiences using CouchDB inside Microsoft's Azure team
Experiences using CouchDB inside Microsoft's Azure teamExperiences using CouchDB inside Microsoft's Azure team
Experiences using CouchDB inside Microsoft's Azure teamBrian Benz
 
solution Challenge design and flutter day.pptx
solution Challenge design and flutter day.pptxsolution Challenge design and flutter day.pptx
solution Challenge design and flutter day.pptxGoogleDeveloperStude22
 
Building and deploying LLM applications with Apache Airflow
Building and deploying LLM applications with Apache AirflowBuilding and deploying LLM applications with Apache Airflow
Building and deploying LLM applications with Apache AirflowKaxil Naik
 
Designing flexible apps deployable to App Engine, Cloud Functions, or Cloud Run
Designing flexible apps deployable to App Engine, Cloud Functions, or Cloud RunDesigning flexible apps deployable to App Engine, Cloud Functions, or Cloud Run
Designing flexible apps deployable to App Engine, Cloud Functions, or Cloud Runwesley chun
 
What's New in Docker - February 2017
What's New in Docker - February 2017What's New in Docker - February 2017
What's New in Docker - February 2017Patrick Chanezon
 
Gary Fowler [InfluxData] | InfluxDB Scripting Languages | InfluxDays 2022
Gary Fowler [InfluxData] | InfluxDB Scripting Languages | InfluxDays 2022Gary Fowler [InfluxData] | InfluxDB Scripting Languages | InfluxDays 2022
Gary Fowler [InfluxData] | InfluxDB Scripting Languages | InfluxDays 2022InfluxData
 
Ankit Chohan - Java
Ankit Chohan - JavaAnkit Chohan - Java
Ankit Chohan - JavaAnkit Chohan
 
Unleash your Symfony projects with eZ Platform
Unleash your Symfony projects with eZ PlatformUnleash your Symfony projects with eZ Platform
Unleash your Symfony projects with eZ PlatformSébastien Morel
 
.NET Cloud-Native Bootcamp
.NET Cloud-Native Bootcamp.NET Cloud-Native Bootcamp
.NET Cloud-Native BootcampVMware Tanzu
 
Docker serverless v1.0
Docker serverless v1.0Docker serverless v1.0
Docker serverless v1.0Thomas Chacko
 
Introduction to Google App Engine with Python
Introduction to Google App Engine with PythonIntroduction to Google App Engine with Python
Introduction to Google App Engine with PythonBrian Lyttle
 
Near real-time anomaly detection at Lyft
Near real-time anomaly detection at LyftNear real-time anomaly detection at Lyft
Near real-time anomaly detection at Lyftmarkgrover
 
DevOps Fest 2020. immutable infrastructure as code. True story.
DevOps Fest 2020. immutable infrastructure as code. True story.DevOps Fest 2020. immutable infrastructure as code. True story.
DevOps Fest 2020. immutable infrastructure as code. True story.Vlad Fedosov
 
web2py:Web development like a boss
web2py:Web development like a bossweb2py:Web development like a boss
web2py:Web development like a bossFrancisco Ribeiro
 
GoogleDSC_ GHRCE_ flutter_firebase.pptx
GoogleDSC_ GHRCE_  flutter_firebase.pptxGoogleDSC_ GHRCE_  flutter_firebase.pptx
GoogleDSC_ GHRCE_ flutter_firebase.pptxGoogleDeveloperStude22
 
The "Holy Grail" of Dev/Ops
The "Holy Grail" of Dev/OpsThe "Holy Grail" of Dev/Ops
The "Holy Grail" of Dev/OpsErik Osterman
 
Php Inside - confoo 2011 - Derick Rethans
Php Inside -  confoo 2011 - Derick RethansPhp Inside -  confoo 2011 - Derick Rethans
Php Inside - confoo 2011 - Derick RethansBachkoutou Toutou
 
gRPC, GraphQL, REST - Which API Tech to use - API Conference Berlin oct 20
gRPC, GraphQL, REST - Which API Tech to use - API Conference Berlin oct 20gRPC, GraphQL, REST - Which API Tech to use - API Conference Berlin oct 20
gRPC, GraphQL, REST - Which API Tech to use - API Conference Berlin oct 20Phil Wilkins
 

Similar to Internationalizing The New York Times (20)

Normalizing x pages web development
Normalizing x pages web development Normalizing x pages web development
Normalizing x pages web development
 
Experiences using CouchDB inside Microsoft's Azure team
Experiences using CouchDB inside Microsoft's Azure teamExperiences using CouchDB inside Microsoft's Azure team
Experiences using CouchDB inside Microsoft's Azure team
 
solution Challenge design and flutter day.pptx
solution Challenge design and flutter day.pptxsolution Challenge design and flutter day.pptx
solution Challenge design and flutter day.pptx
 
Building and deploying LLM applications with Apache Airflow
Building and deploying LLM applications with Apache AirflowBuilding and deploying LLM applications with Apache Airflow
Building and deploying LLM applications with Apache Airflow
 
Designing flexible apps deployable to App Engine, Cloud Functions, or Cloud Run
Designing flexible apps deployable to App Engine, Cloud Functions, or Cloud RunDesigning flexible apps deployable to App Engine, Cloud Functions, or Cloud Run
Designing flexible apps deployable to App Engine, Cloud Functions, or Cloud Run
 
My Saminar On Php
My Saminar On PhpMy Saminar On Php
My Saminar On Php
 
What's New in Docker - February 2017
What's New in Docker - February 2017What's New in Docker - February 2017
What's New in Docker - February 2017
 
Gary Fowler [InfluxData] | InfluxDB Scripting Languages | InfluxDays 2022
Gary Fowler [InfluxData] | InfluxDB Scripting Languages | InfluxDays 2022Gary Fowler [InfluxData] | InfluxDB Scripting Languages | InfluxDays 2022
Gary Fowler [InfluxData] | InfluxDB Scripting Languages | InfluxDays 2022
 
Ankit Chohan - Java
Ankit Chohan - JavaAnkit Chohan - Java
Ankit Chohan - Java
 
Unleash your Symfony projects with eZ Platform
Unleash your Symfony projects with eZ PlatformUnleash your Symfony projects with eZ Platform
Unleash your Symfony projects with eZ Platform
 
.NET Cloud-Native Bootcamp
.NET Cloud-Native Bootcamp.NET Cloud-Native Bootcamp
.NET Cloud-Native Bootcamp
 
Docker serverless v1.0
Docker serverless v1.0Docker serverless v1.0
Docker serverless v1.0
 
Introduction to Google App Engine with Python
Introduction to Google App Engine with PythonIntroduction to Google App Engine with Python
Introduction to Google App Engine with Python
 
Near real-time anomaly detection at Lyft
Near real-time anomaly detection at LyftNear real-time anomaly detection at Lyft
Near real-time anomaly detection at Lyft
 
DevOps Fest 2020. immutable infrastructure as code. True story.
DevOps Fest 2020. immutable infrastructure as code. True story.DevOps Fest 2020. immutable infrastructure as code. True story.
DevOps Fest 2020. immutable infrastructure as code. True story.
 
web2py:Web development like a boss
web2py:Web development like a bossweb2py:Web development like a boss
web2py:Web development like a boss
 
GoogleDSC_ GHRCE_ flutter_firebase.pptx
GoogleDSC_ GHRCE_  flutter_firebase.pptxGoogleDSC_ GHRCE_  flutter_firebase.pptx
GoogleDSC_ GHRCE_ flutter_firebase.pptx
 
The "Holy Grail" of Dev/Ops
The "Holy Grail" of Dev/OpsThe "Holy Grail" of Dev/Ops
The "Holy Grail" of Dev/Ops
 
Php Inside - confoo 2011 - Derick Rethans
Php Inside -  confoo 2011 - Derick RethansPhp Inside -  confoo 2011 - Derick Rethans
Php Inside - confoo 2011 - Derick Rethans
 
gRPC, GraphQL, REST - Which API Tech to use - API Conference Berlin oct 20
gRPC, GraphQL, REST - Which API Tech to use - API Conference Berlin oct 20gRPC, GraphQL, REST - Which API Tech to use - API Conference Berlin oct 20
gRPC, GraphQL, REST - Which API Tech to use - API Conference Berlin oct 20
 

More from Scott Taylor

The New York Times: Moving to GraphQL
The New York Times: Moving to GraphQLThe New York Times: Moving to GraphQL
The New York Times: Moving to GraphQLScott Taylor
 
REST In Action: The Live Coverage Platform at the New York Times
REST In Action: The Live Coverage Platform at the New York TimesREST In Action: The Live Coverage Platform at the New York Times
REST In Action: The Live Coverage Platform at the New York TimesScott Taylor
 
WordPress 4.4 and Beyond
WordPress 4.4 and BeyondWordPress 4.4 and Beyond
WordPress 4.4 and BeyondScott Taylor
 
2015 WordCamp Maine Keynote
2015 WordCamp Maine Keynote2015 WordCamp Maine Keynote
2015 WordCamp Maine KeynoteScott Taylor
 
Live Coverage at The New York Times
Live Coverage at The New York TimesLive Coverage at The New York Times
Live Coverage at The New York TimesScott Taylor
 
WordPress Media in a post-Koop Universe
WordPress Media in a post-Koop UniverseWordPress Media in a post-Koop Universe
WordPress Media in a post-Koop UniverseScott Taylor
 
Cloud, Cache, and Configs
Cloud, Cache, and ConfigsCloud, Cache, and Configs
Cloud, Cache, and ConfigsScott Taylor
 
eMusic: WordPress in the Enterprise
eMusic: WordPress in the EnterpriseeMusic: WordPress in the Enterprise
eMusic: WordPress in the EnterpriseScott Taylor
 
WordPress Front End Optimizations
WordPress Front End OptimizationsWordPress Front End Optimizations
WordPress Front End OptimizationsScott Taylor
 

More from Scott Taylor (10)

The New York Times: Moving to GraphQL
The New York Times: Moving to GraphQLThe New York Times: Moving to GraphQL
The New York Times: Moving to GraphQL
 
A Day of REST
A Day of RESTA Day of REST
A Day of REST
 
REST In Action: The Live Coverage Platform at the New York Times
REST In Action: The Live Coverage Platform at the New York TimesREST In Action: The Live Coverage Platform at the New York Times
REST In Action: The Live Coverage Platform at the New York Times
 
WordPress 4.4 and Beyond
WordPress 4.4 and BeyondWordPress 4.4 and Beyond
WordPress 4.4 and Beyond
 
2015 WordCamp Maine Keynote
2015 WordCamp Maine Keynote2015 WordCamp Maine Keynote
2015 WordCamp Maine Keynote
 
Live Coverage at The New York Times
Live Coverage at The New York TimesLive Coverage at The New York Times
Live Coverage at The New York Times
 
WordPress Media in a post-Koop Universe
WordPress Media in a post-Koop UniverseWordPress Media in a post-Koop Universe
WordPress Media in a post-Koop Universe
 
Cloud, Cache, and Configs
Cloud, Cache, and ConfigsCloud, Cache, and Configs
Cloud, Cache, and Configs
 
eMusic: WordPress in the Enterprise
eMusic: WordPress in the EnterpriseeMusic: WordPress in the Enterprise
eMusic: WordPress in the Enterprise
 
WordPress Front End Optimizations
WordPress Front End OptimizationsWordPress Front End Optimizations
WordPress Front End Optimizations
 

Recently uploaded

The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfkalichargn70th171
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Modelsaagamshah0812
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsAlberto González Trastoy
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providermohitmore19
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideChristina Lin
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackVICTOR MAESTRE RAMIREZ
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about usDynamic Netsoft
 
Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...aditisharan08
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdfWave PLM
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...harshavardhanraghave
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityNeo4j
 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - InfographicHr365.us smith
 
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfThe Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfkalichargn70th171
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comFatema Valibhai
 
What is Binary Language? Computer Number Systems
What is Binary Language?  Computer Number SystemsWhat is Binary Language?  Computer Number Systems
What is Binary Language? Computer Number SystemsJheuzeDellosa
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...Christina Lin
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...ICS
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...MyIntelliSource, Inc.
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfkalichargn70th171
 

Recently uploaded (20)

The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStack
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about us
 
Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...
 
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered Sustainability
 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - Infographic
 
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfThe Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
What is Binary Language? Computer Number Systems
What is Binary Language?  Computer Number SystemsWhat is Binary Language?  Computer Number Systems
What is Binary Language? Computer Number Systems
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 

Internationalizing The New York Times