SlideShare uma empresa Scribd logo
1 de 86
Baixar para ler offline
Playing with the web
 or “The geek shall inherit the earth”




 Christian Heilmann | http://wait-till-i.com | http://twitter.com/codepo8

                 Geek Meet Stockholm, December 2008
The web is an awesome
opportunity and media.
I learnt that pretty early and
left an old media to work for
         the new one.
One thing that keeps amazing
me about it is how simple the
 technologies driving it are.
You don’t
need to be a
rocket
scientist to
wreak havoc
on the web.
I am not talking about
malicious intent here.
I am talking about ethical
         hacking.
So today I am going to show
 some tools I love to use to
play and mess with the web.
Disrupting the process to
foster and drive innovation.



                      Mr. Buzzword
                     will see you now!
Let’s start with the first one –
  a true Swedish product!
Their product?
cURL
cURL allows you to get raw
text data from any server.
You can create the full range
of HTTP requests from a script
         or the shell.
Including POST requests,
simulating cookies and all the
       other goodies :)
Which gives you an amazing
     amount of power
Say you want to build an API
     that doesn’t exist.
At
       Mashed08 I
       got bored.



http://www.flickr.com/photos/37996583811@N01/2600265124/
Someone came to me and
asked if I knew of a currency
      conversion API.
And I didn’t as there is none.
        (everybody pays good money for that data)
So I went to Yahoo Finance.
http://finance.yahoo.com/currency/convert?
 amt=1&from=USD&to=JPY&submit=Convert
Simple, predictable URL :)
I found the location of the
result by viewing the source
         of the page.
