<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Gonow Tecnologia</title>
	
	<link>http://www.gonow.com.br</link>
	<description>Gonow</description>
	<lastBuildDate>Tue, 07 Feb 2012 14:47:14 +0000</lastBuildDate>
	<language>pt</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/gonow" /><feedburner:info uri="gonow" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><feedburner:browserFriendly></feedburner:browserFriendly><item>
		<title>Como melhorar a performance de JQuery apps</title>
		<link>http://www.gonow.com.br/blog/2012/02/07/como-melhorar-a-performance-de-jquery-apps/</link>
		<comments>http://www.gonow.com.br/blog/2012/02/07/como-melhorar-a-performance-de-jquery-apps/#comments</comments>
		<pubDate>Tue, 07 Feb 2012 14:36:57 +0000</pubDate>
		<dc:creator>Gonow</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[JQuery]]></category>
		<category><![CDATA[BeagaJS]]></category>
		<category><![CDATA[BHJS]]></category>
		<category><![CDATA[biblioteca JavaScript]]></category>
		<category><![CDATA[Davidson Fellipe]]></category>
		<category><![CDATA[gonow tecnologia]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[JQuery Apps]]></category>
		<category><![CDATA[performance de código]]></category>
		<category><![CDATA[YUI]]></category>
		<category><![CDATA[YUI compressor]]></category>

		<guid isPermaLink="false">http://www.gonow.com.br/?p=3406</guid>
		<description><![CDATA[Se você se interessou pelo título deste post, primeiro reflita se precisa realmente do JQuery para melhorar o desempenho das suas aplicações. Isso pode parecer óbvio, mas a verdade é [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.flickr.com/photos/gonowtecnologia/6749094349/" title="Davidson Fellipe by gonowtecnologia, on Flickr"><img src="http://farm8.staticflickr.com/7022/6749094349_3d2ced9e71_z.jpg" width="640" height="480" alt="Davidson Fellipe"></a><br />
Se você se interessou pelo título deste post, primeiro reflita se precisa realmente do JQuery para melhorar o desempenho das suas aplicações. Isso pode parecer óbvio, mas a verdade é que alguns métodos podem ser mais fáceis e simples de se fazer SEM o uso do JQuery. Outro ponto importante é a performance x legibilidade. <em>&#8220;Nem sempre procure fazer um código muito &#8216;performático&#8217; que possa prejudicar sua legibilidade posteriormente: você está fazendo aquele código num determinado momento, mas daqui há 6 meses pode não estar mais naquele projeto, então procure pensar em quem irá mexer nele posteriormente&#8221;</em>, explica Davidson Fellipe, desenvolvedor JavaScript e HTML/CSS na Globo.com.</p>
<p>Para ele, é sempre melhor trabalhar com a versão mais recente do JQuery, mas com o devido cuidado ao linkar para a última versão, sob o risco da sua aplicação quebrar quando a biblioteca for atualizada. <em>&#8220;É melhor baixar a versão específica com a qual estiver trabalhando, a versão na qual foi desenvolvida a aplicação&#8221;</em>, resume. Davidson apresentou no <a href="http://www.bhjs.com.br/" target="_blank">BeagaJS</a> as &#8220;boas práticas&#8221; para melhorar o desempenho de apps que usam JQuery, com dicas, demos e sugestões de ferramentas que possibilitam ganhos significativos no tempo de execução de aplicações:</p>
<p>- Automatize o processo: combine, minifique e <a href="http://pt.wikipedia.org/wiki/Gzip" target="_blank">gzipping</a> seus scripts.<br />
- Compacte todos os scripts em apenas 1 arquivo<br />
- Use o <a href="http://developer.yahoo.com/yui/" target="_blank">YUI compressor</a> para minificar o arquivo<br />
- Muitos browsers não estão aptos a processar mais que um script paralelamente<br />
- Evite uso do seletor universal implícito<br />
- Evite manipulações desnecessárias de DOM (demo)<br />
- Use encadeamento (<a href="http://en.wikipedia.org/wiki/Method_chaining" target="_blank">chaining</a>)<br />
- Use contexto em seus seletores<br />
- Use <strong><em>&#8220;For&#8221;</em></strong> em vez de <strong><em>&#8220;Each&#8221;</em></strong><br />
- Use <em><strong>&#8220;id&#8221;</strong></em> ao em vez de classes<br />
- Entenda o <a href="http://code.google.com/apis/libraries/" target="_blank">código-fonte do jQuery</a></p>
<p>Assista ao vídeo com a íntegra da palestra de Davidson Fellipe no BeagaJS:</p>
<p><iframe width="640" height="360" src="http://www.youtube.com/embed/miEidJetMrM" frameborder="0" allowfullscreen></iframe></p>
<p>Veja também os slides da apresentação:</p>
<div style="width:425px" id="__ss_11193987"> <strong style="display:block;margin:12px 0 4px"><a href="http://www.slideshare.net/davidsonfellipe/jqueryperf" title="performance em jQuery apps" target="_blank">performance em jQuery apps</a></strong> <iframe src="http://www.slideshare.net/slideshow/embed_code/11193987" width="640" height="360" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"></iframe>
<div style="padding:5px 0 12px"> View more <a href="http://www.slideshare.net/" target="_blank">presentations</a> from <a href="http://www.slideshare.net/davidsonfellipe" target="_blank">Davidson Fellipe</a> </div>
</p></div>
<p>Se você tem interesse em saber mais sobre JQuery e aprender a criar plugins e widgets, assista também ao vídeo da palestra de Marcos Sousa no BeagaJS:<br />
<a href="http://www.gonow.com.br/blog/2012/02/01/dicas-para-criar-plugins-e-widgets-com-jquery/" target="_blank">http://www.gonow.com.br/blog/2012/02/01/dicas-para-criar-plugins-e-widgets-com-jquery/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.gonow.com.br/blog/2012/02/07/como-melhorar-a-performance-de-jquery-apps/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>RHoK 2012 será nos dias 2 e 3 de Junho e 1° de Dezembro</title>
		<link>http://www.gonow.com.br/blog/2012/02/06/rhok-2012-sera-nos-dias-2-e-3-de-junho-e-1%c2%b0-de-dezembro/</link>
		<comments>http://www.gonow.com.br/blog/2012/02/06/rhok-2012-sera-nos-dias-2-e-3-de-junho-e-1%c2%b0-de-dezembro/#comments</comments>
		<pubDate>Mon, 06 Feb 2012 19:04:04 +0000</pubDate>
		<dc:creator>Gonow</dc:creator>
				<category><![CDATA[Tecnologia]]></category>
		<category><![CDATA[aplicativos sustentáveis]]></category>
		<category><![CDATA[apps sustentáveis]]></category>
		<category><![CDATA[Random Hacks of Kindness]]></category>
		<category><![CDATA[RHoK]]></category>
		<category><![CDATA[RHoK 2012]]></category>

		<guid isPermaLink="false">http://www.gonow.com.br/?p=3394</guid>
		<description><![CDATA[Interessado em criar soluções para um mundo melhor e mais sustentável mas não sabe como? Então junte-se aos &#8220;hackers of kindness&#8221; e desenvolva aplicativos &#8220;sustentáveis&#8221; (sim, programadores também podem e [...]]]></description>
			<content:encoded><![CDATA[<div class="mceTemp mceIEcenter" style="text-align: left;">
<div class="mceTemp">
<div id="attachment_3404" class="wp-caption alignright" style="width: 310px"><a href="http://www.gonow.com.br/wp-content/uploads/2012/02/rhok.jpg"><img class="size-medium wp-image-3404" title="RHoK" src="http://www.gonow.com.br/wp-content/uploads/2012/02/rhok-300x159.jpg" alt="" width="300" height="159" /></a><p class="wp-caption-text">Reunião entre equipes do RHoK mundial</p></div>
<p>Interessado em criar soluções para um mundo melhor e mais sustentável mas não sabe como? Então junte-se aos <em>&#8220;hackers of kindness&#8221;</em> e desenvolva aplicativos &#8220;sustentáveis&#8221; (sim, programadores também podem e devem pensar na sustentabilidade do mundo!). Além de novos amigos em uma comunidade global de desenvolvedores, você também tem a oportunidade de aprender novas tecnologias e, claro, vivenciar a satisfação maior de contribuir com ideias originais e inovadoras para velhos problemas como: enchentes, furacões, terremotos e uma infinidade de outras questões relacionadas ao aquecimento global e às catástrofes naturais.</div>
</div>
<p>Alguns dos <a href="http://www.rhok.org/problems" target="_blank">problemas apresentados no site oficial</a> incluem gestão de voluntariado para área da saúde após desastres, monitoramento de regiões com estiagem frequente, programa para encontrar pessoas desaparecidas e até um separador de sementes para otimizar a produção e diminuir o desperdício em fazendas comerciais. Mas vale ressaltar que o objetivo do &#8220;Random Hacks of Kindness&#8221; é totalmente humanitário, ou seja, ajudar aos que mais precisam.<br />
Que tal propor soluções inovadoras para um Brasil melhor?</p>
<p>Acesse o site oficial para infos detalhadas e submeta suas ideias: <a href="http://www.rhok.org/" target="_blank">http://www.rhok.org/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.gonow.com.br/blog/2012/02/06/rhok-2012-sera-nos-dias-2-e-3-de-junho-e-1%c2%b0-de-dezembro/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Backbone e Knockout: comparativo entre frameworks MVC e MVVM em JavaScript</title>
		<link>http://www.gonow.com.br/blog/2012/02/03/backbone-e-knockout-comparativo-entre-frameworks-mvc-e-mvvm-em-javascript/</link>
		<comments>http://www.gonow.com.br/blog/2012/02/03/backbone-e-knockout-comparativo-entre-frameworks-mvc-e-mvvm-em-javascript/#comments</comments>
		<pubDate>Fri, 03 Feb 2012 18:44:24 +0000</pubDate>
		<dc:creator>Gonow</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Backbone]]></category>
		<category><![CDATA[Backbone.js]]></category>
		<category><![CDATA[BackboneJS]]></category>
		<category><![CDATA[BeagaJS]]></category>
		<category><![CDATA[BHJS]]></category>
		<category><![CDATA[frameworks MVC]]></category>
		<category><![CDATA[frameworks MVVM]]></category>
		<category><![CDATA[gonow tecnologia]]></category>
		<category><![CDATA[Herberth Amaral]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[JavaScriptMVC]]></category>
		<category><![CDATA[Knockout]]></category>
		<category><![CDATA[Knockout.js]]></category>
		<category><![CDATA[KnockoutJS]]></category>
		<category><![CDATA[SproutCore]]></category>

		<guid isPermaLink="false">http://www.gonow.com.br/?p=3392</guid>
		<description><![CDATA[Frameworks MVC como SproutCore, Backbone.js, Ember.js, JavaScriptMVC e frameworks MVVM como o Knockout.js estão ganhando espaço no kit de ferramentas de desenvolvedores web, por auxiliarem a encontrar soluções para questões [...]]]></description>
			<content:encoded><![CDATA[<p>Frameworks MVC como <a href="http://en.wikipedia.org/wiki/SproutCore" target="_blank">SproutCore</a>, <a href="http://documentcloud.github.com/backbone/" target="_blank">Backbone.js</a>, <a href="http://emberjs.com/" target="_blank">Ember.js</a>, <a href="http://en.wikipedia.org/wiki/JavaScriptMVC" target="_blank">JavaScriptMVC</a> e frameworks MVVM como o <a href="http://knockoutjs.com/" target="_blank">Knockout.js </a>estão ganhando espaço no kit de ferramentas de desenvolvedores web, por auxiliarem a encontrar soluções para questões como: melhor separação de responsabilidades (SoC), regras de interação (sem mexer com a DOM), mudança do paradigma <em>event-driven</em> para <em>data-driven</em> e teste de comportamento da interface sem <em>fixtures</em> em HTML.</p>
<p><a href="https://twitter.com/HerberthAmaral" target="_blank">Herberth Amaral</a>, desenvolvedor Python, faz um exame detalhado dos <strong>frameworks Backbone.js e Knockout.js</strong>, os dois mais &#8220;populares&#8221; no mercado atualmente, e apresenta um comparativo de ambos, além de exemplos de aplicações e baterias extras para ajudar a escolher o melhor para cada tipo de projeto:</p>
<p><strong>O que é o Backbone.js?<br />
</strong><br />
- Lembra um MVC (já que não há na documentação algo que especifique o Backbone como um MVC)<br />
- <em>Views</em>, <em>Models</em>, <em>Collections</em> e <em>Routers</em> (lembra um <em>controller</em>)<br />
- Integra nativamente com o Rails (RESTful API), mas pode integrar com qualquer app com um pouco de configuração</p>
<p><strong>Como ele pode ser útil?</strong></p>
<p>- &#8220;Alivia&#8221; um pouco o <a href="http://en.wikipedia.org/wiki/Event-driven_programming" target="_blank">event-driven programming<br />
</a>- Mudanças nos models são automaticamente sincronizadas na DOM<br />
- Convenção estrutural: o Backbone já vem com uma</p>
<p><strong>Routers</strong></p>
<p>- URLs também fazem parte da UI<br />
- Navegabilidade fácil, sem reload (e sem AJAX, necessariamente)<br />
- Routing + Controllers do Rails &#8212; URLs + Views do Django<br />
- <strong>help</strong> e <strong>search</strong> podem consultar <em>collections</em>, fazer <em>fetch</em> em <em>models</em> e renderizar <em>views</em><br />
- Funciona de forma desacoplada do Backbone, podendo ser utilizado com outros frameworks tranquilamente</p>
<p><strong>Events</strong></p>
<p>- Boa parte da comunicação entre objetos no Backbone é feita através de eventos<br />
- Quase toda ação (como salvar um model ou mudar uma propriedade) resulta num disparo de evento, que pode ser tratado ou ignorado<br />
- Forma conveniente de desacoplar aplicação</p>
<p><strong>Models</strong></p>
<p>- <strong>get</strong> e <strong>set</strong>: obtém/muda propriedades e dispara eventos</p>
<p><strong>Collections</strong></p>
<p>- Conjunto ordenado de <em>models</em><br />
- Possível fazer &#8220;consultas&#8221; com a ajuda do <a href="http://documentcloud.github.com/underscore/" target="_blank">Underscore.js</a>;<br />
- Carregamento de objetos do <em>server</em> em massa (com o <em>fetch</em>);<br />
- Delega para o <strong>Backbone.sync</strong> o trabalho de persistência. Dessa forma, pode-se usar persistência local, remota (padrão, pré-habilitada) ou ambos.</p>
<p><strong>Views</strong></p>
<p>- Não há muita coisa de especial em uma <em>view</em>: é mais uma convenção do que uma entidade realmente necessária<br />
- Uma <em>view</em> geralmente está atrelada a um ou mais <em>models</em><br />
- Pode renderizar-se automaticamente, quando o <em>model</em> muda <strong>(this.model.bind(&#8216;change&#8217;, this.render()))</strong><br />
- Vinculação de sentido único (<em>one way binding</em>: do <em>model</em> para a <em>view</em>) por padrão.</p>
<p><strong>Prós do Backbone.js</strong></p>
<p>- Comunidade grande e ativa<br />
- Integração nativa com o Rails<br />
- Flexível: você pode usar somente o que precisa<br />
- Estrutura já bem difundida entre devs web<br />
- Core extremamente reduzido (4.6k empacotado e gzipado)<br />
- Integra facilmente com plugins do jQuery<br />
- &#8220;Testabilidade&#8221; razoável</p>
<p><strong>Contras do Backbone.js</strong></p>
<p>- Curva de aprendizado ruim no começo, se comparada a outros frameworks<br />
- Múltiplas responsabilidades nas <em>Views</em> e nos <em>Models</em><br />
- O core é pequeno, mas já há duas dependências por padrão (jQuery, Underscore), e você vai acabar usando mais outras dependências de terceiros</p>
<p><strong>Como o Knockout.js pode ser útil?</strong></p>
<p>- <em>Bindings</em> nativos: text, visible, html, css, style, attr;<br />
- Controle de fluxo: foreach, if, ifnot, with<br />
- <em>Bindings</em> de form: click, event, submit, enable, disable, value, hasfocus, checked, options, selectedOptions, uniqueName<br />
- Renderização de templates</p>
<p><strong>Prós do Knockout.js</strong></p>
<p>- Simples<br />
- Permite criar uma estrutura baseada em objetos JavaScript puros<br />
- Facilmente testável<br />
- Possui uma das melhores documentações de frameworks para JS<br />
- Comunidade consolidada e receptiva<br />
- Não possui dependências</p>
<p><strong>Contras do Knockout.js</strong></p>
<p>- Quatro vezes maior que o Backbone.js (13kb empacotado e gzipado)<br />
- Lentidão (principalmente em renderização de templates e IE)<br />
- Devs podem &#8220;torcer o nariz&#8221; com o <em>data-bind</em> em elementos HTML</p>
<p>Assista ao vídeo com a íntegra da palestra de Herberth Amaral no BeagaJS:</p>
<p><iframe width="640" height="360" src="http://www.youtube.com/embed/jfjLTRq2Rvg" frameborder="0" allowfullscreen></iframe></p>
]]></content:encoded>
			<wfw:commentRss>http://www.gonow.com.br/blog/2012/02/03/backbone-e-knockout-comparativo-entre-frameworks-mvc-e-mvvm-em-javascript/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Como implementar um tile dinâmico para aplicativos do Windows Phone</title>
		<link>http://www.gonow.com.br/blog/2012/02/02/como-implementar-um-tile-dinamico-para-aplicativos-do-windows-phone/</link>
		<comments>http://www.gonow.com.br/blog/2012/02/02/como-implementar-um-tile-dinamico-para-aplicativos-do-windows-phone/#comments</comments>
		<pubDate>Thu, 02 Feb 2012 20:43:57 +0000</pubDate>
		<dc:creator>Gonow</dc:creator>
				<category><![CDATA[Mobile]]></category>
		<category><![CDATA[aplicativo WP]]></category>
		<category><![CDATA[app WP]]></category>
		<category><![CDATA[Awdren Fontão]]></category>
		<category><![CDATA[Background Agents Overview]]></category>
		<category><![CDATA[jungle dev]]></category>
		<category><![CDATA[MSDN Library]]></category>
		<category><![CDATA[Tile app]]></category>
		<category><![CDATA[tile dinâmico]]></category>
		<category><![CDATA[Windows Phone]]></category>

		<guid isPermaLink="false">http://www.gonow.com.br/?p=3384</guid>
		<description><![CDATA[Por Awdren Fontão* Aqui no meu post mostro como implementar um tile dinâmico, ou seja, adicionado pela própria aplicação. Isso pode ser feito procurando por um tile que já foi [...]]]></description>
			<content:encoded><![CDATA[<p><em><strong>Por Awdren Fontão*</strong></em></p>
<p>Aqui no meu post mostro como implementar um <strong>tile dinâmico</strong>, ou seja, adicionado pela própria aplicação. Isso pode ser feito procurando por um tile que já foi adicionado à tela ou criando um &#8211; caso ele não esteja presente na tela inicial do <a href="http://en.wikipedia.org/wiki/Windows_phone" target="_blank">Windows Phone</a>.</p>
<p>Então vamos lá:</p>
<p>- Para criar um <strong>tile dinâmico</strong> você precisa primeiro criar uma tarefa que será responsável por atualizar seu tile em dois momentos: um, enquanto sua app estiver sendo utilizada pelo usuário e dois, quando ela NÃO estiver sendo utilizada. Essa parte de implementação do código chamamos de <em>&#8220;Scheduled Task&#8221;</em>.  Na <a href="http://msdn.microsoft.com/en-us/library/ms123401.aspx" target="_blank">MSDN Library</a>, seção <a href="http://msdn.microsoft.com/en-us/library/hh202942%28v=vs.92%29.aspx" target="_blank">&#8220;Background Agents Overview&#8221;</a> há uma definição para uma <em>Scheduled Task</em>:</p>
<p><strong><em>&#8220;Uma Scheduled task permite a uma aplicação executar código em background mesmo que a aplicação não esteja rodando em segundo plano. Os diferentes tipos de Scheduled Tasks são projetados para diferentes tipos de cenários&#8221;.</em></strong></p>
<p>- Crie um novo projeto dentro da sua atual solução, o novo projeto é do tipo: <em>Windows Phone Scheduled Agent</em>. Repare que no campo <em>&#8220;Name&#8221;</em> é uma boa prática colocar a qual projeto a Scheduled Task se refere:</p>
<p><a href="http://www.gonow.com.br/wp-content/uploads/2012/02/new.png"><img class="aligncenter size-medium wp-image-3385" title="Windows Phone Scheduled Agent" src="http://www.gonow.com.br/wp-content/uploads/2012/02/new-300x208.png" alt="" width="300" height="208" target="_blank"/></a></p>
<p>Com os trechos de código fornecidos <strong><a href="http://www.afontao.com.br/?p=46" target="_blank">aqui</a></strong> você já pode criar seu mecanismo para atualizar o tile da sua app. Eu dei um exemplo com a interação do usuário através do clique em um botão na aplicação, mas o mesmo código pode ser usado em outro trecho da aplicação para deixar rodando a task esperando o usuário adicionar a tile da forma padrão e depois a task atualiza o tile, tornando-o dinâmico.</p>
<p>O código está disponível no <a href="https://github.com/jungledev/tileProject" target="_blank">Github do jungle dev</a>. Acesse, faça o download e contribua! <img src='http://www.gonow.com.br/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><strong><a href="https://twitter.com/awdren" target="_blank">*Awdren Fontão</a></strong> <strong>é desenvolvedor de aplicativos para smartphones e trabalha atualmente na Nokia de Manaus, no Amazonas.</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://www.gonow.com.br/blog/2012/02/02/como-implementar-um-tile-dinamico-para-aplicativos-do-windows-phone/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Dicas para criar plugins e widgets com JQuery</title>
		<link>http://www.gonow.com.br/blog/2012/02/01/dicas-para-criar-plugins-e-widgets-com-jquery/</link>
		<comments>http://www.gonow.com.br/blog/2012/02/01/dicas-para-criar-plugins-e-widgets-com-jquery/#comments</comments>
		<pubDate>Wed, 01 Feb 2012 22:15:26 +0000</pubDate>
		<dc:creator>Gonow</dc:creator>
				<category><![CDATA[JQuery]]></category>
		<category><![CDATA[BeagaJS]]></category>
		<category><![CDATA[BHJS]]></category>
		<category><![CDATA[gonow tecnologia]]></category>
		<category><![CDATA[plugins]]></category>
		<category><![CDATA[widgets]]></category>

		<guid isPermaLink="false">http://www.gonow.com.br/?p=3378</guid>
		<description><![CDATA[Marcos Sousa é programador Ruby na Globo.com e um dos seus interesses como desenvolvedor é estudar os diferentes tipos de usos do JQuery. Para ele, dominar JQuery vai muito além [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.flickr.com/photos/gonowtecnologia/6749092103/" title="Marcos Souza II by gonowtecnologia, on Flickr"><img src="http://farm8.staticflickr.com/7030/6749092103_eb3f7978df_z.jpg" width="640" height="480" alt="Marcos Souza II"></a><br />
<a href="http://www.marcossousa.com/" target="_blank">Marcos Sousa</a> é programador Ruby na Globo.com e um dos seus interesses como desenvolvedor é estudar os diferentes tipos de usos do JQuery. Para ele, dominar <a href="http://pt.wikipedia.org/wiki/JQuery" target="_blank">JQuery</a> vai muito além de fazer um simples find, um bind ou um delegate de um componente HTML. Em sua palestra no <a href="http://www.bhjs.com.br/">BeagaJS</a>, Marcos apresentou um passo-a-passo para quem deseja aprofundar-se no assunto e criar seu próprio widget com JQuery.</p>
<p>Abaixo um resumo dos tópicos e referências abordados na apresentação:</p>
<p>- Seletores JQuery<br />
- Criando custom selectors<br />
- Criando elementos<br />
- Definindo eventos ao elemento<br />
- Eventos personalizados<br />
- Evitando comportamentos padrão<br />
- Interrompendo programação de eventos<br />
- Carregando diretamente conteúdo<br />
- Filtrando requests<br />
- Customizando widgets existentes<br />
- Usando templates em plugins</p>
<p><strong>Widgets UI x Widget Factory</strong></p>
<p>Algumas dificuldades no gerenciamento de plugins:</p>
<p>- Reverter ao estado inicial<br />
- Permitir os usuários interagir com eventos gerados<br />
- Alterar configurações após ser chamado<br />
- Evitar múltiplas instâncias para um mesmo elemento<br />
- Encapsular tarefas comuns</p>
<p>Marcos Sousa explica que controlar o estado de um objeto não é tarefa fácil, pois exige atenção ao gerenciamento de detalhes como, por exemplo, instâncias de um mesmo plugin para o mesmo elemento. É aí que entra em cena a <a href="http://wiki.jqueryui.com/w/page/12138135/Widget%20factory" target="_blank">Widget Factory</a>, usada para criar diferentes objetos por meio de uma interface genérica: o <strong>jQuery UI Widget Factory</strong> cria, com base em nome e objeto, um plugin jQuery e uma &#8220;classe&#8221; para encapsular as funcionalidades.</p>
<p>Algumas conveniências do $.widget:</p>
<p>- Cria um namespace <strong>(jQuery.gcom)</strong><br />
- Encapsula a classe <strong>(jQuery.com.foo.prototype)</strong><br />
- Extende o plugin do jQuery <strong>(jQuery.fn.foo)</strong><br />
- Estrutura para setup, teardown e alterar opções<br />
- Fácil de chamar callbacks: <strong>.trigger(&#8220;evento&#8221;)</strong><br />
- Métodos acessíveis via: <strong>.foo(&#8220;metodo&#8221;) ou .metodo()</strong><br />
- Permite métodos &#8220;privados&#8221;</p>
<p>Acesse o &#8220;Capitalize demo&#8221; em: <a href="https://github.com/marcossousa/bhjs-examples/tree/demo3" target="_blank">https://github.com/marcossousa/bhjs-examples/tree/demo3</a></p>
<p><strong>Métodos &#8220;privados&#8221;</strong></p>
<p>Métodos privados com <strong>underscore (_foo : function(){})</strong> não são acessíveis pela API, ou seja:<br />
<strong>$(&#8220;#results&#8221;).table(&#8220;_hover&#8221;): </strong>         // não funciona<br />
<strong>$(&#8220;#results&#8221;).data(&#8220;table&#8221;)._hover():</strong>  //funciona</p>
<p>Assim, fica fácil trabalhar com eventos para o usuário do plugin:</p>
<p>- <strong>callbackname:</strong> Nome do evento que deseja lançar<br />
- <strong>eventObject:</strong> mock do evento original<br />
- <strong>userObject:</strong> objeto contendo propriedades úteis</p>
<p><strong>O que fará do seu plugin um sucesso?</strong></p>
<p><strong>1. Qualidade.</strong> Faça um <a href="http://docs.jquery.com/JQuery_Core_Style_Guidelines" target="_blank">código bem escrito</a>.<br />
<strong>2. Compatibilidade.</strong> Ele é compatível com versões mais novas?<br />
<strong>3. Confiança.</strong> Bem testado, com suite confiável, CI (QUnit, Jasmine etc)<br />
<strong>4. Performance.</strong> Consumir o mínimo de <a href="http://jsperf.com" target="_blank">recurso possível</a>.<br />
<strong>5. Documentação sucinta</strong> e concisa: facilite a vida de quem for usá-lo.<br />
<strong>6. Manutenção.</strong> Responda dúvidas, corrija bugs e aprimore-o sempre.</p>
<p>Assista ao vídeo com a íntegra da palestra de Marcos Sousa no BeagaJS:</p>
<p><iframe width="640" height="360" src="http://www.youtube.com/embed/Tq07MwddQJg" frameborder="0" allowfullscreen></iframe></p>
<p><strong>Referências:</strong></p>
<p><a href="http://docs.jquery.com/Plugins/Authoring" target="_blank">Plugins/Authoring<br />
</a><br />
<a href="https://github.com/addyosmani/jquery-plugin-patterns" target="_blank">JQuery-Plugin-Patterns<br />
</a><br />
<a href="http://docs.jquery.com/JQuery_Code_Style_Guidelines" target="_blank">JQuery Code Style Guidelines<br />
</a><br />
<a href="http://markdalgleish.com/2011/05/creating-highly-configurable-jquery-plugins" target="_blank">Creating Highly Configurable jQuery Plugins<br />
</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.gonow.com.br/blog/2012/02/01/dicas-para-criar-plugins-e-widgets-com-jquery/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Automatizando testes de JavaScript no front-end</title>
		<link>http://www.gonow.com.br/blog/2012/01/31/automatizando-testes-de-javascript-no-front-end/</link>
		<comments>http://www.gonow.com.br/blog/2012/01/31/automatizando-testes-de-javascript-no-front-end/#comments</comments>
		<pubDate>Wed, 01 Feb 2012 00:09:15 +0000</pubDate>
		<dc:creator>Gonow</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[automatização de testes]]></category>
		<category><![CDATA[BeagaJS]]></category>
		<category><![CDATA[cobertura de testes]]></category>
		<category><![CDATA[front-end]]></category>
		<category><![CDATA[integração contínua]]></category>
		<category><![CDATA[Iraê Lambert de Carvalho]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[scripts de automação]]></category>
		<category><![CDATA[testes de integração]]></category>
		<category><![CDATA[testes unitários]]></category>
		<category><![CDATA[validadores de sintaxe]]></category>

		<guid isPermaLink="false">http://www.gonow.com.br/?p=3373</guid>
		<description><![CDATA[Em sua palestra no Sampa.JS, Iraê Lambert de Carvalho já havia enfatizado a importância da automatização de testes para melhorar a performance de front-end. Dando continuidade ao assunto, e aprofundando-o [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.flickr.com/photos/gonowtecnologia/6749084199/" title="Iraê Lambert de Carvalho by gonowtecnologia, on Flickr"><img src="http://farm8.staticflickr.com/7026/6749084199_f43cdfe2dd_z.jpg" width="640" height="480" alt="Iraê Lambert de Carvalho"></a><br />
Em sua <a href="http://www.gonow.com.br/blog/2011/11/22/como-ganhar-performance-de-front-end-em-aplicacoes-modernas/" target="_blank">palestra no Sampa.JS</a>, Iraê Lambert de Carvalho já havia enfatizado a importância da automatização de testes para melhorar a performance de front-end. Dando continuidade ao assunto, e aprofundando-o ainda mais, Iraê apresentou o tema <strong>&#8220;Automatizando testes de JavaScript no front-end&#8221;</strong> no <a href="http://www.bhjs.com.br/" target="_blank">BeagaJS</a>, evento realizado em Belo Horizonte na semana passada e que contou com a presença de profissionais e entusiastas de temas associados ao JavaScript e afins. Algumas questões levantadas por ele foram: como garantir uma aplicação sem bugs? Como garantir que novas funcionalidades não criem bugs em códigos antigos? Como fazer isso de forma automática?</p>
<p>Se você também se sente intrigado com essas perguntas e outras tantas relacionadas, acompanhe as dicas e sugestões dele de ferramentas para testes unitários, validadores de sintaxe, cobertura de testes, compactação, testes de integração, scripts de automação, integração contínua etc.</p>
<p>Abaixo um resumo dos tópicos e referências abordados por Iraê na palestra:</p>
<p><strong>Tipos de testes</strong></p>
<p>- <a href="http://en.wikipedia.org/wiki/White-box_testing" target="_blank">White-box</a> [static code analysis / unit / coverage, branch, path, conditional]<br />
- <a href="http://en.wikipedia.org/wiki/Black-box_testing" target="_blank">Black-box</a> [integration / acceptance]<br />
- <a href="http://en.wikipedia.org/wiki/Grey_box_testing" target="_blank">Grey box</a> [black + docs]</p>
<p><strong>Ferramentas</strong></p>
<p>Validadores <a href="http://en.wikipedia.org/wiki/JSLint" target="_blank">JSLint</a> e <a href="http://www.jshint.com/" target="_blank">JSHint</a>. <em>&#8220;Tanto o JSLint como o JSHint fazem exatamente a mesma coisa: eles analisam a sintaxe do seu JavaScript e ajudam você a manter as &#8216;boas práticas&#8217; no uso da linguagem&#8221;.<br />
</em><br />
<strong>Testes unitários e/ou funcionais<br />
</strong><br />
- <a href="http://docs.jquery.com/QUnit" target="_blank">qUnit<br />
</a>- <a href="http://developer.yahoo.com/yui/yuitest/" target="_blank">YUI Test<br />
</a>- <a href="http://pivotal.github.com/jasmine/" target="_blank">Jasmine<br />
</a>- <a href="http://www.brouhaha.com/~eric/software/mocha/" target="_blank">Mocha<br />
</a>- <a href="http://busterjs.org/" target="_blank">Buster.JS</p>
<p></a>Acesse os slides da apresentação em:<br />
<a href="http://irae.github.com/frontend-tests-pt/" target="_blank">http://irae.github.com/frontend-tests-pt/</a></p>
<p><strong>Referências:</strong></p>
<p>Para ler:<br />
<a href="https://github.com/guilhermechapiewski/pyccuracy-presentation" target="_blank">http://en.wikipedia.org/wiki/Software_testing</p>
<p>http://net.tutsplus.com/tutorials/javascript-ajax/how-to-test-your-javascript-code-with-qunit/</p>
<p>https://github.com/heynemann/pyccuracy/wiki/</p>
<p>https://github.com/guilhermechapiewski/pyccuracy-presentation</a></p>
<p>Ferramentas:<br />
<a href="https://github.com/yui/yuitest" target="_blank">http://visionmedia.github.com/mocha/</p>
<p>http://yuilibrary.com/projects/yuitest/</p>
<p>http://jenkins-ci.org/</p>
<p>http://busterjs.org/</p>
<p>https://github.com/douglascrockford/JSLint</p>
<p>https://github.com/jquery/qunit</p>
<p>https://github.com/yui/yuitest</a></p>
<p>Repositórios/projetos:</p>
<p><a href="https://github.com/joshuaclayton/qunit-examples" target="_blank">https://github.com/twada/qunit-tap</p>
<p>https://github.com/bitzesty/qunit-mock</p>
<p>https://github.com/joshuaclayton/qunit-examples</a></p>
<p>Assista ao vídeo com a íntegra da apresentação de Iraê Lambert de Carvalho no BeagaJS:</p>
<p><iframe width="640" height="360" src="http://www.youtube.com/embed/Mfs0xevgonY" frameborder="0" allowfullscreen></iframe></p>
]]></content:encoded>
			<wfw:commentRss>http://www.gonow.com.br/blog/2012/01/31/automatizando-testes-de-javascript-no-front-end/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Minicurso online gratuito de introdução à plataforma Android</title>
		<link>http://www.gonow.com.br/blog/2012/01/31/minicurso-online-gratuito-de-introducao-a-plataforma-android/</link>
		<comments>http://www.gonow.com.br/blog/2012/01/31/minicurso-online-gratuito-de-introducao-a-plataforma-android/#comments</comments>
		<pubDate>Tue, 31 Jan 2012 14:39:19 +0000</pubDate>
		<dc:creator>Gonow</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[Arduino]]></category>
		<category><![CDATA[Mobile]]></category>
		<category><![CDATA[desenvolvimento mobile]]></category>
		<category><![CDATA[GlobalCode]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[Google TV]]></category>
		<category><![CDATA[Neto Marin]]></category>

		<guid isPermaLink="false">http://www.gonow.com.br/?p=3361</guid>
		<description><![CDATA[A Globalcode Campinas oferecerá nesta sexta, 03/02, das 19h às 22h, um minicurso gratuito de introdução à plataforma Android. Também é possível aos interessados inscreverem-se para acompanhar o curso via webcast [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.gonow.com.br/wp-content/uploads/2012/01/academia-android.jpg"><img class="alignright size-full wp-image-3362" title="Academia Android" src="http://www.gonow.com.br/wp-content/uploads/2012/01/academia-android.jpg" alt="" width="138" height="102" /></a>A Globalcode Campinas oferecerá nesta sexta, 03/02, das 19h às 22h, um <a href="http://globalcode.com.br/gratuitos/minicursos/minicurso-introducao-ao-android" target="_blank">minicurso gratuito</a> de introdução à plataforma Android. Também é possível aos interessados inscreverem-se para acompanhar o curso via webcast (mail abaixo).</p>
<p>No conteúdo programático, aspectos básicos do Google Android, como:</p>
<p>- Histórico<br />
- Ambiente de desenvolvimento<br />
- Arquitetura<br />
- Criando um exemplo<br />
- Publicando sua aplicação<br />
- Um rápido bate-papo sobre a plataforma</p>
<p>Este minicurso foi criado pelo instrutor Neto Marin, que também é o autor da Academia Android, com tópicos específicos de desenvolvimento, como: aplicações para Google TV, criação de widgets, games, integração de Arduino e Android com ADK, entre outros assuntos relevantes para quem deseja profissionalizar-se na plataforma Android.</p>
<p>Para inscrever-se no minicurso, acesse: <a href="http://www.globalcode.com.br/controller?requisicao=member.WebAlterar" target="_blank">http://www.globalcode.com.br/controller?requisicao=member.WebAlterar</a></p>
<p>Para mais informações sobre o <strong>curso completo de Android</strong> na Globalcode, acesse:<br />
<a href="http://globalcode.com.br/treinamentos/carreiras/academia-android" target="_blank">http://globalcode.com.br/treinamentos/carreiras/academia-android</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.gonow.com.br/blog/2012/01/31/minicurso-online-gratuito-de-introducao-a-plataforma-android/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Node.js: JavaScript com Google V8 no servidor</title>
		<link>http://www.gonow.com.br/blog/2012/01/30/node-js-javascript-com-google-v8-no-servidor/</link>
		<comments>http://www.gonow.com.br/blog/2012/01/30/node-js-javascript-com-google-v8-no-servidor/#comments</comments>
		<pubDate>Mon, 30 Jan 2012 19:54:14 +0000</pubDate>
		<dc:creator>Gonow</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[NodeJS]]></category>
		<category><![CDATA[BeagaJS]]></category>
		<category><![CDATA[BHJS]]></category>
		<category><![CDATA[gonow tecnologia]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Luciano Ramalho]]></category>
		<category><![CDATA[Programação Assíncrona]]></category>

		<guid isPermaLink="false">http://www.gonow.com.br/?p=3355</guid>
		<description><![CDATA[Node.js revela uma particularidade do JavaScript que a transforma em uma linguagem dinâmica como Python e Ruby, o que levou Luciano Ramalho, auto-entitulado programador profissional há 30 anos e entusiasta [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.flickr.com/photos/gonowtecnologia/6749095357/" title="Luciano Ramalho by gonowtecnologia, on Flickr"><img src="http://farm8.staticflickr.com/7169/6749095357_13e754692e_z.jpg" width="640" height="480" alt="Luciano Ramalho"></a><br />
Node.js revela uma particularidade do JavaScript que a transforma em uma linguagem dinâmica como Python e Ruby, o que levou <a href="http://turing.com.br/wiki/index.php?title=User:LucianoRamalho" target="_blank">Luciano Ramalho</a>, auto-entitulado programador profissional há 30 anos e entusiasta do mundo Python, a interessar-se novamente pelo JavaScript. <em>&#8220;O NodeJS libertou o JS do navegador. Com ele é possível fazer aplicações de alto desempenho e em JS, algo que antes não era possível&#8221;</em>, diz. Node.js usa o mesmo <a href="http://pt.wikipedia.org/wiki/V8_(JavaScript)" target="_blank">motor V8 de alto desempenho</a> do Google Chrome, roda em Linux, Windows e Mac OSX, e oferece APIs assíncronas para criar servidores e clientes que lidam com muitas requisições concorrentes de modo eficiente.</p>
<p><em>&#8220;Falando em arquitetura, é diferente por exemplo do PHP, que é um módulo que &#8216;pluga&#8217; no servidor Apache. O Node.js corresponde a esses dois componentes juntos (runtime e server), você não usa ele com outro servidor, ele é um servidor e ele é um ambiente de execução da linguagem JavaScript&#8221;,</em> explica Luciano.</p>
<p><strong>Características principais:</strong></p>
<p>- Noje.js é um ambiente de execução para usar JavaScript fora do navegador, através da linha de comando com console interativo (<a href="http://en.wikipedia.org/wiki/Read%E2%80%93eval%E2%80%93print_loop" target="_blank">REPL</a>), que explora conceitos de linguagens mais antigas e maduras como <a href="http://pt.wikipedia.org/wiki/Lisp" target="_blank">Lisp</a> e <a href="http://pt.wikipedia.org/wiki/Fortran" target="_blank">Fortran<br />
</a>- Incorpora o engine de JavaScript Google V8 (o mesmo presente no Google Chrome, ECMAScript5)<br />
- Inclui bibliotecas para fazer programação de I/O orientada a eventos (modo assíncrono)</p>
<p>Segundo Luciano, apesar de já ser utilizada por grandes empresas, o Node ainda é experimental. Possui centenas de bibliotecas e um &#8220;microframework&#8221; chamado Express, comparável ao Flask do Python e ao Sinatra do Ruby, porém ainda não tão completo como Django ou Rails. Mas é uma &#8220;novidade&#8221; promissora e bastante comentada no mercado atualmente, sobretudo pelas novas possibilidades de desenvolvimento descortinadas com APIs assíncronas. Sobre isso, Luciano apresenta uma série de exemplos para mostrar a eficiência do Node.js, que você confere abaixo no vídeo com a íntegra da palestra dele no <a href="http://www.bhjs.com.br/" target="_blank">BeagaJS</a>:</p>
<p><iframe width="640" height="360" src="http://www.youtube.com/embed/B0hc7hmpCD4" frameborder="0" allowfullscreen></iframe></p>
<p><strong>Referências:</strong></p>
<p><strong>Exemplo utilizado no vídeo:</strong><br />
<a href="https://github.com/oturing/nodejs" target="_blank">https://github.com/oturing/nodejs</a></p>
<p><strong>Tom Hughes-Croucher on Node</strong><br />
<a href="http://shop.oreilly.com/product/0636920017080.do" target="_blank">http://shop.oreilly.com/product/0636920017080.do</a></p>
<p><strong>Ryan Dahl: Introduction to Node.js</strong><br />
<a href="http://www.youtube.com/watch?v=M-sc73Y-zQA" target="_blank">http://www.youtube.com/watch?v=M-sc73Y-zQA</a></p>
<p><strong>Plugins para o Node:</strong><br />
<a href="https://github.com/joyent/node/wiki/modules" target="_blank">https://github.com/joyent/node/wiki/modules</a></p>
<p><strong>ECMAScript Programming Language</strong><br />
<a href="http://www.ecmascript.org/" target="_blank">http://www.ecmascript.org/</a></p>
<p><strong>JavaScript moderno com Node.js e testes automatizados, inscreva-se para a oficina online interativa:</strong><br />
<a href="http://pre-node.turing.com.br/" target="_blank">http://pre-node.turing.com.br/</a></p>
<p>Veja também os slides da apresentação:</p>
<div style="width:425px" id="__ss_11200016"> <strong style="display:block;margin:12px 0 4px"><a href="http://www.slideshare.net/ramalho/nodejs-javascript-no-servidor-com-google-v8" title="Node.JS: JavaScript no servidor com Google V8" target="_blank">Node.JS: JavaScript no servidor com Google V8</a></strong> <iframe src="http://www.slideshare.net/slideshow/embed_code/11200016" width="640" height="360" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"></iframe>
<div style="padding:5px 0 12px"> View more <a href="http://www.slideshare.net/" target="_blank">presentations</a> from <a href="http://www.slideshare.net/ramalho" target="_blank">Luciano Ramalho</a> </div>
</p></div>
]]></content:encoded>
			<wfw:commentRss>http://www.gonow.com.br/blog/2012/01/30/node-js-javascript-com-google-v8-no-servidor/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>10 jogos estilo “arcade” para Android</title>
		<link>http://www.gonow.com.br/blog/2012/01/27/10-jogos-estilo-arcade-para-android/</link>
		<comments>http://www.gonow.com.br/blog/2012/01/27/10-jogos-estilo-arcade-para-android/#comments</comments>
		<pubDate>Fri, 27 Jan 2012 22:11:11 +0000</pubDate>
		<dc:creator>Gonow</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[Games]]></category>
		<category><![CDATA[Android Games]]></category>
		<category><![CDATA[Arcade]]></category>
		<category><![CDATA[Arcade Games]]></category>
		<category><![CDATA[Jogos Android]]></category>
		<category><![CDATA[Jogos Celular]]></category>

		<guid isPermaLink="false">http://www.gonow.com.br/?p=3352</guid>
		<description><![CDATA[Quer relaxar no final de semana? Se você é fã de jogos do tipo &#8220;arcade&#8221; divirta-se com as sugestões de Carter Dotson, especialista em games, para baixar no seu Android: 1. [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.gonow.com.br/wp-content/uploads/2012/01/spirit.jpg"><img class="alignright size-medium wp-image-3353" title="Spirit" src="http://www.gonow.com.br/wp-content/uploads/2012/01/spirit-300x179.jpg" alt="" width="300" height="179" /></a>Quer relaxar no final de semana? Se você é fã de jogos do tipo &#8220;<a href="http://pt.wikipedia.org/wiki/Arcade_%28jogo%29" target="_blank">arcade</a>&#8221; divirta-se com as sugestões de Carter Dotson, especialista em games, para baixar no seu Android:</p>
<p><strong>1. <a href="https://market.android.com/details?id=com.jakyl.hardlineshd" target="_blank">Hard Lines.</a></strong> Apesar da descrição meio bizarra em português, provavelmente traduzida automaticamente do inglês sem nenhuma revisão, esse jogo remonta àqueles clássicos do Atari de cenários simples &#8211; 6 no total &#8211; e visual &#8220;retrô&#8221;. Disponível a partir da versão 2.1, por R$ 5,46.</p>
<p><strong>2. <a href="https://market.android.com/details?id=ca.roofdog.roadtrip" target="_blank">Extreme Road Trip.</a></strong> Descrito como &#8220;extremamente viciante&#8221;, nesse jogo o que importa são mais as manobras radicais para ir mais longe com o mínimo possível de combustível no tanque. Disponível gratuitamente a partir da versão 2.2.</p>
<p><strong>3. <a href="https://market.android.com/details?id=se.piecesinteractive.robosurf" target="_blank">Robo Surf.</a></strong> Robôs surfando nas ondas da superfície totalmente alagada da Terra parece algo improvável, mais ainda se o robozinho encontrar barris de petróleo pelo caminho que o projeta a centenas de metros adiante. Como recompensa, diversos tipos de cenários para desvendar. Disponível a partir da versão 2.0.1, por R$ 1,81.</p>
<p><strong>4.</strong> <strong><a href="https://market.android.com/details?id=com.halfbrick.fruitninja" target="_blank">Fruit Ninja.</a></strong> Este jogo ficou tão famoso que ganhou outras versões similares, incluindo uma para iPhone. Uma ótima opção para quem curte cenas de quebra-quebra mas não gosta de ver sangue: por aqui é só suco de fruta pra todo o lado mesmo. Disponível a partir da versão 1.6, por R$ 2,20.</p>
<p><strong>5. <a href="https://market.android.com/details?id=com.jakyl.spirithd" target="_blank">Spirit.</a></strong> Imagine-se no interior de uma célula, isolando &#8220;corpos estranhos&#8221; e levando-os para fora dela. É mais ou menos essa a experiência proporcionada pelo Spirit, só que muito mais emocionante. Disponível a partir da versão 2.1, por R$ 4,09.</p>
<p><strong>6. <a href="https://market.android.com/details?id=com.flukedude.impossiblegame" target="_blank">The Impossible Game.</a></strong> O nome já sugere o vem por aí: um desafio ideal para aqueles que não sossegam enquanto não chegar na próxima fase do jogo, custe o tempo que custar. É também um bom exercício de paciência, já que, &#8220;perder uma vida&#8221; leva o jogador a começar tudo outra vez, sem segunda chance. Disponível a partir da versão 2.1, por R$ 1,65.</p>
<p><strong>7. <a href="https://market.android.com/details?id=com.googlecode.opentyrian" target="_blank">OpenTyrian.</a></strong> Os fãs do saudoso &#8220;River Raid&#8221; vão adorar esse jogo de scrolling vertical com 4 fases e muita ação. Disponível gratuitamente a partir da versão 1.6.</p>
<p><strong>8. <a href="https://market.android.com/details?id=com.bfs.papertoss" target="_blank">Paper Toss.</a></strong> Quem nunca tentou brincar de atirar papel amassado no cesto do lixo? Parece moleza, mas a dificuldade vai aumentando &#8211; e viciando o jogador &#8211; quando surge um ventinho para atrapalhar a trajetória da &#8220;bola&#8221;. Disponível gratuitamente a partir da versão 1.5.</p>
<p><strong>9. <a href="https://market.android.com/details?id=dk.tactile.sealteam1" target="_blank">Seal Force.</a></strong> Defenda o mar do &#8220;envenenamento&#8221; causado pelo exércio de krills. Apesar de alimento para baleias, esses bichinhos aqui são inimigos mortais do esquadrão, com destaque para a trilha sonora que remonta aos cartoons dos anos 1980. Disponível gratuitamente a partir da versão 1.5.</p>
<p><strong>10. <a href="https://market.android.com/details?id=air.com.kongregate.mobile.games.incredibleape.escape" target="_blank">Escape.</a></strong> Aqui você é um ninja com ares de superhomem, com poder e fôlego de sobra para escalar muros, pular obstáculos e fugir de lasers e navalhas afiadas. Disponível a partir da versão 2.2, por R$ 1,74.</p>
<p>Com informações da <a href="http://mashable.com/2012/01/27/android-arcade-games/" target="_blank">Mashable.</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.gonow.com.br/blog/2012/01/27/10-jogos-estilo-arcade-para-android/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Twitter anuncia censura de tweets e perfis que não estiverem de acordo com sua política de conteúdo</title>
		<link>http://www.gonow.com.br/blog/2012/01/27/twitter-anuncia-censura-de-tweets-e-perfis-que-nao-estiverem-de-acordo-com-sua-politica-de-conteudo/</link>
		<comments>http://www.gonow.com.br/blog/2012/01/27/twitter-anuncia-censura-de-tweets-e-perfis-que-nao-estiverem-de-acordo-com-sua-politica-de-conteudo/#comments</comments>
		<pubDate>Fri, 27 Jan 2012 17:01:29 +0000</pubDate>
		<dc:creator>Gonow</dc:creator>
				<category><![CDATA[Mercado de TI]]></category>
		<category><![CDATA[Social Media]]></category>
		<category><![CDATA[censura de conteúdo]]></category>
		<category><![CDATA[censura na web]]></category>
		<category><![CDATA[conteúdo oculto]]></category>
		<category><![CDATA[gonow tecnologia]]></category>
		<category><![CDATA[Twitter]]></category>
		<category><![CDATA[Twitter Policy]]></category>

		<guid isPermaLink="false">http://www.gonow.com.br/?p=3333</guid>
		<description><![CDATA[Censura é uma palavra forte e que carrega o peso de limitar a liberdade de expressão de um indivíduo. Mas será que ela é sempre a vilã mesmo? Não haveria [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.gonow.com.br/wp-content/uploads/2012/01/twitter_logo.jpeg"><img class="alignright size-full wp-image-3334" title="Logo Twitter" src="http://www.gonow.com.br/wp-content/uploads/2012/01/twitter_logo.jpeg" alt="" width="256" height="256" /></a>Censura é uma palavra forte e que carrega o peso de limitar a liberdade de expressão de um indivíduo. Mas será que ela é sempre a vilã mesmo? Não haveria alguma situação em que caberia aplicá-la justamente para delimitar até onde vai a liberdade de cada um, especialmente quando o assunto é internet e livre fluxo de informação na rede? Pelo menos é isso que prega o Twitter, ao <a href="http://blog.twitter.com/2012/01/tweets-still-must-flow.html" target="_blank">anunciar a marcação de &#8220;conteúdo oculto&#8221;</a> para um determinado país, caso o mesmo viole sua política de divulgação de conteúdo na rede. O mesmo valeria para o perfil de um determinado usuário que descumprir a regra.</p>
<p>Seria esse um reflexo do <a href="http://www.gonow.com.br/blog/2012/01/19/luiza-memes-pipa-e-a-infindavel-sopa-de-letrinhas/" target="_blank">SOPA e PIPA</a>, projetos anti-pirataria que rondam o congresso norte-americano, apesar dos protestos no mundo todo? Pelo sim pelo não, sabemos bem que as megacorporações do mundo digital como Google e Facebook também certamente planejam alterações em suas políticas de compartilhamento de conteúdo, a fim de não se tornarem alvos do FBI, como foi o caso do <a href="http://www.megaupload.com/" target="_blank">Megaupload</a> na semana passada.</p>
<p>O Twitter foi na verdade o primeiro a dar o passo nesse sentido. Em sua página oficial, o serviço de microblogging mais famoso do mundo garante que está apenas assegurando o livre fluxo de tweets porém com &#8220;responsabilidades e limites&#8221;, também esses inerentes à liberdade de expressão. E você, o que acha?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.gonow.com.br/blog/2012/01/27/twitter-anuncia-censura-de-tweets-e-perfis-que-nao-estiverem-de-acordo-com-sua-politica-de-conteudo/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

