SlideShare uma empresa Scribd logo
1 de 46
Baixar para ler offline
Building Platforms


Frederico Oliveira / Webreakstuff / @ SAPO Codebits
Introdução
Web 2.0? What the f%&#?
out: Square Corners
in: Rounded Corners
out: #FF0000
in: Gradientes
out: cat
out: cat
in: lolcat


        visible dance partner.
     in
out: Robots
in: Humans
out: IRC
in: Facebook / MySpace


social networking é o novo instant messaging
out: Rede como plataforma
in: Apps como plataforma
out: Data Silos
in: Data Sources

                               data!
         data!

            data!
data!               data!   data!
        data!
                               data!
All praise the mighty API!
API (Application Programming
Interface)


o LEGO da internet.
data!   data!

    data!                   data!




            mashups
data!                           data!




    data!                   data!


            data!   data!
An interesting 2005, Bubblr, Clockr, Dumpr.net,
Favcol, FD's Flickr Toys, Findr, Flappr, Flash-based
Kaleidoscope, Flauntr, Flickeur, Flickr Chia Pet, Flickr
Color Selectr, Flickr Font, Flickr Graph, Flickr Group
Trackr, Flickr Hive Mind, Flickr Leech, Flickr Leech, Flickr
Logo Makr, Flickr People Finder, Flickr RSS Reader,
Flickr Set Manager, Flickr Sets RSS, Flickr SlideShow
Generator, Flickr Tag Viewer, Flickr2Photocast,
FlickrFling, FlickrFly, Flickriver, FlickrLilli, FlickrNews,
FlickrReplacr, Flicktionary, Fotocrib, Gickr,
h4ppierphotos, Invitr, Islands of Consciousness,
Mappr, Matchr, MightyFlickr, Mosaickr, Pixel Peeper,
Printr Killr, Retrievr, RSS 2 PDF, Salutr, Selfportraitr
Porquê APIs?
(para empresas)
Porquê APIs?
(para developers)
Weather.com + Google
Maps + Dopplr = Melhores
sítios para passar férias em
Janeiro.
Last.fm + Amazon ECS =
Recomendações
personalizadas de albuns
com reviews e e-store
Daylife + Technorati + Yahoo
Finance = Sistema para
correlacionar mercados e
notícias no mundo

(Que me tivesse dito com antecedência para comprar acções GALP) :-)
out: internet como plataforma
in: tudo é uma plataforma

                                                                data!
                                          data!

                                             data!   data!   data!
                                         data!
                                                                data!

Web-apps sem API são desinteressantes.
“Can’t get enough of that
sweet, sweet data.”



Tom Coates @ Web 2.0 Expo
APIs são tão 2006
Microformats, OpenID, OAuth




Muito mais 2007/08.
Microformats, OpenID, OAuth

Patterns para descrever
microcontent, escritas sobre
semântica existente (xhtml).
microformats.org
Exemplo: hCard
AGENT:BEGIN:VCARDnFN:Joe FridaynTEL:+1-919-555-7878n
TITLE:Area Administrator, Assistantn EMAIL;TYPE=INTERNET:n
jfriday@host.comnEND:VCARDn




<div class=quot;agent vcardquot;>
	 <a class=quot;email fnquot; href=quot;mailto:jfriday@host.comquot;>Joe Friday</a>
	 <div class=quot;telquot;>+1-919-555-7878</div>
	 <div class=quot;titlequot;>Area Administrator, Assistant</div>
</div>
Exemplo: hCalendar
BEGIN:VCALENDAR
PRODID:-//XYZproduct//EN
VERSION:2.0
BEGIN:VEVENT
URL:http://www.web2con.com/
DTSTART:20071005
DTEND:20071020
SUMMARY:Web 2.0 Conference
LOCATION:Argent Hotel, San Francisco, CA
END:VEVENT
END:VCALENDAR



<div class=quot;veventquot;>
	 <a class=quot;urlquot; href=quot;http://www.web2con.com/quot;>http://www.web2con.com/</a>
	 <span class=quot;summaryquot;>Web 2.0 Conference</span>:
	 <abbr class=quot;dtstartquot; title=quot;2007-10-05quot;>October 5</abbr>-
	 <abbr class=quot;dtendquot; title=quot;2007-10-20quot;>19</abbr>,
	 at the <span class=quot;locationquot;>Argent Hotel, San Francisco, CA</span>
</div>
Microformats, OpenID, OAuth

