SlideShare a Scribd company logo
1 of 32
Download to read offline
How To Stand On The Shoulders Of
Open Source




Hardware              Platforms



           Academic
“The best
way to
predict the
future is to
invent it.”
- Alan Kay
Discover
     Research
           Produce
BCPL

GET "libhdr"

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

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

#include <stdio.h>

int main(void)
{
    printf("hello, worldn");
    return 0;
}
PHP/FI

<? if(!$PHP_AUTH_USER) {
  Header("WWW-authenticate: basic
                 realm="My Realm"");
  Header("HTTP/1.0 401 Unauthorized");
  echo "Cancelledn" exit;
} else {
  echo "Hello $PHP_AUTH_USER.<P>";
} >
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);
} ?>
QuickSort                    1960
function 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));
}
Dual Pivot QuickSort
2009
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));
}
Van
Jacobson
“...is said to have
saved the Internet
from collapsing
due to traffic in
1988-1989”
- en.wikipedia.org/
wiki/Van_Jacobson
Discover
   Research
      Synthesise
           Produce
“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
Thank You
Image Credits
Skater            http://www.flickr.com/photos/eyedeaz/5004084713
Martin Richards   http://www.cl.cam.ac.uk/~mr10/
Ken Thompson      http://cm.bell-labs.com/who/dmr/picture.html
Dennis Ritchie    http://www.bobdbob.com/hcc/halloffame/halloffame.html
Rasmus            http://www.flickr.com/photos/wafer/365664702/
Zeev & Andi       http://www.flickr.com/photos/sebastian_bergmann/52408671
Lorna             http://www.flickr.com/photos/myrtti/6052575049
Clock             http://www.flickr.com/photos/indraw/4857101224
TBL               http://www.flickr.com/photos/tanaka/3212373419
Turing            http://www.flickr.com/photos/thurm/1554383213

More Related Content

What's hot

Nouveau document texte
Nouveau document texteNouveau document texte
Nouveau document texte
Sai Ef
 
Yy
YyYy
Yy
yygh
 
Asynchronous I/O in PHP
Asynchronous I/O in PHPAsynchronous I/O in PHP
Asynchronous I/O in PHP
Thomas Weinert
 
AnyMQ, Hippie, and the real-time web
AnyMQ, Hippie, and the real-time webAnyMQ, Hippie, and the real-time web
AnyMQ, Hippie, and the real-time web
clkao
 
20 modules i haven't yet talked about
20 modules i haven't yet talked about20 modules i haven't yet talked about
20 modules i haven't yet talked about
Tatsuhiko Miyagawa
 
JavaSE7 Launch Event: Java7xGroovy
JavaSE7 Launch Event: Java7xGroovyJavaSE7 Launch Event: Java7xGroovy
JavaSE7 Launch Event: Java7xGroovy
Yasuharu Nakano
 
Introduction to CloudForecast / YAPC::Asia 2010 Tokyo
Introduction to CloudForecast / YAPC::Asia 2010 TokyoIntroduction to CloudForecast / YAPC::Asia 2010 Tokyo
Introduction to CloudForecast / YAPC::Asia 2010 Tokyo
Masahiro Nagano
 

What's hot (19)

Nouveau document texte
Nouveau document texteNouveau document texte
Nouveau document texte
 
Yy
YyYy
Yy
 
The promise of asynchronous PHP
The promise of asynchronous PHPThe promise of asynchronous PHP
The promise of asynchronous PHP
 
Asynchronous I/O in PHP
Asynchronous I/O in PHPAsynchronous I/O in PHP
Asynchronous I/O in PHP
 
Redis & ZeroMQ: How to scale your application
Redis & ZeroMQ: How to scale your applicationRedis & ZeroMQ: How to scale your application
Redis & ZeroMQ: How to scale your application
 
React PHP: the NodeJS challenger
React PHP: the NodeJS challengerReact PHP: the NodeJS challenger
React PHP: the NodeJS challenger
 
PHP in 2018 - Q4 - AFUP Limoges
PHP in 2018 - Q4 - AFUP LimogesPHP in 2018 - Q4 - AFUP Limoges
PHP in 2018 - Q4 - AFUP Limoges
 
C99[2]
C99[2]C99[2]
C99[2]
 
AnyMQ, Hippie, and the real-time web
AnyMQ, Hippie, and the real-time webAnyMQ, Hippie, and the real-time web
AnyMQ, Hippie, and the real-time web
 
20 modules i haven't yet talked about
20 modules i haven't yet talked about20 modules i haven't yet talked about
20 modules i haven't yet talked about
 
