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

How to stand on the shoulders of giants

  • 1.
    How To StandOn The Shoulders Of
  • 4.
    Open Source Hardware Platforms Academic
  • 6.
    “The best way to predictthe future is to invent it.” - Alan Kay
  • 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 <? functionhitcount($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); } ?>
  • 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)); }
  • 18.
  • 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 tohave saved the Internet from collapsing due to traffic in 1988-1989” - en.wikipedia.org/ wiki/Van_Jacobson
  • 21.
    Discover Research Synthesise Produce
  • 24.
    “The whole fieldhad 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
  • 31.
  • 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