2014-05 Frames—PHP|tek

113
Frames: Inside the Challenges at Wikipedia Terry Chay, Director of Features Engineering @ Wikimedia Foundation Opening Keynote, php[tek] 2014 2014-05-21 09:00-10:00 CDT

description

PDF version of slides from Opening Keynote at PHP|tek 2014

Transcript of 2014-05 Frames—PHP|tek

Page 1: 2014-05 Frames—PHP|tek

Frames:Inside the Challenges at Wikipedia

Terry Chay, Director of Features Engineering @ Wikimedia Foundation!

Opening Keynote, php[tek] 20142014-05-21 09:00-10:00 CDT

Page 2: 2014-05 Frames—PHP|tek

Frames:Inside the Challenges at Wikipedia

Page 3: 2014-05 Frames—PHP|tek

Who am I?

https://commons.wikimedia.org/wiki/File:Wiki-ah-thu-_MG_8382-0203.jpg

Page 4: 2014-05 Frames—PHP|tek

How did I get here?

Page 5: 2014-05 Frames—PHP|tek

A long time ago, in a startup far, far away, I was a PHP programmer…

Page 6: 2014-05 Frames—PHP|tek

Then this happened…

Then Zend made this deck of cards…

Page 7: 2014-05 Frames—PHP|tek

Not quite unlike…

Page 8: 2014-05 Frames—PHP|tek

…and…

other playing cards (preceded and followed)

Page 9: 2014-05 Frames—PHP|tek

PHP Terrorist

Page 10: 2014-05 Frames—PHP|tek

Director of Features Engineering at the Wikimedia Foundation

Page 11: 2014-05 Frames—PHP|tek

• PHP 5.6 and beyond — Adam Harvey (Wed 10:30a)

• Becoming a GoPHPer — Paddy Foran (Wed 3:30p)

• JavaScript’s Difficult Concepts — Jeff Carouth (Wed 5p)

• Contributing to Core — Ben Ramsey (Wed 5p)

• Threading in PHP — Stefan Willkommer (Wed 5p)

• Modern PHP — Ben Ramsey (Thr 10:30a)

• Async PHP with React — Jeremy Mikola (Thr 10:30a)

• Obtaining Closure with Anonymous Functions — Andy Casell (Thr noon)

• Recursion: Making Big Problem's Smaller — Jeremy Lindblom (Thr noon)

• Functional PHP — Larry Garfield (Thr 2p)

Programming Language(s)

Page 12: 2014-05 Frames—PHP|tek

Director of Features Engineering at the Wikimedia Foundation

Page 13: 2014-05 Frames—PHP|tek

What is the Wikimedia Foundation?

Page 14: 2014-05 Frames—PHP|tek

Half a billlion visitors

0

150000000

300000000

450000000

600000000

2008 2009 2010 2011 2012 2013 2014

Page 15: 2014-05 Frames—PHP|tek

Frames

http://commons.wikimedia.org/wiki/File:Frames_for_sale.JPG

Page 16: 2014-05 Frames—PHP|tek

• How to Hack Conversations — Greg Baugues (Wed noon)

• How to Get There — Larry Ullman (Thr 9a)

• Adventures in Contract Development — Tim Lytle (Thr noon)

• How To Be A Great Developer —Edward Finkler (Thr 2p)

• Working with difficult people — Laura Thomson (Thr 3:30p)

• Practical Software Estimation — Chuck Reeves (Thr 5p)

• Git and Github: Working Effectively on a Team — Jeff Carouth (Fri 10:30a)

Development (process, personal, team)

Page 17: 2014-05 Frames—PHP|tek

Frames

http://commons.wikimedia.org/wiki/File:Frames_for_sale.JPG

Page 18: 2014-05 Frames—PHP|tek

What are Frames?

