SlideShare ist ein Scribd-Unternehmen logo
1 von 46
Downloaden Sie, um offline zu lesen
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

Weitere ähnliche Inhalte

Ähnlich wie 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
 

Ähnlich wie 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
 

Mehr von 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
 

Mehr von 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
 

Kürzlich hochgeladen

Glenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security ObservabilityGlenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security Observabilityitnewsafrica
 
Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)Kaya Weers
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical InfrastructureVarsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructureitnewsafrica
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...Wes McKinney
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfNeo4j
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfpanagenda
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Hiroshi SHIBATA
 
Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...itnewsafrica
 
Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Farhan Tariq
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch TuesdayIvanti
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality AssuranceInflectra
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Alkin Tezuysal
 

Kürzlich hochgeladen (20)

Glenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security ObservabilityGlenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security Observability
 
Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical InfrastructureVarsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdf
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024
 
Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...
 
Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch Tuesday
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
 

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