function convert($from,$to){
   $url= 'http://finance.yahoo.com/currency/convert?
 amt=1&from='.$from.'&to='.$to.'&submit=Convert';
   $ch = curl_init();
   curl_setopt($ch, CURLOPT_URL, $url);
   curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
   $feed = curl_exec($ch);
   curl_close($ch);
   preg_match_all(quot;/tabledata1quot;>([^<]+)</td>/quot;,
                  $feed,$cells);
   return $cells[1][1];
 }
 echo convert(’USD’,'GBP’);


http://www.wait-till-i.com/2008/06/21/currency-
               conversion-api/
Turning this into an API was
           easy:
header('Content-type:text/javascript');
$from = $_GET['from'];
$to = $_GET['to'];
$callback = $_GET['callback'];
if(preg_match(quot;/[A-Z|a-z]{3}/quot;,$to) &&
preg_match(quot;/[A-Z|a-z]{3}/quot;,$from)){
  $to = strToUpper($to);
  $from = strToUpper($from);
  $url= ‘http://finance.yahoo.com/currency/
convert?’ .
        ‘amt=1&from=’.$from.’&to=’.
$to.’&submit=Convert’;
  $ch = curl_init();
  curl_setopt($ch, CURLOPT_URL, $url);
  curl_setopt($ch, CURLOPT_RETURNTRANSFER,
1);
  $feed = curl_exec($ch);
  curl_close($ch);
preg_match_all(quot;/tabledata1quot;>([^<]+)</
td>/quot;,$feed,$cells);
  if(is_numeric($cells[1][1])){
    $out = ‘{quot;fromquot;:quot;’.$from.’quot;,quot;toquot;:quot;’.
$to.’quot;,quot;factorquot;:quot;’.$cells[1][1].’quot;}’;
  } else {
    $out = ‘{quot;errorquot;:quot;Could not convert
currencies, are you sure about the
names?quot;}’;
  }
} else {
  $out = ‘{quot;errorquot;:quot;Invalid Currency format,
must be three lettersquot;}’;
}
if(isset($callback)){
  if(preg_match(quot;/[a-z|A-Z|_|-|$|0-9|.]/quot;,
$callback)){
    $out = $callback.’(’.$out.’)';
} else {
    $out = ‘{quot;errorquot;:quot;Invalid callback
method namequot;}’;
  }
}
echo $out;
Using the API is as easy...
<script type=quot;text/javascriptquot;>
  function converted(obj){
    if(obj.error){
      alert(obj.error);
    } else {
      alert('one ' + obj.from + ' is ' +
             obj.factor + ' ' + obj.to);
    }
  }
</script>
<script type=quot;text/javascriptquot; src=quot;convert.php?
from=gbp&to=usd&callback=convertedquot;>
</script>
View Source is a good start.
However, much more win is
        Firebug.
It has never been easier to
find things to get with cURL.
Say twitter information...
How about showing this as a
       cool chart?
We all like to show off what
    we do on the web.
Charts can be tricky...
Good thing that there’s
   Google Charts.
        (yeah and YUI charts)
http://www.wait-till-i.com/2008/11/23/show-the-world-your-
         twitter-type-using-php-and-google-charts/
<?php
$user = $_GET['user'];
$isjs = quot;/^[a-z|A-Z|_|-|$|0-9|.]+$/quot;;
if(preg_match($isjs,$user)){
  $info = array();
  $cont = get('http://twitter.com/'.$user);
  preg_match_all('/<span
id=quot;following_countquot; class=quot;stats_count
numericquot;>([^>]+)</span>/msi',$cont,
$follow);
  $info['follower'] = convert($follow[1]
[0]);
  preg_match_all('/<span id=quot;follower_countquot;
class=quot;stats_count numericquot;>([^>]+)</span>/
msi',$cont,$follower);
  $info['followed'] = convert($follower[1]
[0]);
preg_match_all('/<span id=quot;update_countquot;
class=quot;stats_count numericquot;>([^>]+)</span>/
msi',$cont,$updates);
  $info['updater'] = convert($updates[1]
[0]);
  $max = max($info);
  $convert = 100 / $max ;
  foreach($info as $k=>$f){
    if($f === $max){
      $type = $k;
    }
    $disp[$k] = $f * $convert;
  }
  if($type === 'updater'){
    $t = ' is an ';
  }
  if($type === 'follower'){
    $t = ' is a ';
}
  if($type === 'followed'){
    $t = ' is being ';
  }
  $title = $user . $t . $type;
  $out = array();
  foreach($info as $k=>$i){
    $out[] = $k.'+('.$i.')';
  }
  $labels = join($out,'|');
  $values = join($disp,',');
  header('location:http://
chart.apis.google.com/chart?
cht=p3&chco=336699&'.

'chtt='.urlencode($title).'&chd=t:'.$values.
             '&chs=350x100&chl='.$labels);
}
function get($url){
  $ch = curl_init();
  curl_setopt($ch, CURLOPT_URL, $url);
  curl_setopt($ch, CURLOPT_RETURNTRANSFER,
1);
  $feed = curl_exec($ch);
  curl_close($ch);
  return $feed;
}
function convert($x){
  $x = str_replace(',','',$x);
  $x = (int)$x;
  return $x;
}
?>
What if you need to mix and
  match and filter data?
http://www.wait-till-i.com/2008/09/28/useful-
            tweets-with-pipe/
https://pipes.yahoo.com/
https://pipes.yahoo.com/
And *dum de dum de*...
http://developer.yahoo.com/yql/console/
/*
  Useful tweets badge by Christian Heilmann
*/
var tweets = function(){
   var x = document.getElementById('mytweet');
   if(x){
      var twitterUserId = x.className.replace('user-','');
      var s = document.createElement('script');
      s.type = 'text/javascript';
      s.src = 'http://pipes.yahoo.com/pipes/pipe.run?' +
      '_id=f7229d01b79e508d543fb84e8a0abb0d&_render=json' +
      '&id=' + twitterUserId + '&_callback=tweets.tweet';
      document.getElementsByTagName('head')[0].appendChild(s);
   };
   function tweet(data){
        if(data && data.value && data.value.items){
            if(typeof data.value.items.length !== 'undefined'){
              var ul = document.createElement('ul');
              var all = data.value.items.length;
              var end = all > 5 ? 5 : all;
              for(var i=0;i < end;i++){
var now = data.value.items[i];
                   var li = document.createElement('li');
                   var a = document.createElement('a');
                   a.href = now.link;
                   a.appendChild(
	   	   	    	   	 document.createTextNode(now.title)
	   	   	    	     );
                   li.appendChild(a);
                   ul.appendChild(li);
                 }
                 x.appendChild(ul);
            }
        }
     };
  return{
     tweet:tweet
  }
}();
One of my favourite toys:
Using GreaseMonkey you can
 change any web page out
    there with DOM and
         JavaScript.
You can for example
prototype an enhancement
and show it to people with a
        single link.
By playing with the web you
 can do jobs that until now
    cost a lot of money.
Say you want to help your
clients find good keywords to
promote their product online.
You can do some research,
surf all the competitors’ sites
      and note down the
 descriptions, keywords and
              titles.
Or you can be a man and use
 cURL to write a script to do
            that.
Or you can be a clever man
and keep your eyes open and
 check if there is an API for
            that.
http://developer.yahoo.com/search/boss/
http://boss.yahooapis.com/ysearch/web/v1/donkeys?
                format=xml&appid=...
http://boss.yahooapis.com/ysearch/web/v1/donkeys?
        format=xml&view=keyterms&appid=...
All you need to do is getting
 the top 20, analyzing the
  keyword frequency and
      create a top 20.
http://developer.yahoo.net/blog/archives/2008/11/
               boss_keywords.html
Then you take YUI CSS grids,
and spend 30 minutes playing
   with colours and fonts.
And you have a
   product:
 http://keywordfinder.org
This is all cool,
but does it
bring us
anywhere?
Yes, if you get excited about
the web and its opportunities
    you can move things.
It takes determination!
And the outcome can be
rewarding beyond anything
    you ever imagined.
http://www.youtube.com/watch?v=CwsDKaalgq8&
http://www.youtube.com/watch?v=QiuT0y0KR6I
So by all means, put all your
 wonderful products on the
            web.
Especially when they cater a
    very specific need.
The prime number shitting
            bear...
http://alpha61.com/primenumbershittingbear/
And never stop to fiddle,
tweak and poke at the things
people offer you on the web.
So thank you for having me
    here and listening.
And I hope you will have an
   awesome Christmas!




                 Christian Heilmann
http://scriptingenabled.org | http://wait-till-i.com
               twitter/flickr: codepo8

Mais conteúdo relacionado

Mais procurados

Using HTML5 for a great Open Web
Using HTML5 for a great Open WebUsing HTML5 for a great Open Web
Using HTML5 for a great Open Web
Robert Nyman
 
CSSプリプロセッサの取扱説明書
CSSプリプロセッサの取扱説明書CSSプリプロセッサの取扱説明書
CSSプリプロセッサの取扱説明書
拓樹 谷
 
Select * from internet
Select * from internetSelect * from internet
Select * from internet
markandey
 
It’S Easy To Build A Web Business
It’S Easy To Build A Web BusinessIt’S Easy To Build A Web Business
It’S Easy To Build A Web Business
Val Vlădescu
 
Components are the Future of the Web: It’s Going To Be Okay
Components are the Future of the Web: It’s Going To Be OkayComponents are the Future of the Web: It’s Going To Be Okay
Components are the Future of the Web: It’s Going To Be Okay
FITC
 

Mais procurados (14)

Acceptance Testing with Webrat
Acceptance Testing with WebratAcceptance Testing with Webrat
Acceptance Testing with Webrat
 
Using HTML5 for a great Open Web
Using HTML5 for a great Open WebUsing HTML5 for a great Open Web
Using HTML5 for a great Open Web
 
Professional web development with libraries
Professional web development with librariesProfessional web development with libraries
Professional web development with libraries
 
CSSプリプロセッサの取扱説明書
CSSプリプロセッサの取扱説明書CSSプリプロセッサの取扱説明書
CSSプリプロセッサの取扱説明書
 
Select * from internet
Select * from internetSelect * from internet
Select * from internet
 
FrontInBahia 2014: 10 dicas de desempenho para apps mobile híbridas
FrontInBahia 2014: 10 dicas de desempenho para apps mobile híbridasFrontInBahia 2014: 10 dicas de desempenho para apps mobile híbridas
FrontInBahia 2014: 10 dicas de desempenho para apps mobile híbridas
 
Helping Data Teams with Puppet / Puppet Camp London - Apr 13, 2015
Helping Data Teams with Puppet / Puppet Camp London - Apr 13, 2015Helping Data Teams with Puppet / Puppet Camp London - Apr 13, 2015
Helping Data Teams with Puppet / Puppet Camp London - Apr 13, 2015
 
Yahoo is open to developers
Yahoo is open to developersYahoo is open to developers
Yahoo is open to developers
 
It’S Easy To Build A Web Business
It’S Easy To Build A Web BusinessIt’S Easy To Build A Web Business
It’S Easy To Build A Web Business
 
Theme verdadeiro
Theme verdadeiroTheme verdadeiro
Theme verdadeiro
 
How to develop frontend application
How to develop frontend applicationHow to develop frontend application
How to develop frontend application
 
BDD revolution - or how we came back from hell
BDD revolution - or how we came back from hellBDD revolution - or how we came back from hell
BDD revolution - or how we came back from hell
 
More of less (take 2)
More of less (take 2)More of less (take 2)
More of less (take 2)
 
Components are the Future of the Web: It’s Going To Be Okay
Components are the Future of the Web: It’s Going To Be OkayComponents are the Future of the Web: It’s Going To Be Okay
Components are the Future of the Web: It’s Going To Be Okay
 

Semelhante a Playing With The Web

Web Scraper Shibuya.pm tech talk #8
Web Scraper Shibuya.pm tech talk #8Web Scraper Shibuya.pm tech talk #8
Web Scraper Shibuya.pm tech talk #8
Tatsuhiko Miyagawa
 
PHP and Rich Internet Applications
PHP and Rich Internet ApplicationsPHP and Rich Internet Applications
PHP and Rich Internet Applications
elliando dias
 
Data Mining Open Ap Is
Data Mining Open Ap IsData Mining Open Ap Is
Data Mining Open Ap Is
oscon2007
 

Semelhante a Playing With The Web (20)

jQuery Performance Rules
jQuery Performance RulesjQuery Performance Rules
jQuery Performance Rules
 
Finding things on the web with BOSS
Finding things on the web with BOSSFinding things on the web with BOSS
Finding things on the web with BOSS
 
Modern Perl
Modern PerlModern Perl
Modern Perl
 
Web Scraper Shibuya.pm tech talk #8
Web Scraper Shibuya.pm tech talk #8Web Scraper Shibuya.pm tech talk #8
Web Scraper Shibuya.pm tech talk #8
 
PHP and Rich Internet Applications
PHP and Rich Internet ApplicationsPHP and Rich Internet Applications
PHP and Rich Internet Applications
 
Advanced and Hidden WordPress APIs
Advanced and Hidden WordPress APIsAdvanced and Hidden WordPress APIs
Advanced and Hidden WordPress APIs
 
10 Things You're Not Doing [IBM Lotus Notes Domino Application Development]
10 Things You're Not Doing [IBM Lotus Notes Domino Application Development]10 Things You're Not Doing [IBM Lotus Notes Domino Application Development]
10 Things You're Not Doing [IBM Lotus Notes Domino Application Development]
 
API Technical Writing
API Technical WritingAPI Technical Writing
API Technical Writing
 
London Web - Making a usable accessible website using HTML5 and CSS3 allowing...
London Web - Making a usable accessible website using HTML5 and CSS3 allowing...London Web - Making a usable accessible website using HTML5 and CSS3 allowing...
London Web - Making a usable accessible website using HTML5 and CSS3 allowing...
 
Test upload
Test uploadTest upload
Test upload
 
Introduction To Lamp
Introduction To LampIntroduction To Lamp
Introduction To Lamp
 
Mashups & APIs
Mashups & APIsMashups & APIs
Mashups & APIs
 
Django - Framework web para perfeccionistas com prazos
Django - Framework web para perfeccionistas com prazosDjango - Framework web para perfeccionistas com prazos
Django - Framework web para perfeccionistas com prazos
 
Data Mining Open Ap Is
Data Mining Open Ap IsData Mining Open Ap Is
Data Mining Open Ap Is
 
Lessons Learned - Building YDN
Lessons Learned - Building YDNLessons Learned - Building YDN
Lessons Learned - Building YDN
 
Front End on Rails
Front End on RailsFront End on Rails
Front End on Rails
 
Fast by Default
Fast by DefaultFast by Default
Fast by Default
 
Client-side JavaScript Vulnerabilities
Client-side JavaScript VulnerabilitiesClient-side JavaScript Vulnerabilities
Client-side JavaScript Vulnerabilities
 
Smarter Interfaces with jQuery (and Drupal)
Smarter Interfaces with jQuery (and Drupal)Smarter Interfaces with jQuery (and Drupal)
Smarter Interfaces with jQuery (and Drupal)
 
Building Web Hack Interfaces
Building Web Hack InterfacesBuilding Web Hack Interfaces
Building Web Hack Interfaces
 

Mais de Christian Heilmann

The Soul in The Machine - Developing for Humans (FrankenJS edition)
The Soul in The Machine - Developing for Humans (FrankenJS edition)The Soul in The Machine - Developing for Humans (FrankenJS edition)
The Soul in The Machine - Developing for Humans (FrankenJS edition)
Christian Heilmann
 

Mais de Christian Heilmann (20)

Develop, Debug, Learn? - Dotjs2019
Develop, Debug, Learn? - Dotjs2019Develop, Debug, Learn? - Dotjs2019
Develop, Debug, Learn? - Dotjs2019
 
Hinting at a better web
Hinting at a better webHinting at a better web
Hinting at a better web
 
Taking the "vile" out of privilege
Taking the "vile" out of privilegeTaking the "vile" out of privilege
Taking the "vile" out of privilege
 
Seven ways to be a happier JavaScript developer - NDC Oslo
Seven ways to be a happier JavaScript developer - NDC OsloSeven ways to be a happier JavaScript developer - NDC Oslo
Seven ways to be a happier JavaScript developer - NDC Oslo
 
Artificial intelligence for humans… #AIDC2018 keynote
Artificial intelligence for humans… #AIDC2018 keynoteArtificial intelligence for humans… #AIDC2018 keynote
Artificial intelligence for humans… #AIDC2018 keynote
 
Killing the golden calf of coding - We are Developers keynote
Killing the golden calf of coding - We are Developers keynoteKilling the golden calf of coding - We are Developers keynote
Killing the golden calf of coding - We are Developers keynote
 
Progressive Web Apps - Techdays Finland
Progressive Web Apps - Techdays FinlandProgressive Web Apps - Techdays Finland
Progressive Web Apps - Techdays Finland
 
Taking the "vile" out of privilege
Taking the "vile" out of privilegeTaking the "vile" out of privilege
Taking the "vile" out of privilege
 
Five ways to be a happier JavaScript developer
Five ways to be a happier JavaScript developerFive ways to be a happier JavaScript developer
Five ways to be a happier JavaScript developer
 
Taking the P out of PWA
Taking the P out of PWATaking the P out of PWA
Taking the P out of PWA
 
Sacrificing the golden calf of "coding"
Sacrificing the golden calf of "coding"Sacrificing the golden calf of "coding"
Sacrificing the golden calf of "coding"
 
You learned JavaScript - now what?
You learned JavaScript - now what?You learned JavaScript - now what?
You learned JavaScript - now what?
 
Sacrificing the golden calf of "coding"
Sacrificing the golden calf of "coding"Sacrificing the golden calf of "coding"
Sacrificing the golden calf of "coding"
 
Progressive Web Apps - Covering the best of both worlds - DevReach
Progressive Web Apps - Covering the best of both worlds - DevReachProgressive Web Apps - Covering the best of both worlds - DevReach
Progressive Web Apps - Covering the best of both worlds - DevReach
 
Progressive Web Apps - Covering the best of both worlds
Progressive Web Apps - Covering the best of both worldsProgressive Web Apps - Covering the best of both worlds
Progressive Web Apps - Covering the best of both worlds
 
Non-trivial pursuits: Learning machines and forgetful humans
Non-trivial pursuits: Learning machines and forgetful humansNon-trivial pursuits: Learning machines and forgetful humans
Non-trivial pursuits: Learning machines and forgetful humans
 
Progressive Web Apps - Bringing the web front and center
Progressive Web Apps - Bringing the web front and center Progressive Web Apps - Bringing the web front and center
Progressive Web Apps - Bringing the web front and center
 
CSS vs. JavaScript - Trust vs. Control
CSS vs. JavaScript - Trust vs. ControlCSS vs. JavaScript - Trust vs. Control
CSS vs. JavaScript - Trust vs. Control
 
Leveling up your JavaScipt - DrupalJam 2017
Leveling up your JavaScipt - DrupalJam 2017Leveling up your JavaScipt - DrupalJam 2017
Leveling up your JavaScipt - DrupalJam 2017
 
The Soul in The Machine - Developing for Humans (FrankenJS edition)
The Soul in The Machine - Developing for Humans (FrankenJS edition)The Soul in The Machine - Developing for Humans (FrankenJS edition)
The Soul in The Machine - Developing for Humans (FrankenJS edition)
 

Último

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
 

Último (20)

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...
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
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
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu SubbuApidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
 
A Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source MilvusA Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source Milvus
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
"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 ...
 
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
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
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, ...
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdf
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 

Playing With The Web