As Lakoff notes, "On the day that George W. Bush took office, the words "tax relief" started coming out of the White House."… Lakoff insists that liberals must cease using terms like… tax relief because they are manufactured specifically to allow the possibilities of only certain types of opinions. Tax relief for example, implies explicitly that taxes are an affliction, something someone would want "relief" from.

—Wikipedia, Framing (social sciences)

Page 19: 2014-05 Frames—PHP|tek

FRAME: Core Values

In 17 of the 18 pairs of companies in our research, we found the visionary company was guided more by a core ideology—core values and a sense of purpose beyond just making money—than the comparison company was. A deeply held core ideology gives a company both a strong sense of identity and a thread of continuity that holds the organization together in the face of change.—Jim Collins

Page 20: 2014-05 Frames—PHP|tek

What is your organizations core values?

Page 21: 2014-05 Frames—PHP|tek

Wikimedia Foundation Vision Statement

Imagine a world in which every single human being can freely share in the sum of all knowledge.

Page 22: 2014-05 Frames—PHP|tek

Features Engineering

Page 23: 2014-05 Frames—PHP|tek

• Advanced Date/Time Handling with PHP — Derick Rethans (Wed 10:30a)

• Grokking Regex — David Stockton (Wed 3:30p)

• Shell Revolution — Christopher Stone (Fri 10:30a)

Language “Features”

Page 24: 2014-05 Frames—PHP|tek

Features Engineering

Page 25: 2014-05 Frames—PHP|tek

This is about my minions!

Page 26: 2014-05 Frames—PHP|tek

Pair programming

Page 27: 2014-05 Frames—PHP|tek

MINIONS:VisualEditor

+ Timo Tijhof+ Alex Monk+ (hiring)

Trevor Parscal Roan Kattouw

Ed Sanders Moriel Schottlenderhttp://wikimediafoundation.org/wiki/Staff_and_contractors

Page 28: 2014-05 Frames—PHP|tek

Let’s talk UI/UX

It’s the language of the Internet

Page 29: 2014-05 Frames—PHP|tek

• No Modes — Andy Cassell (Thr 3:30p)

• Avoiding the Programmer's Interface — Eryn O'Neil (Thr 10:30a)

UI and UX

Page 30: 2014-05 Frames—PHP|tek

Let’s talk UI/UX

It’s the language of the Internet

Page 31: 2014-05 Frames—PHP|tek

FRAME: Affordance

Affordances are qualities that enable discovering actions without thinking.

—Wikipedia, Affordance

Page 32: 2014-05 Frames—PHP|tek

FRAME: Affordance

Affordances are qualities that enable discovering actions without thinking.!

—Wikipedia, Affordance

Page 33: 2014-05 Frames—PHP|tek
Page 34: 2014-05 Frames—PHP|tek

The Visual Editor as the Alpha Affordance

Page 35: 2014-05 Frames—PHP|tek

Editing in “source” Mode (Wikitext)

Page 36: 2014-05 Frames—PHP|tek

Editing in the VisualEditor

Page 37: 2014-05 Frames—PHP|tek

MINIONS: Parsoid Team

Subbu Sastry

C Scott Ananian Marc Ordinas i Llopis Arlo Breault

Matthew Flaschen

http://wikimediafoundation.org/wiki/Staff_and_contractors

Page 38: 2014-05 Frames—PHP|tek

PHP Parser

HTMLWikitext PHP Parser

Page 39: 2014-05 Frames—PHP|tek

HTMLWikitext PHP ParserParsoid

PHP Parser

Parsoid Serializer

Page 40: 2014-05 Frames—PHP|tek

• Accelerating Web Applications with Varnish — Samatha Quinones (Wed 10:30a)

• Static Sites with Sculpin — Beau Simensen (Thr noon)

• HHVM in 2014 — Elizabeth Smith (Thr 3:30p)

• Grocking Browser Performance — Josh Holmes (Thr 5p)

• Scaling PHP in the real world! —Dustin Whittle (Fri 10:30a)

Performance and Scaling