JavaSE7 Launch Event: Java7xGroovy
JavaSE7 Launch Event: Java7xGroovyJavaSE7 Launch Event: Java7xGroovy
JavaSE7 Launch Event: Java7xGroovy
 
Perl Bag of Tricks - Baltimore Perl mongers
Perl Bag of Tricks  -  Baltimore Perl mongersPerl Bag of Tricks  -  Baltimore Perl mongers
Perl Bag of Tricks - Baltimore Perl mongers
 
The most exciting features of PHP 7.1
The most exciting features of PHP 7.1The most exciting features of PHP 7.1
The most exciting features of PHP 7.1
 
Parsing JSON with a single regex
Parsing JSON with a single regexParsing JSON with a single regex
Parsing JSON with a single regex
 
Asynchronous PHP and Real-time Messaging
Asynchronous PHP and Real-time MessagingAsynchronous PHP and Real-time Messaging
Asynchronous PHP and Real-time Messaging
 
C99
C99C99
C99
 
Perl 6 by example
Perl 6 by examplePerl 6 by example
Perl 6 by example
 
Introduction to CloudForecast / YAPC::Asia 2010 Tokyo
Introduction to CloudForecast / YAPC::Asia 2010 TokyoIntroduction to CloudForecast / YAPC::Asia 2010 Tokyo
Introduction to CloudForecast / YAPC::Asia 2010 Tokyo
 
zinno
zinnozinno
zinno
 

Similar to How to stand on the shoulders of giants

Crazy things done on PHP
Crazy things done on PHPCrazy things done on PHP
Crazy things done on PHP
Taras Kalapun
 
Designing Opeation Oriented Web Applications / YAPC::Asia Tokyo 2011
Designing Opeation Oriented Web Applications / YAPC::Asia Tokyo 2011Designing Opeation Oriented Web Applications / YAPC::Asia Tokyo 2011
Designing Opeation Oriented Web Applications / YAPC::Asia Tokyo 2011
Masahiro Nagano
 
Good Evils In Perl (Yapc Asia)
Good Evils In Perl (Yapc Asia)Good Evils In Perl (Yapc Asia)
Good Evils In Perl (Yapc Asia)
Kang-min Liu
 
Introduction à CoffeeScript pour ParisRB
Introduction à CoffeeScript pour ParisRB Introduction à CoffeeScript pour ParisRB
Introduction à CoffeeScript pour ParisRB
jhchabran
 
Yy
YyYy
Yy
yygh
 
201412 seccon2014 オンライン予選(英語) write-up
201412 seccon2014 オンライン予選(英語) write-up201412 seccon2014 オンライン予選(英語) write-up
201412 seccon2014 オンライン予選(英語) write-up
恵寿 東
 
JavaScript for PHP developers
JavaScript for PHP developersJavaScript for PHP developers
JavaScript for PHP developers
Stoyan Stefanov
 

Similar to How to stand on the shoulders of giants (20)

Crazy things done on PHP
Crazy things done on PHPCrazy things done on PHP
Crazy things done on PHP
 
Designing Opeation Oriented Web Applications / YAPC::Asia Tokyo 2011
Designing Opeation Oriented Web Applications / YAPC::Asia Tokyo 2011Designing Opeation Oriented Web Applications / YAPC::Asia Tokyo 2011
Designing Opeation Oriented Web Applications / YAPC::Asia Tokyo 2011
 
PHP Tips & Tricks
PHP Tips & TricksPHP Tips & Tricks
PHP Tips & Tricks
 
Good Evils In Perl (Yapc Asia)
Good Evils In Perl (Yapc Asia)Good Evils In Perl (Yapc Asia)
Good Evils In Perl (Yapc Asia)
 
The History of PHPersistence
The History of PHPersistenceThe History of PHPersistence
The History of PHPersistence
 
Everything About PowerShell
Everything About PowerShellEverything About PowerShell
Everything About PowerShell
 
Ns2programs
Ns2programsNs2programs
Ns2programs
 
Security Challenges in Node.js
Security Challenges in Node.jsSecurity Challenges in Node.js
Security Challenges in Node.js
 
Introduction à CoffeeScript pour ParisRB
Introduction à CoffeeScript pour ParisRB Introduction à CoffeeScript pour ParisRB
Introduction à CoffeeScript pour ParisRB
 
Laziness in Swift
Laziness in Swift Laziness in Swift
Laziness in Swift
 
Pop3ck sh
Pop3ck shPop3ck sh
Pop3ck sh
 
Bag of tricks
Bag of tricksBag of tricks
Bag of tricks
 
Database api
Database apiDatabase api
Database api
 
