desenvolvimento+web
     Bruno Atrib Zanchet
         @bzanchet
Meu nome é Bruno
Eu trabalho com a web
A web talvez sirva pra
   vocês também
http://en.wikipedia.org/wiki/File:WorldWideWebAroundWikipedia.png
Está ficando cada vez
      mais fácil
O segredo é construir
usando partes que já
     funcionem
http://www.flickr.com/photos/world_waif/2176869173/
(e essas partes estão
 disponíveis aí fora)
Aplicação
Dados
     +
Manipulação
     +
Apresentação
Simples, huh?
http://www.flickr.com/photos/danquah/3100665365/




                                                    Paixão e
                                                  colaboração
chapter 1.
 once upon a time,
in a data-full web...
A web não se trata de
   sites e códigos
“The World-Wide Web (W3) was
  developed to be a pool of human
    knowledge, which would allow
collaborators in remote sites to share
      their ideas and all aspect”
A web são dados
Dados?
Web 1.0
“Web 1.0 is a retronym which refers to
the state of the World Wide Web, and any
   website design style used before the
  advent of the Web 2.0 phenomenon”
Conteúdo editorial
Web 2.0
“A Web 2.0 site allows its users to interact
  with other users or to change website
  content, in contrast to non-interactive
 websites where users are limited to the
     passive viewing of information”
Conteúdo do usuário
Organização?
Vovô
Vovô viu a uva
Vovô tagueou a uva
Editorial
     +
 Usuário
     +
Organização
Suficiente?
...
Como acessar esses
     dados?
chapter 2.
in a land of abstractions...
API
Application programing
       interface
API é o balcão da
     padaria
API
API   Aplicação
Ei, 300g de
      mortadela, por
          favor!

API                    Aplicação
http://www.flickr.com/photos/koluso/3878396868/
Aqui está!

API                Aplicação
Mas quem faz o
sanduíche é você
http://www.flickr.com/photos/eli_k_hayasaka/3363169377/
Formatar a saída
http://www.flickr.com/photos/dwz/65456745/
<?xml version="1.0" encoding="UTF-8"?>
<query xmlns:yahoo="http://www.yahooapis.com/v1/base.rng" yahoo:count="10" yahoo:created="2009-11-13T03:05:51Z" yahoo:lang="en-US"
yahoo:updated="2009-11-13T03:05:51Z" yahoo:uri="http://query.yahooapis.com/v1/yql?q=select+*+from+flickr.photos.search+where+text
%3D%22Cat%22+limit+10">
    <diagnostics>
        <publiclyCallable>true</publiclyCallable>
        <url execution-time="166"><![CDATA[http://api.flickr.com/services/rest/?
method=flickr.photos.search&text=Cat&page=1&per_page=10]]></url>
        <user-time>169</user-time>
        <service-time>166</service-time>
        <build-version>3694</build-version>
    </diagnostics>
    <results>
        <photo farm="3" id="4099857124" isfamily="0" isfriend="0" ispublic="1" owner="71311046@N00" secret="8407d3b409"
server="2572" title="sherlock"/>
        <photo farm="3" id="4099098491" isfamily="0" isfriend="0" ispublic="1" owner="31410040@N06" secret="5967c7ff68"
server="2521" title="       "/>
        <photo farm="3" id="4099099555"   isfamily="0" isfriend="0" ispublic="1" owner="71311046@N00" secret="06faed8b3c"
server="2425" title="sherlock"/>
        <photo farm="3" id="4099096693"   isfamily="0" isfriend="0" ispublic="1" owner="24916619@N00" secret="b262eb4e22"
server="2605" title="cat by lomo"/>
        <photo farm="3" id="4099853922"   isfamily="0" isfriend="0" ispublic="1" owner="71311046@N00" secret="922c467162"
server="2762" title="sherlock"/>
        <photo farm="3" id="4099854346"   isfamily="0" isfriend="0" ispublic="1" owner="31410040@N06" secret="5c30c33255"
