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

VK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web DevelopmentVK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web Developmentvyaparkranti
 
MYjobs Presentation Django-based project
MYjobs Presentation Django-based projectMYjobs Presentation Django-based project
MYjobs Presentation Django-based projectAnoyGreter
 
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Natan Silnitsky
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesPhilip Schwarz
 
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company OdishaBalasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odishasmiwainfosol
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWave PLM
 
Machine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringMachine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringHironori Washizaki
 
SensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving CarsSensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving CarsChristian Birchler
 
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样umasea
 
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfAlina Yurenko
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEEVICTOR MAESTRE RAMIREZ
 
SpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at RuntimeSpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at Runtimeandrehoraa
 
Sending Calendar Invites on SES and Calendarsnack.pdf
Sending Calendar Invites on SES and Calendarsnack.pdfSending Calendar Invites on SES and Calendarsnack.pdf
Sending Calendar Invites on SES and Calendarsnack.pdf31events.com
 
Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Velvetech LLC
 
How to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationHow to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationBradBedford3
 
A healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfA healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfMarharyta Nedzelska
 
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Cizo Technology Services
 
Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdf
Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdfExploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdf
Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdfkalichargn70th171
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaHanief Utama
 

Recently uploaded (20)

VK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web DevelopmentVK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web Development
 
MYjobs Presentation Django-based project
MYjobs Presentation Django-based projectMYjobs Presentation Django-based project
MYjobs Presentation Django-based project
 
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a series
 
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company OdishaBalasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need It
 
Machine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringMachine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their Engineering
 
SensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving CarsSensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving Cars
 
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
 
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEE
 
SpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at RuntimeSpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at Runtime
 
Sending Calendar Invites on SES and Calendarsnack.pdf
Sending Calendar Invites on SES and Calendarsnack.pdfSending Calendar Invites on SES and Calendarsnack.pdf
Sending Calendar Invites on SES and Calendarsnack.pdf
 
Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...
 
How to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationHow to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion Application
 
A healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfA healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdf
 
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
 
Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdf
Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdfExploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdf
Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdf
 
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort ServiceHot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief Utama
 

Internationalizing The New York Times