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

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
 
Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Hr365.us smith
 
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...OnePlan Solutions
 
Comparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdfComparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdfDrew Moseley
 
Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...Rob Geurden
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024StefanoLambiase
 
Salesforce Implementation Services PPT By ABSYZ
Salesforce Implementation Services PPT By ABSYZSalesforce Implementation Services PPT By ABSYZ
Salesforce Implementation Services PPT By ABSYZABSYZ Inc
 
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)jennyeacort
 
CRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceCRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceBrainSell Technologies
 
PREDICTING RIVER WATER QUALITY ppt presentation
PREDICTING  RIVER  WATER QUALITY  ppt presentationPREDICTING  RIVER  WATER QUALITY  ppt presentation
PREDICTING RIVER WATER QUALITY ppt presentationvaddepallysandeep122
 
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
 
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanySuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanyChristoph Pohl
 
Precise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive GoalPrecise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive GoalLionel Briand
 
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
 
MYjobs Presentation Django-based project
MYjobs Presentation Django-based projectMYjobs Presentation Django-based project
MYjobs Presentation Django-based projectAnoyGreter
 
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...Akihiro Suda
 
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Angel Borroy López
 
Innovate and Collaborate- Harnessing the Power of Open Source Software.pdf
Innovate and Collaborate- Harnessing the Power of Open Source Software.pdfInnovate and Collaborate- Harnessing the Power of Open Source Software.pdf
Innovate and Collaborate- Harnessing the Power of Open Source Software.pdfYashikaSharma391629
 
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
 
Post Quantum Cryptography – The Impact on Identity
Post Quantum Cryptography – The Impact on IdentityPost Quantum Cryptography – The Impact on Identity
Post Quantum Cryptography – The Impact on Identityteam-WIBU
 

Recently uploaded (20)

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 - ...
 
Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)
 
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
 
Comparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdfComparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdf
 
Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
 
Salesforce Implementation Services PPT By ABSYZ
Salesforce Implementation Services PPT By ABSYZSalesforce Implementation Services PPT By ABSYZ
Salesforce Implementation Services PPT By ABSYZ
 
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
 
CRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceCRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. Salesforce
 
PREDICTING RIVER WATER QUALITY ppt presentation
PREDICTING  RIVER  WATER QUALITY  ppt presentationPREDICTING  RIVER  WATER QUALITY  ppt presentation
PREDICTING RIVER WATER QUALITY ppt presentation
 
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
 
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanySuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
 
Precise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive GoalPrecise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive Goal
 
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
 
MYjobs Presentation Django-based project
MYjobs Presentation Django-based projectMYjobs Presentation Django-based project
MYjobs Presentation Django-based project
 
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...
 
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
 
Innovate and Collaborate- Harnessing the Power of Open Source Software.pdf
Innovate and Collaborate- Harnessing the Power of Open Source Software.pdfInnovate and Collaborate- Harnessing the Power of Open Source Software.pdf
Innovate and Collaborate- Harnessing the Power of Open Source Software.pdf
 
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
 
Post Quantum Cryptography – The Impact on Identity
Post Quantum Cryptography – The Impact on IdentityPost Quantum Cryptography – The Impact on Identity
Post Quantum Cryptography – The Impact on Identity
 

Internationalizing The New York Times