<?xml version='1.0' encoding='UTF-8'?><rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearchrss/1.0/" xmlns:blogger="http://schemas.google.com/blogger/2008" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" version="2.0"><channel><atom:id>tag:blogger.com,1999:blog-5473585813342701908</atom:id><lastBuildDate>Sun, 01 Sep 2024 21:21:37 +0000</lastBuildDate><category>tutoriais</category><category>html</category><category>chrome3</category><category>firefox3.5</category><category>css</category><category>ie6</category><category>ie7</category><category>ie8</category><category>intermediário</category><category>vídeos</category><category>js</category><category>acessibilidade</category><category>avançado</category><category>Lumis</category><category>botões</category><category>informação</category><category>iniciante</category><category>inteligência artificial</category><category>tecnologia</category><category>Apple</category><category>Café Filosófico</category><category>Ipad</category><category>Steve Jobs</category><category>artigos</category><category>autores selecionados</category><category>caixas</category><category>cnn</category><category>design</category><category>google</category><category>imagens</category><category>internet</category><category>jquery</category><category>links</category><category>onclick</category><category>programação genética</category><category>seo</category><category>trabalho</category><category>usabilidade</category><category>2010</category><category>Alan Turing</category><category>Alexandre Versignassi</category><category>BBC</category><category>Bonnier</category><category>CMS</category><category>Dan Cederholm</category><category>Drew Diller</category><category>Hollywood</category><category>Isaac Asimov</category><category>Marcos Cavalcanti</category><category>Martha Gabriel</category><category>Michael Wesch</category><category>Pedro Burgos</category><category>Pirate Bay</category><category>Rafael Arrais</category><category>Roger Alsin</category><category>Superinteressante</category><category>WorkingMinds</category><category>YouTube</category><category>antropologia</category><category>boas práticas</category><category>ciência</category><category>copyright</category><category>criatividade</category><category>download</category><category>e-readers</category><category>economia</category><category>ensino</category><category>evolução</category><category>frases</category><category>games</category><category>gestão empresarial</category><category>liberdade</category><category>lógica de programação</category><category>marketing</category><category>matemática</category><category>mercado</category><category>mobile</category><category>morte</category><category>png</category><category>pop-ups</category><category>portfolio</category><category>prototype</category><category>protótipos</category><category>qwiki</category><category>redes sociais</category><category>reflexão</category><category>scriptaculous</category><category>tatuagem</category><category>twitter</category><category>vida</category><category>web 2.0</category><category>xml</category><title>Fonte de Código</title><description>Limpo, fluído e refrescante</description><link>http://fontedecodigo.blogspot.com/</link><managingEditor>noreply@blogger.com (raph)</managingEditor><generator>Blogger</generator><openSearch:totalResults>26</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5473585813342701908.post-6688408734174860364</guid><pubDate>Wed, 03 Jul 2013 22:44:00 +0000</pubDate><atom:updated>2013-07-03T19:44:44.309-03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">games</category><category domain="http://www.blogger.com/atom/ns#">inteligência artificial</category><category domain="http://www.blogger.com/atom/ns#">programação genética</category><title>Como sobreviver numa arena</title><description>&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj8dPazDSOIT0yqERWi8jvEu6kXUCjAH1fXTbIX1Sg8fll11lPc2DIxjesgdiP6COYmGBUHVPUqMxNmY3BQyWRHQC7ZdCoF_sPtItxjuBTHany6cUNQFBLh3-Z_qrIaFTVqfoFCKLQ5Qwc/s1024/quake-iii-arena-windows-screenshot.jpg&quot; imageanchor=&quot;1&quot; style=&quot;clear: right; float: right; margin-bottom: 1em; margin-left: 1em;&quot; title=&quot;Para que exatamente fomos colocados nesta arena?&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj8dPazDSOIT0yqERWi8jvEu6kXUCjAH1fXTbIX1Sg8fll11lPc2DIxjesgdiP6COYmGBUHVPUqMxNmY3BQyWRHQC7ZdCoF_sPtItxjuBTHany6cUNQFBLh3-Z_qrIaFTVqfoFCKLQ5Qwc/s1024/quake-iii-arena-windows-screenshot.jpg&quot; style=&quot;width:320px;height:240px;display:block;&quot; /&gt;&lt;/a&gt;