Objectivo: ser interpretados
principalmente por pessoas.
Máquinas depois.
microformats.org
1-0
Microformats, OpenID, OAuth

Sistema de identidade aberto
e descentralizado. Um único
login para todos os sites.
openid.net
Microformats, OpenID, OAuth

Evita ter de confiar na
Microsoft (Passport), ou
SixApart (Typekey).
Microformats, OpenID, OAuth

Decisão sobre em quem
confiar está do lado do
utilizador.
2-0
Microformats, OpenID, OAuth

Protocolo de autenticação
seguro para APIs, para
clientes Desktop e Web-based
oauth.net
Microformats, OpenID, OAuth

Evita ter de dar dados
confidenciais a um site que
quer aceder a dados em outro.
Ex: Facebook + GMail contacts
Microformats, OpenID, OAuth

Ao contrário de trocar emails e
passwords (com acesso total),
trocam-se tokens de acesso
limitado aos dados do user.
3-0
Hack-fest sem código? <:(
No API? No problem.

          http://www.ruby-lang.org/en/
          http://code.whytheluckystiff.net/hpricot/
          http://mofo.rubyforge.org/
lojadocidadao.pt + hpricot =
 O script anti-filas.
 1 def update(serv)
 2     a = Hpricot(open(serv))
 3
 4     a.search(quot;bquot;).each_with_index do |a, i|
 5         if i == 1
 6             pessoas = a.inner_html
 7         elsif i == 2
 8             tempomedio = a.inner_html
 9         elsif i == 3
10             tempoat = a.inner_html
11         elsif i == 5
12             balcoes = a.inner_html
13         end
14     end
15 end
16
17 update(quot;http://www.lojadocidadao.pt/webiglc/inlineinclude.aspx?local=3&entidade=3&senha=Aquot;)
deviantart + hpricot + feed-
rss = Feed de wallpapers
url = quot;http://browse.deviantart.com/customization/wallpaper/animals/quot;
doc = Hpricot(open(url))

elements = (doc/quot;div.streamquot;)
#elements = (elements/quot;a.srcquot;)

pages = Array.new

html = elements.to_html
html.each('<') { |s|
  s =~ /a href=quot;([^quot;]+)/
  if Regexp.last_match(1) != nil
    pages.push(Regexp.last_match(1))
  end
}

pages.each { |s| p s }
wikipedia + hpricot =
Crawler de artigos
doc = Hpricot open('http://en.wikipedia.org/wiki/List_of_bicycle_manufacturing_companies')
@article = (doc/quot;#contentquot;).each do |content|
  #change /wiki/ links to point to full wikipedia path
  (content/:a).each do |link|
    unless link.attributes['href'].nil?
      if (link.attributes['href'][0..5] == quot;/wiki/quot;)
        link.attributes['href'].sub!('/wiki/', 'http://en.wikipedia.org/wiki/')
      end
    end
  end

 #remove unnecessary content and edit links
 items_to_remove.each { |x| (content/x).remove }

  #replace links to create new entries with plain text
  (content/quot;a.newquot;).each do |link|
    link.parent.insert_before Hpricot.make(link.attributes['title']), link
  end.remove
end
flickr + mecanize = flickr
hcard contact fetcher
agent = WWW::Mechanize.new

agent.user_agent_alias = 'Mac FireFox'
page = agent.get('http://flickr.com/signin/')
form = page.forms.name('login_form').first
form.login = 'login'
form.passwd = 'pass'
page = agent.submit(form)

page = agent.click page.links.text('click here')
page = agent.click(page.links.text('Contacts'))
page = agent.click(page.links.text('Contact List'))
page = agent.click page.links.text('Contacts')[1]



page.links.text('profile').each do |profile|
	   profile_page = agent.get(profile.href)
	   tree = Microformat.find(:text => profile_page.body)
	   hcard = tree.first unless tree.empty?
	   puts hcard.email.gsub(' [at] ','@') unless hcard.email.nil?
end
Data é o “building block”
fundamental da web hoje em
dia. Tudo o que construímos
são potenciais plataformas.
Bonus bits: Android (demo)
open + free + mobile platform
fred@webreakstuff.com

Mais conteúdo relacionado

Semelhante a Buildingplatforms

Mashups & APIs
Mashups & APIsMashups & APIs
Mashups & APIsPamela Fox
 
Jaoo - Open Social A Standard For The Social Web
Jaoo - Open Social A Standard For The Social WebJaoo - Open Social A Standard For The Social Web
Jaoo - Open Social A Standard For The Social WebPatrick Chanezon
 
Html 5 in a big nutshell
Html 5 in a big nutshellHtml 5 in a big nutshell
Html 5 in a big nutshellLennart Schoors
 
Linked opendata parisemantique.fr - 24062011
Linked opendata   parisemantique.fr - 24062011Linked opendata   parisemantique.fr - 24062011
Linked opendata parisemantique.fr - 24062011Loïc Dias Da Silva
 
Keypoints html5
Keypoints html5Keypoints html5
Keypoints html5dynamis
 
Goodle Developer Days Munich 2008 - Open Social Update
Goodle Developer Days Munich 2008 - Open Social UpdateGoodle Developer Days Munich 2008 - Open Social Update
Goodle Developer Days Munich 2008 - Open Social UpdatePatrick Chanezon
 
2015 Pharo Prague Lambda Meetup
2015 Pharo Prague Lambda Meetup2015 Pharo Prague Lambda Meetup
2015 Pharo Prague Lambda MeetupPharo
 
Moving from Web 1.0 to Web 2.0
Moving from Web 1.0 to Web 2.0Moving from Web 1.0 to Web 2.0
Moving from Web 1.0 to Web 2.0Estelle Weyl
 
The DiSo Project and the Open Web
The DiSo Project and the Open WebThe DiSo Project and the Open Web
The DiSo Project and the Open WebChris Messina
 
Motion Django Meetup
Motion Django MeetupMotion Django Meetup
Motion Django MeetupMike Malone
 
Google Devfest Singapore - OpenSocial
Google Devfest Singapore - OpenSocialGoogle Devfest Singapore - OpenSocial
Google Devfest Singapore - OpenSocialPatrick Chanezon
 
Philly ete-2011
Philly ete-2011Philly ete-2011
Philly ete-2011davyjones
 
Web mapping with vector data. Is it the future ? 2012
Web mapping with vector data. Is it the future ? 2012Web mapping with vector data. Is it the future ? 2012
Web mapping with vector data. Is it the future ? 2012Moullet
 
Hack it like its hot!
Hack it like its hot!Hack it like its hot!
Hack it like its hot!Stefan Adolf
 
Web2 Expo San Francisco
Web2 Expo San FranciscoWeb2 Expo San Francisco
Web2 Expo San FranciscoJure Cuhalev
 
Accessing the Linked Open Data Cloud via ODBC
Accessing the Linked Open Data Cloud via ODBCAccessing the Linked Open Data Cloud via ODBC
Accessing the Linked Open Data Cloud via ODBCKingsley Uyi Idehen
 
Ruby on Rails 3.1: Let's bring the fun back into web programing
Ruby on Rails 3.1: Let's bring the fun back into web programingRuby on Rails 3.1: Let's bring the fun back into web programing
Ruby on Rails 3.1: Let's bring the fun back into web programingBozhidar Batsov
 
Apps for Science - Elsevier Developer Network Workshop 201102
Apps for Science - Elsevier Developer Network Workshop 201102Apps for Science - Elsevier Developer Network Workshop 201102
Apps for Science - Elsevier Developer Network Workshop 201102remko caprio
 
Testing API platform with Behat BDD tests
Testing API platform with Behat BDD testsTesting API platform with Behat BDD tests
Testing API platform with Behat BDD testsStefan Adolf
 

Semelhante a Buildingplatforms (20)

Mashups & APIs
Mashups & APIsMashups & APIs
Mashups & APIs
 
Jaoo - Open Social A Standard For The Social Web
Jaoo - Open Social A Standard For The Social WebJaoo - Open Social A Standard For The Social Web
Jaoo - Open Social A Standard For The Social Web
 
Html 5 in a big nutshell
Html 5 in a big nutshellHtml 5 in a big nutshell
Html 5 in a big nutshell
 
Linked opendata parisemantique.fr - 24062011
Linked opendata   parisemantique.fr - 24062011Linked opendata   parisemantique.fr - 24062011
Linked opendata parisemantique.fr - 24062011
 
Keypoints html5
Keypoints html5Keypoints html5
Keypoints html5
 
Goodle Developer Days Munich 2008 - Open Social Update
Goodle Developer Days Munich 2008 - Open Social UpdateGoodle Developer Days Munich 2008 - Open Social Update
Goodle Developer Days Munich 2008 - Open Social Update
 
2015 Pharo Prague Lambda Meetup
2015 Pharo Prague Lambda Meetup2015 Pharo Prague Lambda Meetup
2015 Pharo Prague Lambda Meetup
 
Moving from Web 1.0 to Web 2.0
Moving from Web 1.0 to Web 2.0Moving from Web 1.0 to Web 2.0
Moving from Web 1.0 to Web 2.0
 
The DiSo Project and the Open Web
The DiSo Project and the Open WebThe DiSo Project and the Open Web
The DiSo Project and the Open Web
 
Motion Django Meetup
Motion Django MeetupMotion Django Meetup
Motion Django Meetup
 
Google Devfest Singapore - OpenSocial
Google Devfest Singapore - OpenSocialGoogle Devfest Singapore - OpenSocial
Google Devfest Singapore - OpenSocial
 
Philly ete-2011
Philly ete-2011Philly ete-2011
Philly ete-2011
 
Web mapping with vector data. Is it the future ? 2012
Web mapping with vector data. Is it the future ? 2012Web mapping with vector data. Is it the future ? 2012
Web mapping with vector data. Is it the future ? 2012
 
Hack it like its hot!
Hack it like its hot!Hack it like its hot!
Hack it like its hot!
 
Api
ApiApi
Api
 
Web2 Expo San Francisco
Web2 Expo San FranciscoWeb2 Expo San Francisco
Web2 Expo San Francisco
 
Accessing the Linked Open Data Cloud via ODBC
Accessing the Linked Open Data Cloud via ODBCAccessing the Linked Open Data Cloud via ODBC
Accessing the Linked Open Data Cloud via ODBC
 
Ruby on Rails 3.1: Let's bring the fun back into web programing
Ruby on Rails 3.1: Let's bring the fun back into web programingRuby on Rails 3.1: Let's bring the fun back into web programing
Ruby on Rails 3.1: Let's bring the fun back into web programing
 
Apps for Science - Elsevier Developer Network Workshop 201102
Apps for Science - Elsevier Developer Network Workshop 201102Apps for Science - Elsevier Developer Network Workshop 201102
Apps for Science - Elsevier Developer Network Workshop 201102
 
Testing API platform with Behat BDD tests
Testing API platform with Behat BDD testsTesting API platform with Behat BDD tests
Testing API platform with Behat BDD tests
 

Mais de codebits

Gis SAPO Hands On
Gis SAPO Hands OnGis SAPO Hands On
Gis SAPO Hands Oncodebits
 
Aplicações Web TV no Meo
Aplicações Web TV no MeoAplicações Web TV no Meo
Aplicações Web TV no Meocodebits
 
Forms Usability 101
Forms Usability 101Forms Usability 101
Forms Usability 101codebits
 
Speak up: como criar Speech-based apps
Speak up: como criar Speech-based appsSpeak up: como criar Speech-based apps
Speak up: como criar Speech-based appscodebits
 
XMPP Hands-On
XMPP Hands-OnXMPP Hands-On
XMPP Hands-Oncodebits
 
Mitos da Acessibilidade Web
Mitos da Acessibilidade WebMitos da Acessibilidade Web
Mitos da Acessibilidade Webcodebits
 
Getting started with mobile devices development - Openmoko Freerunner
Getting started with mobile devices development - Openmoko FreerunnerGetting started with mobile devices development - Openmoko Freerunner
Getting started with mobile devices development - Openmoko Freerunnercodebits
 
Hardware Hacking area: Make Cool Things with Microcontrollers (and learn to s...
Hardware Hacking area: Make Cool Things with Microcontrollers (and learn to s...Hardware Hacking area: Make Cool Things with Microcontrollers (and learn to s...
Hardware Hacking area: Make Cool Things with Microcontrollers (and learn to s...codebits
 
Getting started with mobile devices development - Openmoko Freerunner
Getting started with mobile devices development - Openmoko FreerunnerGetting started with mobile devices development - Openmoko Freerunner
Getting started with mobile devices development - Openmoko Freerunnercodebits
 
Exploring XMPP
Exploring XMPPExploring XMPP
Exploring XMPPcodebits
 
Sapo BUS Hands-On
Sapo BUS Hands-OnSapo BUS Hands-On
Sapo BUS Hands-Oncodebits
 
Qtractor - An Audio/MIDI multi-track sequencer
Qtractor - An Audio/MIDI multi-track sequencerQtractor - An Audio/MIDI multi-track sequencer
Qtractor - An Audio/MIDI multi-track sequencercodebits
 
Making the Chumby
Making the ChumbyMaking the Chumby
Making the Chumbycodebits
 
Globs - Gestão de Glossários
Globs - Gestão de GlossáriosGlobs - Gestão de Glossários
Globs - Gestão de Glossárioscodebits
 
ATrad - Sistema de Garantia de Qualidade de Traduções
ATrad - Sistema de Garantia de Qualidade de TraduçõesATrad - Sistema de Garantia de Qualidade de Traduções
ATrad - Sistema de Garantia de Qualidade de Traduçõescodebits
 
Alto Desempenho com Java
Alto Desempenho com JavaAlto Desempenho com Java
Alto Desempenho com Javacodebits
 
Sapo GIS Hands-On
Sapo GIS Hands-OnSapo GIS Hands-On
Sapo GIS Hands-Oncodebits
 
Practical Thin Server Architecture With Dojo Sapo Codebits 2008
Practical Thin Server Architecture With Dojo Sapo Codebits 2008Practical Thin Server Architecture With Dojo Sapo Codebits 2008
Practical Thin Server Architecture With Dojo Sapo Codebits 2008codebits
 

Mais de codebits (20)

Gis SAPO Hands On
Gis SAPO Hands OnGis SAPO Hands On
Gis SAPO Hands On
 
Aplicações Web TV no Meo
Aplicações Web TV no MeoAplicações Web TV no Meo
Aplicações Web TV no Meo
 
Forms Usability 101
Forms Usability 101Forms Usability 101
Forms Usability 101
 
Speak up: como criar Speech-based apps
Speak up: como criar Speech-based appsSpeak up: como criar Speech-based apps
Speak up: como criar Speech-based apps
 
XMPP Hands-On
XMPP Hands-OnXMPP Hands-On
XMPP Hands-On
 
Mitos da Acessibilidade Web
Mitos da Acessibilidade WebMitos da Acessibilidade Web
Mitos da Acessibilidade Web
 
Getting started with mobile devices development - Openmoko Freerunner
Getting started with mobile devices development - Openmoko FreerunnerGetting started with mobile devices development - Openmoko Freerunner
Getting started with mobile devices development - Openmoko Freerunner
 
Hardware Hacking area: Make Cool Things with Microcontrollers (and learn to s...
Hardware Hacking area: Make Cool Things with Microcontrollers (and learn to s...Hardware Hacking area: Make Cool Things with Microcontrollers (and learn to s...
Hardware Hacking area: Make Cool Things with Microcontrollers (and learn to s...
 
CouchDB
CouchDBCouchDB
CouchDB
 
Getting started with mobile devices development - Openmoko Freerunner
Getting started with mobile devices development - Openmoko FreerunnerGetting started with mobile devices development - Openmoko Freerunner
Getting started with mobile devices development - Openmoko Freerunner
 
Exploring XMPP
Exploring XMPPExploring XMPP
Exploring XMPP
 
Sapo BUS Hands-On
Sapo BUS Hands-OnSapo BUS Hands-On
Sapo BUS Hands-On
 
Qtractor - An Audio/MIDI multi-track sequencer
Qtractor - An Audio/MIDI multi-track sequencerQtractor - An Audio/MIDI multi-track sequencer
Qtractor - An Audio/MIDI multi-track sequencer
 
Making the Chumby
Making the ChumbyMaking the Chumby
Making the Chumby
 
Globs - Gestão de Glossários
Globs - Gestão de GlossáriosGlobs - Gestão de Glossários
Globs - Gestão de Glossários
 
ATrad - Sistema de Garantia de Qualidade de Traduções
ATrad - Sistema de Garantia de Qualidade de TraduçõesATrad - Sistema de Garantia de Qualidade de Traduções
ATrad - Sistema de Garantia de Qualidade de Traduções
 
Alto Desempenho com Java
Alto Desempenho com JavaAlto Desempenho com Java
Alto Desempenho com Java
 
Sapo GIS Hands-On
Sapo GIS Hands-OnSapo GIS Hands-On
Sapo GIS Hands-On
 
Gis@sapo
Gis@sapoGis@sapo
Gis@sapo
 
Practical Thin Server Architecture With Dojo Sapo Codebits 2008
Practical Thin Server Architecture With Dojo Sapo Codebits 2008Practical Thin Server Architecture With Dojo Sapo Codebits 2008
Practical Thin Server Architecture With Dojo Sapo Codebits 2008
 

Último

Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Jeffrey Haguewood
 
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 FMESafe Software
 
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 connectorsNanddeep Nachan
 
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 Takeoffsammart93
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusZilliz
 
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelMcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelDeepika Singh
 
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 FMESafe Software
 
"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 ...Zilliz
 
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 Ontologyjohnbeverley2021
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...apidays
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamUiPathCommunity
 
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityWSO2
 
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​Bhuvaneswari Subramani
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfOrbitshub
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businesspanagenda
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Orbitshub
 
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxRemote DBA Services
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesrafiqahmad00786416
 

Último (20)

Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
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
 
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
 
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
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..
 
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelMcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
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
 
"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 ...
 
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 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital Adaptability
 
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​
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptx
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 

Buildingplatforms

  • 1. Building Platforms Frederico Oliveira / Webreakstuff / @ SAPO Codebits
  • 3. Web 2.0? What the f%&#?
  • 4. out: Square Corners in: Rounded Corners
  • 7. out: cat in: lolcat visible dance partner. in
  • 9. out: IRC in: Facebook / MySpace social networking é o novo instant messaging
  • 10. out: Rede como plataforma in: Apps como plataforma
  • 11. out: Data Silos in: Data Sources data! data! data! data! data! data! data! data!
  • 12. All praise the mighty API!
  • 14. data! data! data! data! mashups data! data! data! data! data! data!
  • 15. An interesting 2005, Bubblr, Clockr, Dumpr.net, Favcol, FD's Flickr Toys, Findr, Flappr, Flash-based Kaleidoscope, Flauntr, Flickeur, Flickr Chia Pet, Flickr Color Selectr, Flickr Font, Flickr Graph, Flickr Group Trackr, Flickr Hive Mind, Flickr Leech, Flickr Leech, Flickr Logo Makr, Flickr People Finder, Flickr RSS Reader, Flickr Set Manager, Flickr Sets RSS, Flickr SlideShow Generator, Flickr Tag Viewer, Flickr2Photocast, FlickrFling, FlickrFly, Flickriver, FlickrLilli, FlickrNews, FlickrReplacr, Flicktionary, Fotocrib, Gickr, h4ppierphotos, Invitr, Islands of Consciousness, Mappr, Matchr, MightyFlickr, Mosaickr, Pixel Peeper, Printr Killr, Retrievr, RSS 2 PDF, Salutr, Selfportraitr
  • 18. Weather.com + Google Maps + Dopplr = Melhores sítios para passar férias em Janeiro.
  • 19. Last.fm + Amazon ECS = Recomendações personalizadas de albuns com reviews e e-store
  • 20. Daylife + Technorati + Yahoo Finance = Sistema para correlacionar mercados e notícias no mundo (Que me tivesse dito com antecedência para comprar acções GALP) :-)
  • 21. out: internet como plataforma in: tudo é uma plataforma data! data! data! data! data! data! data! Web-apps sem API são desinteressantes.
  • 22. “Can’t get enough of that sweet, sweet data.” Tom Coates @ Web 2.0 Expo
  • 25. Microformats, OpenID, OAuth Patterns para descrever microcontent, escritas sobre semântica existente (xhtml). microformats.org
  • 26. Exemplo: hCard AGENT:BEGIN:VCARDnFN:Joe FridaynTEL:+1-919-555-7878n TITLE:Area Administrator, Assistantn EMAIL;TYPE=INTERNET:n jfriday@host.comnEND:VCARDn <div class=quot;agent vcardquot;> <a class=quot;email fnquot; href=quot;mailto:jfriday@host.comquot;>Joe Friday</a> <div class=quot;telquot;>+1-919-555-7878</div> <div class=quot;titlequot;>Area Administrator, Assistant</div> </div>
  • 27. Exemplo: hCalendar BEGIN:VCALENDAR PRODID:-//XYZproduct//EN VERSION:2.0 BEGIN:VEVENT URL:http://www.web2con.com/ DTSTART:20071005 DTEND:20071020 SUMMARY:Web 2.0 Conference LOCATION:Argent Hotel, San Francisco, CA END:VEVENT END:VCALENDAR <div class=quot;veventquot;> <a class=quot;urlquot; href=quot;http://www.web2con.com/quot;>http://www.web2con.com/</a> <span class=quot;summaryquot;>Web 2.0 Conference</span>: <abbr class=quot;dtstartquot; title=quot;2007-10-05quot;>October 5</abbr>- <abbr class=quot;dtendquot; title=quot;2007-10-20quot;>19</abbr>, at the <span class=quot;locationquot;>Argent Hotel, San Francisco, CA</span> </div>
  • 28. Microformats, OpenID, OAuth Objectivo: ser interpretados principalmente por pessoas. Máquinas depois. microformats.org
  • 29. 1-0
  • 30. Microformats, OpenID, OAuth Sistema de identidade aberto e descentralizado. Um único login para todos os sites. openid.net
  • 31. Microformats, OpenID, OAuth Evita ter de confiar na Microsoft (Passport), ou SixApart (Typekey).
  • 32. Microformats, OpenID, OAuth Decisão sobre em quem confiar está do lado do utilizador.
  • 33. 2-0
  • 34. Microformats, OpenID, OAuth Protocolo de autenticação seguro para APIs, para clientes Desktop e Web-based oauth.net
  • 35. Microformats, OpenID, OAuth Evita ter de dar dados confidenciais a um site que quer aceder a dados em outro. Ex: Facebook + GMail contacts
  • 36. Microformats, OpenID, OAuth Ao contrário de trocar emails e passwords (com acesso total), trocam-se tokens de acesso limitado aos dados do user.
  • 37. 3-0
  • 39. No API? No problem. http://www.ruby-lang.org/en/ http://code.whytheluckystiff.net/hpricot/ http://mofo.rubyforge.org/
  • 40. lojadocidadao.pt + hpricot = O script anti-filas. 1 def update(serv) 2 a = Hpricot(open(serv)) 3 4 a.search(quot;bquot;).each_with_index do |a, i| 5 if i == 1 6 pessoas = a.inner_html 7 elsif i == 2 8 tempomedio = a.inner_html 9 elsif i == 3 10 tempoat = a.inner_html 11 elsif i == 5 12 balcoes = a.inner_html 13 end 14 end 15 end 16 17 update(quot;http://www.lojadocidadao.pt/webiglc/inlineinclude.aspx?local=3&entidade=3&senha=Aquot;)
  • 41. deviantart + hpricot + feed- rss = Feed de wallpapers url = quot;http://browse.deviantart.com/customization/wallpaper/animals/quot; doc = Hpricot(open(url)) elements = (doc/quot;div.streamquot;) #elements = (elements/quot;a.srcquot;) pages = Array.new html = elements.to_html html.each('<') { |s| s =~ /a href=quot;([^quot;]+)/ if Regexp.last_match(1) != nil pages.push(Regexp.last_match(1)) end } pages.each { |s| p s }
  • 42. wikipedia + hpricot = Crawler de artigos doc = Hpricot open('http://en.wikipedia.org/wiki/List_of_bicycle_manufacturing_companies') @article = (doc/quot;#contentquot;).each do |content| #change /wiki/ links to point to full wikipedia path (content/:a).each do |link| unless link.attributes['href'].nil? if (link.attributes['href'][0..5] == quot;/wiki/quot;) link.attributes['href'].sub!('/wiki/', 'http://en.wikipedia.org/wiki/') end end end #remove unnecessary content and edit links items_to_remove.each { |x| (content/x).remove } #replace links to create new entries with plain text (content/quot;a.newquot;).each do |link| link.parent.insert_before Hpricot.make(link.attributes['title']), link end.remove end
  • 43. flickr + mecanize = flickr hcard contact fetcher agent = WWW::Mechanize.new agent.user_agent_alias = 'Mac FireFox' page = agent.get('http://flickr.com/signin/') form = page.forms.name('login_form').first form.login = 'login' form.passwd = 'pass' page = agent.submit(form) page = agent.click page.links.text('click here') page = agent.click(page.links.text('Contacts')) page = agent.click(page.links.text('Contact List')) page = agent.click page.links.text('Contacts')[1] page.links.text('profile').each do |profile| profile_page = agent.get(profile.href) tree = Microformat.find(:text => profile_page.body) hcard = tree.first unless tree.empty? puts hcard.email.gsub(' [at] ','@') unless hcard.email.nil? end
  • 44. Data é o “building block” fundamental da web hoje em dia. Tudo o que construímos são potenciais plataformas.
  • 45. Bonus bits: Android (demo) open + free + mobile platform