How to stand on the shoulders of giants

32
GIANTS How To Stand On The Shoulders Of

description

The slides from my keynote at PHP NW 2011, about how every great breakthrough is built on the work that has come before it.

Transcript of How to stand on the shoulders of giants

Page 1: How to stand on the shoulders of giants

GIANTSHow To Stand On The Shoulders Of

Page 2: How to stand on the shoulders of giants
Page 3: How to stand on the shoulders of giants
Page 4: How to stand on the shoulders of giants

Open Source

Platforms

Academic

Hardware

Page 5: How to stand on the shoulders of giants
Page 6: How to stand on the shoulders of giants

“The best way to predict the future is to invent it.”- Alan Kay

Page 7: How to stand on the shoulders of giants
Page 8: How to stand on the shoulders of giants
Page 9: How to stand on the shoulders of giants

Discover

Research

Produce

Page 10: How to stand on the shoulders of giants

BCPL

GET "libhdr"

LET start() = VALOF{ writes("Hello world*n") RESULTIS 0}

Page 11: How to stand on the shoulders of giants

B

main() { a 'Hello world' ; putchar (a); putchar ('*n');}

Page 12: How to stand on the shoulders of giants

C

#include <stdio.h>

int main(void){ printf("hello, world\n"); return 0;}

Page 13: How to stand on the shoulders of giants

PHP/FI

<? if(!$PHP_AUTH_USER) { Header("WWW-authenticate: basic realm=\"My Realm\""); Header("HTTP/1.0 401 Unauthorized"); echo "Cancelled\n" exit;} else { echo "Hello $PHP_AUTH_USER.<P>";} >

Page 14: How to stand on the shoulders of giants

PHP 3

<? function hitcount($counter_file){ if ( file_exists($counter_file) ) { $fp=fopen($counter_file,"r"); $count=0+fgets($fp,20); fclose($fp); } $fp=fopen($counter_file,"w"); fputs($fp,$count++); fclose($fp); return ($count);} ?>

Page 15: How to stand on the shoulders of giants
Page 16: How to stand on the shoulders of giants

QuickSortfunction qsort($nums) { if(count($nums) < 2) {return $nums;} $pivot = array_rand($nums); $p1_val = $nums[$pivot]; unset($nums[$pivot]); $less = $more = array(); foreach( $nums as $n ) { if($n <= $p1_val) { $less[] = $n;} else { $more[] = $n; } } return array_merge(qsort($less), array($pivot_val), qsort($more));}

1960

Page 17: How to stand on the shoulders of giants
Page 18: How to stand on the shoulders of giants

Dual Pivot QuickSort2009

Page 19: How to stand on the shoulders of giants

function dsort($nums) { if(count($nums) < 2) {return $nums;} $p1 = array_rand($nums); $v1 = $nums[$p1]; unset($nums[$p1]); $p2 = array_rand($nums); $v2 = $nums[$p2]; unset($nums[$p2]); if($v1>$v2) list($v1,$v2)=array($v1,$v2); $s1 = $s2 = $s3 = array(); foreach($nums as $n) { if ($n <= $v1) { $s1[] = $n; } else if($n <= $v2) { $s2[] = $n; } else { $s3[] = $n; } } return array_merge(dsort($s1),array($v1), dsort($s2),array($v2),dsort($s3)); }

Page 20: How to stand on the shoulders of giants

“...is said to have saved the Internet from collapsing due to traffic in 1988-1989”- en.wikipedia.org/wiki/Van_Jacobson

Van Jacobson

Page 21: How to stand on the shoulders of giants

Discover

Research

Synthesise

Produce

Page 22: How to stand on the shoulders of giants
Page 23: How to stand on the shoulders of giants
Page 24: How to stand on the shoulders of giants

“The whole field had suffered blinders; in some sense search really did need two people who were never tainted by people like me to come up with that shake up” – Amit Singhal, Bell Labs

Page 25: How to stand on the shoulders of giants
Page 26: How to stand on the shoulders of giants
Page 27: How to stand on the shoulders of giants
Page 28: How to stand on the shoulders of giants
Page 29: How to stand on the shoulders of giants
Page 30: How to stand on the shoulders of giants
Page 31: How to stand on the shoulders of giants

Thank You

Page 32: How to stand on the shoulders of giants

Martin Richards

Lorna

Clock

TBLTuring

http://www.cl.cam.ac.uk/~mr10/

Image Credits

http://www.flickr.com/photos/myrtti/6052575049

http://www.flickr.com/photos/tanaka/3212373419

http://www.flickr.com/photos/sebastian_bergmann/52408671Zeev & Andi

http://www.flickr.com/photos/thurm/1554383213

http://www.flickr.com/photos/indraw/4857101224

Ken Thompson http://cm.bell-labs.com/who/dmr/picture.html

Rasmus http://www.flickr.com/photos/wafer/365664702/

Dennis Ritchie http://www.bobdbob.com/hcc/halloffame/halloffame.html

Skater http://www.flickr.com/photos/eyedeaz/5004084713