SlideShare une entreprise Scribd logo
1  sur  46
Télécharger pour lire hors ligne
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

Contenu connexe

Similaire à 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
 

Similaire à 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
 

Plus 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
 

Plus 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
 

Dernier

Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessPixlogix Infotech
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
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...DianaGray10
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilV3cube
 
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 DevelopmentsTrustArc
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesBoston Institute of Analytics
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
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 RobisonAnna Loughnan Colquhoun
 
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 Processorsdebabhi2
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 

Dernier (20)

Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
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...
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
 
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
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
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
 
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
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 

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