server="2740" title="        "/>
         <photo farm="3" id="4099097217" isfamily="0"   isfriend="0" ispublic="1" owner="11803537@N00" secret="341c4bc76a"
server="2728" title="DSC_2145"/>
         <photo farm="3" id="4099847640" isfamily="0"   isfriend="0" ispublic="1" owner="7339712@N08" secret="293a1efa9d"
server="2702" title="Ari Chicken Wings"/>
         <photo farm="3" id="4099842272" isfamily="0"   isfriend="0" ispublic="1" owner="21561428@N03" secret="a7dd912414"
server="2524" title="Can I Have a Shower?"/>
         <photo farm="3" id="4099083751" isfamily="0"   isfriend="0" ispublic="1" owner="43679955@N05" secret="7dd29d534d"
server="2748" title="this is my rug"/>
    </results>
</query>
(marketing)
Yahoo! Query Language
dev
dev
dev
dev
dev
var map = new
      YMap(document.getElementById('map'));
      …
dev   var currentGeoPoint = new
      YGeoPoint( _c.Lat, _c.Lon );
      map.addMarker(currentGeoPoint);
      …



      …
      if (flickcurl_prepare(fc,
      "flickr.photos.geo.correctLocation",
      parameters, count)) { … }
      …



      http://search.yahooapis.com/
      ImageSearchService/V1/imageSearch?
      appid=YahooDemo&query=Corvette&results=2




      http://weather.yahooapis.com/
      forecastrss?p=FRXX0076&u=c
var map = new
      YMap(document.getElementById('map'));
      …
dev   var currentGeoPoint = new
      YGeoPoint( _c.Lat, _c.Lon );
      map.addMarker(currentGeoPoint);
      …



      …
      if (flickcurl_prepare(fc,
      "flickr.photos.geo.correctLocation",
      parameters, count)) { … }
      …



      http://search.yahooapis.com/
      ImageSearchService/V1/imageSearch?
      appid=YahooDemo&query=Corvette&results=2




      http://weather.yahooapis.com/
      forecastrss?p=FRXX0076&u=c
var map = new
          YMap(document.getElementById('map'));
          …
dev       var currentGeoPoint = new
          YGeoPoint( _c.Lat, _c.Lon );
          map.addMarker(currentGeoPoint);


      ?
          …



          …
          if (flickcurl_prepare(fc,


      ?
          "flickr.photos.geo.correctLocation",
          parameters, count)) { … }
          …



      ?   http://search.yahooapis.com/
          ImageSearchService/V1/imageSearch?
          appid=YahooDemo&query=Corvette&results=2


      ?
          http://weather.yahooapis.com/
          forecastrss?p=FRXX0076&u=c
var map = new
      YMap(document.getElementById('map'));
      …
dev   var currentGeoPoint = new
      YGeoPoint( _c.Lat, _c.Lon );
      map.addMarker(currentGeoPoint);
      …



      …
      if (flickcurl_prepare(fc,
      "flickr.photos.geo.correctLocation",
      parameters, count)) { … }
      …



      http://search.yahooapis.com/
      ImageSearchService/V1/imageSearch?
      appid=YahooDemo&query=Corvette&results=2




      http://weather.yahooapis.com/
      forecastrss?p=FRXX0076&u=c
dev




      YQL
dev




      YQL
dev




      YQL
dev




      select
               YQL
      desc
      show