Neatly Hashing a Tree: FP tree-fold in Perl5 & Perl6
Neatly Hashing a Tree: FP tree-fold in Perl5 & Perl6Neatly Hashing a Tree: FP tree-fold in Perl5 & Perl6
Neatly Hashing a Tree: FP tree-fold in Perl5 & Perl6
 
Yy
YyYy
Yy
 
201412 seccon2014 オンライン予選(英語) write-up
201412 seccon2014 オンライン予選(英語) write-up201412 seccon2014 オンライン予選(英語) write-up
201412 seccon2014 オンライン予選(英語) write-up
 
PHPCon 2016: PHP7 by Witek Adamus / XSolve
PHPCon 2016: PHP7 by Witek Adamus / XSolvePHPCon 2016: PHP7 by Witek Adamus / XSolve
PHPCon 2016: PHP7 by Witek Adamus / XSolve
 
循環参照のはなし
循環参照のはなし循環参照のはなし
循環参照のはなし
 
Why async and functional programming in PHP7 suck and how to get overr it?
Why async and functional programming in PHP7 suck and how to get overr it?Why async and functional programming in PHP7 suck and how to get overr it?
Why async and functional programming in PHP7 suck and how to get overr it?
 
JavaScript for PHP developers
JavaScript for PHP developersJavaScript for PHP developers
JavaScript for PHP developers
 

More from Ian Barber

More from Ian Barber (7)

Deployment Tactics
Deployment TacticsDeployment Tactics
Deployment Tactics
 
In Search Of: Integrating Site Search (PHP Barcelona)
In Search Of: Integrating Site Search (PHP Barcelona)In Search Of: Integrating Site Search (PHP Barcelona)
In Search Of: Integrating Site Search (PHP Barcelona)
 
Debugging: Rules & Tools
Debugging: Rules & ToolsDebugging: Rules & Tools
Debugging: Rules & Tools
 
In Search Of... (Dutch PHP Conference 2010)
In Search Of... (Dutch PHP Conference 2010)In Search Of... (Dutch PHP Conference 2010)
In Search Of... (Dutch PHP Conference 2010)
 
In Search Of... integrating site search
In Search Of... integrating site search In Search Of... integrating site search
In Search Of... integrating site search
 
Document Classification In PHP - Slight Return
Document Classification In PHP - Slight ReturnDocument Classification In PHP - Slight Return
Document Classification In PHP - Slight Return
 
Document Classification In PHP
Document Classification In PHPDocument Classification In PHP
Document Classification In PHP
 

Recently uploaded

Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Victor Rentea
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Victor Rentea
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 

Recently uploaded (20)

Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering Developers
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontology
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 

How to stand on the shoulders of giants

  • 1. How To Stand On The Shoulders Of
  • 2.
  • 3.
  • 4. Open Source Hardware Platforms Academic
  • 5.
  • 6. “The best way to predict the future is to invent it.” - Alan Kay
  • 7.
  • 8.
  • 9. Discover Research Produce
  • 10. BCPL GET "libhdr" LET start() = VALOF { writes("Hello world*n") RESULTIS 0 }
  • 11. B main() { a 'Hello world' ; putchar (a); putchar ('*n'); }
  • 12. C #include <stdio.h> int main(void) { printf("hello, worldn"); return 0; }
  • 13. PHP/FI <? if(!$PHP_AUTH_USER) { Header("WWW-authenticate: basic realm="My Realm""); Header("HTTP/1.0 401 Unauthorized"); echo "Cancelledn" exit; } else { echo "Hello $PHP_AUTH_USER.<P>"; } >
  • 14. 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); } ?>
  • 15.
  • 16. QuickSort 1960 function 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)); }
  • 17.
  • 19. 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)); }
  • 20. Van Jacobson “...is said to have saved the Internet from collapsing due to traffic in 1988-1989” - en.wikipedia.org/ wiki/Van_Jacobson
  • 21. Discover Research Synthesise Produce
  • 22.
  • 23.
  • 24. “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
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 32. Image Credits Skater http://www.flickr.com/photos/eyedeaz/5004084713 Martin Richards http://www.cl.cam.ac.uk/~mr10/ Ken Thompson http://cm.bell-labs.com/who/dmr/picture.html Dennis Ritchie http://www.bobdbob.com/hcc/halloffame/halloffame.html Rasmus http://www.flickr.com/photos/wafer/365664702/ Zeev & Andi http://www.flickr.com/photos/sebastian_bergmann/52408671 Lorna http://www.flickr.com/photos/myrtti/6052575049 Clock http://www.flickr.com/photos/indraw/4857101224 TBL http://www.flickr.com/photos/tanaka/3212373419 Turing http://www.flickr.com/photos/thurm/1554383213