Page 41: 2014-05 Frames—PHP|tek

HTMLParsoid

PHP Parser

Wikitext

Parsoid Serializer

Page 42: 2014-05 Frames—PHP|tek
Page 43: 2014-05 Frames—PHP|tek
Page 44: 2014-05 Frames—PHP|tek
Page 45: 2014-05 Frames—PHP|tek

MINIONS: Growth

Matthew Flaschen

Rob Moen Sam Smith Andrew Russell Greenhttp://wikimediafoundation.org/wiki/Staff_and_contractors

Page 46: 2014-05 Frames—PHP|tek

0

15000

30000

45000

60000

2001 2006 2011

EnWiki Active Editors 2001-2007

Page 47: 2014-05 Frames—PHP|tek

0

15000

30000

45000

60000

2001 2006 2011

Frame: Hockey Stick (growth)

Page 48: 2014-05 Frames—PHP|tek

Viral Growth

signup send e-mails read e-mail click link

new user

Page 49: 2014-05 Frames—PHP|tek

Viral Growth

signup send e-mails read e-mail click link

new user

v = ∏(dropoffs) *(size of address book)

Page 50: 2014-05 Frames—PHP|tek

v≥1v<1

Page 51: 2014-05 Frames—PHP|tek

Smiley Story:-)

Page 52: 2014-05 Frames—PHP|tek