select * from flickr.photos.info where
photo_id in (select id from
flickr.photos.search where woe_id in (select
woeid from geo.places where text='rio de
janeiro, brazil'))
select * from flickr.photos.info where
photo_id in (select id from
flickr.photos.search where woe_id in (select
woeid from geo.places where text='rio de
janeiro, brazil'))
select * from flickr.photos.info where
photo_id in (select id from
flickr.photos.search where woe_id in (select
woeid from geo.places where text='rio de
janeiro, brazil'))
select * from flickr.photos.info where
photo_id in (select id from
flickr.photos.search where woe_id in (select
woeid from geo.places where text='rio de
janeiro, brazil'))
http://developer.yahoo.com/yql/console/
http://datatables.org/
http://meme.yahoo.com/
got it?
...
chapter 3.
The pain passes, but the
   beauty remains...
Desenvolvedor          Interface
                    Lógica
                Persistência
Usuário             Interface



          Magica!
http://www.flickr.com/photos/ameotoko/3705874238/
http://developer.yahoo.com/ypatterns/
http://developer.yahoo.com/yui/
http://developer.yahoo.com/yui/reset/
http://developer.yahoo.com/yui/fonts/
http://developer.yahoo.com/yui/grids/
http://developer.yahoo.com/yui/grids/builder/
chapter 4.
Last but not least.
Empresas e pessoas estão
    descobrindo o poder de
distribuir coisas para o público
Distribuir seus produtos - e
manter os ouvidos abertos
   é uma ótima forma de
        melhorá-los
(é o que fazemos no
       YDN)
Reusar ferramentas de
 outras pessoas não é
      trapacear
Se você tem dados,
 exponha uma API;
Se você quer dados,
 procure por uma;
E se fizer alguma coisa,
  distribua de graça!
(você vai atingir mais pessoas e receber
    feedback que nunca imaginaria)
(desculpe o cliché)
desenvolvimento+web
     Bruno Atrib Zanchet
         @bzanchet

Seti 09

Editor's Notes

  • #3 Eu trabalho no yahoo! em sao paulo somos uma empresa de internet 15 anos de historia; portal, mail, noticias, etc. ferramentas para desenvolvedores; conteudo e pesquisa
  • #4 estou aqui por um motivo apenas. talvez queriam saber como trabalhar pra web. talvez ajude a passar um pouco dessa experienca com internet mostrar ferramentas que disponibilizamos algumas das dicas que podemos dar com a experiencia que temos
  • #5 a web &amp;#xE9; uma ferramenta fantastica a web tem muito conteudo a web tem ferramentas pra encontrar, modificar, combinar, formas de apresentar esse conteudo
  • #6 parece complicado econtrar informacao, huh? parece complicado encontrar ferramentas? talvez hajam muitas, e fique dificil escolher qual? parece complicado criar mais um site? como? lidar com browsers, javascript, APIs? mas deixa eu contar um segredo. ta ficando facil
  • #7 ao contrario do que se pensa. as ferramentas estao em um nivel cada vez mais alto de abstracao ficando faceis de usar; as que nao sao usadas estao morrendo (numa especie de selecao natural) comunidade grande; suporte grande facil encontrar gente diposta a ajudar. Mas h&amp;#xE1; um segredo.
  • #9 quando todos n&amp;#xF3;s trabalhamos na direcao de um mesmo objetivo, nosso trabalho &amp;#xE9; mais facil eu to falando de reusar coisas que outras pessoas fizeram (isso nao &amp;#xE9; roubar, &amp;#xE9; uma maneira inteligente de lidar com um problema comum) ao usar partes que funcionam, diminuimos a incidencia de problemas ao reusar sistemas provados, ajudarmos a fazer os sistemas ainda mais seguros
  • #10 cada vez mais pessoas e empresas estao distribuindo as ferramentas para livre uso poder de ter o publico ajudando a desenvolver e dando feedback resta a n&amp;#xF3;s tirar proveito! entao, antes de comecar a construir algo, procure se ja nao existe algum pronto
  • #11 aplicacao web. falei muito do conceito, mas o que &amp;#xE9; uma aplicacao web?
  • #17 parece simples, mas &amp;#xE9; dificil. simples &amp;#xE9; relativo. eu arrisco dizer que o que n&amp;#xE3;o for feito com paix&amp;#xE3;o nao vai dar certo motivacao deve ser o elemento numero 1 e precisamos trabalhar juntos senao o que acontece &amp;#xE9; uma grande quantidade de esforco desordenado
  • #18 vamos comecar falando sobre a parte mais basica. sem a qual nao &amp;#xE9; possivel ter aplicacoes. os dados.
  • #20 a www &amp;#xE9; uma serie de documentos interligados bla bla bla mas h&amp;#xE1; um detalhe que muita gente ignora. est&amp;#xE1; na definicao
  • #21 a web foi desenvolvida pra ser um repositorio de conhecimento humano que possibilitaria colaboradores em lugares remotos a compartilhas suas ideias
  • #23 Mas que tipos de dados? conteudo? noticias? fotos? estruturados? html? um pouco de historia
  • #24 tudo comecou com o que chamam (hoje) de web 1.0 o inicio da internet como conhecemos
  • #25 segundo a wikipedia
  • #26 modelo de distribuicao de TV
  • #27 poucos produtores consumidores passivos
  • #31 termo que muitos odeiam mas tem algum significado, sim
  • #32 um site web 2.0 permite aos seus usuarios interagir com outros usuarios e/ou modificar o conteudo desse site; em contraste com sites nao-interativos onde os usuarios estao limitados a passivamente ver a informacao
  • #33 em outras palavras... conteudo do usuario criado pelo usuario; encontrado pelo usuario; modificado pelo usuario. relacionado pelo usuario
  • #37 inicialmente pode parecer que a informacao vai estar desse jeito que &amp;#xE9; impossivel encontrar qualquer coisa util que nao h&amp;#xE1; ordem, estrutura, nem forma de encontrar dados interessantes e relevantes mas ha organizacao
  • #38 h&amp;#xE1; organizacao; ha alguma ordem no caos da internet. e mais. sabe quem organiza tudo isso?
  • #41 ta folksonomy
  • #42 pode parecer um exagero, mas sim.. ha muitos *meta-dados*, ha muita organizacao e a muita informacao inter-relacionada essa parece ser uma foto mais precisa. ok. talvez seja exagero. mas certamente aquela pilha de dados nao &amp;#xE9; a melhor representacao
  • #43 conteudo editorial - ele nunca sumiu, ele tem relacao com midias tradicionais .. tv, jornais tem o usuario complementando - comentando, adicionando tags, criando bookmarks, dando &amp;#x201C;star&amp;#x201D; ou &amp;#x201C;like&amp;#x201D; no google reader, retuitando
  • #46 &amp;#xE9; suficiente pra fazer uma aplicacao util? &amp;#xE9; suficiente pra mudar o mundo?
  • #53 &amp;#xE9; uma interface que um software implementa de forma que outro software possa interagir com ele mas eu.. eu tenho uma outra definicao.
  • #55 api &amp;#xE9; o balcao da padaria no sentido que ela, por si so, nao faz nada interessante. a api serve para retornar dados; fazer com que o resto do mundo consiga interagir com seus dados. isso, por si s&amp;#xF3;, n&amp;#xE3;o &amp;#xE9; interessante
  • #58 dados. crus. prontos para o consumo (quem disse que nao?) mas opde ficar muito melhor.
  • #61 combinar, mesclar, &amp;#x201C;augmentar&amp;#x201D;, fica a cargo da aplicacao (ou do desenvolvedor) &amp;#xE9; nesse ponto que se devem fazer as coisas interessantes para o usuario. resolver problemas; apresentar dados de outra forma; mostrar dados relevantes; combinar dados. fritar a mortadela, derreter o queijo, jogar um azeite e colocar dentro do pao.
  • #71 Lets take an example of a developer trying
  • #72 Lets take an example of a developer trying
  • #73 Lets take an example of a developer trying
  • #74 Lets take an example of a developer trying
  • #75 Lets take an example of a developer trying
  • #76 Lets take an example of a developer trying
  • #77 Lets take an example of a developer trying
  • #78 Lets take an example of a developer trying
  • #79 Lets take an example of a developer trying
  • #80 Lets take an example of a developer trying
  • #81 Lets take an example of a developer trying
  • #119 you need to be awesome!