SlideShare uma empresa Scribd logo
1 de 95
Baixar para ler offline
THE RECOMMENDATION
ENGINE:A CASE STUDY
TERRY CHAY (@TYCHAY)
HEAD OF ENGINEERING, CLARA HEALTH
SUNSHINEPHP 2019, MIAMI, FLORIDA
2019-02-09T16:00-17:00 EST
HTTPS://JOIND.IN/TALK/76824
WHO AM I? TERRY CHAY
PHP SOFTWARE
PHP PROGRAMMER SINCE 2000
DIRECTOR OF ENGINEERING, QIXO
2000-2001 (FIRST TRAVEL SEARCH
ENGINE)
SENIOR WEB ENGINEER, MYCASA
NETWORK 2002-2004 ("INTERNET
OF THINGS")
SCIENTIST, PLAXO 2004-2006 (ONE OF
THE FIRST "VIRAL-TUNED" WEBSITES)
SOFTWARE ARCHITECT,TAGGED,
2007-2009 (3RD LARGEST SOCIAL
NETWORK IN THE US)
PLANET TAKER,AUTOMATTIC
2009-2012 (AKA "WORDPRESS")
DIRECTOR OF FEATURES ENGINEERING,
WIKIMEDIA FOUNDATION, 2012-2014
(AKA "WIKIPEDIA")
PHP SOFTWARE
PHP PROGRAMMER SINCE 2000
DIRECTOR OF ENGINEERING, QIXO
2000-2001 (FIRST TRAVEL SEARCH
ENGINE)
SENIOR WEB ENGINEER, MYCASA
NETWORK 2002-2004 ("INTERNET
OF THINGS")
SCIENTIST, PLAXO 2004-2006 (ONE OF
THE FIRST "VIRAL-TUNED" WEBSITES)
SOFTWARE ARCHITECT,TAGGED,
2007-2009 (3RD LARGEST SOCIAL
NETWORK IN THE US)
PLANET TAKER,AUTOMATTIC
2009-2012 (AKA "WORDPRESS")
DIRECTOR OF FEATURES ENGINEERING,
WIKIMEDIA FOUNDATION, 2012-2014
(AKA "WIKIPEDIA")
YES, I WAS A PHP
PROGRAMMER…
SOMEWHERE IN THERE THIS HAPPENED…
AT OSCON ONE
DAY…
“…AND TERRY STARTED TAKING PICTURES AS
TERRY DOES WITH EVERYTHING.”
—CAL EVANS, EDITOR OF ZEND DEV ZONE,
IN A PRO::PHP WEBCAST
ABOUT THE ORIGIN OF PHP CARDS (2005)
AT OSCON ONE DAY…
ANDREI
ZMIEVSKI: LEAD
DEVELOPER PHP 6
WEZ FURLONG:
KING OF PECL
IF YOU ACTIVATE THIS
CARD’S PROFANITY SPECIAL
ABILITY, THE AUDIENCE IS
FROZEN FOR ONE TURN.
ME!
THE GEORGE
SCHLOSSNAGLE CARD
LOOKS A LOT LIKE ZAK
GRAENT. RARE &
POWERFUL!
AT OSCON ONE DAY…
AT ZENDCON ONE DAY…
PHPTERRORIST
"CHAY" GUEVARA
POWERED BY: THE
BLOOD OF YOUNG RUBY
DEVELOPERS
PHP
TERRORIST
ABOUT RUBY
ON RAILS
THE YEAR BEFORE…
ABOUT RUBY
ON RAILS
2006 -YEAR OF THE DOG
“IS PHP DOOMED?"
“FIRST THEY IGNORE YOU, THEN
THEY LAUGH AT YOU, THEN
THEY FIGHT YOU, THEN YOU
WIN.” —MAHATMA GHANDI
“UNLESS YOU’RE RUBY.” —
DANNY O'BRIEN, OSCON,
2006
IGNORE
GHANDI
STATE DIAGRAM
LAUGH
FIGHT
YOU WIN!
IGNORE
RUBY WINS!
RUBY ON RAILS
STATE DIAGRAM
(YEAR OF THE DOG - 2006)
THAT'S SOME SERIOUS
OPTIMIZATION! (RUBY MUST
HAVE A GREAT PORT OF
XDEBUG)
ABOUT RUBY
ON RAILS
2006 -YEAR OF THE DOG
TIOBE LANGUAGE OF
THE YEAR
IGNORE
LAUGH
FIGHT
YOU WIN!
GHANDI
STATE DIAGRAM
IGNORE
RUBY WINS!
RUBY ON RAILS
STATE DIAGRAM
(YEAR OF THE DOG - 2006)
ABOUT RUBY
ON RAILS
2006 -YEAR OF THE DOG
TIOBE LANGUAGE OF
THE YEAR
2007 -YEAR OF THE PIG
MY BIRTH YEAR
2007 - “IS RUBY THE
DOG AND PHP THE
DOGFOOD?”
2019-ALSO YEAR OF PIG
IGNORE
LAUGH
FIGHT
YOU WIN!
GHANDI
STATE DIAGRAM
IGNORE
RUBY WINS!
RUBY ON RAILS
STATE DIAGRAM
(YEAR OF THE PIG - 2007)
I LAUGH
TIOBE SOFTWARE RANKING
2002 2006 2019
PHP #5 (LoY) #6 #7
Ruby #39 #8 (LoY) #16
IGNORE
RUBY WINS!
RUBY ON RAILS
STATE DIAGRAM
(YEAR OF THE PIG - 2019)
I LAUGHSTILL LAUGHING!
ABOUT
FRAMEWORKS
“RAILS IS LIKE A
ROUNDED
RECTANGLE
AND PHP IS LIKE
A BALL OF
NAILS.”
— ME (2007 -YEAR OF THE
DOG)
“WHEN I SAY THAT PHP IS A BALL OF
NAILS, BASICALLY, PHP IS JUST THIS PIECE OF
SHIT THAT YOU JUST PUT TOGETHER—PUT ALL
THE PARTS TOGETHER—AND YOU THROW IT
AGAINST THE WALL AND IT FUCKING
STICKS.”
— ME (2007 -YEAR OF THE DOG)
IN THIS TALK, WHEN I SAY… YOU CAN DO IT IN…
RUBY, PYTHON, JAVA PHP
RUBY ON RAILS, DJANGO LARAVEL, CODEIGNITER, SYMFONY, CAKEPHP, WORDPRESS…
NUMPY, PANDA R, MATLAB, <INSERT MATRIX LIBRARY>…
2018-CURRENT
CLARA HEALTH
HEAD OF ENGINEERING
PATIENT-CENTRIC APPROACH TO
CONNECTING PEOPLE TO
CLINICAL TRIALS
PYTHON/DJANGO
2016-2018
RAISEME
PRINCIPAL ENGINEER
HELP STUDENTS EARN MONEY
FOR COLLEGE IN THE FORM OF
MICRO-SCHOLARSHIPS
RUBY ON RAILS
DAVE
CTO & CO-FOUNDER RAISEME (BY
ANSWERING AN AD ON CRAIGSLIST HIS
WIFE FOUND) — HIRED ME
BEEN A CONSULTANT SINCE THE
LATE 1990'S (BEEN DOING THIS
LONGER THAN ME!)
BEFORE THAT WAS IN A ROCK BAND
(CAN STILL DOWNLOAD HIS MUSIC ON
SPOTIFY)
QUIT SMOKING BY TAKING UP CROSS-
FIT
DOG NAMED BUFFY (HE IS REALLY
INTO BUFFY THE VAMPIRE
SLAYER)
CLARKE’S THREE LAWS (NOT IN ORDER)
1. CLARKE'S FIRST LAW
“WHEN A DISTINGUISHED BUT ELDERLY
SCIENTIST STATES THAT SOMETHING IS
POSSIBLE, HE IS ALMOST CERTAINLY
RIGHT.WHEN HE STATES THAT SOMETHING
IS IMPOSSIBLE, HE IS VERY PROBABLY
WRONG.”
— ARTHUR C. CLARK,“HAZARDS OF PROPHECY:THE
FAILURE OF IMAGINATION,” PROFILES OF THE FUTURE (1962)
I THINK IT SHOULD BE
POSSIBLE TO RECOMMEND
COLLEGES TO STUDENTS. IT'LL
BE LIKE COLLEGE SEARCH BUT
WITHOUT ANY INPUT FROM
THE USER.
MY
DISTINGUISHED,
BUT ELDERLY CTO
…AND I TAKE EXCEPTION TO
"ELDERLY." I DO CROSSFIT SO I'M
QUITE SPRY.
MY
DISTINGUISHED,
BUT ELDERLY CTO
…AND I TAKE EXCEPTION TO
"ELDERLY." I DO CROSSFIT SO I'M
QUITE SPRY.
MY
DISTINGUISHED,
BUT ELDERLY CTO
IN FACT, YOU SHOULD TRY
CROSSFIT TOO,TERRY. IT'D BE
IMPOSSIBLE FOR YOU NOT TO
LOVE IT LIKE I DO!
“VERY
PROBABLY
WRONG”
WHAT IS A RECOMMENDATION
ENGINE?
WHAT IS A
RECOMMENDATI
ON ENGINE?
A RECOMMENDER SYSTEM OR A
RECOMMENDATION SYSTEM
(SOMETIMES REPLACING
"SYSTEM" WITH A SYNONYM
SUCH AS PLATFORM OR
ENGINE) IS A SUBCLASS OF
INFORMATION FILTERING SYSTEM
THAT SEEKS TO PREDICT THE
"RATING" OR "PREFERENCE" A
USER WOULD GIVE TO AN ITEM.
—WIKIPEDIA
WHAT IS A
RECOMMENDATI
ON ENGINE?
USES ANALYTICAL DATA (AS
OPPOSED TO
TRANSACTIONAL DATA)
FOR A USER-CENTRIC
PURPOSE (AS OPPOSED TO A
BUSINESS-CENTRIC ONE).
ANALYTICAL DATA
BUSINESS-CENTRIC
TRANSACTIONAL DATA
USER-CENTRIC
ANALYTICAL DATA
BUSINESS-CENTRIC
TRANSACTIONAL DATA
USER-CENTRIC
SELECT COUNT(*)
FROM USERS AS U
INNER JOIN ACTIVITY AS A
ON A.USER_ID = U.USER_ID
WHERE A.TIMESTAMP > NOW()
- INTERVAL '30 DAYS'
HOW MANY USERS DID WE HAVE IN THE
LAST MONTH?USER WANTS TO LOG IN.
SELECT PASSWORD, USER_ID
FROM USERS
WHERE EMAIL =
'TYCHAY@PHP.NET'
ONLINE TRANSACTION PROCESSOR
(OLTP) (E.G. RDBMS)
ONLINE ANALYTICAL PROCESSOR
(OLAP) (E.G. "DATA WAREHOUSE")
PARACCEL (AT TAGGED)
• COLUMNAR-STORAGE
• MPP
• AWS REDSHIFT (AT RAISEME)
MYSQL/POSTGRESQL
• ROW-BASED RELATIONAL
STORAGE
• PARTITIONING
• AWS RDS
RECOMMENDATION ENGINE
ETL
EXTRACT
TRANSFORM
LOAD
AWESOME COLLEGE DISCOVERY CREW
ACDC?YEAH!!!
IMPROVE
STUDENT-
COLLEGE
MATCHING
STUDENTS ARE MORE ACTIVE IF THEY
FIND SCHOOLS THEY CARE ABOUT.
BUSINESS REVENUE WAS BASED
ON APPLICATION RATES OF FOLLOWED
COLLEGES
MAKE
PRODUCT
FLOW
INTUITIVE
GETTING MORE/BETTER
DATA WILL IMPROVE THE
MATCHING
“WHEN A DISTINGUISHED BUT ELDERLY
SCIENTIST STATES THAT SOMETHING IS
POSSIBLE, HE IS ALMOST CERTAINLY RIGHT.
WHEN HE STATES THAT SOMETHING IS
IMPOSSIBLE, HE IS VERY PROBABLY
WRONG.”
“I THINK IT SHOULD BE POSSIBLE TO
RECOMMEND COLLEGES TO STUDENTS. IT'LL
BE LIKE COLLEGE SEARCH BUT WITHOUT ANY
INPUT FROM THE USER.”
— ARTHUR C. CLARK,“HAZARDS OF PROPHECY:THE
FAILURE OF IMAGINATION,” PROFILES OF THE FUTURE (1962)
— DAVE, CO-FOUNDER, CTO RAISEME & MY BOSS (2017)
ALMOST CERTAINLY RIGHT
AMAZON
“CUSTOMERS ALSO
BOUGHT”
AMAZON
“FREQUENTLY BOUGHT
TOGETHER”
AMAZON
“RECOMMENDATION TO
YOU…”
ALMOST CERTAINLY RIGHT
NETFLIX
“BECAUSE YOU
WATCHED ORANGE IS
THE NEW BLACK”
NETFLIX
“POPULAR ON NETFLIX”
NETFLIX
“% MATCH”
RECOMMENDATIONS EVERYWHERE!
TWITTER
“WHO TO FOLLOW”
“TRENDING NOW”,
“MOMENTS”
SPOTIFY
“RECOMMENDED
SONGS”
“RELATED ARTISTS”, “YOUR
DAILY MIXES”, RADIO
OKCUPID
“DOUBLETAKE”
“BROWSE MATCHES”, % MATCH
REQUEST PIPELINE
GET
BUCKETS
/COLLEGES/RECOMMENDATIONS
FRONT-END ASKS API FOR LIST
OF BUCKETS
GET RECOMMENDATIONS
FOR BUCKET
/V1/COLLEGES/DISCOVER/WEST
RUBY API IS GIVEN BUCKET
NAME (E.G.WEST) AND USES
"EXTRA" DATA TO CALL GO
API FOR RECOMMENDATIONS
LIST OF
BUCKETS
/V1/COLLEGES/DISCOVER
LIKE "MOVIES WITH A STRONG
FEMALE LEAD” BUT ARE THINGS
LIKE "BECAUSE YOU LIVE IN THE
WEST” (STORING "EXTRA"
DATA ON SERVER)
RENDER
RESULTS IN
BUCKET
/COLLEGES/RECOMMENDATIONS
SIMILAR TO HOW COLLEGE
SEARCH RENDERS SEARCH
RESULTS.
JAVASCRIPT
RUBY
THE RECOMMENDATION ENGINE
THIS IS HOW THE REC ENGINE GENERATES
RECOMMENDATIONS FOR A BUCKET "WEST"
ROR API FOR BUCKET
“WEST”
/V1/COLLEGES/DISCOVER/WEST
RUBY API IS GIVEN BUCKET
NAME
POST EXTRA DATA TO
GO API
HTTPS://PROD-
RECOMMEND.RAISE.ME/API/V1/
DISCOVER/
CURL -I -H "CONTENT-TYPE: APPLICATION/JSON"
-X POST -D '{"CONTENT":{"STATES":["CA",
"AK", "AZ", "CO", "HI", "ID", "MT",
"NM", "NV", "OR", "UT", "WA", "WY"]},
"RANKING":"STUDENT-STUDENT",
"SCHOOL_ID":"535432DA385C8D490D000001",
"STATE":"CA",
"USERID":"5992010DE87EB427B1ECE416",
"ZIPCODE":"94121"}' HTTPS://PROD-
RECOMMEND.RAISE.ME/API/V1/DISCOVER/
EXTRACTS "RANKING"
AND UPLOADS RELEVANT
DATA TO PYTHON
COLLABORATIVE
FILTER (OR QUERIES
PYTHON PRE-COMPUTED
POPULARITY TABLE)
RANKING: "STUDENT-STUDENT",
STUDENTID:"5992010DE87EB427B1ECE416"
LOOK UP EXTRA DATA
/V1/COLLEGES/DISCOVER/WEST
{"CONTENT"=>{"STATES"=>["CA",
"AK", "AZ", "CO", "HI", "ID",
"MT", "NM", "NV", "OR", "UT",
"WA", "WY"]}, "RANKING"=>"STUDENT-
STUDENT",
"SCHOOL_ID"=>"535432DA385C8D490D00
0001", "STATE"=>"CA",
"USERID"=>"5992010DE87EB427B1ECE41
6", "ZIPCODE"=>"94121"}
JAVASCRIPT
RUBY
GOLANG
PYTHON
THE RECOMMENDATION ENGINE
PYTHON MAGIC
HAPPENS
EXEC /USR/BIN/PYTHON34
STUDENTRANKS.PY
5992010DE87EB427B1ECE416
VIEWS_PLUS_FOLLOWING
IN THIS CASE IT'S A COLLABORATIVE
FILTER SO IT QUERIES THE PYTHON
MODEL AND GETS BACK A RANKED LIST
OF COLLEGE IDS
RUN RESULT THROUGH
CONTENT FILTER RDS
SELECT T1.ID, X.RANK FROM COLLEGE_CONTENT_FILTER
AS T1 INNER JOIN ( STUFF FROM PYTHON ) AS X (ID,
RANK) ON X.ID = T1.ID WHERE X.ID IS NOT NULL
AND SCHOOL_STATE IN ("CA", "AK", "AZ", "CO",
"HI", "ID", "MT", "NM", "NV", "OR", "UT",
"WA", "WY"]) ORDER BY X.RANK
RUBY RECEIVES AND
DOES EXTRA
PROCESSING
/V1/COLLEGES/DISCOVER/WEST
E.G. MAPS
"5498FFD56E670ECD4E00010C
" TO "UNIVERSITY OF SAN
DIEGO", ADDS ICON AND
FOLLOW STATUS, ETC.
RETURN
RECOMMENDATIONS TO
JAVASCRIPT FOR
RENDERING
/V1/COLLEGES/DISCOVER/WEST
RUBY API IS GIVEN BUCKET
NAME (E.G.WEST
JAVASCRIPT
RUBY
GOLANG
PYTHON
RUBY ON RAILS
ASIDE:WHY THREE LANGUAGES (+ JAVASCRIPT)?
RUBY PYTHON
DJANGO
JAVASCRIPT
RUBY
GOLANG
PYTHON
BAD MARKETING DJANGO
…FIVE YEARS AGO
IN MY ONLY SLIGHTLY LESS
DISTINGUISHED, BUT STILL SPRY
YOOT, I WAS A LITERAL ROCKSTAR SO
I TOTALLY PREFER PYTHON ON A
PLANE!! 🎸
(IN AN ALTERNATE GIT TIMELINE BRANCH)
DJANGO REINHARDT
FRENCH JAZZ GUITARIST (1910-1953)
JAZZ IS NOT ROCK AND ROLL!!
MONTY PYTHON (1969)
WHAT?! AND PYTHON IS
NAMED AFTER MONTY PYTHON AND
NOT THE SNAKE?
WHAT HAS MONTY
PYTHON EVER DONE FOR US?
BUFFY COULD TOTALLY RAMMED A
HOLY HAND GRENADE OF
ANTIOCH DOWN THE SPANISH
INQUISITION’S THROAT AND
THEN DRIVEN A STAKE IN THEM
JUST TO MAKE SURE!
I CHOOSE RUBY ON RAILS
…AND
THAT IS
WHY I HAD
TO SPEND
TWO WEEKS
LEARNING
GOLANG
A little more fleshing out here
2. CLARKE'S THIRD LAW
“ANY SUFFICIENTLY
ADVANCED TECHNOLOGY
IS INDISTINGUISHABLE FROM
MAGIC.”
— ARTHUR C. CLARK,“HAZARDS OF PROPHECY:THE
FAILURE OF IMAGINATION,” PROFILES OF THE FUTURE (1973)
CLARKE'S THIRD
LAW
RECOMMENDO
COLLEGIA!
ANY SUFFICIENTLY ADVANCED
TECHNOLOGY IS INDISTINGUISHABLE FROM
MAGIC.
—ARTHUR C. CLARK,“HAZARDS OF
PROPHECY:THE FAILURE OF IMAGINATION,”
PROFILES OF THE FUTURE (1973)
ANY SUFFICIENTLY
ADVANCED
TECHNOLOGY IS
INDISTINGUISHABLE FROM
MAGIC.
—ARTHUR C. CLARK,
“HAZARDS OF
PROPHECY:THE FAILURE
OF IMAGINATION,”
PROFILES OF THE FUTURE
(1973)
ANY
ADVANCED
TECHNOLOGY
SUFFICIENTLY
MAGIC
INDISTINGUISHABLE FROM
.
IS
ADVANCED
TECHNOLOGY SUFFICIENTLY
MAGIC
INDISTINGUISHABLE FROM
.
IS
ADVANCED
TECHNOLOGY SUFFICIENTLY
MAGIC
INDISTINGUISHABLE FROM
?
IS
PYTHON SUFFICIENTLY
MAGIC
INDISTINGUISHABLE FROM
?
IS
IS
PYTHON SUFFICIENTLY
INDISTINGUISHABLE FROM
MAGIC?
A NON-TECH FRIEND WHO
HAD RECENTLY MOVED TO SAN
FRANCISCO…
OVERHEARD TWO GUYS
TALKING NEXT TO HER
“WHAT ARE YOU UP TO?"
"OH, I'M TRYING TO LEARN
PYTHON."
"EXCUSE ME, BUT I BELIEVE IT'S
CALLED PARSELTONGUE."
IS
PYTHON SUFFICIENTLY
INDISTINGUISHABLE FROM
MAGIC?
A NON-TECH FRIEND WHO
HAD RECENTLY MOVED TO SAN
FRANCISCO…
OVERHEARD TWO GUYS
TALKING NEXT TO HER
“WHAT ARE YOU UP TO?"
"OH, I'M TRYING TO LEARN
PYTHON."
"EXCUSE ME, BUT I BELIEVE IT'S
CALLED PARSELTONGUE."
RECOMMENDER SYSTEMS
RANKING FILTER
Content-based Filter
RANKING
SELECT T1.ID, X.RANK FROM
COLLEGE_CONTENT_FILTER AS T1
INNER JOIN ( STUFF FROM PYTHON )
AS X (ID, RANK) ON X.ID = T1.ID
WHERE X.ID IS NOT NULL AND
SCHOOL_STATE IN ("CA",
"AK", "AZ", "CO", "HI", "ID",
"MT", "NM", "NV", "OR",
"UT", "WA", "WY"]) ORDER
BY X.RANK
RECOMMENDER SYSTEMS
Collaborative
Filter (CF)
RANKING
RANKING
Content-based
PopularityTable
FILTER
Content-based
Filter
RECOMMENDER
RANKINGS
Collaborative
Filter (CF)
RANKING
RANKING
Content-based
PopularityTable
STUDENT-STUDENT: RANK
COLLEGES BASED ON SIMILAR
STUDENTS
COLLEGE-COLLEGE: RANK
COLLEGES BASED ON SIMILAR
COLLEGES
STATE-COLLEGE: RANK
COLLEGES BASED ON STUDENT'S
HOME STATE
HIGH SCHOOL-COLLEGE:
RANK COLLEGES BASED ON
STUDENT'S HIGH SCHOOL
ZIP-COLLEGE: RANK COLLEGES
BASED ON STUDENT'S ZIP CODE
STUDENT-STUDENT RECOMMENDER
Collaborative
Filter (CF)
RANKING
College
W
College
X
College
Y
College
Z
Student
A
1 2 3 4
Student
B
1 ? 3 4
Student
C
4 3 2 1
Student
D
? 3 2 1
Student
E
? 1 ? 1
TABLE IS BASED ON COLLEGE PAGE VIEWS (YOU CAN ADD/USE OTHER DATA
LIKE "FOLLOWS")
FIND TWO SMALLER MATRICES THAT APPROXIMATE THIS LARGE MATRIX (AKA
MATRIX FACTORIZATION(MF)) (THERE ARE OTHER APPROACHES)
USING NUMPY AND PANDAS MODULES IN PYTHON
StudentFactors
College FactorsX
STUDENT-STUDENT RECOMMENDER
Collaborative
Filter (CF)
RANKING
College
W
College
X
College
Y
College
Z
Student
A
1 2 3 4
Student
B
1 ? 3 4
Student
C
4 3 2 1
Student
D
? 3 2 1
Student
E
? 1 ? 1
StudentFactors
College FactorsX
STUDENT-STUDENT RECOMMENDER
Collaborative
Filter (CF)
RANKING
College
W
College
X
College
Y
College
Z
Student
A
1 2 3 4
Student
B
1 ~2 3 4
Student
C
4 3 2 1
Student
D
? 3 2 1
Student
E
? 1 ? 1
StudentFactors
College FactorsX
STUDENT-STUDENT RECOMMENDER
Collaborative
Filter (CF)
RANKING
College
W
College
X
College
Y
College
Z
Student
A
1 2 3 4
Student
B
1 ~2 3 4
Student
C
4 3 2 1
Student
D
? 3 2 1
Student
E
? 1 ? 1
StudentFactors
College FactorsX
STUDENT-STUDENT RECOMMENDER
Collaborative
Filter (CF)
RANKING
College
W
College
X
College
Y
College
Z
Student
A
1 2 3 4
Student
B
1 ~2 3 4
Student
C
4 3 2 1
Student
D
~4 3 2 1
Student
E
? 1 ? 1
StudentFactors
College FactorsX
STUDENT-STUDENT RECOMMENDER
Collaborative
Filter (CF)
RANKING
College
W
College
X
College
Y
College
Z
Student
A
1 2 3 4
Student
B
1 ~2 3 4
Student
C
4 3 2 1
Student
D
~4 3 2 1
Student
E
? 1 ? 1
StudentFactors
College FactorsX
STUDENT-STUDENT RECOMMENDER
Collaborative
Filter (CF)
RANKING
College
W
College
X
College
Y
College
Z
Student
A
1 2 3 4
Student
B
1 ~2 3 4
Student
C
4 3 2 1
Student
D
~4 3 2 1
Student
E
~1 1 ~2 1
StudentFactors
College FactorsX
STUDENT-STUDENT RECOMMENDER
Collaborative
Filter (CF)
RANKING
College
W
College
X
College
Y
College
Z
Student
A
1 2 3 4
Student
B
1 ~2 3 4
Student
C
4 3 2 1
Student
D
~4 3 2 1
Student
E
~1 1 ~2 1
RECOMMEND COLLEGES WITH THE HIGHEST PREDICTED VALUES
STUDENT B WE RECOMMEND Z,Y, X, THEN W LAST
STUDENT D WE RECOMMEND W, X,Y, AND Z LIST
STUDENT E WE RECOMMEND Y, THEN W, X OR Z
StudentFactors
College FactorsX
CF RANKING IMPLEMENTATION
Collaborative
Filter (CF)
RANKING
StudentFactors
College FactorsX
EC2
(1/HR)
AWS REDSHIFT
GO API SERVER
PICKLED MF MODEL
RECOMMENDER SYSTEMS
Collaborative
Filter (CF)
RANKING
RANKING
Content-based
PopularityTable
FILTER
Content-based
Filter
STATE-COLLEGE RECOMMENDER
College
W
College
X
College
Y
College
Z
State
Student
A
1 2 3 4 CA
Student
B
1 7 8 4 NY
Student
C
4 3 2 1 WA
Student
D
3 3 2 1 CA
Student
E
12 3 2 1
NY
Student
F
8 5 9 3 CA
RANKING
Content-based
PopularityTable
STATE-COLLEGE RECOMMENDER
College
W
College
X
College
Y
College
Z
State
Student
A
1 2 3 4 CA
Student
B
1 7 8 4 NY
Student
C
4 3 2 1 WA
Student
D
3 3 2 1 CA
Student
E
12 3 2 1
NY
Student
F
8 5 9 3 CA
RANKING
Content-based
PopularityTable
STATE-COLLEGE RECOMMENDER
College
W
College
X
College
Y
College
Z
State
Student
A
1 2 3 4 CA
Student
D
3 3 2 1 CA
Student
F
8 5 9 3 CA
Student
B
1 7 8 4 NY
Student
E
12 3 2 1
NY
Student
C
4 3 2 1 WA
RANKING
Content-based
PopularityTable
STATE-COLLEGE RECOMMENDER
College
W
College
X
College
Y
College
Z
State
Student
A,D,F
12 10 14 8 CA
Student
B, E
1 1 3 5 NY
Student
C
4 3 2 1 WA
RANKING
Content-based
PopularityTable
CA STUDENTS ARE RECOMMENDED…
1. COLLEGE Y
2. COLLEGE W
3. COLLEGE X
4. COLLEGE Z
POPULARITY TABLE RANKING IMPLEMENTATION
RANKING
Content-based
PopularityTable
AWS REDSHIFT
EC2
(1/DAY)
GO API SERVER
RDS
XPLENTY ETL
RECOMMENDER SYSTEMS
Collaborative
Filter (CF)
RANKING
RANKING
Content-based
PopularityTable
FILTER
Content-based
Filter
CONTENT-BASED FILTER IMPLEMENTATION
GO API SERVER
RDS
FILTER
Content-based
Filter
MONGODB
FILTER
Content-based
FilterXPLENTY ETL
SELECT T1.ID, X.RANK FROM
COLLEGE_CONTENT_FILTER AS T1
INNER JOIN ( RANKINGS FROM
CF ) AS X (ID, RANK) ON X.ID =
T1.ID WHERE X.ID IS NOT NULL
AND SCHOOL_STATE IN ("CA",
"AK", "AZ", "CO", "HI", "ID",
"MT", "NM", "NV", "OR",
"UT", "WA", "WY"]) ORDER
BY X.RANK
AWS REDSHIFTXPLENTY ETL
3. CLARKE'S SECOND LAW
“THE ONLY WAY OF DISCOVERING
THE LIMITS OF THE POSSIBLE IS
TO VENTURE A LITTLE WAY PAST
THEM INTO THE IMPOSSIBLE.”
— ARTHUR C. CLARK,“HAZARDS OF PROPHECY:THE
FAILURE OF IMAGINATION,” PROFILES OF THE FUTURE (1973)
“THE ONLY WAY OF DISCOVERING
THE LIMITS OF THE POSSIBLE IS
TO VENTURE A LITTLE WAY PAST
THEM INTO THE IMPOSSIBLE.”
— ARTHUR C. CLARK,“HAZARDS OF PROPHECY:THE
FAILURE OF IMAGINATION,” PROFILES OF THE FUTURE (1973)
CLARKE'S SECOND
LAW
THE ONLY WAY OF DISCOVERING THE LIMITS
OF THE POSSIBLE IS TO VENTURE A LITTLE
WAY PAST THEM INTO THE IMPOSSIBLE.
—ARTHUR C. CLARK,“HAZARDS OF
PROPHECY:THE FAILURE OF IMAGINATION,”
PROFILES OF THE FUTURE (1962)
YOUR MISSION
SHOULD YOU CHOOSE
TO ACCEPT IT…
• USE RECOMMENDERS ON
YOUR PROJECT! (TO BUILD
USER-CENTRIC, INTUITIVE
UI)
• COLLABORATIVE FILTER
• POPULARITY TABLE
• CONTENT FILTER
• …OR HYBRID COMBINATION
OF THE ABOVE OR OTHER
CREATIVE APPROACHES
MY OTHER
MISSIONS
(SEQUELS)…
1. THIS MISSION'S POST
CREDITS EASTER EGG
2. AUTOCOMPLETE @
CLARAHEALTH
3. MEETME @TAGGED
COLLEGE-
RECOMMENDATION
ENGINE MISSION
DEBRIEF (2018)
COLLEGE-
RECOMMENDATION
ENGINE MISSION
DEBRIEF (2018)
• JULY 2018: RAISEME CLOSED
THEIR SERIES B FUNDRAISING
($15M)
• AUGUST 2018: THEY FIRED
THE CTO/CO-FOUNDER
(DAVE)
• SEPTEMBER 2018: LATER THEY
FIRED THE PRINCIPAL ENGINEER
(ME)
• …ON THE OTHER HAND, I
HEAR THEY'RE HIRING ;-)
D
ISA
V
O
W
ED
D
ISA
V
O
W
ED
STARTED OCTOBER 2018
HEAD OF ENGINEERING
AUTOCOMPLETE
RECOMMENDER IN
DECEMBER 2018 FOR
CLINICAL TRIALS SEARCH
TERMS
EXAMPLE OF
RECOMMENDER
WITHOUT DATA
WAREHOUSE OR MATRIX/
STATS LIBRARY
CLARAHEALTH
CLARAHEALTH
PROBLEM:
AUTOCOMPLETE MEDICAL
TERMS FOR MEDICAL
SUBJECT HEADINGS
(MESH) TOO SLOW AND
INACCURATE:
POSTGRESQL TRIGRAM
TEXT-MATCHING ONLY
REQUIRES LARGE NESTED
QUERY
MESH RDSAWS ZAPPA
LAMBDA SERVERLESS
CLARAHEALTH
1. BUILD ETL OF POPULARITY
TABLES OF MESH TERMS IN
ACTUAL STUDIES
2. LOAD ELASTICSEARCH
COMPLETION SUGGESTER
3. WEIGHT SUGGEST TERMS
BASED ON TERM POPULARITY
IN STUDIES TABLE
(CAN BE IMPROVED LATER BY
CHANGING ETLS TO USE SEARCH
POPULARITY INSTEAD OF STUDY
POPULARITY)
AWS LAMBDA
MESH RDSAWS ZAPPA
LAMBDA SERVERLESS
STUDIES RDS
ELASTIC CLOUD
MEETME @
TAGGED (2008)
EXAMPLE OF A NON-
TRADITIONAL USE OF A
RECOMMENDER SYSTEM
MEETME @
TAGGED (2008)
PROBLEM: SITE HAD ONLY 20 MILLION
PAGE VIEWS PER DAY
WE HAD 40 MILLION USERS!
4 TOP PEOPLE (CEO, CTO, ME, DIR. OF
ENGINEERING) EACH WORKING ON
OWN PROJECT TO FIX THIS…
IN MAY 2007, HUNG OUT WITH
HOTORNOT.COM AT FACEBOOK'S FIRST
F8
"MEET ME" APP FAILED HARD!
I HAD THEORY THAT IT FAILED BECAUSE
FACEBOOK API ONLY SHOWS YOU YOUR
FRIENDS.
“WHO WANTS TO MEET THEIR FRIENDS?”
MEETME @
TAGGED (2008)
COULDN'T SHOW FRIENDS OR
FOAF
NOT RANDOM, RECOMMEND
PEOPLE YOU'D WANT TO MEET..
1. BUILD A NETWORK OF USERS AND
THEIR RELATIONSHIPS/SIMILAR
DATA (LOCATION, AGE, ETC.)
2. USE MONTE-CARLO RANDOM
WALK: 9,11 STEPS ENDING ON A
PERSON
3. MAP: DO IT 40 MILLION TIMES
4. REDUCE: SORT, KEEP TOP 1000
RESULTS
5. CACHE IT, RETURN TOP 20 TO
PHP
6. CONTENT FILTER THE LIST DOWN
AND PASS IT TO WEB CLIENT
7. AS MORE ARE RATED, PULL FROM
CACHE OR REPEAT GOTO 2.
PARAACCEL
ORACLE
MEMCACHE
MEETME @
TAGGED (2008)
(DON'T EVEN REMEMBER THE
OTHER 3 PEOPLE'S PROJECTS.)
FIRST WEEK: DOUBLED TRAFFIC
(40 MILLION PAGES/DAY)
AVERAGE USER WAS RATING 200
PEOPLE/SESSION
BY 2009, MEETME WAS DOING
100 MILLION PAGES/DAY
SITE WAS 250 MILLION PAGES/
DAY, 3RD LARGEST US SOCIAL
NETWORK
MEETME @
TAGGED (2008)
RATING PROFILE PIC TO MEET
STRANGERS SOUND FAMILIAR?
2011 MEETME.COM COPIED
IT (TAGGED SUES)
2012 MATCH.COM COPIED
THEM BUT APP SWIPE-LEFT/
SWIPE-RIGHT (TINDER)
2016 MEETME.COM BUYS
TAGGED
2009 I WAS GONE (IPHONE
APPS DIDN'T EXIST YET)
PLUS, I STOLE THE IDEA
FROM HOTORNOT.COM
FAILED FACEBOOK APP
ANYWAY.
I WAS DONE WITH DOING
EVIL SHIT.
SUMMARY
RECOMMENDER SYSTEM ARE CERTAINLY
POSSIBLE (FIRST LAW)
BUSINESS ANALYTICS
USED FOR TO BENEFIT USER
BUSINESS ANALYTICS - MAGIC →
TECHNOLOGY (THIRD LAW)
DATA WAREHOUSE (MANY USE SQL
AS THE QUERY LANGUAGE)
ETL: EXTRACT-TRANSFORM-LOAD
MATRIX FACTORIZATION
RDS, MODELS, ELASTICSEARCH
YOU CAN DO 90% IN PHP +
SERVICES
YOUR MISSION (IMPOSSIBLE) IS TO USE
RECOMMENDERS TO BUILD: INTUITIVE UIS
(SECOND LAW)
3 EXAMPLES: MEETME, COLLEGE
RECOMMENDATIONS,AUTOCOMPLETE
… ALSO, FUCK RUBY!
THANK YOU!
⟵ PLEASE RATE THIS TALK!HTTPS://JOIND.IN/TALK/76824
ADD ME! (SAY WE MET AT #SUNPHP19)

Mais conteúdo relacionado

Semelhante a 2019-02 The Recommendation Engine @ SunshinePHP

SoundCloud API Learnings
SoundCloud API LearningsSoundCloud API Learnings
SoundCloud API LearningsEric Wahlforss
 
Serendip Media - Public Deck
Serendip Media - Public DeckSerendip Media - Public Deck
Serendip Media - Public DeckSagee Ben Zedeff
 
Taking the Top Sport | How To Earn More Featured Snippets
Taking the Top Sport | How To Earn More Featured SnippetsTaking the Top Sport | How To Earn More Featured Snippets
Taking the Top Sport | How To Earn More Featured SnippetsDFWSEM
 
SearchLove London 2016 | Rob Bucci | Taking the Top Spot: How to Earn More Fe...
SearchLove London 2016 | Rob Bucci | Taking the Top Spot: How to Earn More Fe...SearchLove London 2016 | Rob Bucci | Taking the Top Spot: How to Earn More Fe...
SearchLove London 2016 | Rob Bucci | Taking the Top Spot: How to Earn More Fe...Distilled
 
⛳️ Votre API passe-t-elle le contrôle technique ?
⛳️ Votre API passe-t-elle le contrôle technique ?⛳️ Votre API passe-t-elle le contrôle technique ?
⛳️ Votre API passe-t-elle le contrôle technique ?François-Guillaume Ribreau
 
Collaboration between LINE, Microsoft and AI by the developers, for the devel...
Collaboration between LINE, Microsoft and AI by the developers, for the devel...Collaboration between LINE, Microsoft and AI by the developers, for the devel...
Collaboration between LINE, Microsoft and AI by the developers, for the devel...LINE Corporation
 
Of Gaps, Fillers and Empty Spaces… Fronteers2015 closing keynote
Of Gaps, Fillers and Empty Spaces… Fronteers2015 closing keynoteOf Gaps, Fillers and Empty Spaces… Fronteers2015 closing keynote
Of Gaps, Fillers and Empty Spaces… Fronteers2015 closing keynoteChristian Heilmann
 
"Whatever I can get..."
"Whatever I can get...""Whatever I can get..."
"Whatever I can get..."Dan Brickley
 
Building SADI Services Tutorial - SIB Workshop, Geneva, December 2015
Building SADI Services Tutorial - SIB Workshop, Geneva, December 2015Building SADI Services Tutorial - SIB Workshop, Geneva, December 2015
Building SADI Services Tutorial - SIB Workshop, Geneva, December 2015Mark Wilkinson
 
Jim Hendler's Presentation at SSSW 2011
Jim Hendler's Presentation at SSSW 2011Jim Hendler's Presentation at SSSW 2011
Jim Hendler's Presentation at SSSW 2011sssw2011
 
Linked Data in Use: Schema.org, JSON-LD and hypermedia APIs - Front in Bahia...
Linked Data in Use: Schema.org, JSON-LD and hypermedia APIs  - Front in Bahia...Linked Data in Use: Schema.org, JSON-LD and hypermedia APIs  - Front in Bahia...
Linked Data in Use: Schema.org, JSON-LD and hypermedia APIs - Front in Bahia...Ícaro Medeiros
 
The Unrealized Dream
The Unrealized DreamThe Unrealized Dream
The Unrealized DreamGreg Aper
 
Hip Hop & The Web: How A Culture Can Define A Process
Hip Hop & The Web: How A Culture Can Define A ProcessHip Hop & The Web: How A Culture Can Define A Process
Hip Hop & The Web: How A Culture Can Define A ProcessTravis Miller
 
Beyond Squishy: The Principles of Adaptive Design
Beyond Squishy: The Principles of Adaptive DesignBeyond Squishy: The Principles of Adaptive Design
Beyond Squishy: The Principles of Adaptive DesignBrad Frost
 
10 Steps To Make A Professional Article With Best SEO Strategies.pdf
10 Steps To Make A Professional Article With Best SEO Strategies.pdf10 Steps To Make A Professional Article With Best SEO Strategies.pdf
10 Steps To Make A Professional Article With Best SEO Strategies.pdfSuperHero Marketing
 
Will Critchlow The Inbounder
Will Critchlow  The Inbounder Will Critchlow  The Inbounder
Will Critchlow The Inbounder We Are Marketing
 
SearchLove San Diego 2018 | Rob Bucci | Featured Snippets: From Then to Now, ...
SearchLove San Diego 2018 | Rob Bucci | Featured Snippets: From Then to Now, ...SearchLove San Diego 2018 | Rob Bucci | Featured Snippets: From Then to Now, ...
SearchLove San Diego 2018 | Rob Bucci | Featured Snippets: From Then to Now, ...Distilled
 
SearchLove Boston 2016 | Will Critchlow | The Emerging Future of Search
SearchLove Boston 2016 | Will Critchlow | The Emerging Future of SearchSearchLove Boston 2016 | Will Critchlow | The Emerging Future of Search
SearchLove Boston 2016 | Will Critchlow | The Emerging Future of SearchDistilled
 
AMP Accelerated Mobile Pages - To AMPFinity And Beyond
AMP Accelerated Mobile Pages - To AMPFinity And BeyondAMP Accelerated Mobile Pages - To AMPFinity And Beyond
AMP Accelerated Mobile Pages - To AMPFinity And BeyondDawn Anderson MSc DigM
 

Semelhante a 2019-02 The Recommendation Engine @ SunshinePHP (20)

SoundCloud API Learnings
SoundCloud API LearningsSoundCloud API Learnings
SoundCloud API Learnings
 
Serendip Media - Public Deck
Serendip Media - Public DeckSerendip Media - Public Deck
Serendip Media - Public Deck
 
Prototyping: Helping to take away the suck
Prototyping: Helping to take away the suckPrototyping: Helping to take away the suck
Prototyping: Helping to take away the suck
 
Taking the Top Sport | How To Earn More Featured Snippets
Taking the Top Sport | How To Earn More Featured SnippetsTaking the Top Sport | How To Earn More Featured Snippets
Taking the Top Sport | How To Earn More Featured Snippets
 
SearchLove London 2016 | Rob Bucci | Taking the Top Spot: How to Earn More Fe...
SearchLove London 2016 | Rob Bucci | Taking the Top Spot: How to Earn More Fe...SearchLove London 2016 | Rob Bucci | Taking the Top Spot: How to Earn More Fe...
SearchLove London 2016 | Rob Bucci | Taking the Top Spot: How to Earn More Fe...
 
⛳️ Votre API passe-t-elle le contrôle technique ?
⛳️ Votre API passe-t-elle le contrôle technique ?⛳️ Votre API passe-t-elle le contrôle technique ?
⛳️ Votre API passe-t-elle le contrôle technique ?
 
Collaboration between LINE, Microsoft and AI by the developers, for the devel...
Collaboration between LINE, Microsoft and AI by the developers, for the devel...Collaboration between LINE, Microsoft and AI by the developers, for the devel...
Collaboration between LINE, Microsoft and AI by the developers, for the devel...
 
Of Gaps, Fillers and Empty Spaces… Fronteers2015 closing keynote
Of Gaps, Fillers and Empty Spaces… Fronteers2015 closing keynoteOf Gaps, Fillers and Empty Spaces… Fronteers2015 closing keynote
Of Gaps, Fillers and Empty Spaces… Fronteers2015 closing keynote
 
"Whatever I can get..."
"Whatever I can get...""Whatever I can get..."
"Whatever I can get..."
 
Building SADI Services Tutorial - SIB Workshop, Geneva, December 2015
Building SADI Services Tutorial - SIB Workshop, Geneva, December 2015Building SADI Services Tutorial - SIB Workshop, Geneva, December 2015
Building SADI Services Tutorial - SIB Workshop, Geneva, December 2015
 
Jim Hendler's Presentation at SSSW 2011
Jim Hendler's Presentation at SSSW 2011Jim Hendler's Presentation at SSSW 2011
Jim Hendler's Presentation at SSSW 2011
 
Linked Data in Use: Schema.org, JSON-LD and hypermedia APIs - Front in Bahia...
Linked Data in Use: Schema.org, JSON-LD and hypermedia APIs  - Front in Bahia...Linked Data in Use: Schema.org, JSON-LD and hypermedia APIs  - Front in Bahia...
Linked Data in Use: Schema.org, JSON-LD and hypermedia APIs - Front in Bahia...
 
The Unrealized Dream
The Unrealized DreamThe Unrealized Dream
The Unrealized Dream
 
Hip Hop & The Web: How A Culture Can Define A Process
Hip Hop & The Web: How A Culture Can Define A ProcessHip Hop & The Web: How A Culture Can Define A Process
Hip Hop & The Web: How A Culture Can Define A Process
 
Beyond Squishy: The Principles of Adaptive Design
Beyond Squishy: The Principles of Adaptive DesignBeyond Squishy: The Principles of Adaptive Design
Beyond Squishy: The Principles of Adaptive Design
 
10 Steps To Make A Professional Article With Best SEO Strategies.pdf
10 Steps To Make A Professional Article With Best SEO Strategies.pdf10 Steps To Make A Professional Article With Best SEO Strategies.pdf
10 Steps To Make A Professional Article With Best SEO Strategies.pdf
 
Will Critchlow The Inbounder
Will Critchlow  The Inbounder Will Critchlow  The Inbounder
Will Critchlow The Inbounder
 
SearchLove San Diego 2018 | Rob Bucci | Featured Snippets: From Then to Now, ...
SearchLove San Diego 2018 | Rob Bucci | Featured Snippets: From Then to Now, ...SearchLove San Diego 2018 | Rob Bucci | Featured Snippets: From Then to Now, ...
SearchLove San Diego 2018 | Rob Bucci | Featured Snippets: From Then to Now, ...
 
SearchLove Boston 2016 | Will Critchlow | The Emerging Future of Search
SearchLove Boston 2016 | Will Critchlow | The Emerging Future of SearchSearchLove Boston 2016 | Will Critchlow | The Emerging Future of Search
SearchLove Boston 2016 | Will Critchlow | The Emerging Future of Search
 
AMP Accelerated Mobile Pages - To AMPFinity And Beyond
AMP Accelerated Mobile Pages - To AMPFinity And BeyondAMP Accelerated Mobile Pages - To AMPFinity And Beyond
AMP Accelerated Mobile Pages - To AMPFinity And Beyond
 

Mais de terry chay

2017-11 Recommendation Engine @ RaiseMe
2017-11 Recommendation Engine @ RaiseMe2017-11 Recommendation Engine @ RaiseMe
2017-11 Recommendation Engine @ RaiseMeterry chay
 
2013-08 10 evil things - Northeast PHP Conference Keynote
2013-08 10 evil things - Northeast PHP Conference Keynote2013-08 10 evil things - Northeast PHP Conference Keynote
2013-08 10 evil things - Northeast PHP Conference Keynoteterry chay
 
10 Evil(ish) Things and how they relate to Features Engineering at the WMF
10 Evil(ish) Things and how they relate to Features Engineering at the WMF10 Evil(ish) Things and how they relate to Features Engineering at the WMF
10 Evil(ish) Things and how they relate to Features Engineering at the WMFterry chay
 
2011 07 Tales of Virality—OSCON
2011 07 Tales of Virality—OSCON2011 07 Tales of Virality—OSCON
2011 07 Tales of Virality—OSCONterry chay
 
2011 07 Living without your Linemen—OSCON
2011 07 Living without your Linemen—OSCON2011 07 Living without your Linemen—OSCON
2011 07 Living without your Linemen—OSCONterry chay
 
PHP Without PHP—Automattic
PHP Without PHP—AutomatticPHP Without PHP—Automattic
PHP Without PHP—Automatticterry chay
 
Broken Jewel—Automattic
Broken Jewel—AutomatticBroken Jewel—Automattic
Broken Jewel—Automatticterry chay
 
Photo to Finished
Photo to FinishedPhoto to Finished
Photo to Finishedterry chay
 
Tales of Virality—Automattic
Tales of Virality—AutomatticTales of Virality—Automattic
Tales of Virality—Automatticterry chay
 
PHP Without PHP—Confoo
PHP Without PHP—ConfooPHP Without PHP—Confoo
PHP Without PHP—Confooterry chay
 
Chinese Proverbs—PHP|tek
Chinese Proverbs—PHP|tekChinese Proverbs—PHP|tek
Chinese Proverbs—PHP|tekterry chay
 
PHP Without PHP—IPC
PHP Without PHP—IPCPHP Without PHP—IPC
PHP Without PHP—IPCterry chay
 

Mais de terry chay (13)

2017-11 Recommendation Engine @ RaiseMe
2017-11 Recommendation Engine @ RaiseMe2017-11 Recommendation Engine @ RaiseMe
2017-11 Recommendation Engine @ RaiseMe
 
2009-02 Oops!
2009-02 Oops!2009-02 Oops!
2009-02 Oops!
 
2013-08 10 evil things - Northeast PHP Conference Keynote
2013-08 10 evil things - Northeast PHP Conference Keynote2013-08 10 evil things - Northeast PHP Conference Keynote
2013-08 10 evil things - Northeast PHP Conference Keynote
 
10 Evil(ish) Things and how they relate to Features Engineering at the WMF
10 Evil(ish) Things and how they relate to Features Engineering at the WMF10 Evil(ish) Things and how they relate to Features Engineering at the WMF
10 Evil(ish) Things and how they relate to Features Engineering at the WMF
 
2011 07 Tales of Virality—OSCON
2011 07 Tales of Virality—OSCON2011 07 Tales of Virality—OSCON
2011 07 Tales of Virality—OSCON
 
2011 07 Living without your Linemen—OSCON
2011 07 Living without your Linemen—OSCON2011 07 Living without your Linemen—OSCON
2011 07 Living without your Linemen—OSCON
 
PHP Without PHP—Automattic
PHP Without PHP—AutomatticPHP Without PHP—Automattic
PHP Without PHP—Automattic
 
Broken Jewel—Automattic
Broken Jewel—AutomatticBroken Jewel—Automattic
Broken Jewel—Automattic
 
Photo to Finished
Photo to FinishedPhoto to Finished
Photo to Finished
 
Tales of Virality—Automattic
Tales of Virality—AutomatticTales of Virality—Automattic
Tales of Virality—Automattic
 
PHP Without PHP—Confoo
PHP Without PHP—ConfooPHP Without PHP—Confoo
PHP Without PHP—Confoo
 
Chinese Proverbs—PHP|tek
Chinese Proverbs—PHP|tekChinese Proverbs—PHP|tek
Chinese Proverbs—PHP|tek
 
PHP Without PHP—IPC
PHP Without PHP—IPCPHP Without PHP—IPC
PHP Without PHP—IPC
 

Último

On Starlink, presented by Geoff Huston at NZNOG 2024
On Starlink, presented by Geoff Huston at NZNOG 2024On Starlink, presented by Geoff Huston at NZNOG 2024
On Starlink, presented by Geoff Huston at NZNOG 2024APNIC
 
Call Now ☎ 8264348440 !! Call Girls in Shahpur Jat Escort Service Delhi N.C.R.
Call Now ☎ 8264348440 !! Call Girls in Shahpur Jat Escort Service Delhi N.C.R.Call Now ☎ 8264348440 !! Call Girls in Shahpur Jat Escort Service Delhi N.C.R.
Call Now ☎ 8264348440 !! Call Girls in Shahpur Jat Escort Service Delhi N.C.R.soniya singh
 
VIP Kolkata Call Girls Salt Lake 8250192130 Available With Room
VIP Kolkata Call Girls Salt Lake 8250192130 Available With RoomVIP Kolkata Call Girls Salt Lake 8250192130 Available With Room
VIP Kolkata Call Girls Salt Lake 8250192130 Available With Roomgirls4nights
 
'Future Evolution of the Internet' delivered by Geoff Huston at Everything Op...
'Future Evolution of the Internet' delivered by Geoff Huston at Everything Op...'Future Evolution of the Internet' delivered by Geoff Huston at Everything Op...
'Future Evolution of the Internet' delivered by Geoff Huston at Everything Op...APNIC
 
Radiant Call girls in Dubai O56338O268 Dubai Call girls
Radiant Call girls in Dubai O56338O268 Dubai Call girlsRadiant Call girls in Dubai O56338O268 Dubai Call girls
Radiant Call girls in Dubai O56338O268 Dubai Call girlsstephieert
 
GDG Cloud Southlake 32: Kyle Hettinger: Demystifying the Dark Web
GDG Cloud Southlake 32: Kyle Hettinger: Demystifying the Dark WebGDG Cloud Southlake 32: Kyle Hettinger: Demystifying the Dark Web
GDG Cloud Southlake 32: Kyle Hettinger: Demystifying the Dark WebJames Anderson
 
Best VIP Call Girls Noida Sector 75 Call Me: 8448380779
Best VIP Call Girls Noida Sector 75 Call Me: 8448380779Best VIP Call Girls Noida Sector 75 Call Me: 8448380779
Best VIP Call Girls Noida Sector 75 Call Me: 8448380779Delhi Call girls
 
Russian Call girls in Dubai +971563133746 Dubai Call girls
Russian  Call girls in Dubai +971563133746 Dubai  Call girlsRussian  Call girls in Dubai +971563133746 Dubai  Call girls
Russian Call girls in Dubai +971563133746 Dubai Call girlsstephieert
 
How is AI changing journalism? (v. April 2024)
How is AI changing journalism? (v. April 2024)How is AI changing journalism? (v. April 2024)
How is AI changing journalism? (v. April 2024)Damian Radcliffe
 
Call Girls Dubai Prolapsed O525547819 Call Girls In Dubai Princes$
Call Girls Dubai Prolapsed O525547819 Call Girls In Dubai Princes$Call Girls Dubai Prolapsed O525547819 Call Girls In Dubai Princes$
Call Girls Dubai Prolapsed O525547819 Call Girls In Dubai Princes$kojalkojal131
 
DDoS In Oceania and the Pacific, presented by Dave Phelan at NZNOG 2024
DDoS In Oceania and the Pacific, presented by Dave Phelan at NZNOG 2024DDoS In Oceania and the Pacific, presented by Dave Phelan at NZNOG 2024
DDoS In Oceania and the Pacific, presented by Dave Phelan at NZNOG 2024APNIC
 
Enjoy Night⚡Call Girls Dlf City Phase 3 Gurgaon >༒8448380779 Escort Service
Enjoy Night⚡Call Girls Dlf City Phase 3 Gurgaon >༒8448380779 Escort ServiceEnjoy Night⚡Call Girls Dlf City Phase 3 Gurgaon >༒8448380779 Escort Service
Enjoy Night⚡Call Girls Dlf City Phase 3 Gurgaon >༒8448380779 Escort ServiceDelhi Call girls
 
VIP Call Girls Kolkata Ananya 🤌 8250192130 🚀 Vip Call Girls Kolkata
VIP Call Girls Kolkata Ananya 🤌  8250192130 🚀 Vip Call Girls KolkataVIP Call Girls Kolkata Ananya 🤌  8250192130 🚀 Vip Call Girls Kolkata
VIP Call Girls Kolkata Ananya 🤌 8250192130 🚀 Vip Call Girls Kolkataanamikaraghav4
 
Call Girls In Sukhdev Vihar Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Sukhdev Vihar Delhi 💯Call Us 🔝8264348440🔝Call Girls In Sukhdev Vihar Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Sukhdev Vihar Delhi 💯Call Us 🔝8264348440🔝soniya singh
 
VIP 7001035870 Find & Meet Hyderabad Call Girls LB Nagar high-profile Call Girl
VIP 7001035870 Find & Meet Hyderabad Call Girls LB Nagar high-profile Call GirlVIP 7001035870 Find & Meet Hyderabad Call Girls LB Nagar high-profile Call Girl
VIP 7001035870 Find & Meet Hyderabad Call Girls LB Nagar high-profile Call Girladitipandeya
 
Chennai Call Girls Alwarpet Phone 🍆 8250192130 👅 celebrity escorts service
Chennai Call Girls Alwarpet Phone 🍆 8250192130 👅 celebrity escorts serviceChennai Call Girls Alwarpet Phone 🍆 8250192130 👅 celebrity escorts service
Chennai Call Girls Alwarpet Phone 🍆 8250192130 👅 celebrity escorts servicevipmodelshub1
 
VIP Kolkata Call Girl Dum Dum 👉 8250192130 Available With Room
VIP Kolkata Call Girl Dum Dum 👉 8250192130  Available With RoomVIP Kolkata Call Girl Dum Dum 👉 8250192130  Available With Room
VIP Kolkata Call Girl Dum Dum 👉 8250192130 Available With Roomdivyansh0kumar0
 
Challengers I Told Ya ShirtChallengers I Told Ya Shirt
Challengers I Told Ya ShirtChallengers I Told Ya ShirtChallengers I Told Ya ShirtChallengers I Told Ya Shirt
Challengers I Told Ya ShirtChallengers I Told Ya Shirtrahman018755
 
Low Rate Call Girls Kolkata Avani 🤌 8250192130 🚀 Vip Call Girls Kolkata
Low Rate Call Girls Kolkata Avani 🤌  8250192130 🚀 Vip Call Girls KolkataLow Rate Call Girls Kolkata Avani 🤌  8250192130 🚀 Vip Call Girls Kolkata
Low Rate Call Girls Kolkata Avani 🤌 8250192130 🚀 Vip Call Girls Kolkataanamikaraghav4
 
Hot Service (+9316020077 ) Goa Call Girls Real Photos and Genuine Service
Hot Service (+9316020077 ) Goa  Call Girls Real Photos and Genuine ServiceHot Service (+9316020077 ) Goa  Call Girls Real Photos and Genuine Service
Hot Service (+9316020077 ) Goa Call Girls Real Photos and Genuine Servicesexy call girls service in goa
 

Último (20)

On Starlink, presented by Geoff Huston at NZNOG 2024
On Starlink, presented by Geoff Huston at NZNOG 2024On Starlink, presented by Geoff Huston at NZNOG 2024
On Starlink, presented by Geoff Huston at NZNOG 2024
 
Call Now ☎ 8264348440 !! Call Girls in Shahpur Jat Escort Service Delhi N.C.R.
Call Now ☎ 8264348440 !! Call Girls in Shahpur Jat Escort Service Delhi N.C.R.Call Now ☎ 8264348440 !! Call Girls in Shahpur Jat Escort Service Delhi N.C.R.
Call Now ☎ 8264348440 !! Call Girls in Shahpur Jat Escort Service Delhi N.C.R.
 
VIP Kolkata Call Girls Salt Lake 8250192130 Available With Room
VIP Kolkata Call Girls Salt Lake 8250192130 Available With RoomVIP Kolkata Call Girls Salt Lake 8250192130 Available With Room
VIP Kolkata Call Girls Salt Lake 8250192130 Available With Room
 
'Future Evolution of the Internet' delivered by Geoff Huston at Everything Op...
'Future Evolution of the Internet' delivered by Geoff Huston at Everything Op...'Future Evolution of the Internet' delivered by Geoff Huston at Everything Op...
'Future Evolution of the Internet' delivered by Geoff Huston at Everything Op...
 
Radiant Call girls in Dubai O56338O268 Dubai Call girls
Radiant Call girls in Dubai O56338O268 Dubai Call girlsRadiant Call girls in Dubai O56338O268 Dubai Call girls
Radiant Call girls in Dubai O56338O268 Dubai Call girls
 
GDG Cloud Southlake 32: Kyle Hettinger: Demystifying the Dark Web
GDG Cloud Southlake 32: Kyle Hettinger: Demystifying the Dark WebGDG Cloud Southlake 32: Kyle Hettinger: Demystifying the Dark Web
GDG Cloud Southlake 32: Kyle Hettinger: Demystifying the Dark Web
 
Best VIP Call Girls Noida Sector 75 Call Me: 8448380779
Best VIP Call Girls Noida Sector 75 Call Me: 8448380779Best VIP Call Girls Noida Sector 75 Call Me: 8448380779
Best VIP Call Girls Noida Sector 75 Call Me: 8448380779
 
Russian Call girls in Dubai +971563133746 Dubai Call girls
Russian  Call girls in Dubai +971563133746 Dubai  Call girlsRussian  Call girls in Dubai +971563133746 Dubai  Call girls
Russian Call girls in Dubai +971563133746 Dubai Call girls
 
How is AI changing journalism? (v. April 2024)
How is AI changing journalism? (v. April 2024)How is AI changing journalism? (v. April 2024)
How is AI changing journalism? (v. April 2024)
 
Call Girls Dubai Prolapsed O525547819 Call Girls In Dubai Princes$
Call Girls Dubai Prolapsed O525547819 Call Girls In Dubai Princes$Call Girls Dubai Prolapsed O525547819 Call Girls In Dubai Princes$
Call Girls Dubai Prolapsed O525547819 Call Girls In Dubai Princes$
 
DDoS In Oceania and the Pacific, presented by Dave Phelan at NZNOG 2024
DDoS In Oceania and the Pacific, presented by Dave Phelan at NZNOG 2024DDoS In Oceania and the Pacific, presented by Dave Phelan at NZNOG 2024
DDoS In Oceania and the Pacific, presented by Dave Phelan at NZNOG 2024
 
Enjoy Night⚡Call Girls Dlf City Phase 3 Gurgaon >༒8448380779 Escort Service
Enjoy Night⚡Call Girls Dlf City Phase 3 Gurgaon >༒8448380779 Escort ServiceEnjoy Night⚡Call Girls Dlf City Phase 3 Gurgaon >༒8448380779 Escort Service
Enjoy Night⚡Call Girls Dlf City Phase 3 Gurgaon >༒8448380779 Escort Service
 
VIP Call Girls Kolkata Ananya 🤌 8250192130 🚀 Vip Call Girls Kolkata
VIP Call Girls Kolkata Ananya 🤌  8250192130 🚀 Vip Call Girls KolkataVIP Call Girls Kolkata Ananya 🤌  8250192130 🚀 Vip Call Girls Kolkata
VIP Call Girls Kolkata Ananya 🤌 8250192130 🚀 Vip Call Girls Kolkata
 
Call Girls In Sukhdev Vihar Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Sukhdev Vihar Delhi 💯Call Us 🔝8264348440🔝Call Girls In Sukhdev Vihar Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Sukhdev Vihar Delhi 💯Call Us 🔝8264348440🔝
 
VIP 7001035870 Find & Meet Hyderabad Call Girls LB Nagar high-profile Call Girl
VIP 7001035870 Find & Meet Hyderabad Call Girls LB Nagar high-profile Call GirlVIP 7001035870 Find & Meet Hyderabad Call Girls LB Nagar high-profile Call Girl
VIP 7001035870 Find & Meet Hyderabad Call Girls LB Nagar high-profile Call Girl
 
Chennai Call Girls Alwarpet Phone 🍆 8250192130 👅 celebrity escorts service
Chennai Call Girls Alwarpet Phone 🍆 8250192130 👅 celebrity escorts serviceChennai Call Girls Alwarpet Phone 🍆 8250192130 👅 celebrity escorts service
Chennai Call Girls Alwarpet Phone 🍆 8250192130 👅 celebrity escorts service
 
VIP Kolkata Call Girl Dum Dum 👉 8250192130 Available With Room
VIP Kolkata Call Girl Dum Dum 👉 8250192130  Available With RoomVIP Kolkata Call Girl Dum Dum 👉 8250192130  Available With Room
VIP Kolkata Call Girl Dum Dum 👉 8250192130 Available With Room
 
Challengers I Told Ya ShirtChallengers I Told Ya Shirt
Challengers I Told Ya ShirtChallengers I Told Ya ShirtChallengers I Told Ya ShirtChallengers I Told Ya Shirt
Challengers I Told Ya ShirtChallengers I Told Ya Shirt
 
Low Rate Call Girls Kolkata Avani 🤌 8250192130 🚀 Vip Call Girls Kolkata
Low Rate Call Girls Kolkata Avani 🤌  8250192130 🚀 Vip Call Girls KolkataLow Rate Call Girls Kolkata Avani 🤌  8250192130 🚀 Vip Call Girls Kolkata
Low Rate Call Girls Kolkata Avani 🤌 8250192130 🚀 Vip Call Girls Kolkata
 
Hot Service (+9316020077 ) Goa Call Girls Real Photos and Genuine Service
Hot Service (+9316020077 ) Goa  Call Girls Real Photos and Genuine ServiceHot Service (+9316020077 ) Goa  Call Girls Real Photos and Genuine Service
Hot Service (+9316020077 ) Goa Call Girls Real Photos and Genuine Service
 

2019-02 The Recommendation Engine @ SunshinePHP