Smiley Story:-(

Page 53: 2014-05 Frames—PHP|tek

A-B Testing

Page 54: 2014-05 Frames—PHP|tek

• Why You Can't Test — Chris Hartjes (Wed 3:30p)

• Mocking Dependencies in PHPUnit — Matt Frost (Fri 9a)

Testing

Page 55: 2014-05 Frames—PHP|tek

A-B Testing

Page 56: 2014-05 Frames—PHP|tek

A-B Testing

Page 57: 2014-05 Frames—PHP|tek
Page 58: 2014-05 Frames—PHP|tek

\

Page 59: 2014-05 Frames—PHP|tek

MINIONS: Core Features

S PageBenny Situ

Matthias Mullie Shahyar G Andrew Garrett

+ Erik Bernhardson

+Kunal Metha

http://wikimediafoundation.org/wiki/Staff_and_contractors

Page 60: 2014-05 Frames—PHP|tek

Habits

Page 61: 2014-05 Frames—PHP|tek
Page 62: 2014-05 Frames—PHP|tek

Habit Loop

Cue

Routine

Reward

Page 63: 2014-05 Frames—PHP|tek

different userCue: See Wall Post/

Tweet

Routine: Click on stuff

Reward: Brag on social network

Gameification Habit Loop

Cue

Routine

Reward

Page 64: 2014-05 Frames—PHP|tek

Friday, July 13, 12

Echo & Flow

Page 65: 2014-05 Frames—PHP|tek

Echo & Flow

Page 66: 2014-05 Frames—PHP|tek

• From SQL to noSQL — Derick Rethans (Thr 10:30a)

• Schemas for the Real World — Carina C. Zona (Thr 2p)

• Exploiting new MySQL Features — Dave Stokes (Fri 9a)

Databases and Data Design

Page 67: 2014-05 Frames—PHP|tek

Echo & Flow

Page 68: 2014-05 Frames—PHP|tek

MINIONS: Fundraising Engineering

http://wikimediafoundation.org/wiki/Staff_and_contractors

(TBA)

Katie Horn

Sherah SmithAdam Wight

Page 69: 2014-05 Frames—PHP|tek

• Security Is Not a Feature — Elizabeth Smith (Wed 2p)

• Basic Intrusion Detections With PHPIDS — Gregory Wilson (Wed 3:30p)

• Two Factor Authentication and You —Christopher Stone (Thr 5p)

Security

Page 70: 2014-05 Frames—PHP|tek

MINIONS: Fundraising Engineering

http://wikimediafoundation.org/wiki/Staff_and_contractors

(TBA)

Katie Horn

Sherah SmithAdam Wight

Page 71: 2014-05 Frames—PHP|tek

FRAME:Data-Driven

Page 72: 2014-05 Frames—PHP|tek

FRAME:Data-Informed

Page 73: 2014-05 Frames—PHP|tek

MINIONS: Services

(HIRING)

Gabriel Wicke

Matthew Walker (HIRING)

Page 74: 2014-05 Frames—PHP|tek

Frame: Service Oriented Architecture

Page 75: 2014-05 Frames—PHP|tek

• Introduction to October CMS (Laravel) — Collin Schneider (Wed noon)

• How Silex and Cilex became the glue for a media transcoding application — Stefan Koopmanship (Wed noon)

• What to expect from Drupal 8 — Larry Garfield (Wed 2p)

• Building Modules for Drupal 8 — Brant Wynn (Thr 3:30p)

• Faster Web Development with Yii 2 — Larry Ullman (Fri 9a)

Frameworks and CMSs

Page 76: 2014-05 Frames—PHP|tek

• Introduction to oAuth —Matt Frost (Wed 10:30a)

• Building Web Service Clients with Guzzle — Jeremy Lindblom (Thr 5p)

• Socket Programming with PHP — Elizabeth Smith (Fri 9a)

APIs and 3rd party services

Page 77: 2014-05 Frames—PHP|tek

Frame: Service Oriented Architecture

Page 78: 2014-05 Frames—PHP|tek
Page 79: 2014-05 Frames—PHP|tek

Challenges

Page 80: 2014-05 Frames—PHP|tek

• Building scalable PHP applications using Google’s App Engine — Ian Barber (Wed 2p)

• Virtualization for Developers —John Coggeshall (Wed 5p)

• Composer: Stability and Semantic Versioning Demystified — Beau Simensen (Thr 2p)

Packaging and Operations

Page 81: 2014-05 Frames—PHP|tek

Challenges

Page 82: 2014-05 Frames—PHP|tek

CHALLENGE: “Oh Shit!” Graph

0

15000

30000

45000

60000

2001 2006 20112001 2006 2011

40%

30%

20%

10%

Page 83: 2014-05 Frames—PHP|tek

FRAME: Heat Death

Page 84: 2014-05 Frames—PHP|tek

Getting Started and Guided Tour

• To reverse the editor decline would take between 1000-2000 additional active editors per month

• If this 2% activates at the same rate as the baseline, this gets us halfway there

0

25

50

75

100

% of total

Baseline Getting Started Edit Edit

Page 85: 2014-05 Frames—PHP|tek

CHALLENGE: Diversity

Page 86: 2014-05 Frames—PHP|tek

Places in world that humans have named

Page 87: 2014-05 Frames—PHP|tek

Places in the world which have a geographically tagged Wikipedia article.

Page 88: 2014-05 Frames—PHP|tek

Gender Gap:!

Total Internet

Source: Comscore

MaleFemale

Page 89: 2014-05 Frames—PHP|tek

Gender Gap:Wikipedia Readership

Source: Comscore

MaleFemale

Page 90: 2014-05 Frames—PHP|tek

Gender Gap:Wikipedia Active Editors

Source: 2011 Editor Survey

MaleFemale

Page 91: 2014-05 Frames—PHP|tek

Effect on Movie Gender on Article Length

Page 92: 2014-05 Frames—PHP|tek

CHALLENGE: Mobile

Page 93: 2014-05 Frames—PHP|tek

• Adaptive Delivery — Josh Trout (Wed noon)

• Stop! Hammer time (HammerJS) — Josh Trout (Fri 10:30a)

Mobile

Page 94: 2014-05 Frames—PHP|tek

CHALLENGE: Mobile

Page 95: 2014-05 Frames—PHP|tek

Desktop vs. Mobile PageViews (proj)

Page 96: 2014-05 Frames—PHP|tek

Dimensionless numbers

Page 97: 2014-05 Frames—PHP|tek

(Real Desktop v. Mobile)

• Currently 14-18% of Wikipedias page views are Mobile

• Compares favorably to: overall Internet 18%

• However:

• Yelp is at 44%

• Pinterest is at 75%

• Facebook’s mobile visitors are 78%

• (Facebook bought out WhatsApp for $17-$19 billion)?! Hmmm…

Page 98: 2014-05 Frames—PHP|tek

Quotes from FY2014-2015 Annual Plan

• “Our mobile platform, for example, has experienced a dramatic increase in pageviews since we upgraded it in 2011.”

• “…the release of mobile editing on smartphones outperformed our expectations, suggesting that, despite our previous assumptions, users are interested in editing from mobile devices.”

• “Alongside the potential risk identified above regarding recent movement of page views from desktop to mobile, desktop readers donate three times more often than mobile readers.”

• “We are also expanding our product and engineering teams to implement our mobile strategy, in response to the dramatic increase in mobile traffic we are seeing throughout the world.”

Page 99: 2014-05 Frames—PHP|tek

CHALLENGE: Resistance to change

Page 100: 2014-05 Frames—PHP|tek

Wikipedia reverts the Visual Editor

• https://en.wikipedia.org/wiki/Wikipedia:VisualEditor/RFC

• https://en.wikipedia.org/wiki/Wikipedia:VisualEditor/Default_State_RFC

• https://en.wikipedia.org/w/index.php?title=Wikipedia:Administrators%27_noticeboard&oldid=574249260

Page 101: 2014-05 Frames—PHP|tek

Editing San Francisco

Page 102: 2014-05 Frames—PHP|tek

FRAME: Arrows Impossibility Theorem

• unrestricted domain• non-dictatorship•Pareto efficiency• independence of irrelevant alternatives

Page 103: 2014-05 Frames—PHP|tek

Parting Shot (Frame)

Page 104: 2014-05 Frames—PHP|tek

http://commons.wikimedia.org/wiki/File:Chicago_Downtown_Aerial_View.jpg

Page 105: 2014-05 Frames—PHP|tek

FRAME: The Internet as a City

Page 106: 2014-05 Frames—PHP|tek

A vibrant city supports lot of private businesses

https://commons.wikimedia.org/wiki/File:Giordano%27s_Deep_Dish_Pizza.jpghttps://commons.wikimedia.org/wiki/File:Chicago_bot.jpghttps://commons.wikimedia.org/wiki/File:Oprah_Winfrey_in_Strøget,_Denmark_on_30_September_2009.jp https://upload.wikimedia.org/wikipedia/commons/e/e0/Oprah_Winfrey_Network.png

Page 107: 2014-05 Frames—PHP|tek

But there is a healthy amount of public spaces too…

http://commons.wikimedia.org/wiki/File:Cloud_Gate_Chicago.jpghttp://commons.wikimedia.org/wiki/File:Nighthawks_by_Edward_Hopper_1942.jpg https://commons.wikimedia.org/wiki/File:Grant_DeVolson_Wood_-_American_Gothic.jpghttp://commons.wikimedia.org/wiki/File:St_Joseph_the_Betrothed_080202.jpghttp://commons.wikimedia.org/wiki/File:Stjoessnowy.jpg

Page 108: 2014-05 Frames—PHP|tek

On the Internet there are a lot of private entities

Page 109: 2014-05 Frames—PHP|tek

…but is there are healthy number of public spaces?

Page 110: 2014-05 Frames—PHP|tek

Wikipedia is a big deal…

Page 111: 2014-05 Frames—PHP|tek

One of the few prominent public spaces

Page 112: 2014-05 Frames—PHP|tek

Maybe encourage you to…

CREATE!

Page 113: 2014-05 Frames—PHP|tek

The Power of Frames

http://commons.wikimedia.org/wiki/File:Frames_for_sale.JPG