&lt;p&gt;Em 1999, o mais novo lan&amp;ccedil;amento do mundo dos games de  tiro com vis&amp;atilde;o em primeira pessoa (&lt;em&gt;first  person shooter&lt;/em&gt; ou, pela sigla, &lt;a href=&quot;https://pt.wikipedia.org/wiki/Tiro_em_primeira_pessoa&quot; target=&quot;_blank&quot;&gt;FPS&lt;/a&gt;) era o &lt;em&gt;&lt;a href=&quot;http://pt.wikipedia.org/wiki/Quake_III_Arena&quot; target=&quot;_blank&quot;&gt;Quake III Arena&lt;/a&gt;&lt;/em&gt;, um jogo brutal em que jogadores do mundo todo  jogam online numa arena de guerra onde dois grupos de guerrilheiros (armados com  armas de fogo futuristas e extremamente letais) duelam at&amp;eacute; que um dos grupos  tenha sido inteiramente exterminado. Quando isto acontece, todos os mortos  retornam a vida e come&amp;ccedil;a um novo duelo, e assim por diante...&lt;/p&gt;
&lt;p&gt;Uma das inova&amp;ccedil;&amp;otilde;es do game, segundo a desenvolvedora  (&lt;em&gt;Id Software&lt;/em&gt;), era a suposta &amp;ldquo;nova  intelig&amp;ecirc;ncia artificial&amp;rdquo; dos &lt;em&gt;bots&lt;/em&gt; no  jogo. Um &lt;em&gt;bot &lt;/em&gt;(abrevia&amp;ccedil;&amp;atilde;o de &lt;em&gt;robot&lt;/em&gt;) &amp;eacute; &lt;a href=&quot;http://pt.wikipedia.org/wiki/Bot&quot; target=&quot;_blank&quot;&gt;uma aplica&amp;ccedil;&amp;atilde;o de software&lt;/a&gt;  concebida para simular a&amp;ccedil;&amp;otilde;es humanas repetidas vezes de maneira padr&amp;atilde;o, da  mesma forma como faria um rob&amp;ocirc;. Durante o jogo, os personagens da arena  controlados pelo computador (ou seja, n&amp;atilde;o controlados por jogadores reais e  humanos) supostamente observariam o estilo de luta dos demais jogadores,  humanos ou &lt;em&gt;bots&lt;/em&gt;, na medida em que a  simula&amp;ccedil;&amp;atilde;o das arenas de batalha transcorresse.&lt;/p&gt;
&lt;p&gt;Com o tempo, seriam capazes de &amp;ldquo;pensar&amp;rdquo; em novas  t&amp;aacute;ticas, efetivamente se adaptando as t&amp;aacute;ticas que mais venciam combates, e  ignorando as t&amp;aacute;ticas ineficazes para a sua sobreviv&amp;ecirc;ncia, pois ganha o combate  o grupo que sobrevive ao final [1]. Para que a intelig&amp;ecirc;ncia artificial dos &lt;em&gt;bots&lt;/em&gt; pudesse se desenvolver mais  profundamente, entretanto, os servidores do jogo deveriam permanecer online,  simulando centenas ou milhares de batalhas, por muito tempo a fio. E isto era  invi&amp;aacute;vel para os servidores oficiais do game, que precisam passar por  manuten&amp;ccedil;&amp;atilde;o semanal.&lt;/p&gt;
&lt;p&gt;De acordo com um misterioso t&amp;oacute;pico de um f&amp;oacute;rum  online (hospedado no &lt;em&gt;4Chan&lt;/em&gt;), em 2007  um jogador configurou um servidor pirata local do game (ou seja, hospedado em  sua pr&amp;oacute;pria casa) para rodar indefinidamente simula&amp;ccedil;&amp;otilde;es de arenas de combate  entre 16 &lt;em&gt;bots&lt;/em&gt;, sem nenhum ser humano  a interagir com eles. Ocorre que este jogador esqueceu completamente do que  havia feito, e como em sua casa os computadores ficavam sempre ligados, como  servidores locais, &lt;span class=&quot;pull&quot;&gt;a simula&amp;ccedil;&amp;atilde;o rodou por longos quatro anos, at&amp;eacute; que &lt;span class=&quot;drop&quot;&gt;em 2011 &lt;/span&gt;ele finalmente se lembrou dela!&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Cada um dos 16 &lt;em&gt;bots&lt;/em&gt; da simula&amp;ccedil;&amp;atilde;o havia gerado 512 MB de informa&amp;ccedil;&amp;otilde;es t&amp;aacute;ticas aprimoradas por  centenas de milhares de partidas letais. Eram 8 GB de informa&amp;ccedil;&amp;otilde;es. O que elas  teriam gerado? Atiradores infal&amp;iacute;veis? Coordena&amp;ccedil;&amp;atilde;o perfeita e rob&amp;oacute;tica para  matar da forma mais eficiente poss&amp;iacute;vel? O jogador resolveu entrar na simula&amp;ccedil;&amp;atilde;o  para ver quanto tempo seria capaz de sobreviver...&lt;/p&gt;
&lt;p&gt;Ent&amp;atilde;o, para sua surpresa, ele observou que os 15 &lt;em&gt;bots&lt;/em&gt; (ele estava jogando como o d&amp;eacute;cimo  sexto) nada faziam, apenas olhavam para ele e o seguiam onde quer que fosse.  N&amp;atilde;o pareciam mais duelistas letais, mas antes pacifistas em busca de um sentido  para estarem vagueando indefinidamente por uma arena de batalha. Aparentemente,  em alguns anos de simula&amp;ccedil;&amp;atilde;o, a intelig&amp;ecirc;ncia artificial dos &lt;em&gt;bots&lt;/em&gt; chegou a melhor estrat&amp;eacute;gia para a sobreviv&amp;ecirc;ncia: ningu&amp;eacute;m morre  quando ningu&amp;eacute;m mata.&lt;/p&gt;
&lt;p&gt;A &lt;a href=&quot;http://pt.wikipedia.org/wiki/Teoria_dos_jogos&quot; target=&quot;_blank&quot;&gt;Teoria dos Jogos&lt;/a&gt; &amp;eacute; um ramo  da matem&amp;aacute;tica aplicada que estuda situa&amp;ccedil;&amp;otilde;es estrat&amp;eacute;gicas onde jogadores  escolhem diferentes a&amp;ccedil;&amp;otilde;es na tentativa de melhorar o resultado, ou seja, o  retorno de suas escolhas. Inicialmente desenvolvida como ferramenta para  compreender comportamento econ&amp;ocirc;mico e depois usada pela &lt;a href=&quot;http://pt.wikipedia.org/wiki/RAND&quot; target=&quot;_blank&quot;&gt;Corpora&amp;ccedil;&amp;atilde;o RAND&lt;/a&gt; para  definir estrat&amp;eacute;gias nucleares, a Teoria dos Jogos &amp;eacute; hoje usada em diversos  campos acad&amp;ecirc;micos.&lt;/p&gt;
&lt;p&gt;Podemos ilustr&amp;aacute;-la de forma  simples e direta com o chamado &amp;ldquo;&lt;a href=&quot;http://pt.wikipedia.org/wiki/Dilema_do_prisioneiro&quot; target=&quot;_blank&quot;&gt;dilema do prisioneiro&lt;/a&gt;&amp;rdquo;, originalmente formulado  por funcion&amp;aacute;rios da RAND: &lt;/p&gt;
&lt;p&gt;&lt;em&gt;Dois suspeitos, A e B, s&amp;atilde;o presos pela pol&amp;iacute;cia. A  pol&amp;iacute;cia tem provas insuficientes para sua condena&amp;ccedil;&amp;atilde;o; mas, separando os  prisioneiros, oferece a ambos o mesmo acordo: se um dos prisioneiros,  confessando, testemunhar contra o outro e esse outro permanecer em sil&amp;ecirc;ncio, o  que confessou sai livre enquanto o c&amp;uacute;mplice silencioso cumpre 10 anos de  senten&amp;ccedil;a. Se ambos ficarem em sil&amp;ecirc;ncio, a pol&amp;iacute;cia s&amp;oacute; pode conden&amp;aacute;-los h&amp;aacute; 6  meses de cadeia cada um. Se ambos tra&amp;iacute;rem o comparsa, cada um leva 5 anos de  cadeia. Cada prisioneiro faz a sua decis&amp;atilde;o sem saber que decis&amp;atilde;o o outro vai  tomar, e nenhum tem certeza da decis&amp;atilde;o do outro. A quest&amp;atilde;o que o dilema prop&amp;otilde;e  &amp;eacute;: o que vai acontecer? Como o prisioneiro vai reagir?&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;No &amp;ldquo;dilema do prisioneiro&amp;rdquo;,  temos uma situa&amp;ccedil;&amp;atilde;o onde o altru&amp;iacute;smo e a confian&amp;ccedil;a m&amp;uacute;tua oferece o melhor  resultado final para ambos os jogadores. No entanto, isto n&amp;atilde;o ocorre sem o  risco de se ficar calado, confiando em seu parceiro, e ao fim ser tra&amp;iacute;do por  ele, e receber em retorno o pior resultado. De certa forma, a Teoria dos Jogos  e o &amp;ldquo;dilema do prisioneiro&amp;rdquo; se aplicam n&amp;atilde;o somente a economia e as rela&amp;ccedil;&amp;otilde;es de  poder entre pot&amp;ecirc;ncias nucleares, mas tamb&amp;eacute;m a uma partida de &lt;em&gt;Quake III Arena&lt;/em&gt;... Ser&amp;aacute; mesmo?&lt;/p&gt;

&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiaifeavPw0rGdoBueFhqYTl61Ti4fEim5P1E0FxVezkRY8WFqFnvy1Tw8X_pRPbvk8qVH3jW-OkvLi1JbJpj0zOyLyaooqK33eqRmG-VPTi_hfnoYsOGmLv9Aa6UDnPV-kBdRcUOO1JFg/s640/hammer.jpg&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot; title=&quot;Serve para a construção de casas, ou para causar traumatismos cranianos...&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiaifeavPw0rGdoBueFhqYTl61Ti4fEim5P1E0FxVezkRY8WFqFnvy1Tw8X_pRPbvk8qVH3jW-OkvLi1JbJpj0zOyLyaooqK33eqRmG-VPTi_hfnoYsOGmLv9Aa6UDnPV-kBdRcUOO1JFg/s640/hammer.jpg&quot; style=&quot;width:320px;height:240px;display:block;&quot; /&gt;&lt;/a&gt;

&lt;p&gt;Retornando ao experimento  ins&amp;oacute;lito do in&amp;iacute;cio do artigo, o jogador resolveu &amp;ldquo;ver o que acontecia se  atirasse em algum outro &lt;em&gt;bot&lt;/em&gt;&amp;rdquo;. Para  sua surpresa, ao fazer isso, ele foi atacado (e morto) n&amp;atilde;o somente pelos 8 &lt;em&gt;bots&lt;/em&gt; do outro time, como pelos 7 outros &lt;em&gt;bots&lt;/em&gt; de sua pr&amp;oacute;pria equipe!&lt;/p&gt;
&lt;p&gt;Ou pelo menos foi isto  que &lt;a href=&quot;http://i.imgur.com/dx7sVXj.jpg&quot; target=&quot;_blank&quot;&gt;a imagem com capturas de tela&lt;/a&gt; do suposto t&amp;oacute;pico do &lt;em&gt;4Chan&lt;/em&gt; dizia. &lt;span class=&quot;&quot;&gt;Muitos sites &lt;span class=&quot;&quot;&gt;de games &lt;/span&gt;compartilharam a not&amp;iacute;cia&lt;/span&gt;, e ela  obteve certa fama tamb&amp;eacute;m nas redes sociais. No entanto, como muitos podem ter  imaginado, &lt;a href=&quot;http://www.huffingtonpost.co.uk/2013/07/01/quake-3-arena-world-peace_n_3529082.html&quot; target=&quot;_blank&quot;&gt;era tudo um &lt;em&gt;hoax&lt;/em&gt;&lt;/a&gt;, ou seja,  uma hist&amp;oacute;ria inventada, como tantas outras que vemos nestes tempos de  propaga&amp;ccedil;&amp;atilde;o desenfreada da informa&amp;ccedil;&amp;atilde;o. &lt;/p&gt;
&lt;p style=&quot;clear:both;&quot;&gt;Por&amp;eacute;m, ainda que n&amp;atilde;o tenha ocorrido de verdade,  ainda que os 16&lt;em&gt; bots&lt;/em&gt; com suas  intelig&amp;ecirc;ncias artificiais sejam incapazes de interpretar o resultado de suas  a&amp;ccedil;&amp;otilde;es (j&amp;aacute; que s&amp;atilde;o ferramentas de computa&amp;ccedil;&amp;atilde;o, e n&amp;atilde;o seres de interpreta&amp;ccedil;&amp;atilde;o),  esta hist&amp;oacute;ria ainda nos toca numa quest&amp;atilde;o primordial: ela foi espalhada como  algo veross&amp;iacute;mil, extremamente veross&amp;iacute;mil.&lt;/p&gt;

&lt;p&gt;Penso que muitos de n&amp;oacute;s t&amp;ecirc;m esta certa queda por  acreditar que uma simula&amp;ccedil;&amp;atilde;o computacional possa, de alguma forma  incompreens&amp;iacute;vel, chegar a conclus&amp;otilde;es que, no fundo, s&amp;atilde;o as nossas pr&amp;oacute;pria conclus&amp;otilde;es,  mas que n&amp;atilde;o temos a vontade, ou a coragem, de coloca-las em pr&amp;aacute;tica.&lt;/p&gt;

&lt;p&gt;Afinal, n&amp;atilde;o se enganem: o &lt;em&gt;bot&lt;/em&gt; do game mais avan&amp;ccedil;ado do ano que vem n&amp;atilde;o ser&amp;aacute; mais nem menos  ferramenta do que um martelo ou uma bomba nuclear. N&amp;atilde;o &amp;eacute; o martelo que mata ou  constr&amp;oacute;i coisas, &amp;eacute; quem o empunha. N&amp;atilde;o foi o material radioativo, e nem mesmo  os f&amp;iacute;sicos que descobriram a fiss&amp;atilde;o nuclear quem arrasaram Hiroshima, foram  aqueles que deram a ordem: &amp;ldquo;soltem a bomba&amp;rdquo;...&lt;/p&gt;
&lt;p&gt;Somos, desta forma, todos prisioneiros desta enorme  simula&amp;ccedil;&amp;atilde;o chamada &amp;ldquo;mundo&amp;rdquo;, e s&amp;oacute; sairemos desta pris&amp;atilde;o de m&amp;atilde;os dadas &amp;ndash; todos ser&amp;atilde;o  livres somente quando n&amp;atilde;o houver mais nenhum prisioneiro.&lt;/p&gt;
&lt;p style=&quot;clear:both;&quot;&gt;***&lt;/p&gt;
&lt;p&gt;[1] Isto  n&amp;atilde;o deixa de ser uma forma de &lt;a href=&quot;http://textosparareflexao.blogspot.com/2010/08/ciencia-da-inspiracao-parte-1.html&quot; target=&quot;_blank&quot;&gt;programa&amp;ccedil;&amp;atilde;o gen&amp;eacute;tica&lt;/a&gt;. &lt;/p&gt;
&lt;p&gt;Cr&amp;eacute;dito das imagens: [topo] &lt;em&gt;Quake III Arena&lt;/em&gt; (captura de tela); [ao longo] Adrianna Williams/Corbis&lt;/p&gt;</description><link>http://fontedecodigo.blogspot.com/2013/07/como-sobreviver-numa-arena.html</link><author>noreply@blogger.com (raph)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj8dPazDSOIT0yqERWi8jvEu6kXUCjAH1fXTbIX1Sg8fll11lPc2DIxjesgdiP6COYmGBUHVPUqMxNmY3BQyWRHQC7ZdCoF_sPtItxjuBTHany6cUNQFBLh3-Z_qrIaFTVqfoFCKLQ5Qwc/s72-c/quake-iii-arena-windows-screenshot.jpg" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5473585813342701908.post-249729673557663013</guid><pubDate>Fri, 11 May 2012 20:13:00 +0000</pubDate><atom:updated>2012-05-11T17:16:07.479-03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">design</category><category domain="http://www.blogger.com/atom/ns#">lógica de programação</category><category domain="http://www.blogger.com/atom/ns#">reflexão</category><category domain="http://www.blogger.com/atom/ns#">trabalho</category><title>Programar e codificar: uma reflexão</title><description>&lt;p&gt;Aqui vai uma pequena reflexão do meu dia a dia como programador de interface web:&lt;/p&gt;

&lt;p&gt;Uma amiga programadora me chama no Skype e pergunta se posso ajudar a resolver um problema com o código HTML de um site que ela está ajustando (na verdade, CSS, pra quem é da área), eu identifico e resolvo o problema em torno de 5 minutos, pois já havia passado pelo mesmo problema várias vezes antes. Ela, entretanto, estava horas tentando resolver, e fica muito agradecida.&lt;/p&gt;

&lt;p&gt;Para um programador puro, que faz programação e não codificação (como é o meu caso) a noção de formas e design não é tão boa quanto a noção lógica e matemática, pois eles lidam muito mais com as últimas do que com as primeiras. Eu, no caso, sou exatamente o inverso disso...&lt;/p&gt;

&lt;p&gt;Desse modo, não faria sentido eu me achar &quot;um programador de interface foda&quot; somente porque resolvi um problema que minha amiga estava horas tentando solucionar... O dia que eu tiver um problema que envolva lógica de programação, e não design, provavelmente serei eu a pedir ajuda pra ela.&lt;/p&gt;

&lt;p&gt;E a empresa em si, tem a sorte de poder contar com essa comunicação e amizade entre seus funcionários (a &lt;a href=&quot;http://www.lumis.com.br/&quot; target=&quot;_blank&quot;&gt;minha empresa&lt;/a&gt; nos chama &quot;colaboradores&quot;, que acho bem melhor), pois as horas de trabalho da minha amiga, ao invés de se estenderem ainda mais, se &quot;encolheram&quot; para 5 minutos.&lt;/p&gt;

&lt;p&gt;É por isso que acredito que ambientes de trabalho assim têm muito a ensinar para outros sistemas de trabalho, no mundo todo.&lt;/p&gt;</description><link>http://fontedecodigo.blogspot.com/2012/05/programar-e-codificar-uma-reflexao.html</link><author>noreply@blogger.com (raph)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5473585813342701908.post-7441876555693689522</guid><pubDate>Mon, 23 Jan 2012 19:28:00 +0000</pubDate><atom:updated>2012-01-23T17:28:53.341-02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">copyright</category><category domain="http://www.blogger.com/atom/ns#">download</category><category domain="http://www.blogger.com/atom/ns#">economia</category><category domain="http://www.blogger.com/atom/ns#">Hollywood</category><category domain="http://www.blogger.com/atom/ns#">internet</category><category domain="http://www.blogger.com/atom/ns#">liberdade</category><category domain="http://www.blogger.com/atom/ns#">Pirate Bay</category><title>O manifesto pirata</title><description>&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjpuyhlQnOPohdfAj1JZRgg8D6LbAbVD-ijhuy1X9Qq6Rrv58BQ9PAD7bx0NWbd5OPKkq__x430gvAX5JY4lcHNnktBu7n70Cfp0XZCwBI2anxLNmrV31pTHmmW8X1UfecSmi0rRO_B32E/s1600/pirate-bay-ship.jpg&quot; target=&quot;_blank&quot; title=&quot;Derrube um navio, 10 outros surgirão do mar...&quot;&gt;&lt;img style=&quot;float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 204px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjpuyhlQnOPohdfAj1JZRgg8D6LbAbVD-ijhuy1X9Qq6Rrv58BQ9PAD7bx0NWbd5OPKkq__x430gvAX5JY4lcHNnktBu7n70Cfp0XZCwBI2anxLNmrV31pTHmmW8X1UfecSmi0rRO_B32E/s320/pirate-bay-ship.jpg&quot; border=&quot;0&quot; alt=&quot;&quot;id=&quot;BLOGGER_PHOTO_ID_5700910448692895346&quot; /&gt;&lt;/a&gt;
&lt;p&gt;&lt;em&gt;O texto abaixo é quase uma espécie de manifesto pró-pirataria na web, feito em forma de nota pelo site Pirate Bay. Podemos ser contra a pirataria em muitos casos (principalmente pirataria da obra de pequenos artistas, fora da &quot;grande indústria&quot;), mas realmente o que as grandes corporações de mídia americanas &lt;a href=&quot;http://blogs.forumpcs.com.br/noticias/2012/01/20/sopa-mpaa-ameaca-obama-nao-peca-dinheiro-sem-nos-apoiar/&quot; target=&quot;_blank&quot;&gt;estão tentando fazer com a web&lt;/a&gt; em seu país é indiscutivelmente ridículo - particularmente se considerarmos a origem das mesmas. Vejam só que interessante:&lt;/em&gt;&lt;/p&gt;
&lt;br /&gt;
&lt;p style=&quot;padding-left: 0px;&quot;&gt;Há mais de um século, Thomas Edison conseguiu a patente para um aparelho que faria “para o olho o que o fonógrafo fez para o ouvido”. Ele o chamou de cinetoscópio [Kinetoscope]. Edison não foi apenas o primeiro a gravar vídeo, mas foi também a primeira pessoa a ser dono do copyright de um filme cinematográfico.&lt;/p&gt;
&lt;p style=&quot;padding-left: 0px;&quot;&gt;Por causa das patentes de Edison para filmes cinematográficos, quase foi financeiramente impossível criar filmes de cinema na costa oeste norte-americana. Os estúdios de cinema, assim, mudaram para a Califórnia e fundaram o que hoje chamamos de Hollywood. A principal razão é que ali não haviam patentes.&lt;/p&gt;
&lt;p style=&quot;padding-left: 0px;&quot;&gt;Não havia também nada de copyright, então os estúdios podiam copiar velhas histórias e fazer filmes a partir delas – como Fantasia, um dos maiores hits da história da Disney.&lt;/p&gt;
&lt;p style=&quot;padding-left: 0px;&quot;&gt;Portanto, toda a base dessa indústria, que está hoje aos gritos sobre perda de controle sobre direitos não-materiais, é que eles driblaram direitos não-materiais. Eles copiaram (ou, de acordo com sua terminologia,”roubaram”) as obras criativas de outras pessoas sem pagar por isso. Eles o fizeram para obter grandes lucros. Hoje, eles são todos bem-sucedidos e a maior parte dos estúdios está na lista da Fortune das 500 empresas mais ricas do mundo. Parabéns – está tudo baseado em ser capaz de reutilizar criações de outras pessoas. E hoje eles detém os direitos das criações de outras pessoas. Se você quer lançar alguma coisa, você tem que seguir as regras deles. As regras que eles criaram depois de driblar as regras de outras pessoas.&lt;/p&gt;
&lt;p style=&quot;padding-left: 0px;&quot;&gt;A razão pela qual eles estão sempre reclamando dos “piratas” hoje é simples. Nós fizemos o que eles fizeram. Nós driblamos as regras que eles criaram e criamos as nossas próprias. Nós esmagamos o seu monopólio ao dar às pessoas algo mais eficiente. Nós permitimos que as pessoas tenham comunicação direta entre si, driblando o intermediário lucrativo, que em alguns casos levar mais que 107% dos lucros (sim, você paga para trabalhar para eles).&lt;/p&gt;
&lt;p style=&quot;padding-left: 0px;&quot;&gt;Tudo se baseia no fato de que representamos competição.&lt;/p&gt;

&lt;!--&lt;p style=&quot;padding-left: 0px;&quot;&gt;Provamos que a forma atual como existem não é mais necessária. Somos simplesmente do que eles são.&lt;/p&gt;--&gt;

&lt;p style=&quot;padding-left: 0px;&quot;&gt;E a parte engraçada é que as &lt;span class=&quot;pull&quot;&gt;nossas regras são muito similares às ideias que fundaram os EUA&lt;/span&gt;. Lutamos pela liberdade de expressão. Enxergamos as pessoas como iguais. Acreditamos que o público, não a elite, deveria governar a nação. Acreditamos que leis deveriam ser criadas para servir o público, não corporações ricas.&lt;/p&gt;
&lt;p style=&quot;padding-left: 0px;&quot;&gt;O Pirate Bay é uma comunidade verdadeiramente interacional. Nossa equipe está espalhada por todo o globo – mas ficamos fora dos EUA. Temos raízes suecas e um amigo sueco nos disse isso:&lt;/p&gt;
&lt;p style=&quot;padding-left: 0px;&quot;&gt;A palavra SOPA significa “lixo” em sueco. A palavra PIPA significa “um cano” em sueco. É claro que isso não é coincidência. Eles querem tornar a internet um cano de mão única. Eles por cima empurrando lixo cano abaixo para o resto de nós, consumidores obedientes.&lt;/p&gt;

&lt;p style=&quot;padding-left: 0px;&quot;&gt;A opinião pública nesse assunto é clara. Pergunte a qualquer um na rua e você vai descobrir que ninguém quer ser alimentado com lixo. Por que o governo americano quer que o povo americano seja alimentado com lixo foge à nossa compreensão, mas esperamos que você o impeça, antes que afoguemos todos.&lt;/p&gt;
&lt;p style=&quot;padding-left: 0px;&quot;&gt;A Sopa não pode fazer nada para brecar o Pirate Bay. &lt;span class=&quot;pull&quot;&gt;Na pior das hipóteses, mudaremos o domínio principal&lt;/span&gt;: do atual .org para uma das centenas de nomes que também já usamos. Em países onde estamos bloqueados (os nomes China e Arábia Saudita são os primeiros que vêm à cabeça), eles bloqueiam centenas de nomes de domínios nossos. E adianta? Não muito.&lt;/p&gt;
&lt;p style=&quot;padding-left: 0px;&quot;&gt;Para consertar o “problema da pirataria” deveria se ir à raiz do problema. A indústria do entretenimento diz que eles estão criando “cultura”, mas o que eles realmente fazem é vender coisas como bonecas caríssimas e fazer meninas de 11 anos se tornarem anoréxicas. Seja de trabalhar nas fábricas que criam as bonecas por praticamente salário nenhum, seja por assistir filmes e programas de TV que as fazem pensar que são gordas.&lt;/p&gt;
&lt;p style=&quot;padding-left: 0px;&quot;&gt;No grande jogo de computador de Sid Meiers, Civilization, você pode construir maravilhas do mundo. Um dos mais poderosos é Hollywood. Com ele, você controla toda a cultura e mídia do mundo. Rupert Murdoch ficou feliz com MySpace e não via problemas com sua própria pirataria até seu fracasso. Agora ele reclama que o Google é a maior fonte de pirataria do mundo — porque ele está com ciúmes. Ele deseja manter seu controle mental sobre as pessoas e está claro que você consegue um visão mais honesta das coisas na Wikipedia e no Google do que na Fox News.&lt;/p&gt;
&lt;p style=&quot;padding-left: 0px;&quot;&gt;Alguns dos fatos (anos, datas) nesse texto estão provavelmente erradas. O motivo é que não podemos acessar essas informações quando a Wikipedia está fora do ar. Por causa da pressão de nossos rivais decadentes. Pedimos desculpas por isso.&lt;/p&gt;
&lt;p&gt;***&lt;/p&gt;
&lt;p&gt;Crédito da imagem: Pirata!&lt;/p&gt;</description><link>http://fontedecodigo.blogspot.com/2012/01/o-manifesto-pirata.html</link><author>noreply@blogger.com (raph)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjpuyhlQnOPohdfAj1JZRgg8D6LbAbVD-ijhuy1X9Qq6Rrv58BQ9PAD7bx0NWbd5OPKkq__x430gvAX5JY4lcHNnktBu7n70Cfp0XZCwBI2anxLNmrV31pTHmmW8X1UfecSmi0rRO_B32E/s72-c/pirate-bay-ship.jpg" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5473585813342701908.post-5001613097845086203</guid><pubDate>Mon, 09 Jan 2012 04:10:00 +0000</pubDate><atom:updated>2012-01-09T02:13:59.774-02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">html</category><category domain="http://www.blogger.com/atom/ns#">imagens</category><category domain="http://www.blogger.com/atom/ns#">tatuagem</category><title>Tatuagem para HTMLers</title><description>&lt;p&gt;Com essa tatuagem será mais fácil seduzir um HTMLer:&lt;/p&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgovP1zvzKxeSXA7Jm5_70Nib4ill3E6lboopEGkarDFN88vJwXKayhhU6CntMjhjohPZB5c2cSP2T25OlfSsAY1oSTJ9Sr1psGH5c_zHNhhOfW-Gcm2Taaqwac1NBm_ishXG_J7q7C1Uph/s1600/head_body_tatoo.jpg&quot; target=&quot;_blank&quot;&gt;&lt;img style=&quot;cursor:pointer; cursor:hand;width: 400px; height: 300px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgovP1zvzKxeSXA7Jm5_70Nib4ill3E6lboopEGkarDFN88vJwXKayhhU6CntMjhjohPZB5c2cSP2T25OlfSsAY1oSTJ9Sr1psGH5c_zHNhhOfW-Gcm2Taaqwac1NBm_ishXG_J7q7C1Uph/s400/head_body_tatoo.jpg&quot; border=&quot;0&quot; alt=&quot;&quot;id=&quot;BLOGGER_PHOTO_ID_5695479988023276530&quot; /&gt;&lt;/a&gt;
&lt;br /&gt;&lt;br /&gt;</description><link>http://fontedecodigo.blogspot.com/2012/01/tatuagem-para-htmlers.html</link><author>noreply@blogger.com (raph)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgovP1zvzKxeSXA7Jm5_70Nib4ill3E6lboopEGkarDFN88vJwXKayhhU6CntMjhjohPZB5c2cSP2T25OlfSsAY1oSTJ9Sr1psGH5c_zHNhhOfW-Gcm2Taaqwac1NBm_ishXG_J7q7C1Uph/s72-c/head_body_tatoo.jpg" height="72" width="72"/><thr:total>1</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5473585813342701908.post-6272670552143260997</guid><pubDate>Thu, 06 Oct 2011 15:17:00 +0000</pubDate><atom:updated>2011-10-06T12:18:33.168-03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">frases</category><category domain="http://www.blogger.com/atom/ns#">morte</category><category domain="http://www.blogger.com/atom/ns#">Steve Jobs</category><category domain="http://www.blogger.com/atom/ns#">vida</category><title>Frases de Steve Jobs</title><description>&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjg-fAK1tM-EnwKsahshqHs6w9ISWbaqeWYcSRZBQB-rphOQ0Do1_7yaOZXNZBgNUqb80FFMXdLnv14jkaB4P1EEeLZWOhcYdSnIF39VWKCJcouxNRRE-qaEpSCFy0ApsmdxLvIwzv-vbw/s1600/SteveJobs.jpg&quot; target=&quot;_blank&quot; title=&quot;Vamos mudar o mundo? Tudo começa com uma ideia...&quot;&gt;&lt;img style=&quot;float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 274px; height: 320px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjg-fAK1tM-EnwKsahshqHs6w9ISWbaqeWYcSRZBQB-rphOQ0Do1_7yaOZXNZBgNUqb80FFMXdLnv14jkaB4P1EEeLZWOhcYdSnIF39VWKCJcouxNRRE-qaEpSCFy0ApsmdxLvIwzv-vbw/s320/SteveJobs.jpg&quot; border=&quot;0&quot; alt=&quot;&quot;id=&quot;BLOGGER_PHOTO_ID_5660395158059009730&quot; /&gt;&lt;/a&gt;
&lt;p&gt;E quem diria que tudo iria começar com um garotinho adotado que abandonou o curso principal da faculdade, se matriculou em aulas de tipografia, e almoçava de graça uma vez por semana num templo Hare Krishna...&lt;/p&gt;
&lt;br /&gt;
&lt;p&gt;&quot;Lembrar que estarei morto em breve foi a mais importante ferramenta que já encontrei para me ajudar a fazer grandes escolhas na vida.&quot;&lt;/p&gt;
&lt;p&gt;&quot;A morte nos lembra de que não há nada a perder. Você já está nu, não há nenhuma razão para não seguir seu coração.&quot;&lt;/p&gt;
&lt;p&gt;&quot;Ninguém quer morrer. Mesmo as pessoas que querem ir para o céu não querem morrer para chegar lá...&quot;&lt;/p&gt;
&lt;p&gt;&quot;Mas a morte é provavelmente a melhor invenção da Vida, seu grande agente de mudança, ela se livra do velho para abrir caminho ao novo que vem chegando.&quot;&lt;/p&gt;
&lt;br /&gt;
&lt;p&gt;&quot;Seu tempo é limitado, então não o desperdice vivendo a vida de alguém, não fique preso as expectativas e pensamentos dos outros.&quot;&lt;/p&gt;
&lt;p&gt;&quot;Seu coração e intuição já sabem, de alguma maneira, no que você quer realmente se tornar. Todo o resto é secundário...&quot;&lt;/p&gt;
&lt;p&gt;***&lt;/p&gt;
&lt;p&gt;&amp;#187; Todas as frases foram retiradas do &lt;a href=&quot;http://www.youtube.com/watch?v=JdmJEwO5qiE&quot; target=&quot;_blank&quot;&gt;&lt;strong&gt;histórico discurso de Jobs em Stanford&lt;/strong&gt;&lt;/a&gt; (abrirá em nova janela).&lt;/p&gt;
&lt;p&gt;Crédito da foto: Divulgação (Apple.com)&lt;/p&gt;</description><link>http://fontedecodigo.blogspot.com/2011/10/frases-de-steve-jobs.html</link><author>noreply@blogger.com (raph)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjg-fAK1tM-EnwKsahshqHs6w9ISWbaqeWYcSRZBQB-rphOQ0Do1_7yaOZXNZBgNUqb80FFMXdLnv14jkaB4P1EEeLZWOhcYdSnIF39VWKCJcouxNRRE-qaEpSCFy0ApsmdxLvIwzv-vbw/s72-c/SteveJobs.jpg" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5473585813342701908.post-3952984343168446994</guid><pubDate>Thu, 01 Sep 2011 20:32:00 +0000</pubDate><atom:updated>2011-09-01T17:47:17.021-03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">artigos</category><category domain="http://www.blogger.com/atom/ns#">boas práticas</category><category domain="http://www.blogger.com/atom/ns#">design</category><category domain="http://www.blogger.com/atom/ns#">mobile</category><title>Criando layouts para dispositivos móveis</title><description>&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgBpMRlaj3iyBk7Q92GyWq9Fu9qhN5IQHxGDllvjDrKFzZgONClmEaIAd3hFOdh4JEA0bCd5cY60i27opcvreZFG-pyExlGSqJzHy_oxhDk1psiwEbkBj9ivuh9tjFkx9o0qVfCYXTtGrLE/s1600/layoutsmobile_saude.jpg&quot; target=&quot;_blank&quot;&gt;&lt;img style=&quot;float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 214px; height: 320px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgBpMRlaj3iyBk7Q92GyWq9Fu9qhN5IQHxGDllvjDrKFzZgONClmEaIAd3hFOdh4JEA0bCd5cY60i27opcvreZFG-pyExlGSqJzHy_oxhDk1psiwEbkBj9ivuh9tjFkx9o0qVfCYXTtGrLE/s320/layoutsmobile_saude.jpg&quot; border=&quot;0&quot; alt=&quot;&quot;id=&quot;BLOGGER_PHOTO_ID_5647492094352449794&quot; /&gt;&lt;/a&gt;
&lt;style type=&quot;text/css&quot;&gt;
div.fonte-h4cont h4 {margin:0;padding:0 0 4px 0;font-weight:bold;font-size:100%;}
&lt;/style&gt;
&lt;div class=&quot;fonte-h4cont&quot;&gt;
&lt;p&gt;Recentemente escrevi um artigo onde pesquisei sobre as melhores pr&amp;aacute;ticas na cria&amp;ccedil;&amp;atilde;o de layouts de sites e aplica&amp;ccedil;&amp;otilde;es a serem visualizados por dispositivos m&amp;oacute;veis (&lt;em&gt;mobile&lt;/em&gt;), achei por bem compartilhar esta informa&amp;ccedil;&amp;atilde;o aqui no blog:&lt;/p&gt;
&lt;h4&gt;1. Realize uma pesquisa sobre os  hardwares mais utilizados por sua audi&amp;ecirc;ncia&lt;/h4&gt;
&lt;p&gt;O mercado de  dispositivos m&amp;oacute;veis &amp;eacute; recente, mas encontra-se em franca ascens&amp;atilde;o. Uma das  maiores dificuldades para cria&amp;ccedil;&amp;atilde;o de layout mobile &amp;eacute; a enormidade de  dispositivos diferentes que se encontram no mercado atualmente, e sua variedade  de resolu&amp;ccedil;&amp;atilde;o de tela.&lt;/p&gt;
&lt;p&gt;Vejamos alguns  exemplos de resolu&amp;ccedil;&amp;atilde;o de tela (largura vs. altura, em pixels): 101x80 (muitos  celulares da Sony Ericsson); 128x128 (alguns celulares da Samsung); 120x160  (muitos celulares da Motorola); 320x480 (iPhone); 480x640 (HTC Touch Pro);  320x480 (Palm Pre); 360x480 (BlackBerry Storm); 800x480 (HTC Venus); 800x640 ou  superior (engloba a grande maioria dos tablets, como o iPad).&lt;/p&gt;
&lt;p&gt;Em meio a tantas  possibilidades de resolu&amp;ccedil;&amp;atilde;o de tela, o mercado parece ter chegado a uma  conven&amp;ccedil;&amp;atilde;o &amp;ndash; uma resolu&amp;ccedil;&amp;atilde;o padr&amp;atilde;o que teoricamente deveria servir para a maioria  dos dispositivos m&amp;oacute;veis. Essa resolu&amp;ccedil;&amp;atilde;o tamb&amp;eacute;m &amp;eacute; seguida por diversos softwares  de aplicativos para mobile: 320x480 &amp;ndash; &lt;em&gt;ou  seja, 320 pixels de largura por 480 pixels de altura&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;Dessa forma, a  menos que esteja criando um site espec&amp;iacute;fico para uma certa gama de dispositivos  m&amp;oacute;veis, recomendamos que use layouts que fiquem ao menos bem estruturados e  naveg&amp;aacute;veis mesmo quando limitados a uma resolu&amp;ccedil;&amp;atilde;o de 320x480 pixels. &lt;/p&gt;
&lt;h4&gt;2. Simplifique seu layout&lt;/h4&gt;
&lt;p&gt;A regra de ouro  para layout criados para dispositivos m&amp;oacute;veis &amp;eacute; que eles devem ser simples,  minimalistas e focados na funcionalidade. Cada p&amp;aacute;gina geralmente dever&amp;aacute; conter  apenas uma lista ou um texto de detalhes (conforme o tradicional &amp;ldquo;lista e  detalhes de not&amp;iacute;cias&amp;rdquo;), os menus n&amp;atilde;o devem ser muito extensos, as imagens  pequenas, e os efeitos de &lt;em&gt;drop-down&lt;/em&gt; com &lt;em&gt;mouseover&lt;/em&gt; limitados ao m&amp;aacute;ximo.  Apenas os bot&amp;otilde;es devem ser proporcionalmente maiores, pelo menos em rela&amp;ccedil;&amp;atilde;o aos  layouts tradicionais, pois devemos lembrar que em dispositivos com tela  sens&amp;iacute;vel ao toque, muitas vezes os cliques ser&amp;atilde;o feitos com o pr&amp;oacute;prio dedo do  usu&amp;aacute;rio &amp;ndash; e a &amp;aacute;rea de clique deve ser, portanto, maior.&lt;/p&gt;
&lt;h4&gt;3. Valide seu c&amp;oacute;digo&lt;/h4&gt;
&lt;p&gt;Conforme se torna cada  vez mais dif&amp;iacute;cil testar nosso c&amp;oacute;digo nos diversos dispositivos m&amp;oacute;veis do  mercado, torna-se ainda mais importante termos um c&amp;oacute;digo que siga os padr&amp;otilde;es estabelecidos.  Assim reduziremos muito a probabilidade de nosso site mobile n&amp;atilde;o funcionar  neste ou naquele dispositivo m&amp;oacute;vel de que nunca ouvimos falar &amp;ndash; ou que ainda  sequer foi lan&amp;ccedil;ado&lt;!-- (ver a se&amp;ccedil;&amp;atilde;o 2 deste artigo)--&gt;.&lt;/p&gt;
&lt;h4&gt;4. Inclua um link para o site  tradicional&lt;/h4&gt;
&lt;p&gt;&amp;Eacute; recomend&amp;aacute;vel  incluir um link para a vers&amp;atilde;o do site com o layout tradicional, normalmente no  rodap&amp;eacute;. Muitas vezes o usu&amp;aacute;rio estar&amp;aacute; usando um tablet (como o iPad, por  exmplo), e prefere visualizar o site em sua vers&amp;atilde;o tradicional.&lt;/p&gt;
&lt;h4&gt;5. Crie um CSS exclusivo para a  vers&amp;atilde;o mobile&lt;/h4&gt;
&lt;p&gt;Embora seja vi&amp;aacute;vel  criarmos um CSS que atenda tanto a vers&amp;atilde;o tradicional quanto a m&amp;oacute;bile, na  pr&amp;aacute;tica do mercado rapidamente se constatou que &amp;eacute; muito mais simples a  separa&amp;ccedil;&amp;atilde;o de ambos os layouts em arquivos CSS espec&amp;iacute;ficos. Muito embora seja  interessante que as cores gerais e fam&amp;iacute;lias de fontes sejam pr&amp;oacute;ximas do layout  tradicional, o layout mobile tem caracter&amp;iacute;sticas muito espec&amp;iacute;ficas para que  fa&amp;ccedil;a sentido o uso do mesmo CSS da vers&amp;atilde;o tradicional do site.&lt;/p&gt;
&lt;h4&gt;6. Evite o scroll horizontal no site&lt;/h4&gt;
&lt;p&gt;Muitas vezes os  dispositivos m&amp;oacute;veis tem uma tela pequena, e devem ser manuseados com os  pr&amp;oacute;prios dedos do usu&amp;aacute;rio. Nesse sentido, &amp;eacute; ideal evitar a todo custo que o  site na vers&amp;atilde;o mobile possua quaisquer barras de scroll horizontais &amp;ndash; o ideal &amp;eacute;  seguir o padr&amp;atilde;o de quase todo dispositivo m&amp;oacute;vel e usar apenas barras de scroll  verticais. Isso, na pr&amp;aacute;tica, significa que devemos evitar ao m&amp;aacute;ximo que qualquer  elemento do nosso layout &amp;ldquo;estoure&amp;rdquo; os 320 pixels de largura, largura padr&amp;atilde;o  para resolu&amp;ccedil;&amp;otilde;es de tela de dispositivos m&amp;oacute;veis&lt;!--(ver 5.1)--&gt;. Esta recomenda&amp;ccedil;&amp;atilde;o  pode ser revista para, por exemplo, um portal que deva ser acess&amp;iacute;vel apenas por  &amp;lsquo;tablets&amp;rsquo;, que apresentam maior resolu&amp;ccedil;&amp;atilde;o. &lt;/p&gt;
&lt;h4&gt;7. Evite o uso de pop-ups ou links  que abrem em novas janelas&lt;/h4&gt;
&lt;p&gt;A navega&amp;ccedil;&amp;atilde;o atrav&amp;eacute;s de  dispositivos m&amp;oacute;veis n&amp;atilde;o costuma funcionar muito bem com pop-ups ou links  abrindo em novas janelas. Se for estritamente necess&amp;aacute;rio o uso desses links, &amp;eacute;  recomend&amp;aacute;vel que alerte que ele abrir&amp;aacute; nova janela com alguma mensagem curta,  ou &amp;iacute;cone, ao lado do link.&lt;/p&gt;
&lt;h4&gt;8. Limite o uso de imagens&lt;/h4&gt;
&lt;p&gt;Layouts para mobile  devem usar o menor n&amp;uacute;mero de imagens poss&amp;iacute;veis. Tamb&amp;eacute;m &amp;eacute; preciso tomar cuidado  em especial com o tamanho dos arquivos de imagem, visto que no geral a  qualidade da conex&amp;atilde;o de dispositivos m&amp;oacute;veis ser&amp;aacute; inferior, e as imagens n&amp;atilde;o  podem ser muito pesadas (em Kbytes). O ideal &amp;eacute; usar apenas a logomarca, alguns  &amp;iacute;cones de navega&amp;ccedil;&amp;atilde;o e imagens de fundo para bot&amp;otilde;es e outros elementos. &amp;nbsp;Em uma interface de lista de not&amp;iacute;cias, por  exemplo, &amp;eacute; recomend&amp;aacute;vel que existam imagens apenas nos 3 primeiros itens,  deixando o restante dos itens da lista apenas com o t&amp;iacute;tulo (e eventualmente a  descri&amp;ccedil;&amp;atilde;o).&lt;/p&gt;
&lt;h4&gt;9. Evite ao m&amp;aacute;ximo o uso de flash e  javascript&lt;/h4&gt;
&lt;p&gt;Nem todos os  dispositivos m&amp;oacute;veis suportam flash e javascript. Conforme os layouts para  mobile tendem a favorecer uma navega&amp;ccedil;&amp;atilde;o simples e funcional, o uso desse tipo  de tecnologia pode e deve ser evitado. O caso do flash &amp;eacute; mais grave, visto que  at&amp;eacute; o momento os iPhones e iPads n&amp;atilde;o s&amp;atilde;o compat&amp;iacute;veis com flash (assim como  alguns dispositivos m&amp;oacute;veis que vem com o sistema operacional Android, pelo  menos na vers&amp;atilde;o nativa). &amp;nbsp;Algumas  anima&amp;ccedil;&amp;otilde;es e v&amp;iacute;deos podem ser criados utilizando a nova tecnologia do HTML5, &lt;em&gt;Canvas&lt;/em&gt;, que &amp;eacute; compat&amp;iacute;vel com diversos  dispositivos m&amp;oacute;veis modernos (maiores informa&amp;ccedil;&amp;otilde;es sobre a &lt;em&gt;Canvas&lt;/em&gt; aqui: &lt;a href=&quot;http://en.wikipedia.org/wiki/Canvas_element&quot;&gt;http://en.wikipedia.org/wiki/Canvas_element&lt;/a&gt;)&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;***&lt;/p&gt;
&lt;p&gt;Cr&amp;eacute;dito da imagem: Rafael Arrais (exemplo de layout para uma aplica&amp;ccedil;&amp;atilde;o de uma seguradora de sa&amp;uacute;de fict&amp;iacute;cia) &lt;a href=&quot;http://www.flickr.com/photos/viamoi/&quot; target=&quot;_blank&quot;&gt;&lt;/a&gt;&lt;/p&gt;</description><link>http://fontedecodigo.blogspot.com/2011/09/criando-layouts-para-dispositivos.html</link><author>noreply@blogger.com (raph)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgBpMRlaj3iyBk7Q92GyWq9Fu9qhN5IQHxGDllvjDrKFzZgONClmEaIAd3hFOdh4JEA0bCd5cY60i27opcvreZFG-pyExlGSqJzHy_oxhDk1psiwEbkBj9ivuh9tjFkx9o0qVfCYXTtGrLE/s72-c/layoutsmobile_saude.jpg" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5473585813342701908.post-8803869801342247767</guid><pubDate>Mon, 23 May 2011 14:57:00 +0000</pubDate><atom:updated>2011-05-23T12:10:42.710-03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">autores selecionados</category><category domain="http://www.blogger.com/atom/ns#">Café Filosófico</category><category domain="http://www.blogger.com/atom/ns#">google</category><category domain="http://www.blogger.com/atom/ns#">marketing</category><category domain="http://www.blogger.com/atom/ns#">Martha Gabriel</category><category domain="http://www.blogger.com/atom/ns#">seo</category><category domain="http://www.blogger.com/atom/ns#">vídeos</category><title>Oráculo digital</title><description>&lt;p&gt;Excelente vídeo da íntegra de gravação para o programa Café Filosófico, da TV Cultura, onde a especialista em SEO e marketing digital, &lt;a href=&quot;http://www.martha.com.br&quot; target=&quot;_blank&quot;&gt;Martha Gabriel&lt;/a&gt;, fala sobre a nova era das buscas digitais, numa interessante comparação com os oráculos da história antiga. Curadoria de Marcelo Tas.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Qual a importância da busca na vida humana? Como a crescente utilização dos ambientes digitais online, tanto móveis quanto desktop, interferem na orientação do que buscamos? Questões sobre privacidade, controle, poder, são abordados, mostrando a influência que os buscadores digitais (Google, Yahoo, etc.) exercem sobre o cotidiano das pessoas e a sociedade, funcionando como verdadeiros oráculos, os oráculos digitais:&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&amp;#187; &lt;a href=&quot;http://www.cpflcultura.com.br/site/2010/08/23/a-era-da-busca-oraculos-digitais-%E2%80%93-martha-gabriel-com-marcelo-tas/&quot; target=&quot;_blank&quot;&gt;&lt;strong&gt;Ver o programa no site cpfl cultura&lt;/strong&gt;&lt;/a&gt; (infelizmente não permitem compartilhamento)&lt;/p&gt;
&lt;p&gt;***&lt;/p&gt;</description><link>http://fontedecodigo.blogspot.com/2011/05/oraculo-digital.html</link><author>noreply@blogger.com (raph)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5473585813342701908.post-4209741229549908311</guid><pubDate>Wed, 04 May 2011 22:37:00 +0000</pubDate><atom:updated>2011-05-04T19:38:05.537-03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Alexandre Versignassi</category><category domain="http://www.blogger.com/atom/ns#">autores selecionados</category><category domain="http://www.blogger.com/atom/ns#">ciência</category><category domain="http://www.blogger.com/atom/ns#">inteligência artificial</category><category domain="http://www.blogger.com/atom/ns#">Pedro Burgos</category><category domain="http://www.blogger.com/atom/ns#">Superinteressante</category><category domain="http://www.blogger.com/atom/ns#">tecnologia</category><title>Watson: quase humano?</title><description>&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiFAiW2gTY0dsL7nCG_IYMnU_g02tTfJyXIWalVrEvFZxsP6W-WoiYQaIIGd_qp3v0AcWKM9eR4P8fMKMcjAcqueUTBXo6DlHDrP8rGs1ay-JkiwuXPEfnmRfTNUmq3dkEQk3LhdAmNXgo/s1600/wired_brain.jpg&quot; target=&quot;_blank&quot; title=&quot;Ainda dependemos de um interpretador...&quot;&gt;&lt;img style=&quot;float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 240px; height: 320px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiFAiW2gTY0dsL7nCG_IYMnU_g02tTfJyXIWalVrEvFZxsP6W-WoiYQaIIGd_qp3v0AcWKM9eR4P8fMKMcjAcqueUTBXo6DlHDrP8rGs1ay-JkiwuXPEfnmRfTNUmq3dkEQk3LhdAmNXgo/s320/wired_brain.jpg&quot; border=&quot;0&quot; alt=&quot;&quot;id=&quot;BLOGGER_PHOTO_ID_5602992826100547218&quot; /&gt;&lt;/a&gt;

&lt;p&gt;&lt;em&gt;Artigo de Pedro Burgos e Alexandre Versignassi para a &lt;a href=&quot;http://super.abril.com.br/tecnologia/como-sera-inteligencia-artificial-depois-computador-watson-625679.shtml&quot; target=&quot;_blank&quot;&gt;revista Superinteressante&lt;/a&gt;, edi&amp;ccedil;&amp;atilde;o 290. Os coment&amp;aacute;rios ao final  s&amp;atilde;o meus.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&amp;quot;Watson derrota a humanidade.&amp;quot; Essa foi uma das manchetes para a vit&amp;oacute;ria de Watson, um computador que ganhou dos melhores competidores que a ra&amp;ccedil;a humana tinha dispon&amp;iacute;vel no Jeopardy!, um jogo de perguntas e respostas da TV americana. Pudera: Jeopardy! &amp;eacute; um jogo complexo. Para humanos, inclusive. S&amp;atilde;o perguntas furtivas, tipo: &amp;quot;Isso &amp;eacute; s&amp;oacute; um nariz sangrando! Voc&amp;ecirc; n&amp;atilde;o tem essa doen&amp;ccedil;a gen&amp;eacute;tica que j&amp;aacute; foi end&amp;ecirc;mica entre a realeza europeia. Qual &amp;eacute; a doen&amp;ccedil;a?&amp;quot;. Watson acertou: hemofilia. Acertou essa e outras dezenas de perguntas capciosas - e, como seus concorrentes humanos, n&amp;atilde;o estava ligado &amp;agrave; internet. Tudo o que ele tinha &amp;agrave; disposi&amp;ccedil;&amp;atilde;o era uma mem&amp;oacute;ria de 15 mil gigabytes com alguns milh&amp;otilde;es de textos arquivados e uma capacidade de processamento equivalente &amp;agrave; de 2.800 micros caseiros. Um computadorz&amp;atilde;o bem programado, s&amp;oacute; isso.&lt;/p&gt;
&lt;p&gt;E tudo isso: para responder perguntas nessa linha, um computador precisa entender a linguagem falada e ter um racioc&amp;iacute;nio capaz de fazer associa&amp;ccedil;&amp;otilde;es inesperadas. At&amp;eacute; fevereiro, isso era exclusividade de humanos. Mas e agora, que perdemos para esse ser gelado? D&amp;aacute; para dizer que a intelig&amp;ecirc;ncia artificial est&amp;aacute; se equiparando &amp;agrave; nossa intelig&amp;ecirc;ncia?&lt;/p&gt;
&lt;p&gt;O debate est&amp;aacute; pegando fogo. De um lado, h&amp;aacute; os que vibram com Watson e similares e acreditam que os computadores v&amp;atilde;o superar logo a intelig&amp;ecirc;ncia humana. A outra corrente diz que, por mais complexo e surpreendente que seja o feito de um computador, ele nunca ser&amp;aacute; compar&amp;aacute;vel ao de uma pessoa [1]. Seriam duas intelig&amp;ecirc;ncias distintas.&lt;/p&gt;
&lt;p&gt;O termo &amp;quot;computador&amp;quot; denunciaria isso, por sinal. At&amp;eacute; a metade do s&amp;eacute;culo 20, &amp;quot;computador&amp;quot; era uma profiss&amp;atilde;o. Eram pessoas respons&amp;aacute;veis por fazer c&amp;aacute;lculos longos - como pegar um monte de dados astron&amp;ocirc;micos e calcular quando um cometa passaria de novo pela Terra. Pessoas inteligentes, claro. Mas e hoje? Bom, hoje inteligente &amp;eacute; quem bola o programa para que o computador resolva as contas.&lt;/p&gt;
&lt;p&gt;Toda vez que conseguimos delegar uma fun&amp;ccedil;&amp;atilde;o para m&amp;aacute;quinas, a tarefa perde a nobreza. Isso aconteceu at&amp;eacute; na derrota do campe&amp;atilde;o Kasparov para Deep Blue em 1997. Enquanto os defensores da intelig&amp;ecirc;ncia artificial comemoravam, os da humanidade sa&amp;iacute;ram-se nessa linha: &amp;quot;Bom, xadrez &amp;eacute; s&amp;oacute; um jogo de an&amp;aacute;lise estat&amp;iacute;stica bruta. N&amp;atilde;o requer intelig&amp;ecirc;ncia de verdade&amp;quot;. Com a vit&amp;oacute;ria no Jeopardy! pode acontecer a mesma coisa: &amp;quot;Computadores v&amp;atilde;o bem? Ah, o jogo n&amp;atilde;o &amp;eacute; nada de mais&amp;quot;.&lt;/p&gt;
&lt;p&gt;Mas e se habilidades que consideramos pessoais e intransfer&amp;iacute;veis da nossa esp&amp;eacute;cie puderem ser executadas por m&amp;aacute;quinas sofisticadas? Como ficamos? Se quisermos reduzir as habilidades do Homo sapiens a instru&amp;ccedil;&amp;otilde;es de programa&amp;ccedil;&amp;atilde;o, o talento para a poesia, por exemplo, pode ser descrito como um programa capaz de achar uma boa combina&amp;ccedil;&amp;atilde;o de palavras. E daria para definir um l&amp;iacute;der pol&amp;iacute;tico como um sujeito com um bom software para analisar riscos e oportunidades [2].&lt;/p&gt;
&lt;p&gt;N&amp;atilde;o &amp;eacute; fantasia. O pr&amp;oacute;prio Watson pode servir para tarefas bem mais humanas que responder perguntas. Programado adequadamente, ele pode fazer diagn&amp;oacute;sticos com mais precis&amp;atilde;o que um m&amp;eacute;dico - da mesma forma que uma calculadora de bolso &amp;eacute; mais r&amp;aacute;pida que qualquer g&amp;ecirc;nio da matem&amp;aacute;tica. O supercomputador tem como ouvir relatos orais de pacientes e cruzar os sintomas com o banco de dados de toda a literatura m&amp;eacute;dica em segundos. &amp;Eacute; mais do que qualquer Dr. House pode fazer. Mas isso torna os humanos dispens&amp;aacute;veis? N&amp;atilde;o. Por mais que uma m&amp;aacute;quina consiga feitos mirabolantes, ela vai ser sempre uma ferramenta que depende de humanos. Um &amp;quot;computador m&amp;eacute;dico&amp;quot; precisa de m&amp;eacute;dicos para ser programado. Os c&amp;eacute;rebros humanos por tr&amp;aacute;s s&amp;atilde;o t&amp;atilde;o importantes que o pr&amp;oacute;prio Watson errou quest&amp;otilde;es por bobeira de programa&amp;ccedil;&amp;atilde;o. Um dos deslizes: perguntaram qual categoria da elite do automobilismo tem o nome de uma tecla de computador. &amp;quot;F-1&amp;quot; era a resposta. Qualquer batedeira tem capacidade de processamento para cruzar uma lista de nomes de teclas com uma de categorias de corridas. Mas a coisa mais pr&amp;oacute;xima que Watson tinha para dizer era &amp;quot;Nascar&amp;quot;. Falha dele? N&amp;atilde;o, dos programadores - a F&amp;oacute;rmula 1 &amp;eacute; solenemente ignorada nos EUA.&lt;/p&gt;
&lt;p&gt;O erro nessas horas &amp;eacute; imaginar que as m&amp;aacute;quinas s&amp;atilde;o uma esp&amp;eacute;cie &amp;agrave; parte. Computadores s&amp;atilde;o s&amp;oacute; alicates e martelos mais complexos [3]. E quando voc&amp;ecirc; marreta o dedo n&amp;atilde;o &amp;eacute; culpa da natureza do martelo, mas sua, que n&amp;atilde;o soube &amp;quot;programar&amp;quot; a martelada. A vida &amp;eacute; melhor com martelos. Com supercomputadores tamb&amp;eacute;m. A vit&amp;oacute;ria de um &amp;eacute; uma vit&amp;oacute;ria da humanidade. E sempre ser&amp;aacute;, mesmo no dia em que uma m&amp;aacute;quina puder escrever um texto como este bem melhor do que a gente [4].&lt;/p&gt;
&lt;p&gt;***&lt;/p&gt;
&lt;p&gt;[1] Sempre me pareceu que aqueles que acreditam que os computadores est&amp;atilde;o &amp;quot;quase chegando ao n&amp;iacute;vel humano&amp;quot; tem uma vis&amp;atilde;o um tanto quanto superficial da mente humana, e da exist&amp;ecirc;ncia em geral. N&amp;oacute;s nos diferenciamos das m&amp;aacute;quinas no sentido em que &lt;em&gt;interpretamos&lt;/em&gt; informa&amp;ccedil;&amp;otilde;es do mundo a nossa volta, e n&amp;atilde;o apenas as computamos e/ou cruzamos com bancos de dados na mem&amp;oacute;ria. Em suma, somos seres de vontade, e nenhuma m&amp;aacute;quina at&amp;eacute; hoje chegou sequer pr&amp;oacute;ximo de demonstrar &lt;em&gt;alguma&lt;/em&gt; vontade. Mesmo Alan Turing jamais imaginou que um computador seria o equivalente de um ser humano, tudo o que disse &amp;eacute; que as m&amp;aacute;quinas poderiam eventualmente fazerem-se passar por um ser humano, nos copiar quase a perfei&amp;ccedil;&amp;atilde;o - mas at&amp;eacute; hoje &lt;a href=&quot;http://textosparareflexao.blogspot.com/2009/06/homem-maquina.html&quot; target=&quot;_blank&quot;&gt;n&amp;atilde;o h&amp;aacute; m&amp;aacute;quina que tenha passado no teste de Turing&lt;/a&gt;. &lt;/p&gt;
&lt;p&gt;[2] Se &amp;eacute; que um computador um dia produzir&amp;aacute; poesia de qualidade, isso nada mais ser&amp;aacute; do que o resultado da arte de uma &lt;em&gt;programa&amp;ccedil;&amp;atilde;o&lt;/em&gt;. Talvez combinada com uma boa dose de conhecimento da gram&amp;aacute;tica, mas uma programa&amp;ccedil;&amp;atilde;o. Ou seja, um dia talvez programadores sejam poetas - m&amp;aacute;quinas, nem tanto... &lt;/p&gt;
&lt;p&gt;[3] E, como qualquer outra ferramenta criada pela humanidade, s&amp;atilde;o fruto de nossa mente em sua potencialidade criativa. N&amp;atilde;o faz sentido imaginar m&amp;aacute;quinas como novas esp&amp;eacute;cies, ah n&amp;atilde;o ser que voc&amp;ecirc; contrarie a teoria da evolu&amp;ccedil;&amp;atilde;o e afirme que n&amp;oacute;s mesmos fomos &amp;quot;programados&amp;quot; por alguma intelig&amp;ecirc;ncia superior. Quem quer que tenha programado em n&amp;oacute;s essa divina capacidade de &lt;em&gt;ter vontade&lt;/em&gt;, n&amp;atilde;o passou o c&amp;oacute;digo-fonte adiante. &lt;/p&gt;
&lt;p&gt;[4] Esse artigo, talvez at&amp;eacute; por ser de certa forma despretencioso, &amp;eacute; genial em sua capacidade de s&amp;iacute;ntese do que &amp;eacute; e do que n&amp;atilde;o &amp;eacute; a intelig&amp;ecirc;ncia artificial. Ora, devemos sim comemorar os avan&amp;ccedil;os da ci&amp;ecirc;ncia, da mesma forma que comemoramos a escultura de um g&amp;ecirc;nio da arte. N&amp;atilde;o podemos &amp;eacute; acreditar que, tal qual os mitos de g&amp;aacute;rgulas, nossas esculturas de sil&amp;iacute;cio ganhar&amp;atilde;o vida pr&amp;oacute;pria, e deixar&amp;atilde;o de ser apenas uma ferramenta, para se tornar uma nova esp&amp;eacute;cie - programando a si mesma de alguma forma &amp;quot;m&amp;aacute;gica&amp;quot;. &lt;/p&gt;
&lt;p&gt;***&lt;/p&gt;
&lt;p&gt;Cr&amp;eacute;dito da foto: &lt;span id=&quot;ctl00_mainContent_creditLine&quot;&gt;Adrianna Williams/Corbis&lt;/span&gt;. &lt;/p&gt;</description><link>http://fontedecodigo.blogspot.com/2011/05/watson-quase-humano.html</link><author>noreply@blogger.com (raph)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiFAiW2gTY0dsL7nCG_IYMnU_g02tTfJyXIWalVrEvFZxsP6W-WoiYQaIIGd_qp3v0AcWKM9eR4P8fMKMcjAcqueUTBXo6DlHDrP8rGs1ay-JkiwuXPEfnmRfTNUmq3dkEQk3LhdAmNXgo/s72-c/wired_brain.jpg" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5473585813342701908.post-2440319684668954797</guid><pubDate>Thu, 03 Mar 2011 14:07:00 +0000</pubDate><atom:updated>2011-03-03T11:09:52.242-03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Apple</category><category domain="http://www.blogger.com/atom/ns#">BBC</category><category domain="http://www.blogger.com/atom/ns#">Ipad</category><category domain="http://www.blogger.com/atom/ns#">Steve Jobs</category><category domain="http://www.blogger.com/atom/ns#">tecnologia</category><category domain="http://www.blogger.com/atom/ns#">vídeos</category><title>iPad 2</title><description>&lt;p&gt;O repórter de tecnologia da BBC mostra o novíssimo iPad, revelado pelo presidente da Apple, Steve Jobs na quarta-feira. Ele conta que a primeira surpresa da noite foi a presença de Jobs, que está de licença médica, mas foi ao palco para dizer que o produto dele deve &quot;arrasar a concorrência&quot;:&lt;/p&gt;
&lt;p&gt;&lt;object width=&quot;512&quot; height=&quot;400&quot;&gt;&lt;param name=&quot;movie&quot; value=&quot;http://www.bbc.co.uk/emp/external/player.swf&quot;&gt;&lt;/param&gt;&lt;param name=&quot;allowFullScreen&quot; value=&quot;true&quot;&gt;&lt;/param&gt;&lt;param name=&quot;allowScriptAccess&quot; value=&quot;always&quot;&gt;&lt;/param&gt;&lt;param name=&quot;FlashVars&quot; value=&quot;playlist=http%3A%2F%2Fwww%2Ebbc%2Eco%2Euk%2Fportuguese%2Fmeta%2Fdps%2F2011%2F03%2Femp%2F110303%5Fvideoipad2ebc%2Eemp%2Exml&amp;config_settings_showPopoutButton=false&amp;config_settings_displayMode=video&amp;config_settings_language=pt&amp;config_settings_showFooter=true&amp;&quot;&gt;&lt;/param&gt;&lt;embed src=&quot;http://www.bbc.co.uk/emp/external/player.swf&quot; type=&quot;application/x-shockwave-flash&quot; allowfullscreen=&quot;true&quot; allowScriptAccess=&quot;always&quot; width=&quot;512&quot; height=&quot;400&quot; FlashVars=&quot;playlist=http%3A%2F%2Fwww%2Ebbc%2Eco%2Euk%2Fportuguese%2Fmeta%2Fdps%2F2011%2F03%2Femp%2F110303%5Fvideoipad2ebc%2Eemp%2Exml&amp;config_settings_showPopoutButton=false&amp;config_settings_displayMode=video&amp;config_settings_language=pt&amp;config_settings_showFooter=true&amp;&quot;&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/p&gt;</description><link>http://fontedecodigo.blogspot.com/2011/03/ipad-2.html</link><author>noreply@blogger.com (raph)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5473585813342701908.post-1662385249175262781</guid><pubDate>Mon, 21 Feb 2011 18:22:00 +0000</pubDate><atom:updated>2011-02-21T15:36:59.691-03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">ensino</category><category domain="http://www.blogger.com/atom/ns#">informação</category><category domain="http://www.blogger.com/atom/ns#">internet</category><category domain="http://www.blogger.com/atom/ns#">Isaac Asimov</category><category domain="http://www.blogger.com/atom/ns#">qwiki</category><category domain="http://www.blogger.com/atom/ns#">vídeos</category><title>Asimov e a aprendizagem</title><description>&lt;p&gt;Isaac Asimov, célebre escritor de ficção científica e exímio &quot;futurólogo&quot;, preve o impacto da disseminação do conhecimento através da internet - já em 1988:&lt;/p&gt;
&lt;p&gt;&lt;iframe title=&quot;YouTube video player&quot; width=&quot;640&quot; height=&quot;390&quot; src=&quot;http://www.youtube.com/embed/CI5NKP1y6Ng?rel=0&amp;iv_load_policy=2&quot; frameborder=&quot;0&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/p&gt;
&lt;p&gt;&quot;O problema com a aprendizagem é que a maioria das pessoas não gosta dela por causa das circunstâncias. Faça que seja possível gostar de aprender e elas vão continuar aprendendo.&quot;&lt;/p&gt;
&lt;p&gt;***&lt;/p&gt;
&lt;p&gt;Se você ainda acha a Wikipedia (e similares) sem graça, talvez se interesse por algo mais dinâmico:&lt;/p&gt;
&lt;p&gt;&lt;iframe class=&#39;qwiki-player&#39; type=&#39;text/html&#39; width=&#39;700&#39; height=&#39;394&#39; src=&#39;http://www.qwiki.com/embed/Science_fiction&#39; frameborder=&#39;0&#39; scrolling=&#39;no&#39;&gt;&lt;/iframe&gt;&lt;/p&gt;</description><link>http://fontedecodigo.blogspot.com/2011/02/asimov-e-aprendizagem.html</link><author>noreply@blogger.com (raph)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img.youtube.com/vi/CI5NKP1y6Ng/default.jpg" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5473585813342701908.post-7180909713151004434</guid><pubDate>Mon, 30 Aug 2010 15:11:00 +0000</pubDate><atom:updated>2010-08-30T12:19:29.841-03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">2010</category><category domain="http://www.blogger.com/atom/ns#">imagens</category><category domain="http://www.blogger.com/atom/ns#">mercado</category><category domain="http://www.blogger.com/atom/ns#">redes sociais</category><title>Atlas das redes sociais</title><description>&lt;p&gt;Mapa criativo considerando cada rede social como um &quot;país&quot;, de acordo com o número de usuários. Clique na imagem para ver em tamanho maior:&lt;/p&gt;

&lt;a target=&quot;_blank&quot; onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEimXBUfW2ivs39djRkhgxZ0H6v6WJnu_0UpHC1sTw-SJBirx8I1FtZ_9aeiTVPdSqYnupoYYe4ebkNXDYDjqt_Wa81N-WVqhA8tgAzWUGfdRaEQiPXsQDawsg0L0mRUz_G0IhUJCCK3xhMt/s1600/Social-Network-Map0809.jpg&quot;&gt;&lt;img style=&quot;cursor:pointer; cursor:hand;width: 190px; height: 300px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEimXBUfW2ivs39djRkhgxZ0H6v6WJnu_0UpHC1sTw-SJBirx8I1FtZ_9aeiTVPdSqYnupoYYe4ebkNXDYDjqt_Wa81N-WVqhA8tgAzWUGfdRaEQiPXsQDawsg0L0mRUz_G0IhUJCCK3xhMt/s400/Social-Network-Map0809.jpg&quot; border=&quot;0&quot; alt=&quot;&quot;id=&quot;BLOGGER_PHOTO_ID_5511221296696724130&quot; /&gt;&lt;/a&gt;

&lt;p&gt;Fonte: &lt;a href=&quot;http://www.flowtown.com/&quot; target=&quot;_blank&quot;&gt;Flowtown&lt;/a&gt;&lt;/p&gt;</description><link>http://fontedecodigo.blogspot.com/2010/08/atlas-das-redes-sociais.html</link><author>noreply@blogger.com (raph)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEimXBUfW2ivs39djRkhgxZ0H6v6WJnu_0UpHC1sTw-SJBirx8I1FtZ_9aeiTVPdSqYnupoYYe4ebkNXDYDjqt_Wa81N-WVqhA8tgAzWUGfdRaEQiPXsQDawsg0L0mRUz_G0IhUJCCK3xhMt/s72-c/Social-Network-Map0809.jpg" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5473585813342701908.post-1168122449221159001</guid><pubDate>Thu, 26 Aug 2010 21:04:00 +0000</pubDate><atom:updated>2010-08-27T03:37:33.884-03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Alan Turing</category><category domain="http://www.blogger.com/atom/ns#">artigos</category><category domain="http://www.blogger.com/atom/ns#">criatividade</category><category domain="http://www.blogger.com/atom/ns#">inteligência artificial</category><category domain="http://www.blogger.com/atom/ns#">matemática</category><category domain="http://www.blogger.com/atom/ns#">programação genética</category><category domain="http://www.blogger.com/atom/ns#">Roger Alsin</category><category domain="http://www.blogger.com/atom/ns#">tecnologia</category><title>A arte dos algoritmos</title><description>&lt;a target=&quot;_blank&quot; onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjeAQ0PYWMEWqnt9NwBMaLl78IFT2CmtGkLLmksfi8IdB467hCyC_9fkau5VlKkne8aS608HTDV0kBFOHxhH-XIQal1IMMMbNPAiJHVw0bku5hKio47-ThaHKvPB07tyO88odnpHN9FKYw/s1600/mona_lisa_genetic_programming.jpg&quot;&gt;&lt;img style=&quot;float:left; margin:0 10px 25px 0;cursor:pointer; cursor:hand;width: 250px; height: 251px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjeAQ0PYWMEWqnt9NwBMaLl78IFT2CmtGkLLmksfi8IdB467hCyC_9fkau5VlKkne8aS608HTDV0kBFOHxhH-XIQal1IMMMbNPAiJHVw0bku5hKio47-ThaHKvPB07tyO88odnpHN9FKYw/s320/mona_lisa_genetic_programming.jpg&quot; border=&quot;0&quot; alt=&quot;&quot;id=&quot;BLOGGER_PHOTO_ID_5509825992045164434&quot; /&gt;&lt;/a&gt;

&lt;p&gt;A ci&amp;ecirc;ncia da computa&amp;ccedil;&amp;atilde;o nasceu com o conceito de algoritmo,  criado conjuntamente em 1936 pelo &lt;a href=&quot;http://textosparareflexao.blogspot.com/2009/06/homem-maquina.html&quot; target=&quot;_blank&quot;&gt;experimento mental de Alan Turing&lt;/a&gt;, conhecido  como M&amp;aacute;quina de Turing, enquanto quase ao mesmo tempo Alonzo Church criava o  c&amp;aacute;lculo lambda. Um algoritmo &amp;eacute; uma seq&amp;uuml;&amp;ecirc;ncia finita de instru&amp;ccedil;&amp;otilde;es bem  definidas e n&amp;atilde;o amb&amp;iacute;guas, cada uma das quais pode ser executada mecanicamente  num per&amp;iacute;odo de tempo finito e com uma quantidade de esfor&amp;ccedil;o finita.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://pt.wikipedia.org/wiki/Algoritmo&quot; target=&quot;_blank&quot;&gt;O conceito de algoritmo&lt;/a&gt; &amp;eacute; freq&amp;uuml;entemente ilustrado  pelo exemplo de uma receita, embora muitos algoritmos sejam mais complexos.  Eles podem repetir passos (fazer itera&amp;ccedil;&amp;otilde;es) ou necessitar de decis&amp;otilde;es (tais  como compara&amp;ccedil;&amp;otilde;es ou l&amp;oacute;gica) at&amp;eacute; que a tarefa seja completada. Um algoritmo  corretamente executado n&amp;atilde;o ir&amp;aacute; resolver um problema se estiver implementado  incorretamente ou se n&amp;atilde;o for apropriado ao problema.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://rogeralsing.com/about/&quot; target=&quot;_blank&quot;&gt;Roger Alsin&lt;/a&gt; &amp;eacute; um programador sueco bem menos  conhecido, mas que aborda a arte dos algoritmos de uma forma impens&amp;aacute;vel na  &amp;eacute;poca de seus criadores... No final de 2008, ele resolveu brincar um pouco com  alguns algoritmos, mais precisamente algoritmos gen&amp;eacute;ticos. Ele criou um pequeno  programa que evolui cadeias de &amp;ldquo;DNA digital&amp;rdquo; para renderiza&amp;ccedil;&amp;atilde;o de pol&amp;iacute;gonos,  eis as instru&amp;ccedil;&amp;otilde;es aplicadas:&lt;/p&gt;
&lt;p&gt;(0) Cria uma cadeia de DNA aleatoriamente (in&amp;iacute;cio  do programa); (1) Copia a seq&amp;uuml;&amp;ecirc;ncia de DNA atual e aplica uma pequena muta&amp;ccedil;&amp;atilde;o;  (2) Usa o novo DNA para renderizar pol&amp;iacute;gonos em uma tela; (3) Compara a tela  com a imagem original (a ser copiada); (4) Se a imagem se parece mais com a  imagem original do que a imagem gerada pelo DNA pai, substituir o DNA antigo  pelo DNA atual; (5) Repetir a partir do passo 1.&lt;/p&gt;
&lt;p&gt;Ent&amp;atilde;o, Alsin colocou como meta aos seus algoritmos  tentar recriar (ou copiar da melhor forma poss&amp;iacute;vel) a Mona Lisa de Da Vinci  usando apenas 50 pol&amp;iacute;gonos semi-transparentes... Ap&amp;oacute;s 904.314 gera&amp;ccedil;&amp;otilde;es, o  algoritmo gen&amp;eacute;tico de Alsin chegou a uma imagem bastante pr&amp;oacute;xima da original,  se considerarmos que algoritmos n&amp;atilde;o s&amp;atilde;o exatamente mestres da pintura (ou pelo  menos, ainda n&amp;atilde;o s&amp;atilde;o). Voc&amp;ecirc; pode ver a imagem final no in&amp;iacute;cio do artigo, ou ver  &lt;a href=&quot;http://rogeralsing.com/2008/12/07/genetic-programming-evolution-of-mona-lisa/&quot; target=&quot;_blank&quot;&gt;as diversas gera&amp;ccedil;&amp;otilde;es no weblog de Alsin&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Em 1992, John Koza &amp;ndash; cientista da computa&amp;ccedil;&amp;atilde;o &amp;ndash; usou  algoritmos gen&amp;eacute;ticos para desenvolver programas para realizar certas tarefas.  Ele chamou seu m&amp;eacute;todo de &lt;a href=&quot;http://pt.wikipedia.org/wiki/Programa%C3%A7%C3%A3o_gen%C3%A9tica&quot; target=&quot;_blank&quot;&gt;programa&amp;ccedil;&amp;atilde;o gen&amp;eacute;tica&lt;/a&gt;. Koza foi pioneiro neste m&amp;eacute;todo  de programa&amp;ccedil;&amp;atilde;o, que hoje &amp;eacute; cada vez mais utilizado no mundo.&lt;/p&gt;

&lt;a target=&quot;_blank&quot; onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiCDfwYpE_qG8I19bjjFtGMgTE6WUH2eLJ3mWGIiPuzk722kmVFiFhR40rDd6-C4x55kDfO5kn8KOUudmG0Nid0IlNz1xRLPCyWKCYsbk7gypH-1FvvCv1808jfJsn_eG4ueSqeHiqVXTc/s1600/idea.jpg&quot;&gt;&lt;img style=&quot;float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 214px; height: 320px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiCDfwYpE_qG8I19bjjFtGMgTE6WUH2eLJ3mWGIiPuzk722kmVFiFhR40rDd6-C4x55kDfO5kn8KOUudmG0Nid0IlNz1xRLPCyWKCYsbk7gypH-1FvvCv1808jfJsn_eG4ueSqeHiqVXTc/s320/idea.jpg&quot; border=&quot;0&quot; alt=&quot;&quot;id=&quot;BLOGGER_PHOTO_ID_5509826127110909890&quot; /&gt;&lt;/a&gt;

&lt;p&gt;O aspecto mais bizarro e intrigante da programa&amp;ccedil;&amp;atilde;o  gen&amp;eacute;tica &amp;eacute; que seus algoritmos &amp;ndash; verdadeiras &amp;ldquo;entidades de software&amp;rdquo; &amp;ndash; n&amp;atilde;o  sofrem as restri&amp;ccedil;&amp;otilde;es dos h&amp;aacute;bitos de pensamento e das inclina&amp;ccedil;&amp;otilde;es intelectuais  sutis dos programadores humanos. Como exploram irrefletidamente todo o espectro  de solu&amp;ccedil;&amp;otilde;es poss&amp;iacute;veis para um determinado problema, os algoritmos gen&amp;eacute;ticos  podem trazer solu&amp;ccedil;&amp;otilde;es puramente alien&amp;iacute;genas. Por exemplo, a NASA utilizou a  programa&amp;ccedil;&amp;atilde;o gen&amp;eacute;tica para produzir o projeto ideal de um suporte a ser usado na  Esta&amp;ccedil;&amp;atilde;o Espacial Internacional. &lt;a href=&quot;http://www.genetic-programming.com/published/usnwr072798.html&quot; target=&quot;_blank&quot;&gt;Como relatou o &lt;em&gt;U.S. News and World Report&lt;/em&gt;&lt;/a&gt;, o resultado parecia ter sa&amp;iacute;do de um  romance de fic&amp;ccedil;&amp;atilde;o cient&amp;iacute;fica:&lt;/p&gt;
&lt;p&gt;&amp;ldquo;Surgiu, de 15 gera&amp;ccedil;&amp;otilde;es e 4.500 projetos  diferentes, um suporte que nenhum engenheiro humano projetaria. O conjunto  grumoso e com a extremidade arredondada lembrava o osso de uma perna, irregular  e um tanto org&amp;acirc;nico. Testes em modelos confirmam sua superioridade sobre os  projetos humanos com suporte est&amp;aacute;vel. Nenhuma intelig&amp;ecirc;ncia fez os projetos.  Eles apenas se desenvolveram.&amp;rdquo;&lt;/p&gt;

&lt;p&gt;Outro exemplo espantoso da total estranheza da  programa&amp;ccedil;&amp;atilde;o gen&amp;eacute;tica bem-sucedida &amp;eacute; o c&amp;oacute;digo e computador que foi desenvolvido  para ajudar um paciente a controlar uma m&amp;atilde;o prot&amp;eacute;tica com base em sinais  nervosos err&amp;aacute;ticos captados por eletrodos presos ao pulso do paciente. O  software desenvolvido analisava misteriosamente os sinais nervosos e os  traduzia com precis&amp;atilde;o perfeita nos movimentos que o paciente queria fazer.&lt;/p&gt;
&lt;p&gt;Mas aqui  est&amp;aacute; a parte realmente estranha &amp;ndash; o m&amp;eacute;todo pelo qual o software realizou esse  feito incr&amp;iacute;vel est&amp;aacute; totalmente al&amp;eacute;m da compreens&amp;atilde;o dos pesquisadores humanos. &lt;a href=&quot;http://www.genetic-programming.com/published/scientificamerican1096.html&quot; target=&quot;_blank&quot;&gt;Como  relatou a &lt;em&gt;Scientific American&lt;/em&gt;&lt;/a&gt;:&lt;/p&gt;
&lt;p&gt;&amp;ldquo;O c&amp;oacute;digo desenvolvido era t&amp;atilde;o confuso e  indecifr&amp;aacute;vel quanto um inseto esmagado. O programa que prev&amp;ecirc; os gestos consiste  numa &amp;uacute;nica linha de c&amp;oacute;digo t&amp;atilde;o longa que enche uma p&amp;aacute;gina inteira e cont&amp;eacute;m  centenas de express&amp;otilde;es parent&amp;eacute;ticas embutidas. Ele nada revela sobre por que o  polegar se move de uma certa maneira &amp;ndash; s&amp;oacute; revela que se move.&amp;rdquo;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;***&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Cr&amp;eacute;dito das imagens: [topo] &lt;a href=&quot;http://rogeralsing.com/2008/12/07/genetic-programming-evolution-of-mona-lisa/&quot; target=&quot;_blank&quot;&gt;Roger Alsin&lt;/a&gt; (sim, pois foi ele quem criou o programa que copiou a Mona Lisa de Leonardo Da Vinci); [ao longo] &lt;span id=&quot;ctl00_mainContent_creditLine&quot;&gt;Andrea Ruester/Corbis&lt;/span&gt;&lt;/p&gt;</description><link>http://fontedecodigo.blogspot.com/2010/08/arte-dos-algoritmos.html</link><author>noreply@blogger.com (raph)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjeAQ0PYWMEWqnt9NwBMaLl78IFT2CmtGkLLmksfi8IdB467hCyC_9fkau5VlKkne8aS608HTDV0kBFOHxhH-XIQal1IMMMbNPAiJHVw0bku5hKio47-ThaHKvPB07tyO88odnpHN9FKYw/s72-c/mona_lisa_genetic_programming.jpg" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5473585813342701908.post-2964571880224089213</guid><pubDate>Tue, 03 Aug 2010 19:10:00 +0000</pubDate><atom:updated>2011-07-12T20:21:40.399-03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">avançado</category><category domain="http://www.blogger.com/atom/ns#">jquery</category><category domain="http://www.blogger.com/atom/ns#">js</category><category domain="http://www.blogger.com/atom/ns#">Lumis</category><category domain="http://www.blogger.com/atom/ns#">tutoriais</category><category domain="http://www.blogger.com/atom/ns#">WorkingMinds</category><title>Aplicando classes no Lumis MS com JQuery</title><description>&lt;p&gt;No Lumis CMS vers&amp;atilde;o Microsoft - ao contr&amp;aacute;rio do Lumis Java - n&amp;atilde;o &amp;eacute; poss&amp;iacute;vel   definir um nome de classe espec&amp;iacute;fico para as TDs estruturais das   p&amp;aacute;ginas. Conforme explicado no &lt;a href=&quot;http://fontedecodigo.blogspot.com/2010/05/prototipos-de-projetos-com-lumis.html&quot; target=&quot;_blank&quot;&gt;guia de prot&amp;oacute;tipos de projetos&lt;/a&gt;, essas classes s&amp;atilde;o aplicadas automaticamente na medida em que adicionamos linhas (monta uma TABLE com class=&amp;quot;cEZTPageAreaX&amp;quot;) e colunas (monta uma TD com class=&amp;quot;cEZTPageAreaXColumnY&amp;quot;) ao darmos &lt;em&gt;drag and drop&lt;/em&gt; das interfaces dos servi&amp;ccedil;os. &lt;/p&gt;
&lt;p&gt;Entretanto, usando JQuery temos uma solu&amp;ccedil;&amp;atilde;o bastante simples para esse problema.&lt;/p&gt;
&lt;p&gt;Ela consiste em inserirmos uma interface de servi&amp;ccedil;o html a qualquer   altura de uma coluna (mas fica melhor sendo a primeira interface), e nela   inserirmos um marcador &lt;span class=&quot;btns png&quot;&gt;&amp;ndash;&lt;/span&gt; como uma classe &amp;quot;anchor&amp;quot;, por exemplo &lt;span class=&quot;btns png&quot;&gt;&amp;ndash;&lt;/span&gt; para   que atrav&amp;eacute;s de um script bastante simples (usando o JQuery) busquemos as colunas (TDs) da p&amp;aacute;gina que possuem este tipo de marcador, e nelas apliquemos  uma nova classe.&lt;/p&gt;
&lt;p&gt;Na pr&amp;aacute;tica, equivale a aplicar a classe que quisermos na TD   estrutural (ou TDs estruturais). Apenas dar&amp;aacute; um pouco mais de trabalho, e exigir&amp;aacute; o uso do   JQuery.&lt;/p&gt;
&lt;p&gt;Veja no exemplo abaixo, um html que simula a estrutura do Lumis MS, com tr&amp;ecirc;s interfaces lado a lado:&lt;/p&gt;
&lt;pre class=&quot;brush: csharp; highlight: [9, 10, 11];&quot;&gt;
&amp;lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.01 Transitional//EN&quot;&gt;
&amp;lt;html&gt;
&amp;lt;head&gt;
&amp;lt;title&gt;JQuery: Aplicando classes com uso de âncoras&amp;lt;/title&gt;
 
&amp;lt;script type=&quot;text/javascript&quot; src=&quot;jquery.js&quot;&gt;&amp;lt;/script&gt;

&amp;lt;script type=&quot;text/javascript&quot;&gt;
 $(document).ready(function(){
  $(&quot;td[class^=&#39;cEZTPageArea&#39;]:has(div.anchor)&quot;).addClass(&quot;my-class&quot;);
 });
&amp;lt;/script&gt;

&amp;lt;style type=&quot;text/css&quot;&gt;
body.cLumBody {
 margin:0;
 background:#e9e9e9;
 text-align:center;
 position:relative;
}
div.cLumPage {
 width:600px;
 margin:0 auto;
 text-align:left;
 background:#fff;
}
div.interface {
 width:200px;
}
div.interface p {margin:20px;}

td.my-class {
 border-right:1px solid #ccc;
}
&amp;lt;/style&gt;
 
&amp;lt;/head&gt;

&amp;lt;body class=&quot;cLumBody&quot;&gt;

&amp;lt;div class=&quot;cLumPage&quot;&gt;

&amp;lt;table cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;cEZTPageArea0&quot;&gt;
&amp;lt;tr&gt;
 &amp;lt;td class=&quot;cEZTPageArea0Column0&quot;&gt;
 
  &amp;lt;div class=&quot;anchor&quot;&gt;&amp;lt;/div&gt;
 
  &amp;lt;div class=&quot;interface&quot;&gt;
   &amp;lt;p&gt;Interface 01&amp;lt;/p&gt;
  &amp;lt;/div&gt;
 
 &amp;lt;/td&gt;
 &amp;lt;td class=&quot;cEZTPageArea0Column1&quot;&gt;
 
  &amp;lt;div class=&quot;anchor&quot;&gt;&amp;lt;/div&gt;
 
  &amp;lt;div class=&quot;interface&quot;&gt;
   &amp;lt;p&gt;Interface 02&amp;lt;/p&gt;
  &amp;lt;/div&gt;
 
 &amp;lt;/td&gt;
 &amp;lt;td class=&quot;cEZTPageArea0Column2&quot;&gt;
 
  &amp;lt;div class=&quot;interface&quot;&gt;
   &amp;lt;p&gt;Interface 03&amp;lt;/p&gt;
  &amp;lt;/div&gt;
 
 &amp;lt;/td&gt;
&amp;lt;/tr&gt;
&amp;lt;/table&gt;

&amp;lt;/div&gt;

&amp;lt;/body&gt;
&amp;lt;/html&gt;
&lt;/pre&gt;

&lt;p class=&quot;btns png&quot;&gt;Repare no trecho de script destacado, &amp;eacute; este trecho que adiciona a classe &amp;quot;my-class&amp;quot; a qualquer TD na p&amp;aacute;gina que (1) possua uma classe que contenha &amp;quot;cEZTPageArea&amp;quot; &amp;ndash; ou seja, todas as classes estruturais do Lumis MS &amp;ndash; e (2) que tenha em seu interior uma div com a classe &amp;quot;anchor&amp;quot;, que &amp;eacute; o nosso marcador. Dessa forma, esta altera&amp;ccedil;&amp;atilde;o somente ocorrer&amp;aacute; nas colunas em que inserirmos a interface de servi&amp;ccedil;o html com este marcador.&lt;/p&gt;
&lt;p class=&quot;btns png&quot;&gt;&lt;a href=&quot;http://www.raph.com.br/fonteblog/tutorials/lumis/01.html&quot; target=&quot;_blank&quot;&gt;Ver exemplo&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;***&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Nota (1):&lt;/strong&gt; este artigo n&amp;atilde;o pretende encerrar o assunto em rela&amp;ccedil;&amp;atilde;o a boas pr&amp;aacute;ticas e/ou solu&amp;ccedil;&amp;otilde;es para limita&amp;ccedil;&amp;otilde;es do Lumis CMS, recomendamos consultar o &lt;a href=&quot;http://www.lumis.com.br/&quot; target=&quot;_blank&quot;&gt;suporte da Lumis&lt;/a&gt; ou o &lt;a href=&quot;http://linx.lumis.com.br/&quot; target=&quot;_blank&quot;&gt;Lumis Information Exchange&lt;/a&gt; (LINX) para consultar outros artigos e solu&amp;ccedil;&amp;otilde;es para problemas encontrados.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Nota (2):&lt;/strong&gt; a solução descrita neste artigo foi originalmente elaborada pela &lt;a href=&quot;http://www.workingminds.com.br/&quot; target=&quot;_blank&quot;&gt;WorkingMinds&lt;/a&gt; para um de seus projetos com Lumis MS, estamos apenas divulgando o conhecimento adiante...&lt;/p&gt;</description><link>http://fontedecodigo.blogspot.com/2010/08/aplicando-classes-no-lumis-ms-com.html</link><author>noreply@blogger.com (raph)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5473585813342701908.post-3518539710032969921</guid><pubDate>Thu, 29 Jul 2010 17:56:00 +0000</pubDate><atom:updated>2011-07-12T20:20:47.800-03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">google</category><category domain="http://www.blogger.com/atom/ns#">intermediário</category><category domain="http://www.blogger.com/atom/ns#">jquery</category><category domain="http://www.blogger.com/atom/ns#">js</category><category domain="http://www.blogger.com/atom/ns#">prototype</category><category domain="http://www.blogger.com/atom/ns#">scriptaculous</category><category domain="http://www.blogger.com/atom/ns#">seo</category><category domain="http://www.blogger.com/atom/ns#">tutoriais</category><title>Google Code</title><description>&lt;p&gt;Se voc&amp;ecirc; &amp;eacute; desenvolvedor de websites e conhece alguma coisa de javascript, certamente j&amp;aacute; ouviu falar nas bibliotecas de c&amp;oacute;digo livre (&lt;em&gt;open-source javascript libraries&lt;/em&gt;). Elas facilitam muito o trabalho porque j&amp;aacute; trazem in&amp;uacute;meras fun&amp;ccedil;&amp;otilde;es recorrentes ao desenvolvimento prontas, de modo que quase nunca precisamos iniciar uma nova fun&amp;ccedil;&amp;atilde;o do zero (ah n&amp;atilde;o ser que ela seja bastante original ou ex&amp;oacute;tica).&lt;/p&gt;
&lt;p&gt;O grande problema de usar essas bibliotecas &amp;eacute; que precisamos incluir um arquivo javascript relativamente pesado na p&amp;aacute;gina. Alguns, como o JQuery, n&amp;atilde;o passam de 56Kb (31Kb na vers&amp;atilde;o de arquivo comprimido) &amp;ndash; já outros, como o Prototype, podem passar dos 160Kb de includes, quando usado juntamente com os efeitos do Scriptaculous.&lt;/p&gt;
&lt;p&gt;Muitas vezes esse tempo de &lt;em&gt;loading&lt;/em&gt;  acaba n&amp;atilde;o compensando, mesmo se considerando as velocidades atuais (j&amp;aacute; que, principalmente no Brasil, temos uma das piores bandas largas do mundo). Algumas estrat&amp;eacute;gias para contornar o problema geralmente passam pelo uso das bibliotecas apenas em certas p&amp;aacute;ginas internas &amp;ndash; como &amp;aacute;lbuns de fotos  ou formul&amp;aacute;rios com valida&amp;ccedil;&amp;atilde;o &amp;quot;elaborada&amp;quot; &amp;ndash;, deixando a home livre do peso do &lt;em&gt;loading&lt;/em&gt; desses includes... Mas eu acabei encontrando uma solu&amp;ccedil;&amp;atilde;o melhor, que pode se enquadrar em qualquer cen&amp;aacute;rio, principalmente para websites pequenos ou hospedados em servidores modestos.&lt;/p&gt;
&lt;p&gt;Ocorre que a Google (acredito que dispense maiores apresenta&amp;ccedil;&amp;otilde;es) hospeda as bibliotecas mais famosas em seus servidores, e gratuitamente. Para inserir o Prototype com Scriptaculous em seu website, por exemplo, voc&amp;ecirc; nem precisa ter os arquivos javascript hospedados em seu servidor &amp;ndash; basta cham&amp;aacute;-los dessa maneira: &lt;/p&gt;

&lt;pre class=&quot;brush: js;&quot;&gt;
&amp;lt;script src=&quot;http://www.google.com/jsapi&quot; type=&quot;text/javascript&quot;&gt;&amp;lt;/script&gt;
&amp;lt;script type=&quot;text/javascript&quot;&gt;
  google.load(&quot;prototype&quot;, &quot;1.6.0.3&quot;);
  google.load(&quot;scriptaculous&quot;, &quot;1.8.2&quot;);

  google.setOnLoadCallback(function() {
    $.getJSON(&quot;http://ajax.googleapis.com/ajax/services/search/web?q=google&amp;v=1.0&amp;callback=?&quot;,

      function (data) {
        if (data.responseData.results &amp;&amp;
            data.responseData.results.length &gt; 0) {
          var results = data.responseData.results;
          
          for (var i=0; i &lt; results.length; i++) {
            alert(results[i].titleNoFormatting);
          }    
        }
        
      });
    });
&amp;lt;/script&gt;
&lt;/pre&gt;

&lt;p class=&quot;btns png&quot;&gt;Com isso estamos chamando os arquivos diretamente dos servidores da Google, evitando o uso de banda de nossa hospedagem e servindo os usu&amp;aacute;rio de nosso website com uma velocidade de download bem superior a de 95% dos websites do planeta. Vejamos o que ganhamos e perdemos com isso:&lt;/p&gt;
&lt;p class=&quot;btns png&quot;&gt;&lt;em&gt;Pr&amp;oacute;s&lt;/em&gt;&lt;br /&gt;
&amp;ndash; As vers&amp;otilde;es das bibliotecas se atualizam automaticamente. Se n&amp;atilde;o chamarmos uma vers&amp;atilde;o em espec&amp;iacute;fico, ser&amp;aacute; usada sempre a vers&amp;atilde;o est&amp;aacute;vel mais atual.&lt;br /&gt;
&amp;ndash; A velocidade de download dos arquivos ser&amp;aacute; quase sempre superior nos servidores da Google, de modo que o problema do tempo de &lt;em&gt;loading&lt;/em&gt; de arquivos mais pesados (como o Prototype) &amp;eacute; bastante minimizado. &lt;br /&gt;
&amp;ndash; Muito provavelmente o fato de chamar constantemente os servidores da Google ajudar&amp;aacute; tamb&amp;eacute;m a manter o website bem posicionado nas pesquisas da pr&amp;oacute;pria Google (SEO). &lt;/p&gt;
&lt;p class=&quot;btns png&quot;&gt;&lt;em&gt;Contras&lt;/em&gt;&lt;br /&gt;
&amp;ndash; Quando a Google estiver fora do ar, o javascript em seu website ficar&amp;aacute; quebrado. A quest&amp;atilde;o &amp;eacute; que a Google provavelmente passar&amp;aacute; &lt;em&gt;muito&lt;/em&gt; menos tempo fora do ar do que o seu pr&amp;oacute;prio servidor de hospedagem, a n&amp;atilde;o ser que seu site seja um portal com grandes n&amp;iacute;veis de acesso (hospedado em servidores de ponta). &lt;/p&gt;
&lt;p class=&quot;btns png&quot;&gt;Como pode ver, acredito que os Pr&amp;oacute;s s&amp;atilde;o facilmente superiores aos Contras. &lt;/p&gt;
&lt;p class=&quot;btns png&quot;&gt;Eu uso esse m&amp;eacute;todo para chamar o Prototype com Scriptaculous no meu site de portf&amp;oacute;lio &amp;ndash; na verdade eles servem para fazer funcionar o &lt;em&gt;lightbox&lt;/em&gt; das imagens: &lt;/p&gt;

&lt;p class=&quot;btns png&quot;&gt;&lt;a href=&quot;http://www.raph.com.br/ayon/port.html&quot; target=&quot;_blank&quot;&gt;Ver meu portfolio (Ayon)&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;***&lt;/p&gt;
&lt;p&gt;&amp;#187; Visite a &lt;a href=&quot;http://code.google.com/&quot; target=&quot;_blank&quot;&gt;Google Libraries API &lt;/a&gt;(Google Code) &lt;/p&gt;
&lt;p&gt;&amp;#187; Veja o &lt;a href=&quot;http://code.google.com/intl/pt-BR/apis/libraries/devguide.html&quot; target=&quot;_blank&quot;&gt;guia de como chamar as bibliotecas p&amp;uacute;blicas em seu website &lt;/a&gt;&lt;/p&gt;&lt;br /&gt;</description><link>http://fontedecodigo.blogspot.com/2010/07/google-code.html</link><author>noreply@blogger.com (raph)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5473585813342701908.post-7981958339158835044</guid><pubDate>Fri, 09 Jul 2010 19:12:00 +0000</pubDate><atom:updated>2010-07-09T16:22:54.479-03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Apple</category><category domain="http://www.blogger.com/atom/ns#">Bonnier</category><category domain="http://www.blogger.com/atom/ns#">e-readers</category><category domain="http://www.blogger.com/atom/ns#">Ipad</category><category domain="http://www.blogger.com/atom/ns#">usabilidade</category><category domain="http://www.blogger.com/atom/ns#">vídeos</category><title>Mag+ com Popular Science+</title><description>&lt;p&gt;Certamente todos devem ter ouvido falar nos e-readers mais atuais, como o Kindle da Amazon.com e o Ipad da Apple (dentre muitos outros). Interessante é notar que enquanto muito se falou no hardware e na tecnologia das telas (LCD ou e-ink, etc.), pouco se falou sobre uma revisão dos softwares de leitura, ou da usabilidade mais adequada para esse novo tipo de mídia (que está bem longe de ser um livro ou revista de papel, obviamente)...&lt;/p&gt;
&lt;p&gt;Coube &lt;a href=&quot;http://www.bonnier.com/betalab&quot; target=&quot;_blank&quot;&gt;a um grupo editorial do norte europeu&lt;/a&gt;, com mais de 200 anos de história, trazer-nos uma visão mais adequada para a usabilidade dos e-readers. Enquanto ninguém se mexeu, eles pensaram e pensaram, e nos trouxeram o Mag+. Abaixo, um vídeo (em inglês) onde é exposta a usabilidade da revita Popular Science+, a primeira a usar o Mag+, no Ipad:&lt;/p&gt;
&lt;p&gt;&lt;object width=&quot;601&quot; height=&quot;338&quot;&gt;&lt;param name=&quot;allowfullscreen&quot; value=&quot;true&quot; /&gt;&lt;param name=&quot;allowscriptaccess&quot; value=&quot;always&quot; /&gt;&lt;param name=&quot;movie&quot; value=&quot;http://vimeo.com/moogaloop.swf?clip_id=10630568&amp;amp;server=vimeo.com&amp;amp;show_title=1&amp;amp;show_byline=1&amp;amp;show_portrait=0&amp;amp;color=00ADEF&amp;amp;fullscreen=1&quot; /&gt;&lt;embed src=&quot;http://vimeo.com/moogaloop.swf?clip_id=10630568&amp;amp;server=vimeo.com&amp;amp;show_title=1&amp;amp;show_byline=1&amp;amp;show_portrait=0&amp;amp;color=00ADEF&amp;amp;fullscreen=1&quot; type=&quot;application/x-shockwave-flash&quot; allowfullscreen=&quot;true&quot; allowscriptaccess=&quot;always&quot; width=&quot;601&quot; height=&quot;338&quot;&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/p&gt;</description><link>http://fontedecodigo.blogspot.com/2010/07/mag-com-popular-science.html</link><author>noreply@blogger.com (raph)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5473585813342701908.post-6391820152533651660</guid><pubDate>Thu, 27 May 2010 22:55:00 +0000</pubDate><atom:updated>2011-07-12T20:17:39.117-03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">avançado</category><category domain="http://www.blogger.com/atom/ns#">caixas</category><category domain="http://www.blogger.com/atom/ns#">chrome3</category><category domain="http://www.blogger.com/atom/ns#">cnn</category><category domain="http://www.blogger.com/atom/ns#">css</category><category domain="http://www.blogger.com/atom/ns#">firefox3.5</category><category domain="http://www.blogger.com/atom/ns#">html</category><category domain="http://www.blogger.com/atom/ns#">ie6</category><category domain="http://www.blogger.com/atom/ns#">ie7</category><category domain="http://www.blogger.com/atom/ns#">ie8</category><category domain="http://www.blogger.com/atom/ns#">tutoriais</category><title>Como fazer caixas sombreadas, passo 3</title><description>&lt;p&gt;&lt;a href=&quot;http://fontedecodigo.blogspot.com/2010/05/como-fazer-caixas-sombreadas-passos-1-e.html&quot;&gt;continuando do Passo 2&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Passo 3 &lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Para fazer com que nosso amigo IE deixe a caixa sombreada, precisaremos recorrer a tag-propriet&amp;aacute;ria -ms-filter (ou filter, para algumas vers&amp;otilde;es) e utilizar o filtro (tamb&amp;eacute;m espec&amp;iacute;fico do IE) DXImageTransform.Microsoft.Shadow para aplicar sombreamento em cada dire&amp;ccedil;&amp;atilde;o (0&amp;#186;, 90 &amp;#186;, 180 &amp;#186; e 270&amp;#186;). O c&amp;oacute;digo &amp;eacute; um pouco extenso, mas relativamente simples: &lt;/p&gt;

&lt;pre class=&quot;brush: css;&quot;&gt;
div.sbox {
 -ms-filter: &quot;progid:DXImageTransform.Microsoft.Shadow(color=#d9d9d9,direction=0,strength=2) progid:DXImageTransform.Microsoft.Shadow(color=#d9d9d9,direction=90,strength=2) progid:DXImageTransform.Microsoft.Shadow(color=#d9d9d9,direction=180,strength=2) progid:DXImageTransform.Microsoft.Shadow(color=#d9d9d9,direction=270,strength=2)&quot;;
 filter: progid:DXImageTransform.Microsoft.Shadow(color=#d9d9d9,direction=0,strength=2) progid:DXImageTransform.Microsoft.Shadow(color=#d9d9d9,direction=90,strength=2) progid:DXImageTransform.Microsoft.Shadow(color=#d9d9d9,direction=180,strength=2) progid:DXImageTransform.Microsoft.Shadow(color=#d9d9d9,direction=270,strength=2);
}
&lt;/pre&gt;

&lt;p&gt;&lt;strong&gt;Nota 1:&lt;/strong&gt; Como o c&amp;oacute;digo j&amp;aacute; &amp;eacute; espec&amp;iacute;fico do IE, recomendamos utilizar o teste &amp;lt;!--[if IE]&amp;gt; para escond&amp;ecirc;-lo de outros browsers (ver c&amp;oacute;digo fonte do passo 3).&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Nota 2:&lt;/strong&gt; Voc&amp;ecirc; deve ter reparado que n&amp;atilde;o utilizamos o mesmo hexadecimal de cor do box-shadow (#ccc) - isso porque, por alguma estranha raz&amp;atilde;o, a cor utilizada nesse filtro sempre parece um pouco mais escura no resultado final. Dessa forma acreditamos que o hexadecimal #d9d9d9 trás um resultado melhor.   &lt;/p&gt;
&lt;p&gt;Dessa forma chegamos a um resultado final onde &amp;eacute; praticamente imposs&amp;iacute;vel identificar diferen&amp;ccedil;as entre o IE e o Firefox: &lt;/p&gt;

&lt;a target=&quot;_blank&quot; onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj6KiICFzWCYj1ipYbfKiMdkttgU0its2skmdEULqV5GlO6CQEMaGTWLQeP1Cpjdwv5vqSKO_V78vOqo42-KdygS5KZiAPO8N52iZv-F7o9wYOH_guQpUrFbUFpXlmYhrA2ViRSkTLSa4fr/s1600/comofazercaixassombreadas_4.jpg&quot;&gt;&lt;img style=&quot;cursor:pointer; cursor:hand;width: 400px; height: 227px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj6KiICFzWCYj1ipYbfKiMdkttgU0its2skmdEULqV5GlO6CQEMaGTWLQeP1Cpjdwv5vqSKO_V78vOqo42-KdygS5KZiAPO8N52iZv-F7o9wYOH_guQpUrFbUFpXlmYhrA2ViRSkTLSa4fr/s400/comofazercaixassombreadas_4.jpg&quot; border=&quot;0&quot; alt=&quot;&quot;id=&quot;BLOGGER_PHOTO_ID_5476087512142930082&quot; /&gt;&lt;/a&gt;

&lt;br /&gt;&lt;br /&gt;
&lt;p class=&quot;btns png&quot;&gt;&lt;a href=&quot;http://www.raph.com.br/fonteblog/tutorials/boxshadow/03.html&quot; target=&quot;_blank&quot;&gt;Ver Passo 3&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;E &amp;eacute; apenas isso, agora temos caixas sombreadas sem utilizar imagens. Algo que deve ter levado uns 2% das horas que os desenvolvedores da CNN utilizaram na sua solu&amp;ccedil;&amp;atilde;o... Tudo bem que essa solu&amp;ccedil;&amp;atilde;o n&amp;atilde;o ir&amp;aacute; funcionar em vers&amp;otilde;es mais antigas do Firefox e do Chrome, mas os usu&amp;aacute;rios desses browsers costumam atualiz&amp;aacute;-los com bastante frequencia. Acredito que temos uma solu&amp;ccedil;&amp;atilde;o que atenda a pelo menos 95% dos browsers usados na web, e com um custo de cria&amp;ccedil;&amp;atilde;o e manuten&amp;ccedil;&amp;atilde;o muit&amp;iacute;ssimo inferior a maioria das outras solu&amp;ccedil;&amp;otilde;es do mercado. &lt;/p&gt;
&lt;p&gt;***&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Nota final:&lt;/strong&gt; parte do Passo 3 desse tutorial foi baseado no excelente artigo &quot;&lt;a href=&quot;http://nick-dunn.co.uk/article/cross-browser-drop-shadows-using-pure-css/&quot; target=&quot;_blank&quot;&gt;Cross-browser drop shadows using pure CSS&lt;/a&gt;&quot; de Nick Dunn. &lt;/p&gt;
&lt;p&gt;*** &lt;/p&gt;</description><link>http://fontedecodigo.blogspot.com/2010/05/como-fazer-caixas-sombreadas-passo-3.html</link><author>noreply@blogger.com (raph)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj6KiICFzWCYj1ipYbfKiMdkttgU0its2skmdEULqV5GlO6CQEMaGTWLQeP1Cpjdwv5vqSKO_V78vOqo42-KdygS5KZiAPO8N52iZv-F7o9wYOH_guQpUrFbUFpXlmYhrA2ViRSkTLSa4fr/s72-c/comofazercaixassombreadas_4.jpg" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5473585813342701908.post-7715360673366373241</guid><pubDate>Thu, 27 May 2010 22:30:00 +0000</pubDate><atom:updated>2011-07-12T20:18:18.781-03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">caixas</category><category domain="http://www.blogger.com/atom/ns#">chrome3</category><category domain="http://www.blogger.com/atom/ns#">cnn</category><category domain="http://www.blogger.com/atom/ns#">css</category><category domain="http://www.blogger.com/atom/ns#">firefox3.5</category><category domain="http://www.blogger.com/atom/ns#">html</category><category domain="http://www.blogger.com/atom/ns#">ie6</category><category domain="http://www.blogger.com/atom/ns#">ie7</category><category domain="http://www.blogger.com/atom/ns#">ie8</category><category domain="http://www.blogger.com/atom/ns#">intermediário</category><category domain="http://www.blogger.com/atom/ns#">tutoriais</category><title>Como fazer caixas sombreadas, passos 1 e 2</title><description>&lt;p&gt;Outro elemento bastante usado em design elaborados s&amp;atilde;o caixas sombreadas. Vejamos como elas funcionam bem para complementar &lt;a href=&quot;http://edition.cnn.com/&quot; target=&quot;_blank&quot;&gt;o design &lt;em&gt;clean&lt;/em&gt; da CNN.com&lt;/a&gt;: &lt;/p&gt;

&lt;a target=&quot;_blank&quot; onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgQNFQQhGGPr-clF2MaramcSueYFXNfuy15ez2xfP91uJ8FWD6HDcLdhVCMwF0tee6V1kd5Le_Ax85ei7jaWljUWY6ZlAqd07G9nEeWi3-T-dr54lsf4AR5pLW3JM8-9-0hLgmojmCg_rMx/s1600/comofazercaixassombreadas_1.jpg&quot;&gt;&lt;img style=&quot;cursor:pointer; cursor:hand;width: 379px; height: 400px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgQNFQQhGGPr-clF2MaramcSueYFXNfuy15ez2xfP91uJ8FWD6HDcLdhVCMwF0tee6V1kd5Le_Ax85ei7jaWljUWY6ZlAqd07G9nEeWi3-T-dr54lsf4AR5pLW3JM8-9-0hLgmojmCg_rMx/s400/comofazercaixassombreadas_1.jpg&quot; border=&quot;0&quot; alt=&quot;&quot;id=&quot;BLOGGER_PHOTO_ID_5476081691472728466&quot; /&gt;&lt;/a&gt;

&lt;p&gt;No entanto, os desenvolvedores da CNN parecem ter tido muito trabalho elaborando esse css. Vejamos como eles fizeram (&lt;a href=&quot;http://i.cdn.turner.com/cnn/.element/css/3.0/common.css&quot; target=&quot;_blank&quot;&gt;retirado do css da CNN&lt;/a&gt;): &lt;/p&gt;

&lt;pre class=&quot;brush: css;&quot;&gt;
/* SECTION SHADING SPRITE CSS */

.cnn_shdsectbin .cnn_shdcaheader,
.cnn_shdsectbin .cnn_shdcafooter,
.cnn_shdmnfooter,
.cnn_shd755pxfooter,
.cnn_shd755pxheader,
.cnn_shd755px2footer,
.cnn_shd755px2header,
.cnn_shd235pxheader,
.cnn_shd235pxfooter { height:6px;overflow:hidden;background:transparent url(&#39;http://i.cdn.turner.com/cnn/.element/img/3.0/global/shade/sprite_shades.gif&#39;) 0px -81px no-repeat; }

.cnn_shdsectbin .cnn_shdcafooter { background-position:0px -124px; }

.cnn_shdmnfooter { background-position:0px -174px;clear:both; }

.cnn_shd755pxheader { background-position:0px -252px;height:7px; }
.cnn_shd755pxfooter { background-position:0px -214px;height:7px; }

.cnn_shd755px2header { background-position:0px -342px;height:7px; }
.cnn_shd755px2footer { background-position:0px -299px;height:7px; }

.cnn_shd235pxheader { background-position:0px -424px;height:7px; }
.cnn_shd235pxfooter { background-position:0px -383px;height:7px; }
&lt;/pre&gt;

&lt;p&gt;Reparem como eles chamam a imagem &amp;quot;&lt;a href=&quot;http://i.cdn.turner.com/cnn/.element/img/3.0/global/shade/sprite_shades.gif&quot; target=&quot;_blank&quot;&gt;sprite_shades.gif&lt;/a&gt;&amp;quot; contendo diversos tipos de bordas sombreadas e a reposicionam, usando background-position de acordo com a classe e largura do box em que s&amp;atilde;o utilizadas. O resultado final ficou excelente, e &amp;eacute; melhor dar &lt;em&gt;load&lt;/em&gt; de apenas uma imagem mesmo, por quest&amp;otilde;es de performance... &lt;strong&gt;Mas, NOSSA, isso deve ter dado um trabalho infernal!&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Felizmente, agora vou lhes ensinar o que os desenvolvedores da CNN aparentemente n&amp;atilde;o sabem (ou mesmo sabendo, preferiram ignorar para justificar mais horas no projeto); Como fazer caixas sombreadas que funcionam em todos os browsers atuais (incluindo o ie6!) e &lt;strong&gt;sem usar nenhuma imagem&lt;/strong&gt;, muito menos essa engenharia de background-position da CNN... N&amp;atilde;o acredita? Ent&amp;atilde;o vamos l&amp;aacute;:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Passo 1&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Primeiro vamos definir o html de nossa caixa: &lt;/p&gt;

&lt;pre class=&quot;brush: csharp;&quot;&gt;
&amp;lt;div class=&quot;sbox&quot;&gt;
 &amp;lt;h3&gt;Só o sombra sabe&amp;lt;/h3&gt;
 &amp;lt;p&gt;O mal que se esconde no coração desses geeks que ficam até altas horas da noite na web.&amp;lt;/p&gt;
&amp;lt;/div&gt;
&lt;/pre&gt;

&lt;p&gt;Agora vamos deixar nossa caixa mais bonitinhas usando um pouco de css:&lt;/p&gt;

&lt;pre class=&quot;brush: css;&quot;&gt;
div.sbox {
 width:482px;
 padding:8px;
 background:#fff;
 border:1px solid #999;
 font-family:georgia,arial,sans-serif;
 font-size:120%;
}
div.sbox h3 {
 padding:0 0 12px 0;
 margin:0;
 font-weight:bold;
 font-size:130%;
}
div.sbox p {
 margin:0 0 8px 0;
}
&lt;/pre&gt;

&lt;p&gt;Definimos a fonte e o espa&amp;ccedil;amento, assim como uma borda em cinza claro. Nossa caixa est&amp;aacute; agora um pouco mais interessante:&lt;/p&gt;

&lt;a target=&quot;_blank&quot; onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjIxg2S4jCuPy-hs1yaiR-2OdCbqL33dKam6wX48PDE-F7iJTTBZCM0MO9Y_pUNZb4G4fjAnyqFPJPIREoE3FzH3nT1WaJPoXWgiv3wfl1WtiDcfuthqyPOTp9ADC1AoEdvN28_7F4ngfB7/s1600/comofazercaixassombreadas_2.jpg&quot;&gt;&lt;img style=&quot;cursor:pointer; cursor:hand;width: 400px; height: 92px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjIxg2S4jCuPy-hs1yaiR-2OdCbqL33dKam6wX48PDE-F7iJTTBZCM0MO9Y_pUNZb4G4fjAnyqFPJPIREoE3FzH3nT1WaJPoXWgiv3wfl1WtiDcfuthqyPOTp9ADC1AoEdvN28_7F4ngfB7/s400/comofazercaixassombreadas_2.jpg&quot; border=&quot;0&quot; alt=&quot;&quot;id=&quot;BLOGGER_PHOTO_ID_5476081878836538002&quot; /&gt;&lt;/a&gt;

&lt;br /&gt;&lt;br /&gt;
&lt;p class=&quot;btns png&quot;&gt;&lt;a href=&quot;http://www.raph.com.br/fonteblog/tutorials/boxshadow/01.html&quot; target=&quot;_blank&quot;&gt;Ver Passo 1&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;***&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Passo 2&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Agora vamos adicionar sombreamento a nossa caixa. Para tal vamos utilizar a tag box-shadow, pr&amp;oacute;pria do CSS3, assim como as tags propriet&amp;aacute;rias -moz-box-shadow e -webkit-box-shadow, que s&amp;atilde;o suportadas, respectivamente, pelo Firefox e o Chrome/Safari: &lt;/p&gt;
&lt;pre class=&quot;brush: css; highlight: [8, 9, 10];&quot;&gt;
div.sbox {
 width:482px;
 padding:8px;
 background:#fff;
 border:1px solid #ccc;
 font-family:georgia,arial,sans-serif;
 font-size:120%;
 box-shadow:0 0 4px #ccc;
 -moz-box-shadow:0 0 4px #ccc;
 -webkit-box-shadow:0 0 4px #ccc;
}
&lt;/pre&gt;

&lt;p&gt;Isso nos trar&amp;aacute; uma caixa sobreada, algo muito valorizado por navegantes de fino trato:&lt;/p&gt;

&lt;a target=&quot;_blank&quot; onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiTSHkv-dXMbHAypiMvrHcRbIqxc5d5uMUVSyQ19-pevI2eyGkoEscisgcMuo3T7_VyjgNhQnzwryAbekVbj7vym1iZehsGFwgd9yxkG-yqztDZsUa8xTxa_-AkWPDn0AQqmih-X-PWplU7/s1600/comofazercaixassombreadas_3.jpg&quot;&gt;&lt;img style=&quot;cursor:pointer; cursor:hand;width: 400px; height: 92px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiTSHkv-dXMbHAypiMvrHcRbIqxc5d5uMUVSyQ19-pevI2eyGkoEscisgcMuo3T7_VyjgNhQnzwryAbekVbj7vym1iZehsGFwgd9yxkG-yqztDZsUa8xTxa_-AkWPDn0AQqmih-X-PWplU7/s400/comofazercaixassombreadas_3.jpg&quot; border=&quot;0&quot; alt=&quot;&quot;id=&quot;BLOGGER_PHOTO_ID_5476082014894333746&quot; /&gt;&lt;/a&gt;

&lt;br /&gt;&lt;br /&gt;
&lt;p class=&quot;btns png&quot;&gt;&lt;a href=&quot;http://www.raph.com.br/fonteblog/tutorials/boxshadow/02.html&quot; target=&quot;_blank&quot;&gt;Ver Passo 2&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Acho que muita gente est&amp;aacute; deixando o ceticismo de lado agora... Mas ainda n&amp;atilde;o venci o maior obst&amp;aacute;culo - porque nossa caixa ainda n&amp;atilde;o tem sombreado algum no IE. &lt;/p&gt;
&lt;p&gt;A seguir, &lt;a href=&quot;http://fontedecodigo.blogspot.com/2010/05/como-fazer-caixas-sombreadas-passo-3.html&quot;&gt;no Passo 3, usaremos alguns filtros espec&amp;iacute;ficos do IE para finalizar nossa epop&amp;eacute;ia&lt;/a&gt; e deixar os desenvolvedores da CNN um pouco envergonhados... &lt;/p&gt;
&lt;p&gt;***&lt;/p&gt;</description><link>http://fontedecodigo.blogspot.com/2010/05/como-fazer-caixas-sombreadas-passos-1-e.html</link><author>noreply@blogger.com (raph)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgQNFQQhGGPr-clF2MaramcSueYFXNfuy15ez2xfP91uJ8FWD6HDcLdhVCMwF0tee6V1kd5Le_Ax85ei7jaWljUWY6ZlAqd07G9nEeWi3-T-dr54lsf4AR5pLW3JM8-9-0hLgmojmCg_rMx/s72-c/comofazercaixassombreadas_1.jpg" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5473585813342701908.post-3712141574790223796</guid><pubDate>Thu, 27 May 2010 20:52:00 +0000</pubDate><atom:updated>2011-07-12T20:18:51.691-03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">acessibilidade</category><category domain="http://www.blogger.com/atom/ns#">chrome3</category><category domain="http://www.blogger.com/atom/ns#">firefox3.5</category><category domain="http://www.blogger.com/atom/ns#">ie6</category><category domain="http://www.blogger.com/atom/ns#">ie7</category><category domain="http://www.blogger.com/atom/ns#">ie8</category><category domain="http://www.blogger.com/atom/ns#">intermediário</category><category domain="http://www.blogger.com/atom/ns#">js</category><category domain="http://www.blogger.com/atom/ns#">links</category><category domain="http://www.blogger.com/atom/ns#">onclick</category><category domain="http://www.blogger.com/atom/ns#">pop-ups</category><category domain="http://www.blogger.com/atom/ns#">tutoriais</category><title>Javascript links: pop-ups acessíveis</title><description>&lt;p&gt;Voc&amp;ecirc;s viram &lt;a href=&quot;http://fontedecodigo.blogspot.com/2010/05/javascript-links-problema-do-onclick-e.html&quot; target=&quot;_blank&quot;&gt;como resolvemos o problema de links com evento de onlick&lt;/a&gt; que precisam manter a barra de rolagem do browser no mesmo lugar. Pois bem, utilizando uma solu&amp;ccedil;&amp;atilde;o bem parecida, podemos agora montar um link que abre uma pop-up centralizada na tela e com dimens&amp;otilde;es definidas atrav&amp;eacute;s do window.open() do javascript, e que ainda assim permanecer&amp;aacute; funcional - abrindo uma nova janela com target=&amp;quot;_blank&amp;quot; - para quem estiver usando um browser sem javascript habilitado. Ou seja, teremos um link para abrir pop-ups perfeitamente acess&amp;iacute;vel!&lt;/p&gt;
&lt;p&gt;Vejamos como &amp;eacute; simples. Primeiro precisamos do script com a fun&amp;ccedil;&amp;atilde;o para abrir nossa pop-up centraliada na tela dos usu&amp;aacute;rios que tem javascript habilitado: &lt;/p&gt;

&lt;pre class=&quot;brush: js;&quot;&gt;
&amp;lt;script type=&quot;text/javascript&quot;&gt;
function PopUpCentralizado(nomepagina, titulopagina, w, h, scroll) {
 var winl = (screen.width - w) / 2;
 var wint = (screen.height - h) / 2;
 winprops = &#39;height=&#39; + h + &#39;, width = &#39; + w + &#39;, top = &#39; + wint + &#39;, left = &#39; + winl + &#39;, scrollbars = &#39; + scroll + &#39;, location=no, status=no&#39;;
 win = window.open(nomepagina, titulopagina, winprops);
 if (parseInt(navigator.appVersion)  &gt;= 4) {
  win.window.focus();
 }
} 
&amp;lt;/script&gt;
&lt;/pre&gt;

&lt;p class=&quot;btns png&quot;&gt;Agora vejamos como esse tipo de link &amp;eacute; usualmente montado em sites que n&amp;atilde;o tem preocupa&amp;ccedil;&amp;atilde;o com acessibilidade:&lt;/p&gt;

&lt;pre class=&quot;brush: csharp;&quot;&gt;
&amp;lt;a href=&quot;http://www.google.com&quot; onclick=&quot;javascript:PopUpCentralizado(this.href, &#39;pop&#39;, &#39;800&#39;, &#39;600&#39;, &#39;yes&#39;);&quot;&gt;Link com pop-up&amp;lt;/a&gt;
&lt;/pre&gt;

&lt;p class=&quot;btns png&quot;&gt;Rapare que o script pega o atributo href da tag &amp;lt;a&amp;gt; com &amp;quot;this.href&amp;quot;. Com alguns pequenos ajustes conseguimos transformar esse link em um link acess&amp;iacute;vel: &lt;/p&gt;

&lt;pre class=&quot;brush: csharp;&quot;&gt;
&amp;lt;a onclick=&quot;javascript:PopUpCentralizado(this.href, &#39;pop&#39;, &#39;800&#39;, &#39;600&#39;, &#39;yes&#39;); return false&quot; href=&quot;http://www.google.com&quot; target=&quot;_blank&quot;&gt;Link com pop-up acessível&amp;lt;/a&gt;
&lt;/pre&gt;

&lt;p class=&quot;btns png&quot;&gt;Utilizando a mesma solu&amp;ccedil;&amp;atilde;o para links com onclick, invertemos a ordem dos atributos na tag &amp;lt;a&amp;gt;, de modo que o onclick venha antes do href, e inserimos o &amp;quot;return false&amp;quot; para o script parar ap&amp;oacute;s o evento de clique e o browser n&amp;atilde;o considerar o target=&amp;quot;_blank&amp;quot;. Dessa forma, quando o usu&amp;aacute;rio tiver javascript habilitado, abrir&amp;aacute; a pop-up normalmente, sem uma segunda janela ser chamada. J&amp;aacute; quando o usu&amp;aacute;rio por alguma raz&amp;atilde;o n&amp;atilde;o dispor de javascript no browser (seja um browser antigo, um leitor de tela ou browsers de mobiles, etc.) ele continuar&amp;aacute; abrindo uma nova janela - &lt;em&gt;ou seja, o link continuar&amp;aacute; funcional e, portanto, acess&amp;iacute;vel&lt;/em&gt;. &lt;/p&gt;
&lt;p class=&quot;btns png&quot;&gt;&lt;a href=&quot;http://www.raph.com.br/fonteblog/tutorials/jslinks/02.html&quot; target=&quot;_blank&quot;&gt;Ver exemplo&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;***&lt;/p&gt;
&lt;p&gt;Muitas vezes o esfor&amp;ccedil;o requerido para esse tipo de ajuste &amp;eacute; m&amp;iacute;nimo, e como o link servir&amp;aacute; para browsers com ou sem javascript, esse tipo de &amp;quot;boa pr&amp;aacute;tica&amp;quot; deveria ser encorajado em qualquer projeto web, particularmente quando focado em acessibilidade. &lt;/p&gt;</description><link>http://fontedecodigo.blogspot.com/2010/05/javascript-links-links-com-pop-up.html</link><author>noreply@blogger.com (raph)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5473585813342701908.post-5437106512222751564</guid><pubDate>Mon, 24 May 2010 15:14:00 +0000</pubDate><atom:updated>2010-10-08T14:44:45.819-03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Café Filosófico</category><category domain="http://www.blogger.com/atom/ns#">gestão empresarial</category><category domain="http://www.blogger.com/atom/ns#">informação</category><category domain="http://www.blogger.com/atom/ns#">Marcos Cavalcanti</category><category domain="http://www.blogger.com/atom/ns#">trabalho</category><category domain="http://www.blogger.com/atom/ns#">vídeos</category><title>O trabalho na era do conhecimento</title><description>&lt;a target=&quot;_blank&quot; onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgn0A-IdkdE36Kt6KzV-QQ2K57tW1q8_b6WHubkE7wmxVV4huPdp4EZvtA7xewbdxSWdd73jaDQQRw4b6fxbZ-DnVeJXxv-F2m8pHYXZVQmQ_Sol4-sHp4DQWZigY0n0MdkXWa8qpdG7_lt/s1600/temposmodernos.jpg&quot;&gt;&lt;img style=&quot;float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 320px; height: 227px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgn0A-IdkdE36Kt6KzV-QQ2K57tW1q8_b6WHubkE7wmxVV4huPdp4EZvtA7xewbdxSWdd73jaDQQRw4b6fxbZ-DnVeJXxv-F2m8pHYXZVQmQ_Sol4-sHp4DQWZigY0n0MdkXWa8qpdG7_lt/s320/temposmodernos.jpg&quot; border=&quot;0&quot; alt=&quot;&quot;id=&quot;BLOGGER_PHOTO_ID_5474859684134779410&quot; /&gt;&lt;/a&gt;
&lt;p&gt;&quot;Vivemos num mundo onde, pela primeira vez, o conhecimento supera os fatores tradicionais de produção - terra, capital, matéria prima, energia e mão-de-obra - no processo de criação de riqueza.  Mesmo em setores econômicos mais tradicionais, como a agricultura, a indústria de bens de consumo e de capital, a competição é cada vez mais baseada na capacidade de transformar informação em conhecimento e conhecimento em valor. Informação, conhecimento, criatividade e inovação são, assim, ingredientes básicos para todas as organizações que atuam nesta nova sociedade, sejam elas públicas ou privadas.&lt;/p&gt;
&lt;p&gt;Mas, na prática, o que isto significa? Como criar novos modelos de negócio? E mais difícil ainda, como torná-los realidade, fazendo-os gerar resultados concretos? Que profissionais precisamos formar para fazer isto acontecer?  Como devemos agir, no nosso dia-a-dia, para ajudar a construir esta sociedade do conhecimento?&quot;&lt;/p&gt;

&lt;p&gt;É com o texto acima que Marcos Cavalcanti - &lt;a href=&quot;http://www.crie.ufrj.br/&quot; target=&quot;_blank&quot;&gt;coordenador do Crie&lt;/a&gt; (Centro de Referência em Inteligência Empresarial) da COPPE/UFRJ - abre o primeiro post de seu excelente blog &quot;&lt;a href=&quot;http://oglobo.globo.com/blogs/inteligenciaempresarial/&quot; target=&quot;_blank&quot;&gt;Inteligência Empresarial&lt;/a&gt;&quot; do O Globo Online.&lt;/p&gt;

&lt;p&gt;Na palestra de aproximadamente 120 minutos que ele deu para o programa Café Filosófico da TV Cultura (em 18/09/09), ele destila algumas dessas respostas, enquanto trafega pelas eras agrícola e industrial, explicando o porque de já estarmos efetivamente em uma transição de eras, rumo a era do conhecimento - onde o foco da competição por recursos se desloca para a cooperatividade e compartilhamento do conhecimento.&lt;/p&gt;

&lt;p&gt;Somente um pensador da gestão empresarial com &lt;em&gt;certa sensibilidade&lt;/em&gt; poderia nos brindar com duas frases tão emblemáticas (e que dão o que pensar) enquanto fala sobre os rumos da sociedade moderna:&lt;/p&gt;

&lt;p&gt;&quot;O lucro é o oxigênio da empresa, mas viver é muito mais do que respirar.&quot; - Peter Drucker&lt;/p&gt;

&lt;p&gt;&quot;Navegar é preciso, viver não é preciso.&quot; - Fernando Pessoa&lt;/p&gt;

&lt;br /&gt;
&lt;p class=&quot;btns png&quot;&gt;&lt;a href=&quot;http://www.cpflcultura.com.br/site/2010/07/21/o-trabalho-marcos-cavalcanti-2/&quot; target=&quot;_blank&quot;&gt;Ver palestra na íntegra&lt;/a&gt;&lt;/p&gt;
&lt;br /&gt;

&lt;p&gt;***&lt;/p&gt;
&lt;p&gt;Crédito da imagem: Cena de &quot;Tempos Modernos&quot; (filme de Charles Chaplin, uma sátira da era industrial)&lt;/p&gt;</description><link>http://fontedecodigo.blogspot.com/2010/05/o-trabalho-na-era-do-conhecimento.html</link><author>noreply@blogger.com (raph)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgn0A-IdkdE36Kt6KzV-QQ2K57tW1q8_b6WHubkE7wmxVV4huPdp4EZvtA7xewbdxSWdd73jaDQQRw4b6fxbZ-DnVeJXxv-F2m8pHYXZVQmQ_Sol4-sHp4DQWZigY0n0MdkXWa8qpdG7_lt/s72-c/temposmodernos.jpg" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5473585813342701908.post-5897808489194146001</guid><pubDate>Thu, 13 May 2010 22:05:00 +0000</pubDate><atom:updated>2011-07-12T20:19:05.422-03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">chrome3</category><category domain="http://www.blogger.com/atom/ns#">firefox3.5</category><category domain="http://www.blogger.com/atom/ns#">ie6</category><category domain="http://www.blogger.com/atom/ns#">ie7</category><category domain="http://www.blogger.com/atom/ns#">ie8</category><category domain="http://www.blogger.com/atom/ns#">iniciante</category><category domain="http://www.blogger.com/atom/ns#">js</category><category domain="http://www.blogger.com/atom/ns#">links</category><category domain="http://www.blogger.com/atom/ns#">onclick</category><category domain="http://www.blogger.com/atom/ns#">tutoriais</category><title>Javascript links: problema do &quot;onclick&quot; e rolagem da página</title><description>&lt;p&gt;Uma das formas mais tradicionais de se inserir chamadas de javascript em um site &amp;eacute; atrav&amp;eacute;s do evento de &amp;quot;onclick&amp;quot; dos links (tags &amp;lt;a&amp;gt;). O motivo desse pequeno tutorial sobre o assunto &amp;eacute; mostrar como coisas t&amp;atilde;o simples podem ser feitas de v&amp;aacute;rias formas, e como nem sempre pensamos em usar a melhor forma poss&amp;iacute;vel.&lt;/p&gt;
&lt;p&gt;Vamos considerar a forma mais usual de links com &amp;quot;onclick&amp;quot; que vemos por a&amp;iacute;: &lt;/p&gt;

&lt;pre class=&quot;brush: csharp;&quot;&gt;
&amp;lt;a href=&quot;#&quot; onclick=&quot;javascript:alert(&#39;Hello world!&#39;);&quot;&gt;Clique aqui&amp;lt;/a&gt;
&lt;/pre&gt;

&lt;p&gt;O que &amp;eacute; chamado no &amp;quot;onclick&amp;quot; pode ser qualquer outra fun&amp;ccedil;&amp;atilde;o mais complexa, n&amp;atilde;o &amp;eacute; isso que estou querendo discutir aqui. O problema est&amp;aacute; no atrubuto &amp;quot;href&amp;quot; que permanece com o valor &amp;quot;#&amp;quot;. Como todos sabem isso far&amp;aacute; com que a barra de scroll do browser retorne ao topo da p&amp;aacute;gina, caso estejamos clicando em um link somente ap&amp;oacute;s descer um pouco nosso scroll.&lt;/p&gt;
&lt;p&gt;Isso &amp;eacute; um problema irritante para a grande maioria dos usu&amp;aacute;rios. O &amp;quot;problema desse problema&amp;quot; &amp;eacute; que ele n&amp;atilde;o impede a navega&amp;ccedil;&amp;atilde;o nem causa qualquer  outro grande dano a funcionalidade do site, &lt;em&gt;ele apenas irrita&lt;/em&gt;... E hoje em dia, usu&amp;aacute;rios irritados v&amp;atilde;o pensar duzentas e uma vezes em retornar ao seu site. &lt;/p&gt;
&lt;p&gt;Agora gostaria de mostrar 3 solu&amp;ccedil;&amp;otilde;es para esse problema, e depois descrever os pr&amp;oacute;s e os contras de cada uma delas:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Solu&amp;ccedil;&amp;atilde;o 1: manter-se no mesmo lugar&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Com essa solu&amp;ccedil;&amp;atilde;o inserimos um ID (#stay) em torno do link (tamb&amp;eacute;m poderia ser &amp;lt;a name=&amp;quot;stay&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;) e apontamos o &amp;quot;href&amp;quot; do link para ele:&lt;/p&gt;

&lt;pre class=&quot;brush: csharp;&quot;&gt;
&amp;lt;span id=&quot;stay&quot;&gt;&amp;lt;a href=&quot;#stay&quot; onclick=&quot;javascript:alert(&#39;Hello world!&#39;);&quot;&gt;Clique aqui&amp;lt;/a&gt;&amp;lt;/span&gt;
&lt;/pre&gt;

&lt;p&gt;&lt;em&gt;Pr&amp;oacute;s&lt;br /&gt;
&lt;/em&gt;- &amp;Eacute; a solu&amp;ccedil;&amp;atilde;o mais simples para um &amp;uacute;nico link do tipo na p&amp;aacute;gina.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Contras&lt;/em&gt;&lt;br /&gt;
- Precisamos criar um ID espec&amp;iacute;fico para cada link, pois se dois IDs iguais aparecerem na mesma p&amp;aacute;gina, o link ir&amp;aacute; apontar para o primeiro deles (afora isso, obviamnete seu html n&amp;atilde;o ir&amp;aacute; validar). Dessa forma n&amp;atilde;o &amp;eacute; uma boa solu&amp;ccedil;&amp;atilde;o para quando temos diversos links com &amp;quot;onclick&amp;quot; na mesma p&amp;aacute;gina.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Solu&amp;ccedil;&amp;atilde;o 2: usar javascript:undefined no &amp;quot;href&amp;quot; &lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Com essa solu&amp;ccedil;&amp;atilde;o inserimos no &amp;quot;href&amp;quot; um comando de javascript que na verdade n&amp;atilde;o causa efeito algum: &lt;/p&gt;

&lt;pre class=&quot;brush: csharp;&quot;&gt;
&amp;lt;a href=&quot;javascript:undefined;&quot; onclick=&quot;javascript:alert(&#39;Hello world!&#39;);&quot; onmouseover=&quot;javascript:window.status=&#39;Este link abre um javascript&#39;; return true&quot; onmouseout=&quot;javascript:window.status=&#39;&#39;; return true&quot;&gt;Clique aqui&amp;lt;/a&gt;
&lt;/pre&gt;

&lt;p&gt;&lt;em&gt;Pr&amp;oacute;s&lt;br /&gt;
&lt;/em&gt;- &amp;Eacute; uma solu&amp;ccedil;&amp;atilde;o que resolve o problema independente do n&amp;uacute;mero de links com &amp;quot;onclick&amp;quot; usados na mesma p&amp;aacute;gina. &lt;br /&gt;
- Parece ser a solu&amp;ccedil;&amp;atilde;o mais usada na web. &lt;/p&gt;
&lt;p&gt;&lt;em&gt;Contras&lt;/em&gt;&lt;br /&gt;
  - A mensagem de status do browser vai mostrar exatamente &amp;quot;javascript:underfined;&amp;quot; ao inv&amp;eacute;s de uma url usual. Para sites com p&amp;uacute;blico leigo, isso pode assustar potencialmente, levando a crer que existe &amp;quot;alguma coisa estranha ali naquele link&amp;quot; - isto &amp;eacute;, se &amp;eacute; que os usu&amp;aacute;rios v&amp;atilde;o se preocupar com a mensagem de status do browser.&lt;br /&gt;
- No exemplo temos inclusive uma tentativa de contornar o problema com mais um pouco de javascript, a quest&amp;atilde;o &amp;eacute; que a maioria dos browsers modernos vem configurado para n&amp;atilde;o considerar esse tipo de script de altera&amp;ccedil;&amp;atilde;o da mensagem de status, por &amp;oacute;bvias quest&amp;otilde;es de seguran&amp;ccedil;a. Portanto, n&amp;atilde;o parece haver solu&amp;ccedil;&amp;atilde;o para isso.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Solu&amp;ccedil;&amp;atilde;o 3: inserir o &amp;quot;onclick&amp;quot; com return false&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Com essa solu&amp;ccedil;&amp;atilde;o informamos ao browser para parar de rodar eventos do link no o &amp;quot;onclick&amp;quot;, evitando que o valor do &amp;quot;href&amp;quot; nos leve a qualquer lugar:&lt;/p&gt;

&lt;pre class=&quot;brush: csharp;&quot;&gt;
&amp;lt;a href=&quot;#&quot; onclick=&quot;javascript:alert(&#39;Hello world!&#39;); return false&quot;&gt;Clique aqui&amp;lt;/a&gt;
&lt;/pre&gt;

&lt;p&gt;&lt;em&gt;Pr&amp;oacute;s&lt;br /&gt;
&lt;/em&gt;- &amp;Eacute; uma solu&amp;ccedil;&amp;atilde;o que resolve o problema independente do n&amp;uacute;mero de links com &amp;quot;onclick&amp;quot; usados na mesma p&amp;aacute;gina.&lt;br /&gt;
- Na minha opni&amp;atilde;o &amp;eacute; a melhor solu&amp;ccedil;&amp;atilde;o. &lt;/p&gt;
&lt;p&gt;&lt;em&gt;Contras&lt;/em&gt;&lt;br /&gt;
  - Apesar de simples, não podemos esquecer de utilizar o return false.&lt;/p&gt;

&lt;br /&gt;
&lt;p class=&quot;btns png&quot;&gt;&lt;a href=&quot;http://www.raph.com.br/fonteblog/tutorials/jslinks/01.html&quot; target=&quot;_blank&quot;&gt;Ver exemplos&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;***&lt;/p&gt;
&lt;p&gt;&amp;Eacute; isso, espero que esse pequeno tutorial tenha lhes ajudado a resolver esse problema em espec&amp;iacute;fico; e tamb&amp;eacute;m a sempre considerar que &lt;em&gt;as solu&amp;ccedil;&amp;otilde;es usuais e mais usadas&lt;/em&gt; nem sempre s&amp;atilde;o as &lt;em&gt;melhores&lt;/em&gt; solu&amp;ccedil;&amp;otilde;es... &lt;/p&gt;</description><link>http://fontedecodigo.blogspot.com/2010/05/javascript-links-problema-do-onclick-e.html</link><author>noreply@blogger.com (raph)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5473585813342701908.post-1528880595314033435</guid><pubDate>Mon, 10 May 2010 21:32:00 +0000</pubDate><atom:updated>2011-07-12T20:19:29.075-03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">acessibilidade</category><category domain="http://www.blogger.com/atom/ns#">avançado</category><category domain="http://www.blogger.com/atom/ns#">botões</category><category domain="http://www.blogger.com/atom/ns#">chrome3</category><category domain="http://www.blogger.com/atom/ns#">css</category><category domain="http://www.blogger.com/atom/ns#">Dan Cederholm</category><category domain="http://www.blogger.com/atom/ns#">firefox3.5</category><category domain="http://www.blogger.com/atom/ns#">html</category><category domain="http://www.blogger.com/atom/ns#">tutoriais</category><category domain="http://www.blogger.com/atom/ns#">YouTube</category><title>Como fazer botões, passos 5 e 6</title><description>&lt;p&gt;&lt;a href=&quot;http://fontedecodigo.blogspot.com/2010/05/como-fazer-botoes-passos-3-e-4.html&quot;&gt;continuando do Passo 4&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Passo 5 &lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Mesmo indo al&amp;eacute;m do que o IE pode oferecer (ainda que se considerando o uso de JavaScript), ainda podemos incrementar o layout de nosso bot&amp;atilde;o para usu&amp;aacute;rios do Firefox e do Chrome. Esses browsers j&amp;aacute; conseguem ler o atributo de CSS3 box-shadow, ainda que utilizando tags-propriet&amp;aacute;rias (exatamente como com o border-radius). Utilizando esse atributo iremos agora aplicar um efeito de sombra ao evento de rollover de nosso bot&amp;atilde;o:&lt;/p&gt;

&lt;pre class=&quot;brush: css; highlight: [18, 19, 20];&quot;&gt;
div.btns a {
 font-size:12px;
 font-family:helvetica,arial,sans-serif;
 font-weight:bold;
 letter-spacing:1px;
 padding:5px 12px;
 color:#fff;
 background:#3792b3 url(img/bt_bg.png) repeat-x 0 50%;
 text-decoration:none;
 border:1px solid #3792b3;
 border-radius:8px;
 -moz-border-radius:8px;
 -webkit-border-radius:8px;
}
div.btns a:hover {
 background-color:#a14141;
 border-color:#a14141;
 box-shadow:2px 2px 4px #999;
 -moz-box-shadow:2px 2px 4px #999;
 -webkit-box-shadow:2px 2px 4px #999;
}
&lt;/pre&gt;

&lt;p&gt;Em nosso evento de rollover, estamos aplicando um efeito de sombreamento ao bot&amp;atilde;o na cor #999 (cinza claro). Este efeito se estende a 2px abaixo e 2px para direita do bot&amp;atilde;o (valores negativos tamb&amp;eacute;m poderiam ser usados aqui) e aplica um efeito de &amp;quot;blur&amp;quot; de 4px. Para quem costuma usar efeitos parecidos em programas como Photoshop ou Macromedia, esses par&amp;acirc;metros s&amp;atilde;o de simples entendimento.&lt;/p&gt;
&lt;p&gt;De fato, &amp;eacute; quase como se estiv&amp;eacute;ssemos editando o css com um programa de edi&amp;ccedil;&amp;atilde;o de imagens... Vejam como fica bem interessante este efeito nos browsers mais inteligentes (qualquer coisa al&amp;eacute;m do IE &amp;eacute; &amp;quot;mais inteligente&amp;quot;):&lt;/p&gt;

&lt;p&gt;&lt;a target=&quot;_blank&quot; onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhUTnuQLDEKGHifgNhL2zjTyXK9ULXIv72Z-QZ8dkDTO-NkmULkWynXMSYYCUkF0C9ewPNjdZgutYw7jwksyxmLzakq68jEWmUOxEXxxCY4uM-FlKDjW7tL1sHSI28gL9jVSQo6hZdOZjJt/s1600/comofazerbotoes_7.jpg&quot;&gt;&lt;img style=&quot;cursor:pointer; cursor:hand;width: 128px; height: 70px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhUTnuQLDEKGHifgNhL2zjTyXK9ULXIv72Z-QZ8dkDTO-NkmULkWynXMSYYCUkF0C9ewPNjdZgutYw7jwksyxmLzakq68jEWmUOxEXxxCY4uM-FlKDjW7tL1sHSI28gL9jVSQo6hZdOZjJt/s400/comofazerbotoes_7.jpg&quot; border=&quot;0&quot; alt=&quot;&quot;id=&quot;BLOGGER_PHOTO_ID_5469757894095916818&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Voc&amp;ecirc; n&amp;atilde;o deve se sentir desencorajado em usar a &amp;quot;degrada&amp;ccedil;&amp;atilde;o com beleza&amp;quot;. Se seu cliente perguntar porque voc&amp;ecirc; se atraveu a ignorar o IE e aplicar sombreamento de rollover &lt;em&gt;somente nesses browsers de geeks&lt;/em&gt;, informe-o que sites como &lt;a href=&quot;http://youtube.com/watch?v=NLlGopyXT_g&quot; target=&quot;_blank&quot;&gt;YouTube.com&lt;/a&gt; (repare no rollover dos bot&amp;otilde;es, como &amp;quot;Gostei&amp;quot;)  j&amp;aacute; fazem o mesmo. Deve ser o suficiente... &lt;/p&gt;
&lt;p&gt;Antes do  passo final, vamos chegar ao &amp;aacute;pice do perfeccionismo nerd e utilizar um atributo exclusivo do webkit (Chrome/Safari) e que n&amp;atilde;o consta sequer no CSS3, mas que &amp;eacute; absolutamente sensacional. O -webkit-transition faz um efeito de transi&amp;ccedil;&amp;atilde;o entre alguma cor ou cor de fundo, transformando gradualmente a cor padr&amp;atilde;o na cor da classe de rollover. &amp;Eacute; algo que na pr&amp;aacute;tica &amp;eacute; &lt;em&gt;muito parecido&lt;/em&gt; com efeitos em flash, a diferen&amp;ccedil;a &amp;eacute; que trata-se de puro CSS (embora, por enquanto, propriet&amp;aacute;rio do webkit):&lt;/p&gt;

&lt;pre class=&quot;brush: css; highlight: [14];&quot;&gt;
div.btns a {
 font-size:12px;
 font-family:helvetica,arial,sans-serif;
 font-weight:bold;
 letter-spacing:1px;
 padding:5px 12px;
 color:#fff;
 background:#3792b3 url(img/bt_bg.png) repeat-x 0 50%;
 text-decoration:none;
 border:1px solid #3792b3;
 border-radius:8px;
 -moz-border-radius:8px;
 -webkit-border-radius:8px;
 -webkit-transition:background-color .3s linear;
}
&lt;/pre&gt;
&lt;p&gt;Estamos informando ao Chrome que a transi&amp;ccedil;&amp;atilde;o da cor de fundo (background-color) deve ser linear e durar 3 d&amp;eacute;cimos de segundo (repare que aplicamos a tag-proprietária na classe &quot;a&quot;, e não em &quot;a:hover&quot; - é assim mesmo). N&amp;atilde;o vou criar um gif animado ou v&amp;iacute;deo apenas para te mostrar qu&amp;atilde;o interessante ficou nosso rollover de bot&amp;atilde;o, para ver basta abrir o link abaixo com o Chrome ou Safari: &lt;/p&gt;

&lt;p class=&quot;btns png&quot;&gt;&lt;a href=&quot;http://www.raph.com.br/fonteblog/tutorials/button/05.html&quot; target=&quot;_blank&quot;&gt;Ver Passo 5&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Embora apenas os felizardos que navegam com o Chrome possam ver esse efeito de rollover, &amp;eacute; algo que &lt;em&gt;n&amp;atilde;o custa quase nada&lt;/em&gt; adicionar, e que n&amp;atilde;o dever&amp;aacute; deixar nenhum cliente de cabelo em p&amp;eacute;... &lt;/p&gt;
&lt;p&gt;***&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Passo 6&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Chegamos ao passo final. Nesse passo n&amp;atilde;o quero adicionar mais nenhum layout ou efeito com css. Gostaria apenas de demonstrar o qu&amp;atilde;o simples &amp;eacute; editar um bot&amp;atilde;o constru&amp;iacute;do dessa forma. &lt;/p&gt;
&lt;p&gt;Vamos agora mudar nosso c&amp;oacute;digo html para inserir um texto bem mais extenso ao nosso bot&amp;atilde;o: &lt;/p&gt;

&lt;pre class=&quot;brush: csharp; highlight: [2];&quot;&gt;
&amp;lt;div class=&quot;btns png&quot;&gt;
    &amp;lt;a href=&quot;#&quot;&gt;Cadastrar-se na promoção e concorrer a muitos prêmios&amp;lt;/a&gt;
&amp;lt;/div&gt;
&lt;/pre&gt;

&lt;p&gt;Agora, em nosso css, vamos aumentar bastante o tamanho da fonte (lembre-se que isso tamb&amp;eacute;m &amp;eacute; um teste comum de acessibilidade) e mudar a cor de fundo do bot&amp;atilde;o para verde: &lt;/p&gt;

&lt;pre class=&quot;brush: css; highlight: [2, 8];&quot;&gt;
div.btns a {
 font-size:26px;
 font-family:helvetica,arial,sans-serif;
 font-weight:bold;
 letter-spacing:1px;
 padding:5px 12px;
 color:#fff;
 background:#6c9441 url(img/bt_bg.png) repeat-x 0 50%;
 text-decoration:none;
 border:1px solid #6c9441;
 border-radius:8px;
 -moz-border-radius:8px;
 -webkit-border-radius:8px;
 -webkit-transition:background-color .3s linear;
}
&lt;/pre&gt;

&lt;p&gt;Pronto, &lt;em&gt;em alguns segundos&lt;/em&gt;, temos um bot&amp;atilde;o comum de pesquisa transformado em um gigantesco bot&amp;atilde;o de cadastro para a &amp;uacute;ltima promo&amp;ccedil;&amp;atilde;o de noso site (certamente o pessoal de marketing pensaria num título melhor para esse botão):&lt;/p&gt;

&lt;p&gt;&lt;a target=&quot;_blank&quot; onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhN6bxSXlhzv9J-QGpalLtKDNJT7HUJu6CFZ0PbwsCxoR_3NDOynqXGm0I75-t6h0ZGXjFJfxPI-UrE00oSCR4p_YHyQasWUfOJnERtzKnoTvTWyjhL6DZQehCEy1utssHnsm_XRPF37msM/s1600/comofazerbotoes_8.jpg&quot;&gt;&lt;img style=&quot;cursor:pointer; cursor:hand;width: 400px; height: 36px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhN6bxSXlhzv9J-QGpalLtKDNJT7HUJu6CFZ0PbwsCxoR_3NDOynqXGm0I75-t6h0ZGXjFJfxPI-UrE00oSCR4p_YHyQasWUfOJnERtzKnoTvTWyjhL6DZQehCEy1utssHnsm_XRPF37msM/s400/comofazerbotoes_8.jpg&quot; border=&quot;0&quot; alt=&quot;&quot;id=&quot;BLOGGER_PHOTO_ID_5469758052197864562&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Acredito que para a imensa maioria dos portais de conte&amp;uacute;do, esse m&amp;eacute;todo se mostrar&amp;aacute; muito mais pr&amp;aacute;tico e elegante do que contratar um designer exclusivo para produzir milhares de bot&amp;otilde;es diferentes. Tudo bem que isso pode tirar o emprego do designer, mas acredito que se ele ler este tutorial, nem ir&amp;aacute; se importar :)&lt;/p&gt;
&lt;p class=&quot;btns png&quot;&gt;&lt;a href=&quot;http://www.raph.com.br/fonteblog/tutorials/button/06.html&quot; target=&quot;_blank&quot;&gt;Ver Passo 6&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;***&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Nota final:&lt;/strong&gt; parte desse tutorial foi diretamente inspirada no cap&amp;iacute;tulo 2 do excelente livro de Dan Cederholm: &amp;quot;&lt;a href=&quot;http://www.amazon.com/exec/obidos/ASIN/0321643380/tolken&quot;&gt;Hancrafted CSS&lt;/a&gt;&amp;quot;.&lt;/p&gt;
&lt;p&gt;***&lt;/p&gt;</description><link>http://fontedecodigo.blogspot.com/2010/05/como-fazer-botoes-passos-5-e-6.html</link><author>noreply@blogger.com (raph)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhUTnuQLDEKGHifgNhL2zjTyXK9ULXIv72Z-QZ8dkDTO-NkmULkWynXMSYYCUkF0C9ewPNjdZgutYw7jwksyxmLzakq68jEWmUOxEXxxCY4uM-FlKDjW7tL1sHSI28gL9jVSQo6hZdOZjJt/s72-c/comofazerbotoes_7.jpg" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5473585813342701908.post-717281565960483028</guid><pubDate>Mon, 10 May 2010 20:33:00 +0000</pubDate><atom:updated>2011-07-12T20:19:48.430-03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">botões</category><category domain="http://www.blogger.com/atom/ns#">chrome3</category><category domain="http://www.blogger.com/atom/ns#">css</category><category domain="http://www.blogger.com/atom/ns#">Drew Diller</category><category domain="http://www.blogger.com/atom/ns#">firefox3.5</category><category domain="http://www.blogger.com/atom/ns#">html</category><category domain="http://www.blogger.com/atom/ns#">ie6</category><category domain="http://www.blogger.com/atom/ns#">ie7</category><category domain="http://www.blogger.com/atom/ns#">ie8</category><category domain="http://www.blogger.com/atom/ns#">intermediário</category><category domain="http://www.blogger.com/atom/ns#">png</category><category domain="http://www.blogger.com/atom/ns#">tutoriais</category><title>Como fazer botões, passos 3 e 4</title><description>&lt;p&gt;&lt;a href=&quot;http://fontedecodigo.blogspot.com/2010/05/como-fazer-botoes-passos-1-e-2.html&quot;&gt;continuando do Passo 2&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Passo 3 &lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Temos in&amp;uacute;meros scripts na web para tratar de imagens PNG no IE6, para nosso exemplo entretando optei pela solu&amp;ccedil;&amp;atilde;o de &lt;a href=&quot;http://www.dillerdesign.com/&quot; target=&quot;_blank&quot;&gt;Drew Diller&lt;/a&gt;, chamada &amp;quot;DD_belatedPNG&amp;quot;. &lt;/p&gt;
&lt;p&gt;Inicialmente precisaremos adicionar uma classe (&quot;.png&quot;) em nosso html: &lt;/p&gt;

&lt;pre class=&quot;brush: csharp; highlight: [1];&quot;&gt;
&amp;lt;div class=&quot;btns png&quot;&gt;
    &amp;lt;a href=&quot;#&quot;&gt;Pesquisar&amp;lt;/a&gt;
&amp;lt;/div&gt;
&lt;/pre&gt;

&lt;p&gt;Com essa classe l&amp;aacute;, bastar&amp;aacute; chamarmos o arquivo .js de nosso amigo Drew Diller (&lt;a href=&quot;http://www.dillerdesign.com/experiment/DD_belatedPNG/&quot; target=&quot;_blank&quot;&gt;voc&amp;ecirc; pode baix&amp;aacute;-lo aqui&lt;/a&gt;) e declararmos que em tags com a classe .png, ou em links dentro dessas tags, o script dever&amp;aacute; rodar. Para termos certeza de que isso s&amp;oacute; ser&amp;aacute; chamado no IE6, envolveremos o c&amp;oacute;digo com o famoso teste &amp;quot;if IE&amp;quot; dentro de coment&amp;aacute;rios (porque ser&amp;aacute; que a Microsoft pensou nisso?): &lt;/p&gt;

&lt;pre class=&quot;brush: js;&quot;&gt;
&amp;lt;!--[if IE 6]&gt;
&amp;lt;script type=&quot;text/javascript&quot; src=&quot;../pngfix.ie6.min.js&quot;&gt;&amp;lt;/script&gt;
&amp;lt;script type=&quot;text/javascript&quot;&gt;DD_belatedPNG.fix(&#39;.png, .png a&#39;);&amp;lt;/script&gt;
&amp;lt;![endif]--&gt;
&lt;/pre&gt;
&lt;p&gt;Isso pode entrar em qualquer parte do c&amp;oacute;digo, mas &amp;eacute; melhor que entre junto com os outros scripts dentro da tag &amp;lt;head&amp;gt;.&lt;/p&gt;
&lt;p&gt;Bem, se tudo correu bem, bastar&amp;aacute; cruzar os dedos e abrir nosso bot&amp;atilde;o no IE6...&lt;/p&gt;
&lt;p&gt;Al&amp;eacute;m disso, vamos aproveitar e adicionar bordas arredondadas ao nosso bot&amp;atilde;o! Isso mesmo, hoje em dia isso pode ser feito somente por CSS, embora tenhamos de usar algumas tags-propriet&amp;aacute;rias de cada browser. Vamos ao CSS adicional: &lt;/p&gt;

&lt;pre class=&quot;brush: css; highlight: [10, 11, 12, 13, 17];&quot;&gt;
div.btns a {
 font-size:12px;
 font-family:helvetica,arial,sans-serif;
 font-weight:bold;
 letter-spacing:1px;
 padding:5px 12px;
 color:#fff;
 background:#3792b3 url(img/bt_bg.png) repeat-x 0 50%;
 text-decoration:none;
 border:1px solid #3792b3;
 border-radius:8px;
 -moz-border-radius:8px;
 -webkit-border-radius:8px;
}
div.btns a:hover {
 background-color:#a14141;
 border-color:#a14141;
}
&lt;/pre&gt;

&lt;p&gt;Reparem que aplicamos uma borda ao bot&amp;atilde;o, borda esta que muda de cor no rollover; Al&amp;eacute;m disso, aplicamos 8px de borda arredondada ao bot&amp;atilde;o com 3 declara&amp;ccedil;&amp;otilde;es diferentes: border-radius &amp;eacute; o padr&amp;atilde;o do CSS3, mas este ainda n&amp;atilde;o foi implementado por quase nenhum browser... &lt;/p&gt;
&lt;p&gt;Felizmente, por&amp;eacute;m, tanto o Firefox quanto o Chrome (e o Safari, no qual &amp;eacute; baseado) tem tags-propriet&amp;aacute;rias que realizam o mesmo efeito: -moz-border-radius (Firefox) e -webkit-border-radius (Chrome/Safari). Tenha em mente que usando essas tags propriet&amp;aacute;rias intencionalmente, seu css n&amp;atilde;o passar&amp;aacute; por validadores sem erros, mas acredito que esse seja um pequen&amp;iacute;ssimo pre&amp;ccedil;o a pagar.&lt;/p&gt;
&lt;p&gt;Agora teremos um bot&amp;atilde;o bem mais interessante:&lt;/p&gt;

&lt;p&gt;&lt;a target=&quot;_blank&quot; onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjkr4ltlDMFg2Z6-n4sqnpdAYWC_ryQDNCtf3k34_3ozpAOuAgo-hjlJAscaO1fkqT5gLzZPxdI-4m8op7UGS-vJZY3RW16RNgAhqBTUZ4-gCQbxLa8K0qAJ8Cpy6wl21l0hjNiwc2vv7Up/s1600/comofazerbotoes_6.jpg&quot;&gt;&lt;img style=&quot;cursor:pointer; cursor:hand;width: 142px; height: 72px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjkr4ltlDMFg2Z6-n4sqnpdAYWC_ryQDNCtf3k34_3ozpAOuAgo-hjlJAscaO1fkqT5gLzZPxdI-4m8op7UGS-vJZY3RW16RNgAhqBTUZ4-gCQbxLa8K0qAJ8Cpy6wl21l0hjNiwc2vv7Up/s400/comofazerbotoes_6.jpg&quot; border=&quot;0&quot; alt=&quot;&quot;id=&quot;BLOGGER_PHOTO_ID_5469742615915302418&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p class=&quot;btns png&quot;&gt;&lt;a href=&quot;http://www.raph.com.br/fonteblog/tutorials/button/03.html&quot; target=&quot;_blank&quot;&gt;Ver Passo 3&lt;/a&gt;&lt;/p&gt;
&lt;p class=&quot;btns png&quot;&gt;Isto &amp;eacute;, exceto no IE (&amp;eacute; claro)... O que nos leva a uma outra solu&amp;ccedil;&amp;atilde;o com JavaScript no Passo 4... &lt;/p&gt;
&lt;p&gt;***&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Passo 4&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Voc&amp;ecirc; devia estar achando que esse tutorial estava interessante, mas que como v&amp;aacute;rios outros tutoriais interessantes de css, esbarraria no famigerado IE, e portanto n&amp;atilde;o poderia ainda ser utiliado em seus projetos web. Afinal, como vimos, mesmo o Twitter deixa seu visual &amp;quot;quadrado&amp;quot; para os usu&amp;aacute;rios de IE.&lt;/p&gt;
&lt;p&gt;Isso &amp;eacute; chamado de &amp;quot;&lt;a href=&quot;http://en.wikipedia.org/wiki/Fault-tolerant_system&quot; target=&quot;_blank&quot;&gt;degrada&amp;ccedil;&amp;atilde;o com beleza&lt;/a&gt;&amp;quot;, uma forma esfor&amp;ccedil;ada de tentar definir o conceito corrente de que, se um design n&amp;atilde;o pode parecer igual em todos os browsers, que ao menos fa&amp;ccedil;amos com que nos browsers com menor capacidade (leia-se: IE) ele ainda fique o mais interessante poss&amp;iacute;vel.&lt;/p&gt;
&lt;p&gt;Tudo isso &amp;eacute; muito bonito e revigorante, mas n&amp;atilde;o servir&amp;aacute; de nada   se o seu cliente &lt;em&gt;simplesmente exigir&lt;/em&gt; que o IE mostre os malditos bot&amp;otilde;es com bordas arredondadas! &lt;/p&gt;
&lt;p&gt;Bem, felizmente nosso querido amigo Drew Diller tamb&amp;eacute;m solucionou esse problema com m&amp;iacute;seros 9kb de JavaScript. Sua solu&amp;ccedil;&amp;atilde;o foi entitulada &amp;quot;DD_roundies&amp;quot; (os programadores geralmente s&amp;atilde;o bem melhores com programa&amp;ccedil;&amp;atilde;o, se comparado a criatividade para nomes e t&amp;iacute;tulos). &lt;/p&gt;
&lt;p&gt;Para fazer as bordas funcionarem no IE bastar&amp;aacute; chamar o arquivo .js de Drew Diller em nosso c&amp;oacute;digo (&lt;a href=&quot;http://www.dillerdesign.com/experiment/DD_roundies/&quot; target=&quot;_blank&quot;&gt;voc&amp;ecirc; pode baix&amp;aacute;-lo aqui&lt;/a&gt;): &lt;/p&gt;

&lt;pre class=&quot;brush: js;&quot;&gt;
&amp;lt;!-- faz border-radius funcionar no IE, depois ajusta CSS no IE8 --&gt;
&amp;lt;script type=&quot;text/javascript&quot; src=&quot;js/ie.border.radius.min.js&quot;&gt;&amp;lt;/script&gt;
&amp;lt;script type=&quot;text/javascript&quot;&gt;
    //uso: DD_roundies.addRule(&#39;.sua-classe&#39;, #); onde # = border-radius
 DD_roundies.addRule(&#39;div.btns a&#39;, 8);
&amp;lt;/script&gt;
&amp;lt;!--[if IE 8]&gt;
&amp;lt;style type=&quot;text/css&quot; media=&quot;screen&quot;&gt;
div.btns a {border:0;background-image:url(img/bt_bg.png) !important;padding-bottom:7px;}
&amp;lt;/style&gt;
&amp;lt;![endif]--&gt;
&lt;/pre&gt;
&lt;p&gt;Conforme consta nos coment&amp;aacute;rios (&amp;eacute; sempre bom comentar quando usamos c&amp;oacute;digo &amp;quot;fora do escopo tradicional&amp;quot;), estamos aplicando 8px de border-radius nos links (tags &amp;lt;a&amp;gt;) dentro de um &amp;lt;div class=&amp;quot;btns&amp;quot;&amp;gt;.&lt;/p&gt;
&lt;p&gt;Como a Microsoft &lt;em&gt;se esfor&amp;ccedil;a &lt;/em&gt;para infernizar nossa vida, devo adiantar que apenas no IE8 econtraremos um problema caso utilizemos bordas em nosso bot&amp;atilde;o. Por isso utilizamos um teste condicional dentro de coment&amp;aacute;rios para corrigir o problema &lt;em&gt;apenas&lt;/em&gt; no IE8... N&amp;atilde;o me pergunte porque, mas mesmo com border:0; o bot&amp;atilde;o continua tendo bordas. Bem, talvez o script de nosso amigo Drew Diller n&amp;atilde;o seja &lt;em&gt;infal&amp;iacute;vel&lt;/em&gt;, mas j&amp;aacute; foi de grande ajuda at&amp;eacute; aqui!&lt;/p&gt;
&lt;p&gt;O layout de nosso bot&amp;atilde;o n&amp;atilde;o mudou em nada, mas agora ele aparecer&amp;aacute; com bordas arredondadas &lt;em&gt;mesmo no IE&lt;/em&gt;. Pronto, pense nas possibilidades!&lt;/p&gt;
&lt;p class=&quot;btns png&quot;&gt;&lt;a href=&quot;http://www.raph.com.br/fonteblog/tutorials/button/04.html&quot; target=&quot;_blank&quot;&gt;Ver Passo 4&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;***&lt;/p&gt;
&lt;p&gt;A seguir, no Passo 5, &lt;a href=&quot;http://fontedecodigo.blogspot.com/2010/05/como-fazer-botoes-passos-5-e-6.html&quot;&gt;aplicaremos mais alguns efeitos decorativos&lt;/a&gt;. Infelizmente desta vez n&amp;atilde;o h&amp;aacute; nada que poderemos fazer quanto ao IE... &lt;/p&gt;
&lt;p&gt;***&lt;/p&gt;</description><link>http://fontedecodigo.blogspot.com/2010/05/como-fazer-botoes-passos-3-e-4.html</link><author>noreply@blogger.com (raph)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjkr4ltlDMFg2Z6-n4sqnpdAYWC_ryQDNCtf3k34_3ozpAOuAgo-hjlJAscaO1fkqT5gLzZPxdI-4m8op7UGS-vJZY3RW16RNgAhqBTUZ4-gCQbxLa8K0qAJ8Cpy6wl21l0hjNiwc2vv7Up/s72-c/comofazerbotoes_6.jpg" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5473585813342701908.post-9086486479688117691</guid><pubDate>Mon, 10 May 2010 19:35:00 +0000</pubDate><atom:updated>2011-07-12T20:20:06.450-03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">acessibilidade</category><category domain="http://www.blogger.com/atom/ns#">botões</category><category domain="http://www.blogger.com/atom/ns#">chrome3</category><category domain="http://www.blogger.com/atom/ns#">css</category><category domain="http://www.blogger.com/atom/ns#">firefox3.5</category><category domain="http://www.blogger.com/atom/ns#">html</category><category domain="http://www.blogger.com/atom/ns#">ie6</category><category domain="http://www.blogger.com/atom/ns#">ie7</category><category domain="http://www.blogger.com/atom/ns#">ie8</category><category domain="http://www.blogger.com/atom/ns#">iniciante</category><category domain="http://www.blogger.com/atom/ns#">tutoriais</category><category domain="http://www.blogger.com/atom/ns#">twitter</category><title>Como fazer botões, passos 1 e 2</title><description>&lt;p&gt;Um dos elementos mais usados no design para web s&amp;atilde;o os bot&amp;otilde;es. At&amp;eacute; pouco tempo atr&amp;aacute;s bot&amp;otilde;es mais elaborados eram criados diretamente pelo designer no photoshop ou programa similar, e j&amp;aacute; trazia o texto &amp;quot;embutido&amp;quot; na imagem. Algo como:&lt;/p&gt;

&lt;p&gt;&lt;a target=&quot;_blank&quot; onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjyb_Zix1LAfnyJfguS9DTO-vKxqUJov29qnKa60G-nX3QW59JRL4xJW9iClXnVgXXMZ_7-MbQavGOuYcdzBvQkVDHn4vzLTzKop1T_mSBYEVMNaYn5h40GMDjrA1l4v0XbBBtFgvqEek2M/s1600/comofazerbotoes_1.jpg&quot;&gt;&lt;img style=&quot;cursor:pointer; cursor:hand;width: 310px; height: 120px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjyb_Zix1LAfnyJfguS9DTO-vKxqUJov29qnKa60G-nX3QW59JRL4xJW9iClXnVgXXMZ_7-MbQavGOuYcdzBvQkVDHn4vzLTzKop1T_mSBYEVMNaYn5h40GMDjrA1l4v0XbBBtFgvqEek2M/s400/comofazerbotoes_1.jpg&quot; border=&quot;0&quot; alt=&quot;&quot;id=&quot;BLOGGER_PHOTO_ID_5469727935033141026&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;No entanto, hoje em dia j&amp;aacute; &amp;eacute; poss&amp;iacute;vel criar bot&amp;otilde;es com design elaborado, efeitos de rollover e bordas arredondadas apenas com CSS (e algum script para o IE, mas veremos isso em breve). Voc&amp;ecirc; pode achar que o bot&amp;atilde;o &amp;quot;Join Today&amp;quot; (junte-se hoje)  da home do &lt;a href=&quot;https://twitter.com/&quot; target=&quot;_blank&quot;&gt;Twitter.com&lt;/a&gt; &amp;eacute; uma imagem - sen&amp;atilde;o com texto &amp;quot;embutido&amp;quot;, no m&amp;iacute;nimo com imagens de fundo com bordas arredondadas:&lt;/p&gt;

&lt;p&gt;&lt;a target=&quot;_blank&quot; onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg7Zu8TwL3-DnETQ1ktJ1mhGFwTJusE7LIvNNf4BuyFj6pUgi5Q6J5mUcLI1-bKsWoATo-8krLl82VPzHwFw3UyDcjPRnPlg8e7p3ygXVGPW7-lv3sPBIZZnrBDgnCZ0rll5OdWFgc7aRRY/s1600/comofazerbotoes_2.jpg&quot;&gt;&lt;img style=&quot;cursor:pointer; cursor:hand;width: 227px; height: 275px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg7Zu8TwL3-DnETQ1ktJ1mhGFwTJusE7LIvNNf4BuyFj6pUgi5Q6J5mUcLI1-bKsWoATo-8krLl82VPzHwFw3UyDcjPRnPlg8e7p3ygXVGPW7-lv3sPBIZZnrBDgnCZ0rll5OdWFgc7aRRY/s400/comofazerbotoes_2.jpg&quot; border=&quot;0&quot; alt=&quot;&quot;id=&quot;BLOGGER_PHOTO_ID_5469728045427103810&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Mas n&amp;atilde;o! Trata-se de um bot&amp;atilde;o criado apenas com CSS, a &amp;uacute;nica imagem existente &amp;eacute; um PNG com alguma transpar&amp;ecirc;ncia que d&amp;aacute; o efeito de degrad&amp;ecirc; no fundo. Por&amp;eacute;m, esse tipo de formato de constru&amp;ccedil;&amp;atilde;o de bot&amp;otilde;es permite que editemos o texto, as cores de fundo e at&amp;eacute; mesmo a curvatura das bordas facilmente - apenas editando CSS. Al&amp;eacute;m disso, acaso o usu&amp;aacute;rio aumente a fonte, o bot&amp;atilde;o ir&amp;aacute; se ajustar automaticamente (ponto para acessibilidade).&lt;/p&gt;
&lt;p&gt;Caso voc&amp;ecirc; j&amp;aacute; tenha testado a home do Twitter em v&amp;aacute;rios browsers, deve ter percebido que no IE n&amp;atilde;o temos bordas arredondadas pela p&amp;aacute;gina - incluindo o bort&amp;atilde;o de que falei... No entanto, com um pouco de JavaScript &amp;eacute; poss&amp;iacute;vel deixar tudo arredendado &lt;em&gt;mesmo no IE&lt;/em&gt;... Vamos ver como se faz.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Passo 1&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Primeiro vamos definir o html de nosso bot&amp;atilde;o (no caso, um exemplo comum, o bot&amp;atilde;o de &amp;quot;Pesquisar&amp;quot;):&lt;/p&gt;

&lt;pre class=&quot;brush: csharp;&quot;&gt;
&amp;lt;div class=&quot;btns&quot;&gt;
    &amp;lt;a href=&quot;#&quot;&gt;Pesquisar&amp;lt;/a&gt;
&amp;lt;/div&gt;
&lt;/pre&gt;

&lt;p&gt;Agora vamos definir o estilo b&amp;aacute;sico inicial usando um pouco de css:&lt;/p&gt;

&lt;pre class=&quot;brush: css;&quot;&gt;
div.btns a {
 font-size:12px;
 font-family:helvetica,arial,sans-serif;
 font-weight:bold;
 letter-spacing:1px;
 padding:5px 12px;
 color:#fff;
 background:#3792b3;
 text-decoration:none;
}
div.btns a:hover {
 background-color:#a14141;
}
&lt;/pre&gt;

&lt;p&gt;Definimos a fonte e o espa&amp;ccedil;amento, assim como a cor de fundo (azul) e o efeito de rollover, que muda a cor de fundo para vermelho. Nosso bot&amp;atilde;o dever&amp;aacute; ser algo simples por agora:&lt;/p&gt;

&lt;p&gt;&lt;a target=&quot;_blank&quot; onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgz_fLp9pHo_KCu0dku_IuyHcdGirc5XcAKP5LxZR5aVuDNnLNNJdU8PAVQvKYPNFFOhrF1vzK3K7x5iCanfPwr612fieb0GGzytIZ5CKvV4wacawB90nQA-_yvAz1TFgKu_HI426jxXGY9/s1600/comofazerbotoes_3.jpg&quot;&gt;&lt;img style=&quot;cursor:pointer; cursor:hand;width: 123px; height: 82px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgz_fLp9pHo_KCu0dku_IuyHcdGirc5XcAKP5LxZR5aVuDNnLNNJdU8PAVQvKYPNFFOhrF1vzK3K7x5iCanfPwr612fieb0GGzytIZ5CKvV4wacawB90nQA-_yvAz1TFgKu_HI426jxXGY9/s400/comofazerbotoes_3.jpg&quot; border=&quot;0&quot; alt=&quot;&quot;id=&quot;BLOGGER_PHOTO_ID_5469728153744437202&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p class=&quot;btns png&quot;&gt;&lt;a href=&quot;http://www.raph.com.br/fonteblog/tutorials/button/01.html&quot; target=&quot;_blank&quot;&gt;Ver Passo 1&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;***&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Passo 2&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Agora vamos adicionar uma imagem de fundo ao bot&amp;atilde;o, para dar um efeito interessante ao fundo. Essa imagem &amp;eacute; um PNG simples com 50x200 pixels, onde na metade superior temos um box com fundo branco e transpar&amp;ecirc;ncia em 15%. Isso permite que o efeito seja aplicado sobre a cor de fundo j&amp;aacute; defunida no CSS - e dessa forma acaso mudemos a cor de fundo (como no rollover) o efeito ir&amp;aacute; permanecer, sem que tenhamos de criar m&amp;uacute;ltiplas imagens para o mesmo bot&amp;atilde;o. Veja abaixo uma imagem dessa imagem PNG sendo criada no Fireworks:&lt;/p&gt;

&lt;p&gt;&lt;a target=&quot;_blank&quot; onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiD1c8FMFISRlwvh6UsWLW9QRxrqz8YVOUNRIwdMxR9hmDSXKMZ90el-72qHk_oV5Jan495l50Dv5es07-XEOw6toCQNBkc05Y-WuAA5xxDV03U3TGpTHvlSvkhwMoJySwXCZ9G_vMpr_Y7/s1600/comofazerbotoes_4.jpg&quot;&gt;&lt;img style=&quot;cursor:pointer; cursor:hand;width: 305px; height: 400px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiD1c8FMFISRlwvh6UsWLW9QRxrqz8YVOUNRIwdMxR9hmDSXKMZ90el-72qHk_oV5Jan495l50Dv5es07-XEOw6toCQNBkc05Y-WuAA5xxDV03U3TGpTHvlSvkhwMoJySwXCZ9G_vMpr_Y7/s400/comofazerbotoes_4.jpg&quot; border=&quot;0&quot; alt=&quot;&quot;id=&quot;BLOGGER_PHOTO_ID_5469728282082390594&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Com a imagem criada, devemos atualizar nosso CSS (repare que alinhamos ela a esquerda e ao centro vertical [0 50%], e a fizemos se repetir indefinidamente no eixo horizontal [repeat-x]):   &lt;/p&gt;

&lt;pre class=&quot;brush: css; highlight: [8];&quot;&gt;
div.btns a {
 font-size:12px;
 font-family:helvetica,arial,sans-serif;
 font-weight:bold;
 letter-spacing:1px;
 padding:5px 12px;
 color:#fff;
 background:#3792b3 url(img/bt_bg.png) repeat-x 0 50%;
 text-decoration:none;
}
&lt;/pre&gt;

&lt;p&gt;Isso nos trar&amp;aacute; um bot&amp;atilde;o mais interessante:&lt;/p&gt;

&lt;p&gt;&lt;a target=&quot;_blank&quot; onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhrxp6fONSLRVpWiQ54vHsWCuXm9KGDdEjf0er84m41DmjajfhJYVX9HnAMjtWE78dSYF6xs7ee26Afkk8pFy-49vn9rUFjh2NEBo65ylbywd3rZy61bDo4ANs5XsddnDwWLxSCLZCW7hJ7/s1600/comofazerbotoes_5.jpg&quot;&gt;&lt;img style=&quot;cursor:pointer; cursor:hand;width: 129px; height: 62px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhrxp6fONSLRVpWiQ54vHsWCuXm9KGDdEjf0er84m41DmjajfhJYVX9HnAMjtWE78dSYF6xs7ee26Afkk8pFy-49vn9rUFjh2NEBo65ylbywd3rZy61bDo4ANs5XsddnDwWLxSCLZCW7hJ7/s400/comofazerbotoes_5.jpg&quot; border=&quot;0&quot; alt=&quot;&quot;id=&quot;BLOGGER_PHOTO_ID_5469728405269879298&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p class=&quot;btns png&quot;&gt;&lt;a href=&quot;http://www.raph.com.br/fonteblog/tutorials/button/02.html&quot; target=&quot;_blank&quot;&gt;Ver Passo 2&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;***&lt;/p&gt;

&lt;p&gt;Por&amp;eacute;m, como muitos devem saber, imagens PNG com transpar&amp;ecirc;ncia n&amp;atilde;o &amp;quot;se comportam muito bem&amp;quot; no IE6 e inferiores...&lt;/p&gt;
&lt;p&gt;A seguir, &lt;a href=&quot;http://fontedecodigo.blogspot.com/2010/05/como-fazer-botoes-passos-3-e-4.html&quot;&gt;no Passo 3, usaremos um pouco de JavaScript para corrigir a rebeldia de nosso querido IE6...&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;***&lt;/p&gt;</description><link>http://fontedecodigo.blogspot.com/2010/05/como-fazer-botoes-passos-1-e-2.html</link><author>noreply@blogger.com (raph)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjyb_Zix1LAfnyJfguS9DTO-vKxqUJov29qnKa60G-nX3QW59JRL4xJW9iClXnVgXXMZ_7-MbQavGOuYcdzBvQkVDHn4vzLTzKop1T_mSBYEVMNaYn5h40GMDjrA1l4v0XbBBtFgvqEek2M/s72-c/comofazerbotoes_1.jpg" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5473585813342701908.post-138175037584283650</guid><pubDate>Mon, 10 May 2010 13:25:00 +0000</pubDate><atom:updated>2010-05-10T10:38:58.449-03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">antropologia</category><category domain="http://www.blogger.com/atom/ns#">evolução</category><category domain="http://www.blogger.com/atom/ns#">html</category><category domain="http://www.blogger.com/atom/ns#">informação</category><category domain="http://www.blogger.com/atom/ns#">Michael Wesch</category><category domain="http://www.blogger.com/atom/ns#">vídeos</category><category domain="http://www.blogger.com/atom/ns#">web 2.0</category><category domain="http://www.blogger.com/atom/ns#">xml</category><title>A máquina somos nós</title><description>&lt;p&gt;Muitos radicais condenam a globalização, mas fato é que hoje em dia não temos mais como voltar atrás. A evolução anda somente em uma direção... Sempre a frente:&lt;/p&gt;
&lt;p&gt;&lt;object width=&quot;480&quot; height=&quot;385&quot;&gt;&lt;param name=&quot;movie&quot; value=&quot;http://www.youtube.com/v/NJsacDCsiPg&amp;hl=pt-br&amp;fs=1&amp;color1=0x2b405b&amp;color2=0x6b8ab6&quot;&gt;&lt;/param&gt;&lt;param name=&quot;allowFullScreen&quot; value=&quot;true&quot;&gt;&lt;/param&gt;&lt;param name=&quot;allowscriptaccess&quot; value=&quot;always&quot;&gt;&lt;/param&gt;&lt;embed src=&quot;http://www.youtube.com/v/NJsacDCsiPg&amp;hl=pt-br&amp;fs=1&amp;color1=0x2b405b&amp;color2=0x6b8ab6&quot; type=&quot;application/x-shockwave-flash&quot; allowscriptaccess=&quot;always&quot; allowfullscreen=&quot;true&quot; width=&quot;480&quot; height=&quot;385&quot;&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Tradução e adaptação do vídeo &quot;The Machine is Us/ing Us&quot;, de Michael Wesch, Antropólogo americano.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&amp;#187; &lt;a href=&quot;http://youtube.com/watch?v=NLlGopyXT_g&quot; target=&quot;_blank&quot;&gt;Veja o vídeo original&lt;/a&gt; (em inglês)&lt;/p&gt;</description><link>http://fontedecodigo.blogspot.com/2010/05/maquina-somos-nos.html</link><author>noreply@blogger.com (raph)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5473585813342701908.post-2656225317461374320</guid><pubDate>Sat, 08 May 2010 04:11:00 +0000</pubDate><atom:updated>2010-05-08T01:11:19.451-03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">CMS</category><category domain="http://www.blogger.com/atom/ns#">intermediário</category><category domain="http://www.blogger.com/atom/ns#">Lumis</category><category domain="http://www.blogger.com/atom/ns#">protótipos</category><title>Protótipos de projetos com Lumis</title><description>&lt;p&gt;Este documento visa expor uma metodologia específica para a criação de protótipos 
de projetos para o Lumis Portal Suite (LPS, usado em servidores Microsoft) e para o 
Lumis Portal Java (LPJ, usado em servidores Java), focando no desenvolvimento de 
protótipos HTML prontos para serem usados no Lumis, com o mínimo ajuste de código 
possível.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Continue a leitura do documento abaixo, no Scribd:&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;
 &lt;object id=&quot;doc_432326767567350&quot; name=&quot;doc_432326767567350&quot; height=&quot;600&quot; width=&quot;100%&quot; type=&quot;application/x-shockwave-flash&quot; data=&quot;http://d1.scribdassets.com/ScribdViewer.swf&quot; style=&quot;outline:none;&quot; &gt;  
  &lt;param name=&quot;movie&quot; value=&quot;http://d1.scribdassets.com/ScribdViewer.swf&quot;/&gt;  
  &lt;param name=&quot;wmode&quot; value=&quot;opaque&quot;/&gt;   
  &lt;param name=&quot;bgcolor&quot; value=&quot;#ffffff&quot;/&gt;   
  &lt;param name=&quot;allowFullScreen&quot; value=&quot;true&quot;/&gt;   
  &lt;param name=&quot;allowScriptAccess&quot; value=&quot;always&quot;/&gt;   
  &lt;param name=&quot;FlashVars&quot; value=&quot;document_id=14600149&amp;access_key=key-2m4pjpyf9m0h5rduy191&amp;page=1&amp;viewMode=list&quot;/&gt;   
  &lt;embed id=&quot;doc_432326767567350&quot; name=&quot;doc_432326767567350&quot; src=&quot;http://d1.scribdassets.com/ScribdViewer.swf?document_id=14600149&amp;access_key=key-2m4pjpyf9m0h5rduy191&amp;page=1&amp;viewMode=list&quot; type=&quot;application/x-shockwave-flash&quot; allowscriptaccess=&quot;always&quot; allowfullscreen=&quot;true&quot; height=&quot;600&quot; width=&quot;100%&quot; wmode=&quot;opaque&quot; bgcolor=&quot;#ffffff&quot;&gt;&lt;/embed&gt;  
 &lt;/object&gt;
&lt;/p&gt;</description><link>http://fontedecodigo.blogspot.com/2010/05/prototipos-de-projetos-com-lumis.html</link><author>noreply@blogger.com (raph)</author><thr:total>0</thr:total></item></channel></rss>