<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2portuguesefull.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:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0"><channel><title>Leo Balter</title> <link>http://leobalter.net</link> <description>Um cara apaixonado por web</description> <lastBuildDate>Sat, 29 Dec 2012 23:05:34 +0000</lastBuildDate> <language>pt-BR</language> <sy:updatePeriod>hourly</sy:updatePeriod> <sy:updateFrequency>1</sy:updateFrequency> <generator>http://wordpress.org/?v=3.4.1</generator> <atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/leobalter" /><feedburner:info uri="leobalter" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><geo:lat>-22.918663</geo:lat><geo:long>-43.224048</geo:long><feedburner:emailServiceId>leobalter</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><feedburner:feedFlare href="http://fusion.google.com/add?feedurl=http%3A%2F%2Ffeeds.feedburner.com%2Fleobalter" src="http://buttons.googlesyndication.com/fusion/add.gif">Subscribe with Google</feedburner:feedFlare><item><title>Reflexões sobre 2012</title><link>http://feedproxy.google.com/~r/leobalter/~3/oHVlVDJQp8A/</link> <comments>http://leobalter.net/descompressao/reflexoes-sobre-2012/#comments</comments> <pubDate>Sat, 29 Dec 2012 23:05:34 +0000</pubDate> <dc:creator>Leo Balter</dc:creator> <category><![CDATA[Cases]]></category> <category><![CDATA[Descompressão]]></category><guid isPermaLink="false">http://leobalter.net/?p=1207</guid> <description><![CDATA[Aproveitando o embalo de alguns amigos que estão escrevendo em seus blogs as suas respectivas restropectivas de 2012, vou deixar alguns comentários sobre como foi comigo. Se eu tiver que resumir em poucas palavras, posso dizer que foi um ano incrível. Não consigo entender pessoas que ficam reclamando pro ano acabar logo e vir outro. [...]]]></description> <content:encoded><![CDATA[<div class="twttr_button"> <a href="http://twitter.com/share?url=http://leobalter.net/descompressao/reflexoes-sobre-2012/&text=Reflexões sobre 2012" target="_blank" title="Click here if you liked this article."> <img class="colorbox-1207"  src="http://leobalter.net/wp-content/plugins/twitter-plugin/images/twitt.gif" alt="Twitt" /> </a></div><p>Aproveitando o embalo de alguns amigos que estão escrevendo em seus blogs as suas respectivas <a href="http://bernarddeluna.com/css/7-desejos-em-2013-para-a-comunidade-web/">restropectivas</a> de 2012, vou deixar alguns comentários sobre como foi comigo.</p><p>Se eu tiver que resumir em poucas palavras, posso dizer que foi um ano incrível. Não consigo entender pessoas que ficam reclamando pro ano acabar logo e vir outro. Esse ano me proporcionou tanta experiência fantástica que foram capazes de superar qualquer uma outra ruim.</p><p>Se falar sobre web, não posso deixar de citar as palestras. Corri várias cidades com diversos amigos, além de fazer novas amizades e conhecer pessoalmente algumas pessoas que já tinha uma admiração pelo trabalho feito.</p><p>O BrazilJS foi a palestra mais assistida, e quase a mais difícil. Fui falar de um tema importantíssimo e, pois mais que eu não me arrependa de nada do que foi falado, não era uma crítica fácil de receber ou até de entender. Estudei 2 meses contínuos para preparar todo o material, desde o roteiro até os slides ou frases das minhas infames piadas sem graça &#8211; prometo melhor meu lado humorístico em 2013. Eu vinha de um histórico de 100% de feedback positivo das demais palestras que apresentei no mesmo ano e não esperava tanto ódio ou estupidez em algumas críticas. Felizmente também houve pessoas que foram grandes o suficiente para virem fazerem críticas ou discordarem de forma digna e educada, essas me ajudaram a perceber alguns pontos e melhorar o conteúdo. A todos esses e a todos os amigos que me apoiaram nesse evento: muito obrigado, me proporcionaram toda a parte que curti do evento.</p><p>Em termos de dificuldade nada se compara à palestra que apresentei com o Felipe Moura em Buenos Aires, Argentina. Foi uma verdadeira missão. Eu tinha acabado de receber alta parcial para pelo menos viajar. Havia passado por uma cirurgia pra tirar o apêndice e não podia comer qualquer coisa que tivesse gordura &#8211; quase tudo tem. Lá no evento precisamos nos apresentar em inglês e com um objetivo: convencer a Mozilla sobre o crescimento da comunidade de desenvolvedores web no Brasil e assim conseguir coisas grandiosas como trazer o Brendan Eich &#8211; criador do JavaScript e CTO da Mozilla &#8211; para o BrazilJS. Sei que há uma fagulha minha de responsabilidade na vinda dele ao evento, mas o mérito do trabalho feito pelo Felipe e pelo Jaydson ainda é incontestável.</p><p>Vi pessoas incríveis fazendo coisas mais incríveis. O trabalho feito por alguns amigos foi &#8211; mais uma vez &#8211; surpreendente. Posso citar vários nomes além dos já citados. Bernard de Luna, Daniel Filho, Zeno Rocha, Giovanni Kepellen e por aí vai. Pessoas as vezes menos comuns de serem citados mas que também fizeram grandes feitos, não menos importantes. Tivemos a Talita Pagani e o Richard Johansen organizando o FrontInterior no estilo vanguarda bem similar ao do FrontInRio, assim como o Tiago Prado Campos e a galera do Avadora organizando mais FrontIns e Juarez Filho ajudando a trazer os FrontIns para o Nordeste.</p><p>Falando do Nordeste &#8211; queria que o meu Rio de Janeiro fosse lá também &#8211; uma galera deixou bem claro que há ótimos profissionais na região e eles não estão de bobeira. Um salve pro amigo Luiz Tiago.</p><p>Vi muita coisa boa surgir. Desde o super trunfo dos políticos, uma brincadeira sagaz com dados abertos, ao Boot2Gecko, agora chamado FirefoxOS. Projetos foram vários. Tenho vários amigos usando muito, como se deveria usar, o Github e compartilhando o código. Isso é enriquecedor e deveria ser regra para ingressar na área. Fico muito feliz de também ver surgindo projetos que no início de 2012 ainda estavam na fase de planejamento, como o Estou Jogando, do Cayo &#8220;Yogodoshi&#8221; e o projeto de eCommerce do Personare, onde também há pessoas incríveis trabalhando para uma missão super enriquecedora para cada usuário.</p><p>Não posso deixar passar o trabalho que tenho feito na Estante Virtual. Que lugar para se trabalhar. Se falei várias vezes que algo incrível aconteceu, eu com certeza me lembrei de algo totalmente incrível. Vou começar 2013 completando oficialmente um ano de empresa. Conheci despretensiosamente a Estante e nem imaginava que iria acabar trabalhando ali. Foi uma missão difícil, mas cada momento bacana que foi proporcionado eu consigo guardar e manter como a melhor experiência do ano. A amizade construída com pessoas que trabalham no mesmo lugar &#8211; Breno &#8220;Garu&#8221; você é um dos culpados &#8211; e a possibilidade de realizar um sonho profissional: trazer o &#8220;desainer&#8221; mais modafoca da parada pra empresa. Trabalhar com o Bernard de Luna era um projeto pessoal meu, a Estante Virtual ajudou a resolver isso.</p><p>Algo interessante da empresa é que consegui um incentivo para explorar algo pessoal que me deixa muito feliz: a música. Isso mesmo, sou desenvolvedor JavaScript em uma empresa que intermedia a venda de livros usados e sou incentivado a tocar guitarra. Desde a banda remota formada com outros colegas de trabalho, à guitarra semi acústica que fica na sala de TI ou ver o chefe &#8211; tentando &#8211; tocar ukulele e violino no meio do expediente, ou o nosso CEO ensinando a construir pífanos e trazendo TODOS os instrumentos para formar uma banda de forró em festa na empresa, a música é fator presente e o lado artístico não atrapalha a produtividade. Inclusive ainda não tive um vizinho que veio ali reclamar do barulho. :)</p><p>Posso complementar em vários passos, falar do primeiro natal que organizei na minha casa e o pato que preparamos em 24 horas, ou meu nível 90 no WoW. Isso tudo demandaria mais tempo e mais texto. Vou encerrar pedindo desculpas a fatos que ocasionalmente esqueci ou amigos não menos importantes ou a membros da família que sempre permanecem em apoio contínuo.</p><p>Com saudades de 2012, espero sinceramente que meu 2013 seja mais incrível, mas não vou conseguir isso sozinho. Dependo do esforço de todos para que seja um ano bom a todos. Juntos, somos incríveis.</p><p>Boas festas e um grande abraço!</p> <nav><header><h1>Leia Tamb&eacute;m:</h1></header><ul class="simPosts"><li><a href='http://leobalter.net/eventos/mozcamplatam-2012/' rel='bookmark' title='MozCampLATAM 2012'>MozCampLATAM 2012</a></li><li><a href='http://leobalter.net/eventos/frontinrio-um-evento-sobre-frontend-no-rio-de-janeiro/' rel='bookmark' title='FrontInRio &#8211; Um evento sobre FrontEnd no Rio de Janeiro'>FrontInRio &#8211; Um evento sobre FrontEnd no Rio de Janeiro</a></li><li><a href='http://leobalter.net/tecnologia/o-mito-sobre-a-desnecessidade-do-google-analytics/' rel='bookmark' title='O mito sobre a desnecessidade do Google Analytics'>O mito sobre a desnecessidade do Google Analytics</a></li></ul></nav><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/leobalter?a=oHVlVDJQp8A:-3NeMDeHLc0:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/leobalter?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/leobalter?a=oHVlVDJQp8A:-3NeMDeHLc0:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/leobalter?i=oHVlVDJQp8A:-3NeMDeHLc0:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/leobalter?a=oHVlVDJQp8A:-3NeMDeHLc0:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/leobalter?i=oHVlVDJQp8A:-3NeMDeHLc0:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/leobalter?a=oHVlVDJQp8A:-3NeMDeHLc0:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/leobalter?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/leobalter/~4/oHVlVDJQp8A" height="1" width="1"/>]]></content:encoded> <wfw:commentRss>http://leobalter.net/descompressao/reflexoes-sobre-2012/feed/</wfw:commentRss> <slash:comments>3</slash:comments> <feedburner:origLink>http://leobalter.net/descompressao/reflexoes-sobre-2012/</feedburner:origLink></item> <item><title>Como achar os melhores profissionais</title><link>http://feedproxy.google.com/~r/leobalter/~3/E8Kqz7jB8AA/</link> <comments>http://leobalter.net/descompressao/como-achar-os-melhores-profissionais/#comments</comments> <pubDate>Wed, 15 Aug 2012 16:26:00 +0000</pubDate> <dc:creator>Leo Balter</dc:creator> <category><![CDATA[Descompressão]]></category> <category><![CDATA[emprego]]></category> <category><![CDATA[PJ]]></category><guid isPermaLink="false">http://leobalter.net/?p=1203</guid> <description><![CDATA[Há pouco tempo comentei um status no facebook onde resolvi expressar o que sinto ao ver vagas &#8211; principalmente na área de TI &#8211; onde as empresas dizem uma mínima especificação do que esperam e cada vez menos se preocupam em dizer o que pode se esperar da empresa. O que falo serve para qualquer [...]]]></description> <content:encoded><![CDATA[<div class="twttr_button"> <a href="http://twitter.com/share?url=http://leobalter.net/descompressao/como-achar-os-melhores-profissionais/&text=Como achar os melhores profissionais" target="_blank" title="Click here if you liked this article."> <img class="colorbox-1203"  src="http://leobalter.net/wp-content/plugins/twitter-plugin/images/twitt.gif" alt="Twitt" /> </a></div><p>Há pouco tempo comentei um <em>status</em> no facebook onde resolvi expressar o que sinto ao ver vagas &#8211; principalmente na área de TI &#8211; onde as empresas dizem uma mínima especificação do que esperam e cada vez menos se preocupam em dizer o que pode se esperar da empresa.</p><p>O que falo serve para qualquer empresa, empresário e profissional de RH. Qualquer um deve se preocupar com o que é falado aqui pois é o ponto chave para conquistar bons profissionais, inclusive em um mercado (TI) que anda tão escasso de profissionais, alguns ruins e outros poucos que são bons.</p><p>Acredito que a empresa deveria se apresentar, mesmo sendo famosa, o que vai importar é o ambiente, o que é feito, como é feito.</p><p>A empresa só querer saber do profissional e se apresentar do tipo: &#8220;nem preciso descrever minha vaga pois quero ver antes quem se descreve melhor&#8221; é como se fosse deixado de lado a importancia que a empresa deve ter com seus funcionários.</p><p>É necessário que a empresa mostre que o funcionário pode se sentir confortável em seu ambiente de trabalho, e não apenas que a empresa vai estar ganhando por ter mais um funcionário. Esse, aliás, pode acabar frustrado com as surpresas que a empresa não contou no processo seletivo, mas isso parece não fazer a menor importância.</p><p>Isso se repete para diversos anúncios de vagas, é muito comum. Se reparar bem, grandes profissionais acabam indo para empresas que tomam essa estratégia diferente do comum, pois sabem o que vão encontrar. Essas empresas podem não ser melhores, algumas são, mas elas se organizando mais nesse quesito conseguem uma melhor expressividade e alcance a bons profissionais que já estão em um momento de preocupação com seu ambiente de trabalho, não somente com um pagamento no final do mês.</p><p>Complemento a crítica com a uma característica frustrativa que muitos candidados descobrem após o anúncio das vagas: contratação por PJ. Isso é um dos piores males das empresas que contratam profissionais hoje em dia. É errado. É só a garantia que vejo no tipo: quero o máximo do profissional na minha empresa, mas a minha empresa não dá o seu máximo para fazer o que é correto pela lei para garantir um mínimo de estabilidade a quem ela vai exigir que &#8220;vista a camisa&#8221;.</p><p>Anote: <strong>emprego</strong> é somente via CLT. Se as características de um trabalho se diferenciam de um emprego e geram uma exceção ao que está previsto na CLT, aí sim, pode ser uma contratação PJ. Acredite: 99% dos casos de PJ tem a natureza de emprego, todos irregulares.</p><blockquote><p>CLT<br /> <a href="http://www.planalto.gov.br/ccivil_03/decreto-lei/del5452.htm#art3" title="CLT, art 3" target="_blank">Art. 3º &#8211; Considera-se empregado toda pessoa física que prestar serviços de natureza não eventual a empregador, sob a dependência deste e mediante salário.</a></p></blockquote><p>Como diriam alguns amigos meus, é preciso que &#8211; além do funcionário vestir a camisa da empresa &#8211; a empresa também vista a camisa de seus funcionários.</p> <nav><header><h1>Leia Tamb&eacute;m:</h1></header><ul class="simPosts"><li><a href='http://leobalter.net/descompressao/como-encontrar-o-melhor-funcionario/' rel='bookmark' title='Como encontrar o melhor funcionário?'>Como encontrar o melhor funcionário?</a></li><li><a href='http://leobalter.net/descompressao/desenvolvedor-front-end/' rel='bookmark' title='Desenvolvedor Front End'>Desenvolvedor Front End</a></li><li><a href='http://leobalter.net/descompressao/como-encontrar-pontos-de-wifi-no-rio-de-janeiro/' rel='bookmark' title='Como encontrar pontos de Wifi no Rio de Janeiro'>Como encontrar pontos de Wifi no Rio de Janeiro</a></li></ul></nav><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/leobalter?a=E8Kqz7jB8AA:94Pm5RVHThw:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/leobalter?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/leobalter?a=E8Kqz7jB8AA:94Pm5RVHThw:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/leobalter?i=E8Kqz7jB8AA:94Pm5RVHThw:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/leobalter?a=E8Kqz7jB8AA:94Pm5RVHThw:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/leobalter?i=E8Kqz7jB8AA:94Pm5RVHThw:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/leobalter?a=E8Kqz7jB8AA:94Pm5RVHThw:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/leobalter?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/leobalter/~4/E8Kqz7jB8AA" height="1" width="1"/>]]></content:encoded> <wfw:commentRss>http://leobalter.net/descompressao/como-achar-os-melhores-profissionais/feed/</wfw:commentRss> <slash:comments>0</slash:comments> <feedburner:origLink>http://leobalter.net/descompressao/como-achar-os-melhores-profissionais/</feedburner:origLink></item> <item><title>Ferramentas de Code Coverage para JavaScript</title><link>http://feedproxy.google.com/~r/leobalter/~3/JMEuHtlIP94/</link> <comments>http://leobalter.net/desenvolvimento/ferramentas-de-code-coverage-para-javascript/#comments</comments> <pubDate>Fri, 22 Jun 2012 04:29:43 +0000</pubDate> <dc:creator>Leo Balter</dc:creator> <category><![CDATA[Desenvolvimento]]></category> <category><![CDATA[Coverage]]></category> <category><![CDATA[javascript]]></category> <category><![CDATA[TDD]]></category><guid isPermaLink="false">http://leobalter.net/?p=1194</guid> <description><![CDATA[Essa semana eu fiz uma pesquisa sobre ferramentas de Code Coverage para JavaScript. Para quem ainda não conhece, esse tipo de ferramenta serve para calcular quais trechos de um código foram lidos, e quantas vezes foram lidos. Ou seja, ela observa sua aplicação javascript em execução e faz uma cobertura sobre esse código em questão. [...]]]></description> <content:encoded><![CDATA[<div class="twttr_button"> <a href="http://twitter.com/share?url=http://leobalter.net/desenvolvimento/ferramentas-de-code-coverage-para-javascript/&text=Ferramentas de Code Coverage para JavaScript" target="_blank" title="Click here if you liked this article."> <img class="colorbox-1194"  src="http://leobalter.net/wp-content/plugins/twitter-plugin/images/twitt.gif" alt="Twitt" /> </a></div><p>Essa semana eu fiz uma pesquisa sobre ferramentas de <strong>Code Coverage</strong> para <strong>JavaScript</strong>. Para quem ainda não conhece, esse tipo de ferramenta serve para calcular quais trechos de um código foram lidos, e quantas vezes foram lidos. Ou seja, ela observa sua aplicação javascript em execução e faz uma cobertura sobre esse código em questão.</p><p>A intenção do uso de uma ferramenta de <strong>Code Coverage</strong> é verificar se há partes no código que não estejam sendo executadas, como <em>gorduras</em>, por exemplo.</p><p><a href="http://leobalter.net/assets/Captura-de-Tela-2012-06-22-às-01.02.32.png"><img src="http://leobalter.net/assets/Captura-de-Tela-2012-06-22-às-01.02.32-550x147.png" alt="Exemplo do relatório do JSCoverage" title="Exemplo do relatório do JSCoverage" width="550" height="147" class="size-large wp-image-1195 colorbox-1194" /></a></p><p>Uma outra prática comum para o uso de <strong>Code Coverage</strong> é a sua integração no ambiente de testes unitários para medir o quanto do código já foi testado. Isso serve para trechos parciais de métodos, blocos condicionais (if/else/switch).</p><p><a href="http://leobalter.net/assets/Captura-de-Tela-2012-06-22-às-01.11.201.png"><img src="http://leobalter.net/assets/Captura-de-Tela-2012-06-22-às-01.11.201-550x387.png" alt="Relatório de cobertura de código do JSCoverage" title="Outro exemplo de relatório do JSCoverage" width="550" height="387" class="size-large wp-image-1197 colorbox-1194" /></a></p><p>Como falei sobre a pesquisa, aproveitei para criar um artigo e compartilhar meu <strong>relatório</strong> que fui montando enquanto via cada opção que encontrei. Também digo que por enquanto fiquei com o <strong>JSCoverage</strong> mas ainda guardo um interesse em experimentar o <strong>CoverJS</strong>.</p><h3> <a name="jscoverage" class="anchor" href="#jscoverage"><span class="mini-icon mini-icon-link"></span></a>JSCoverage</h3><ul><li>Link: <a href="http://siliconforks.com/jscoverage/">JSCoverage</a></li><li>parece ser ruim demais pra integrar com alguma CI</li><li>funciona e permite criar um servidor para servir os arquivos</li><li>pode ser compilado em qualquer sistema</li><li>open source</li></ul><h3> <a name="coverjs" class="anchor" href="#coverjs"><span class="mini-icon mini-icon-link"></span></a>CoverJS</h3><ul><li>Link: <a href="https://github.com/arian/CoverJS">CoverJS</a></li><li>Em NodeJS e parece ser amigável, considerando também que tem cerca de 2 meses de vida</li><li>Está bem cru ainda, pode estar incompleto ou ainda não 100% funcional</li><li>Mesmo assim vale testar e colaborar no projeto open source</li></ul><h3> <a name="node-coverage" class="anchor" href="#node-coverage"><span class="mini-icon mini-icon-link"></span></a>Node Coverage</h3><ul><li>Link: <a href="https://github.com/piuccio/node-coverage">Node Coverage</a></li><li>Também em NodeJS e bem amigável.</li><li>está bem mais sólido que o CoverJS</li><li>sem ver funcionando não ficou muito claro o esquema para ver o report, mas tem uma API JSONP, no mínimo.</li></ul><h3> <a name="script-cover" class="anchor" href="#script-cover"><span class="mini-icon mini-icon-link"></span></a>script-cover</h3><ul><li>Link: <a href="https://code.google.com/p/script-cover/">script-cover</a></li><li>Open Source</li><li>Apenas como extensão do Chrome</li><li>Não funcionou 100%, várias funções executadas foram ignoradas, somente suas declarações foram observadas.</li></ul><h3> <a name="javascript-code-coverage-tool-for-firebug" class="anchor" href="#javascript-code-coverage-tool-for-firebug"><span class="mini-icon mini-icon-link"></span></a>JavaScript Code Coverage Tool for Firebug</h3><ul><li>Link: <a href="http://www.zachleat.com/web/javascript-code-coverage-tool-for-firebug/">JavaScript Code Coverage Tool for Firebug</a></li><li>projeto descontinuado há 2 anos</li><li>plugin do firebug</li><li>não executa na versão atual do Firefox (13).</li></ul><h3> <a name="saga" class="anchor" href="#saga"><span class="mini-icon mini-icon-link"></span></a>Saga</h3><ul><li>Link: <a href="http://timurstrekalov.github.com/saga/">Saga</a></li><li>Java, integra com o Maven (ECA!)</li><li>Interface é bonitinha, pelo menos</li><li>Open source, acho, talvez de pra pegar o código e tirar isso das trevas (Java) e fazer um port pra JS</li></ul><h3> <a name="hrtimer---hrcov" class="anchor" href="#hrtimer---hrcov"><span class="mini-icon mini-icon-link"></span></a>hrtimer -&gt; hrcov</h3><ul><li>Link: <a href="http://hrtimer.mozdev.org/">hrtimer</a></li><li>Está no mozdev, funciona como extensão do Firefox</li><li>Está muito desatualizado, não tem suporte ao atual Firefox (13)</li><li>Talvez uma das melhores opções entre as demais para trabalhar em cima do código e criar algo novo</li><li>Desatualizado é pouco: versionado em CVS&#8230;</li></ul><h3> <a name="outros-que-nem-vou-descrever-muito" class="anchor" href="#outros-que-nem-vou-descrever-muito"><span class="mini-icon mini-icon-link"></span></a>Outros que nem vou descrever muito:</h3><ul><li> <a href="http://www.softwareverify.com/javascript-coverage.php">Javascript Coverage Validator</a> &#8211; $199!!!</li><li> <a href="http://jescov.olabini.com/index.html">JesCov</a> &#8211; Java CLI sem exemplos de reports</li><li> <a href="http://code.google.com/p/js-test-driver/wiki/CodeCoverage">JsTestDriverCoverage</a> &#8211; Java</li></ul><h3> <a name="interessante-mas-não-é-de-coverage" class="anchor" href="#interessante-mas-n%C3%A3o-%C3%A9-de-coverage"><span class="mini-icon mini-icon-link"></span></a>Outras ferramentas interessante que não são de Code Coverage mas vale a pena citar:</h3><h4> <a name="travis-ci" class="anchor" href="#travis-ci"><span class="mini-icon mini-icon-link"></span></a>Travis CI</h4><ul><li>Link: <a href="http://about.travis-ci.org/">travis-ci</a></li><li>CI de projetos open Source</li></ul><h4> <a name="testosterone" class="anchor" href="#testosterone"><span class="mini-icon mini-icon-link"></span></a>Testosterone</h4><ul><li>Link: <a href="https://github.com/masylum/testosterone">Testosterone</a></li><li>Testa servidores HTTP e aplicações NodeJS</li><li>É uma ferramenta para fazer teste viril!</li></ul> <nav><header><h1>Leia Tamb&eacute;m:</h1></header><ul class="simPosts"><li><a href='http://leobalter.net/desenvolvimento/funcao-definida-dentro-do-for-no-javascript/' rel='bookmark' title='Função definida dentro do for no Javascript'>Função definida dentro do for no Javascript</a></li><li><a href='http://leobalter.net/desenvolvimento/javascript-variavel-como-funcao-e-objeto/' rel='bookmark' title='Javascript: variável como função e objeto'>Javascript: variável como função e objeto</a></li><li><a href='http://leobalter.net/desenvolvimento/javascript-for-tao-simples-quanto-deve-ser/' rel='bookmark' title='Javascript for &#8211; tão simples quanto deve ser'>Javascript for &#8211; tão simples quanto deve ser</a></li></ul></nav><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/leobalter?a=JMEuHtlIP94:m0RdJomWc00:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/leobalter?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/leobalter?a=JMEuHtlIP94:m0RdJomWc00:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/leobalter?i=JMEuHtlIP94:m0RdJomWc00:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/leobalter?a=JMEuHtlIP94:m0RdJomWc00:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/leobalter?i=JMEuHtlIP94:m0RdJomWc00:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/leobalter?a=JMEuHtlIP94:m0RdJomWc00:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/leobalter?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/leobalter/~4/JMEuHtlIP94" height="1" width="1"/>]]></content:encoded> <wfw:commentRss>http://leobalter.net/desenvolvimento/ferramentas-de-code-coverage-para-javascript/feed/</wfw:commentRss> <slash:comments>1</slash:comments> <feedburner:origLink>http://leobalter.net/desenvolvimento/ferramentas-de-code-coverage-para-javascript/</feedburner:origLink></item> <item><title>Instalação do B2G Desktop e do Gaia no Ubuntu (Linux)</title><link>http://feedproxy.google.com/~r/leobalter/~3/I6s8FhQfVjw/</link> <comments>http://leobalter.net/desenvolvimento/instalacao-do-b2g-desktop-e-do-gaia-no-ubuntu-linux/#comments</comments> <pubDate>Wed, 09 May 2012 15:56:59 +0000</pubDate> <dc:creator>Leo Balter</dc:creator> <category><![CDATA[B2G]]></category> <category><![CDATA[Desenvolvimento]]></category> <category><![CDATA[Mozilla]]></category> <category><![CDATA[boot2gecko]]></category> <category><![CDATA[mozilla]]></category> <category><![CDATA[Web]]></category><guid isPermaLink="false">http://leobalter.net/?p=1183</guid> <description><![CDATA[Sites de referência: https://wiki.mozilla.org/Gaia/Hacking#Building_B2G https://developer.mozilla.org/en/Linux_Build_Prerequisites Nota: É preferencial que o Linux utilizado seja a versão de 32 bits, mas isso não impede que você utilize uma versão de 64 bits. Nesse caso, você pode não ter uma resposta ideal dos processos desse roteiro. Da pasta usuário (~): hg clone http://hg.mozilla.org/mozilla-central mozilla-central git clone https://github.com/andreasgal/gaia gaia [...]]]></description> <content:encoded><![CDATA[<div class="twttr_button"> <a href="http://twitter.com/share?url=http://leobalter.net/desenvolvimento/instalacao-do-b2g-desktop-e-do-gaia-no-ubuntu-linux/&text=Instalação do B2G Desktop e do Gaia no Ubuntu (Linux)" target="_blank" title="Click here if you liked this article."> <img class="colorbox-1183"  src="http://leobalter.net/wp-content/plugins/twitter-plugin/images/twitt.gif" alt="Twitt" /> </a></div><h3> <a name="sites-de-referência" class="anchor" href="#sites-de-refer%C3%AAncia"></a>Sites de referência:</h3><p><a href="https://wiki.mozilla.org/Gaia/Hacking#Building_B2G">https://wiki.mozilla.org/Gaia/Hacking#Building_B2G</a></p><p><a href="https://developer.mozilla.org/en/Linux_Build_Prerequisites">https://developer.mozilla.org/en/Linux_Build_Prerequisites</a></p><h3> <a name="nota" class="anchor" href="#nota"></a>Nota:</h3><p>É preferencial que o Linux utilizado seja a versão de 32 bits, mas isso não impede que você utilize uma versão de 64 bits. Nesse caso, você pode não ter uma resposta ideal dos processos desse roteiro.</p><h2> <a name="da-pasta-usuário-" class="anchor" href="#da-pasta-usu%C3%A1rio-"></a>Da pasta usuário (~):</h2><div class="wp_syntax"><div class="code"><pre class="shell" style="font-family:monospace;">hg clone http://hg.mozilla.org/mozilla-central mozilla-central
git clone https://github.com/andreasgal/gaia gaia</pre></div></div><p>OBS: o mozilla-central demora um pouco, aguarde.</p><p>Se não tiver o hg (mercurial) ou o git, instale-os via apt-get com <code>sudo apt-get install git-core mercurial</code>, etc</p><h3> <a name="atualização" class="anchor" href="#atualiza%C3%A7%C3%A3o"></a>Atualização</h3><p>Lembre-se sempre de atualizar seus repositórios quando for tentar novas builds.</p><p>Para atualizar o <strong>mozilla central</strong> vá até a sua pasta e entre com os comandos:</p><div class="wp_syntax"><div class="code"><pre class="shell" style="font-family:monospace;">hg pull
hg update</pre></div></div><p>Para atualizar o <strong>gaia</strong> vá até a sua pasta e entre com os comandos:</p><div class="wp_syntax"><div class="code"><pre class="shell" style="font-family:monospace;">git fetch
git pull origin master</pre></div></div><h2> <a name="dependências-para-o-ubuntu" class="anchor" href="#depend%C3%AAncias-para-o-ubuntu"></a>Dependências para o Ubuntu:</h2><p>Há algumas dependências para o build do mozilla-central no Ubuntu. Uma lista completa para outras versões do Linux pode ser vista na <a href="https://developer.mozilla.org/en/Linux_Build_Prerequisites">MDN &#8211; Linux Build Prerequisites</a>.</p><p>Segue um comando para instalar algumas que consegui identificar:</p><div class="wp_syntax"><div class="code"><pre class="shell" style="font-family:monospace;">sudo apt-get build-dep firefox
sudo apt-get install autoconf2.13 build-essencial yasm libgtk2.0-dev mesa-common-dev libasound2-dev libdbus-glib-1-dev gconf2 libgconf2-dev libnotify-dev curl libcurl4-openssl-dev libiw-dev libxt-dev</pre></div></div><h3> <a name="autoconf-213" class="anchor" href="#autoconf-213"></a>Autoconf 2.13</h3><p>O mozilla-central requer a versão 2.13 do Autoconf, não funciona com versões diferentes, mesmo que posteriores. Para utilizar a versão correta você pode recorrer a 2 meios:</p><ul><li>O primeiro é adicionando a seguinte linha ao seu <code>.profile</code>:</li></ul><div class="wp_syntax"><div class="code"><pre class="shell" style="font-family:monospace;">export AUTOCONF=autoconf2.13</pre></div></div><ul><li>A outra opção &#8211; mais limpa &#8211; é adicionar a seguinte linha ao seu arquivo <code>mozconfig</code> (mais informações sobre esse arquivo logo abaixo):</li></ul><div class="wp_syntax"><div class="code"><pre class="shell" style="font-family:monospace;">mk_add_options AUTOCONF=autoconf2.13</pre></div></div><p>Vou considerar essa opção como a preferencial e manter ela.</p><h2> <a name="criação-do-mozconfig" class="anchor" href="#cria%C3%A7%C3%A3o-do-mozconfig"></a>Criação do MozConfig:</h2><p>na pasta do ~/mozilla-central criei um arquivo <code>mozconfig</code> com o seguinte conteúdo:</p><div class="wp_syntax"><div class="code"><pre class="shell" style="font-family:monospace;">mk_add_options AUTOCONF=autoconf2.13
&nbsp;
mk_add_options MOZ_OBJDIR=../b2g-build
mk_add_options MOZ_MAKE_FLAGS=&quot;-j9 -s&quot;
&nbsp;
ac_add_options --enable-application=b2g
ac_add_options --disable-libjpeg-turbo
&nbsp;
# This option is required if you want to be able to run Gaia's tests
ac_add_options --enable-tests
&nbsp;
# turn on mozTelephony/mozSms interfaces
# Only turn this line on if you actually have a dev phone
# you want to forward to. If you get crashes at startup,
# make sure this line is commented.
ac_add_options --enable-b2g-ril</pre></div></div><p>Note que essa última linha pode ser comentada se começar a ter crashes no startup do B2G. Não tive nenhum problema com ou sem o uso dessa opção (fiz duas builds diferentes).</p><h2> <a name="build-do-mozilla-central" class="anchor" href="#build-do-mozilla-central"></a>Build do mozilla-central</h2><p>Faça o build com o seguinte comando:</p><p><code>make -f client.mk build</code></p><p>Aguarde, pois vai demorar.</p><h2> <a name="build-do-gaia" class="anchor" href="#build-do-gaia"></a>Build do Gaia</h2><p>Agora é hora de fazer o build do Gaia. Vá até a pasta onde ele foi instalado. Por exemplo, a minha foi a <code>~/gaia</code>.</p><p>O build do Gaia é rápido:</p><p><code>make</code></p><p>O processo vai gerar uma pasta <code>profile</code> dentro do Gaia que vamos utilizar mais a frente.</p><h2> <a name="arquivo-hosts" class="anchor" href="#arquivo-hosts"></a>Arquivo Hosts</h2><p>O perfil do Gaia cria um serviço web e você precisa adicionar sua máquina para os domínios e subdomínios chamados.</p><p>Logo, modifique o seu <code>/etc/hosts</code> como root e inclua a seguinte linha:</p><div class="wp_syntax"><div class="code"><pre class="shell" style="font-family:monospace;">127.0.0.1     gaiamobile.org 
127.0.0.1     system.gaiamobile.org
127.0.0.1     homescreen.gaiamobile.org
127.0.0.1     dialer.gaiamobile.org 
127.0.0.1     sms.gaiamobile.org 
127.0.0.1     browser.gaiamobile.org 
127.0.0.1     maps.gaiamobile.org 
127.0.0.1     camera.gaiamobile.org
127.0.0.1     gallery.gaiamobile.org
127.0.0.1     video.gaiamobile.org 
127.0.0.1     market.gaiamobile.org
127.0.0.1     music.gaiamobile.org 
127.0.0.1     settings.gaiamobile.org
127.0.0.1     clock.gaiamobile.org
127.0.0.1     crystalskull.gaiamobile.org
127.0.0.1     penguinpop.gaiamobile.org
127.0.0.1     towerjelly.gaiamobile.org
127.0.0.1     wikipedia.gaiamobile.org
127.0.0.1     cnn.gaiamobile.org 
127.0.0.1     bbc.gaiamobile.org 
127.0.0.1     nytimes.gaiamobile.org 
127.0.0.1     calculator.gaiamobile.org</pre></div></div><h2> <a name="execução-do-b2g-desktop-e-gaia" class="anchor" href="#execu%C3%A7%C3%A3o-do-b2g-desktop-e-gaia"></a>Execução do B2G Desktop e Gaia</h2><p>Após os builds feitos, chame o browser simulador do B2G para abrir a partir do perfil do Gaia:</p><p><code>~/b2g-build/dist/bin/b2g -profile ~/gaia/profile</code></p><p>Lembre-se que os diretórios <code>~/b2g-build</code> e <code>~/gaia</code> são de sua escolha e podem ser diferentes nesse processo.</p><p>Se tudo estiver ok uma janela com o emulador do <strong>Boot2Gecko</strong> deve se abrir. Divirta-se!</p> <nav><header><h1>Leia Tamb&eacute;m:</h1></header><ul class="simPosts"><li><a href='http://leobalter.net/desenvolvimento/instalacao-do-b2g-desktop-e-do-gaia-no-mac-osx/' rel='bookmark' title='Instalação do B2G Desktop e do Gaia no Mac OS/X'>Instalação do B2G Desktop e do Gaia no Mac OS/X</a></li><li><a href='http://leobalter.net/eventos/mozcamplatam-2012/' rel='bookmark' title='MozCampLATAM 2012'>MozCampLATAM 2012</a></li><li><a href='http://leobalter.net/descompressao/mozilla-planeja-lancar-firefox-4-em-novembro-de-2010/' rel='bookmark' title='Mozilla planeja lançar Firefox 4 em Novembro de 2010'>Mozilla planeja lançar Firefox 4 em Novembro de 2010</a></li></ul></nav><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/leobalter?a=I6s8FhQfVjw:ZKLAxVDnvtk:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/leobalter?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/leobalter?a=I6s8FhQfVjw:ZKLAxVDnvtk:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/leobalter?i=I6s8FhQfVjw:ZKLAxVDnvtk:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/leobalter?a=I6s8FhQfVjw:ZKLAxVDnvtk:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/leobalter?i=I6s8FhQfVjw:ZKLAxVDnvtk:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/leobalter?a=I6s8FhQfVjw:ZKLAxVDnvtk:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/leobalter?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/leobalter/~4/I6s8FhQfVjw" height="1" width="1"/>]]></content:encoded> <wfw:commentRss>http://leobalter.net/desenvolvimento/instalacao-do-b2g-desktop-e-do-gaia-no-ubuntu-linux/feed/</wfw:commentRss> <slash:comments>3</slash:comments> <feedburner:origLink>http://leobalter.net/desenvolvimento/instalacao-do-b2g-desktop-e-do-gaia-no-ubuntu-linux/</feedburner:origLink></item> <item><title>Instalação do B2G Desktop e do Gaia no Mac OS/X</title><link>http://feedproxy.google.com/~r/leobalter/~3/zhnHO7FZ8gQ/</link> <comments>http://leobalter.net/desenvolvimento/instalacao-do-b2g-desktop-e-do-gaia-no-mac-osx/#comments</comments> <pubDate>Thu, 03 May 2012 01:45:14 +0000</pubDate> <dc:creator>Leo Balter</dc:creator> <category><![CDATA[B2G]]></category> <category><![CDATA[Desenvolvimento]]></category> <category><![CDATA[Mozilla]]></category> <category><![CDATA[Gaia]]></category> <category><![CDATA[MacOS]]></category><guid isPermaLink="false">http://leobalter.net/?p=1172</guid> <description><![CDATA[Provavelmente no final de 2012 ou início de 2013 vamos ter o lançamento do Boot2Gecko, o sistema operacional mobile da Mozilla que é 100% open source e tem como plataforma apenas a Web. É um projeto de encher os olhos de quem trabalha com desenvolvimento web. Já podemos fazer alguns testes e criar aplicativos para [...]]]></description> <content:encoded><![CDATA[<div class="twttr_button"> <a href="http://twitter.com/share?url=http://leobalter.net/desenvolvimento/instalacao-do-b2g-desktop-e-do-gaia-no-mac-osx/&text=Instalação do B2G Desktop e do Gaia no Mac OS/X" target="_blank" title="Click here if you liked this article."> <img class="colorbox-1172"  src="http://leobalter.net/wp-content/plugins/twitter-plugin/images/twitt.gif" alt="Twitt" /> </a></div><p><img src="http://leobalter.net/assets/B2G1.png" alt="Screenshot do B2G Desktop" title="B2G Desktop" width="238" height="366" class="alignright size-full wp-image-1177 colorbox-1172" /></p><p>Provavelmente no final de 2012 ou início de 2013 vamos ter o lançamento do <a href="https://wiki.mozilla.org/B2G" title="Boot2Gecko">Boot2Gecko</a>, o sistema operacional mobile da Mozilla que é 100% open source e tem como plataforma apenas a Web. É um projeto de encher os olhos de quem trabalha com desenvolvimento web.</p><p>Já podemos fazer alguns testes e criar aplicativos para o <strong>B2G</strong>, uma forma de fazer isso, com pouco custo, é instalar o <strong>B2G Desktop</strong>, que é &#8211; de certa forma &#8211; uma versão do Firefox que emula o sistema, afinal, o que temos por aí é <strong>Web</strong>.</p><p>Fui experimentar esse processo de instalação no meu Mac e resolvi relatar cada passo que fiz para obter sucesso. Meu planejamento é que em breve faça o mesmo guia no <strong>Linux</strong>.</p><p>Se interessar, podem também acompanhar o <a href="https://gist.github.com/2574765">gist</a> onde fiz esse mini tutorial.</p><h3>Site de referência:</h3><p><a href="https://wiki.mozilla.org/Gaia/Hacking#Building_B2G">https://wiki.mozilla.org/Gaia/Hacking#Building_B2G</a></p><h3>Primeiros passos:</h3><p>Da pasta usuário (~):</p><div class="wp_syntax"><div class="code"><pre class="shell" style="font-family:monospace;">hg clone http://hg.mozilla.org/mozilla-central mozilla-central
git clone https://github.com/andreasgal/gaia gaia</pre></div></div><p>OBS: o mozilla-central demora muito, aguarde alguns instantes.</p><p>Se ainda não tiver o <strong>hg</strong> (<strong>mercurial</strong>) ou o <strong>git</strong> instalados, instale-os via <a href="https://github.com/mxcl/homebrew/wiki/installation" title="Guia em inglês de instalação do Homebrew" target="_blank">Homebrew</a> com <code>brew install hg</code>, etc</p><h4>Dependências para o Mac OS X:</h4><p>Há algumas dependências para o Mac OS X para fazer o build do <strong>mozilla-central</strong> como visto em <a href="https://developer.mozilla.org/en/Mac_OS_X_Build_Prerequisites" target="_blank">https://developer.mozilla.org/en/Mac_OS_X_Build_Prerequisites</a>, entre elas o <code>yasm</code> e o <code>libidl</code></p><p>Instale-as também com o Homebrew:</p><div class="wp_syntax"><div class="code"><pre class="shell" style="font-family:monospace;">brew install yasm libidl</pre></div></div><p>Outra dependência peculiar é a versão <strong>2.13</strong> do <strong>autoconf</strong>, você pode obter mais uma vez pelo Homebrew:</p><div class="wp_syntax"><div class="code"><pre class="shell" style="font-family:monospace;">brew install https://raw.github.com/Homebrew/homebrew-versions/master/autoconf213.rb</pre></div></div><h3>Criação do MozConfig:</h3><p>na pasta do <code>~/mozilla-central</code> criei um arquivo <code>mozconfig</code> com o seguinte conteúdo:</p><div class="wp_syntax"><div class="code"><pre class="shell" style="font-family:monospace;">mk_add_options MOZ_OBJDIR=../b2g-build
mk_add_options MOZ_MAKE_FLAGS=&quot;-j9 -s&quot;
&nbsp;
ac_add_options --enable-application=b2g
ac_add_options --disable-libjpeg-turbo
&nbsp;
# This option is required if you want to be able to run Gaia's tests
ac_add_options --enable-tests
&nbsp;
# turn on mozTelephony/mozSms interfaces
# Only turn this line on if you actually have a dev phone
# you want to forward to. If you get crashes at startup,
# make sure this line is commented.
ac_add_options --enable-b2g-ril</pre></div></div><p>Note que essa última linha <em>pode ser comentada</em> se começar a ter crashes no startup do <strong>B2G</strong>. Não tive nenhum problema com ou sem o uso dessa opção (fiz duas builds diferentes).</p><h3>Build do mozilla-central</h3><p>Faça o build com o seguinte comando:</p><div class="wp_syntax"><div class="code"><pre class="shell" style="font-family:monospace;">make -f client.mk build</pre></div></div><p>Aguarde, pois vai demorar (<em>mais de uma hora</em>).</p><h3>Build do Gaia</h3><p>Agora é hora de fazer o build do <strong>Gaia</strong>. Vá até a pasta onde ele foi instalado. Por exemplo, a minha foi a <code>~/gaia</code>.</p><p>O build do <strong>Gaia</strong> é rápido, mas tive problemas na inicialização que resolvi adicionando um valor para a palavra <code>DEBUG</code>, antes de executar o <code>make</code>, então recomendo o seguinte para fazer o build do Gaia:</p><div class="wp_syntax"><div class="code"><pre class="shell" style="font-family:monospace;">DEBUG=1 make</pre></div></div><p>O processo vai gerar uma pasta profile dentro do <strong>Gaia</strong> que vamos utilizar mais a frente.</p><h3>Arquivo Hosts</h3><p>O perfil do <strong>Gaia</strong> cria um serviço web e você precisa adicionar sua máquina para os domínios e subdomínios chamados.</p><p>Logo, modifique o seu <code>/etc/hosts</code> como root e inclua as seguintes linhas:</p><div class="wp_syntax"><div class="code"><pre class="shell" style="font-family:monospace;">127.0.0.1     gaiamobile.org 
127.0.0.1     homescreen.gaiamobile.org
127.0.0.1     dialer.gaiamobile.org 
127.0.0.1     sms.gaiamobile.org 
127.0.0.1     browser.gaiamobile.org 
127.0.0.1     maps.gaiamobile.org 
127.0.0.1     camera.gaiamobile.org
127.0.0.1     gallery.gaiamobile.org
127.0.0.1     video.gaiamobile.org 
127.0.0.1     market.gaiamobile.org
127.0.0.1     music.gaiamobile.org 
127.0.0.1     settings.gaiamobile.org
127.0.0.1     clock.gaiamobile.org
127.0.0.1     crystalskull.gaiamobile.org
127.0.0.1     penguinpop.gaiamobile.org
127.0.0.1     towerjelly.gaiamobile.org
127.0.0.1     wikipedia.gaiamobile.org
127.0.0.1     cnn.gaiamobile.org 
127.0.0.1     bbc.gaiamobile.org 
127.0.0.1     nytimes.gaiamobile.org 
127.0.0.1     calculator.gaiamobile.org</pre></div></div><p>No OS/X o arquivo hosts não aceita vários domínios em uma mesma linha, logo, é preciso quebrar em linhas diferentes como no exemplo acima.</p><h3>Execução do B2G Desktop e Gaia</h3><p>Após os builds feitos, chame o browser simulador do <strong>B2G</strong> para abrir a partir do perfil do <strong>Gaia</strong>:</p><div class="wp_syntax"><div class="code"><pre class="shell" style="font-family:monospace;">../b2g-build/dist/B2G.app/Contents/MacOS/b2g -profile ~/gaia/profile</pre></div></div><p>Lembre-se que os diretórios <code>~/b2g-build</code> e <code>~/gaia</code> são de sua escolha e podem ser diferentes nesse processo.</p><p>Provavelmente virá a seguinte resposta:</p><div class="wp_syntax"><div class="code"><pre class="shell" style="font-family:monospace;">Opened socket on 4242
======================= webapi+apps.js ======================= 
DataCallSettings - ril.data.enabled:falseDataCallSettings - ril.data.roaming.enabled:falseDataCallSettings - ril.data.apn:DataCallSettings - ril.data.user:DataCallSettings - ril.data.passwd:</pre></div></div><p>Não tem que inserir password, simplesmente <em>alterne as janelas abertas para abrir</em> o <strong>B2G Desktop</strong> e divirta-se.</p> <nav><header><h1>Leia Tamb&eacute;m:</h1></header><ul class="simPosts"><li><a href='http://leobalter.net/desenvolvimento/instalacao-do-b2g-desktop-e-do-gaia-no-ubuntu-linux/' rel='bookmark' title='Instalação do B2G Desktop e do Gaia no Ubuntu (Linux)'>Instalação do B2G Desktop e do Gaia no Ubuntu (Linux)</a></li><li><a href='http://leobalter.net/desenvolvimento/dados-extras-nas-funcoes-de-callback-de-eventos-no-jquery/' rel='bookmark' title='Dados extras nas funções de callback de eventos no jQuery'>Dados extras nas funções de callback de eventos no jQuery</a></li><li><a href='http://leobalter.net/desenvolvimento/datejs-a-melhor-biblioteca-js-de-manipulacao-de-datas/' rel='bookmark' title='Datejs &#8211; A melhor biblioteca JS de manipulação de datas'>Datejs &#8211; A melhor biblioteca JS de manipulação de datas</a></li></ul></nav><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/leobalter?a=zhnHO7FZ8gQ:FShIks-3HAk:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/leobalter?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/leobalter?a=zhnHO7FZ8gQ:FShIks-3HAk:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/leobalter?i=zhnHO7FZ8gQ:FShIks-3HAk:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/leobalter?a=zhnHO7FZ8gQ:FShIks-3HAk:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/leobalter?i=zhnHO7FZ8gQ:FShIks-3HAk:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/leobalter?a=zhnHO7FZ8gQ:FShIks-3HAk:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/leobalter?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/leobalter/~4/zhnHO7FZ8gQ" height="1" width="1"/>]]></content:encoded> <wfw:commentRss>http://leobalter.net/desenvolvimento/instalacao-do-b2g-desktop-e-do-gaia-no-mac-osx/feed/</wfw:commentRss> <slash:comments>2</slash:comments> <feedburner:origLink>http://leobalter.net/desenvolvimento/instalacao-do-b2g-desktop-e-do-gaia-no-mac-osx/</feedburner:origLink></item> <item><title>MozCampLATAM 2012</title><link>http://feedproxy.google.com/~r/leobalter/~3/CrCJ64jKcrI/</link> <comments>http://leobalter.net/eventos/mozcamplatam-2012/#comments</comments> <pubDate>Wed, 25 Apr 2012 03:10:20 +0000</pubDate> <dc:creator>Leo Balter</dc:creator> <category><![CDATA[Eventos]]></category> <category><![CDATA[mozilla]]></category><guid isPermaLink="false">http://leobalter.net/?p=1167</guid> <description><![CDATA[Nesse último fim de semana, dias 21 e 22 de Abril, houve o MozCampLATAM 2012. Um encontro com vários Mozillians da América Latina e também pessoas de muitos outros cantos do mundo. Eu não imaginava o quanto seria incrível! Conheci muitas pessoas que carregam consigo a ideia de manter uma web para todos, com ferramentas [...]]]></description> <content:encoded><![CDATA[<div class="twttr_button"> <a href="http://twitter.com/share?url=http://leobalter.net/eventos/mozcamplatam-2012/&text=MozCampLATAM 2012" target="_blank" title="Click here if you liked this article."> <img class="colorbox-1167"  src="http://leobalter.net/wp-content/plugins/twitter-plugin/images/twitt.gif" alt="Twitt" /> </a></div><p>Nesse último fim de semana, dias 21 e 22 de Abril, houve o <a href="https://wiki.mozilla.org/MozCampLATAM2012" title="site do MozCampLATAM 2012">MozCampLATAM 2012</a>. Um encontro com vários <a href="https://mozillians.org/pt-BR/" title="Diretório da comunidade Mozillians">Mozillians</a> da América Latina e também pessoas de muitos outros cantos do mundo.</p><p>Eu não imaginava o quanto seria incrível! Conheci muitas pessoas que carregam consigo a ideia de manter uma web para todos, com ferramentas que permitam a inclusão de qualquer pessoa, sem qualquer discriminação ou sem quaisquer barreiras sociais.</p><p>O evento me fez voltar com empolgação total para colaborar cada vez mais com projetos da Mozilla, além de ter me alimentado de ideias sobre outros projetos e outras formas de colaborar.</p><p>Criei um álbum no Flickr com fotos desse evento sensacional.</p><p><a href="http://www.flickr.com//photos/leobalter/sets/72157629890595367/show/" title="Galeria de fotos no flickr sobre MozCampLATAM 2012">http://www.flickr.com//photos/leobalter/sets/72157629890595367/show/</a></p> <nav><header><h1>Leia Tamb&eacute;m:</h1></header><ul class="simPosts"><li><a href='http://leobalter.net/desenvolvimento/dados-extras-nas-funcoes-de-callback-de-eventos-no-jquery/' rel='bookmark' title='Dados extras nas funções de callback de eventos no jQuery'>Dados extras nas funções de callback de eventos no jQuery</a></li><li><a href='http://leobalter.net/tecnologia/ajax-crossdomain-com-jquery-e-jsonp/' rel='bookmark' title='Ajax CrossDomain com jQuery e JSONP'>Ajax CrossDomain com jQuery e JSONP</a></li><li><a href='http://leobalter.net/eventos/jquery-e-html-5-na-semana-da-computacao-da-uff-2010/' rel='bookmark' title='jQuery e HTML 5 na Semana da Computação da UFF 2010'>jQuery e HTML 5 na Semana da Computação da UFF 2010</a></li></ul></nav><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/leobalter?a=CrCJ64jKcrI:uUqHg_jZo5w:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/leobalter?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/leobalter?a=CrCJ64jKcrI:uUqHg_jZo5w:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/leobalter?i=CrCJ64jKcrI:uUqHg_jZo5w:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/leobalter?a=CrCJ64jKcrI:uUqHg_jZo5w:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/leobalter?i=CrCJ64jKcrI:uUqHg_jZo5w:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/leobalter?a=CrCJ64jKcrI:uUqHg_jZo5w:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/leobalter?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/leobalter/~4/CrCJ64jKcrI" height="1" width="1"/>]]></content:encoded> <wfw:commentRss>http://leobalter.net/eventos/mozcamplatam-2012/feed/</wfw:commentRss> <slash:comments>0</slash:comments> <feedburner:origLink>http://leobalter.net/eventos/mozcamplatam-2012/</feedburner:origLink></item> <item><title>JavaScript e linguagens de pré compilação</title><link>http://feedproxy.google.com/~r/leobalter/~3/WSy--JNN3oo/</link> <comments>http://leobalter.net/desenvolvimento/javascript-e-linguagens-de-pre-compilacao/#comments</comments> <pubDate>Fri, 06 Jan 2012 13:28:10 +0000</pubDate> <dc:creator>Leo Balter</dc:creator> <category><![CDATA[Desenvolvimento]]></category> <category><![CDATA[api]]></category> <category><![CDATA[coffescript]]></category> <category><![CDATA[dart]]></category> <category><![CDATA[ecma6]]></category> <category><![CDATA[javascript]]></category> <category><![CDATA[padrões de projeto]]></category> <category><![CDATA[ruby]]></category><guid isPermaLink="false">http://leobalter.net/?p=1157</guid> <description><![CDATA[Eu sei que JavaScript não é uma linguagem que vai agradar todo mundo, mas ela é a linguagem que roda nativamente em qualquer browser, com uma performance que não deixa nada a desejar. O que poderiam reclamar do JavaScript seria no máximo a sintaxe, mas particularmente é questão de gosto. Problemas? Todas as linguagens tem, [...]]]></description> <content:encoded><![CDATA[<div class="twttr_button"> <a href="http://twitter.com/share?url=http://leobalter.net/desenvolvimento/javascript-e-linguagens-de-pre-compilacao/&text=JavaScript e linguagens de pré compilação" target="_blank" title="Click here if you liked this article."> <img class="colorbox-1157"  src="http://leobalter.net/wp-content/plugins/twitter-plugin/images/twitt.gif" alt="Twitt" /> </a></div><p>Eu sei que JavaScript não é uma linguagem que vai agradar todo mundo, mas ela é a linguagem que roda nativamente em qualquer browser, com uma performance que não deixa nada a desejar.</p><p>O que poderiam reclamar do JavaScript seria no máximo a sintaxe, mas particularmente é questão de gosto. Problemas? Todas as linguagens tem, mas como todas que tem uma boa comunidade ativa ganham melhorias e novas features bem interessantes, assim como as APIs do HTML5 que já estão por aí e o ECMAScript 6 que vai trazer ótimas novidades.</p><p>Mesmo considerando toda a questão de gostos pessoais &#8211; e respeito muito isso &#8211; ainda acho que não podemos fugir da busca pela qualidade para atender uma vontade individual.</p><p>Ou seja, assim como para fazermos o melhor não deixamos de escrever em Java para apps de Android, em Objective-C para apps de iPhone, em Ruby para apps em Rails, utilizar qualquer outra pré-linguagem que compile para JavaScript para execução em Browser é algo que não parece ser a melhor opção.</p><p>A melhor linguagem que pode ser compilada para JavaScript é o próprio JavaScript. Tenho certeza das minhas interações pelo código e da qualidade do mesmo, assim como posso encontrar outro profissional bom na linguagem para entender o que está acontecendo. Estariamos falando da mesma linguagem e a qualidade no código seria um facilitador para essa colaboração.</p><p>Outro ponto que acredito ser crucial: não somos únicos. Quando um programador sai da empresa, morre ou esteja em qualquer situação em que não escreva mais o código de determinada aplicação ele simplesmente não leva o código junto com ele, a menos que aquilo seja intencional. O legado de um código é ensinar para uma pessoa nova aquilo o que está acontecendo. Se eu preciso de um novo profissional quando tenho um aplicativo em CoffeScript qual linguagem eu devo exigir dele? CoffeScript, Javascript ou as duas?</p><p>O dia que encontrar um profissional que saiba somente CoffeScript eu vou acreditar que o mesmo é totalmente incompleto, que teria o mesmo nível de quem aprendeu apenas pseudo-código, não me importa o tempo que ele tenha de experiência. Como ele vai entender a real situação do meu aplicativo e todos os pontos que poderíamos melhorar no meu aplicativo? Como ele vai saber se tem ali um JavaScript bem escrito e funcional?</p><p>Em outras palavras, usar linguagens de pré-compilação me parece um verdadeiro eXtreme Go Horse, do tipo que se funcionar está ok, não importa o que está acontecendo no meio do caminho.</p><p>Texto em resposta a: <a href="http://imasters.com.br/artigo/23160/javascript/criar-aplicativos-web-nao-precisa-ser-uma-tarefa-cansativa-e-irritante" title="Artigo sobre JavaScript na iMasters" rel="nofollow">http://imasters.com.br/artigo/23160/javascript/criar-aplicativos-web-nao-precisa-ser-uma-tarefa-cansativa-e-irritante</a></p> <nav><header><h1>Leia Tamb&eacute;m:</h1></header><ul class="simPosts"><li><a href='http://leobalter.net/desenvolvimento/minimizar-codigo-javascript-com-uglifyjs/' rel='bookmark' title='Minimizar código JavaScript com UglifyJS'>Minimizar código JavaScript com UglifyJS</a></li><li><a href='http://leobalter.net/desenvolvimento/funcao-definida-dentro-do-for-no-javascript/' rel='bookmark' title='Função definida dentro do for no Javascript'>Função definida dentro do for no Javascript</a></li><li><a href='http://leobalter.net/desenvolvimento/javascript-variavel-como-funcao-e-objeto/' rel='bookmark' title='Javascript: variável como função e objeto'>Javascript: variável como função e objeto</a></li></ul></nav><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/leobalter?a=WSy--JNN3oo:312RLreKZ04:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/leobalter?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/leobalter?a=WSy--JNN3oo:312RLreKZ04:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/leobalter?i=WSy--JNN3oo:312RLreKZ04:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/leobalter?a=WSy--JNN3oo:312RLreKZ04:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/leobalter?i=WSy--JNN3oo:312RLreKZ04:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/leobalter?a=WSy--JNN3oo:312RLreKZ04:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/leobalter?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/leobalter/~4/WSy--JNN3oo" height="1" width="1"/>]]></content:encoded> <wfw:commentRss>http://leobalter.net/desenvolvimento/javascript-e-linguagens-de-pre-compilacao/feed/</wfw:commentRss> <slash:comments>3</slash:comments> <feedburner:origLink>http://leobalter.net/desenvolvimento/javascript-e-linguagens-de-pre-compilacao/</feedburner:origLink></item> <item><title>Encontro do RioJS e Mozilla Representative</title><link>http://feedproxy.google.com/~r/leobalter/~3/foiOT045y_I/</link> <comments>http://leobalter.net/eventos/encontro-do-riojs-e-mozilla-representative/#comments</comments> <pubDate>Wed, 14 Dec 2011 15:43:50 +0000</pubDate> <dc:creator>Leo Balter</dc:creator> <category><![CDATA[Eventos]]></category> <category><![CDATA[javascript]]></category><guid isPermaLink="false">http://leobalter.net/?p=1149</guid> <description><![CDATA[Nesse último sábado (10 de dezembro de 2011) rolou o último encontro do ano do grupo RioJS, foi também meu primeiro encontro que fui como Representante da Mozilla no Brasil. O evento &#8211; gratuito &#8211; foi um sucesso. A comunidade de desenvolvedores JavaScript finalmente está ganhando expressão aqui no Rio de Janeiro e o pessoal [...]]]></description> <content:encoded><![CDATA[<div class="twttr_button"> <a href="http://twitter.com/share?url=http://leobalter.net/eventos/encontro-do-riojs-e-mozilla-representative/&text=Encontro do RioJS e Mozilla Representative" target="_blank" title="Click here if you liked this article."> <img class="colorbox-1149"  src="http://leobalter.net/wp-content/plugins/twitter-plugin/images/twitt.gif" alt="Twitt" /> </a></div><p>Nesse último sábado (10 de dezembro de 2011) rolou o último encontro do ano do <a href="https://wiki.mozilla.org/Rio.JS_Meetup" title="Página no Mozilla sobre o RioJS" target="_blank">grupo RioJS</a>, foi também meu primeiro encontro que fui como Representante da Mozilla no Brasil.</p><p>O evento &#8211; gratuito &#8211; foi um sucesso. A comunidade de desenvolvedores JavaScript finalmente está ganhando expressão aqui no Rio de Janeiro e o pessoal está super ligado com o que há de novidades. Um fator que também fortalece a comunidade é agnosticismo entre linguagens de programação, não afastando pessoas que programam em x ou y, mas sim vendo o que essa galera tem pra trazer de bom.</p><p>A organização do evento também foi feita pelo Davidson Fellipe &#8211; Globo.com &#8211; que conseguiu na empresa onde trabalha toda a estrutura para que tudo acontecesse perfeitamente. Não tivemos problemas estruturais e ainda ganhamos um ótimo lanche, com certeza a <strong>Globo.com</strong> demonstra um ótimo engajamento no auxílio das comunidades OpenSource e destaco essa atitude em forma de agradecimento.</p><p>Um exemplo foi a apresentação do Breno Oliveira do Estante Virtual, que falou sobre a biblioteca Three.js para manipulação de gráficos em 3D via javascript. Breno, ou Garu como também é conhecido, já havia alertado no início da sua apresentação que ele é desenvolvedor backend, cheio de projetos relacionados ao Perl mas também tem interesse por JavaScript.</p><p>Leo Beto Souza da Marlin também trouxe ideias super importantes sobre acessibilidade com Javascript. O tema é pra ser compreendido por todos os desenvolvedores, muitos não dão muita atenção a isso e podem perder um bom mercado.</p><p>Eu falei sobre o novo DevTools que está sendo feito para o Mozilla Firefox. Mostrei que a ideia não é substituir o Firebug (que não é feito ou mantido pela Mozilla) mas sim trazer um novo, que seja executado nativamente. Foi um barato e a galera curtiu a nova ferramenta que não se apegou tanto nas demais existentes e trouxe coisas novas e bem bacanas.</p><p>O Evandro Golçalves (Globo.com) falou sobre manipulação de templates no JavaScript. A palestra foi a que mais gerou debate entre os presentes, muito construtivo. O pessoal discutiu muito sobre performance, qualidade de código, quantidade de requisições, padrões estruturais.</p><p>Aliás, todas as apresentações geraram debates, todos muito bem aproveitados e que considerei o ponto forte do encontro.</p><p>Durante o Coffeebreak o pessoal levantou o tema sobre o &#8220;Chrome é o novo IE6&#8243;, com as ideias levantadas em um artigo da PCMag: <a href="http://www.pcmag.com/article2/0,2817,2397158,00.asp" title="Is Google Chrome the New IE6? - PCMag" target="_blank">http://www.pcmag.com/article2/0,2817,2397158,00.asp</a></p><p>A galera não satisfeita apenas com as apresentações e debates se posicionou em uma mesa redonda e cada um se apresentou e no meio das apresentações puxávamos alguns tópicos sobre o que tem rolado do Javascript nos dias de hoje, etc. Foi quase uma hora de uma ótima discussão crítica e que revelou os caminhos que a galera está trilhando.</p><p>Um dos caminhos que mais me interessaram, confesso, foi o da galera discutir linguagens de pre-processamento, como o CoffeeScript e o Dart. Falávamos sobre desvantagens gerais da utilização delas. Fica o gancho para o link de um post que saiu essa semana e considerei totalmente pertinente: <a href="http://ryanflorence.com/2011/2012/case-against-coffeescript/" title="A Case Against CoffeeScript" target="_blank">http://ryanflorence.com/2011/2012/case-against-coffeescript/</a>.</p><p>Espero agora poder marcar mais encontros do RioJS e até outros com o apoio da Mozilla, espalhar boas ideias do mundo web é sempre agradável e ainda tem muito trabalho pela frente.</p><p>TODO: links no conteúdo<br /> TODO: links para slides<br /> TODO: fotos</p> <nav><header><h1>Leia Tamb&eacute;m:</h1></header><ul class="simPosts"><li><a href='http://leobalter.net/eventos/javascript-no-braziljs/' rel='bookmark' title='Javascript no BrazilJS'>Javascript no BrazilJS</a></li><li><a href='http://leobalter.net/tecnologia/mozilla-lanca-nova-versao-do-firefox-4-beta-1/' rel='bookmark' title='Mozilla lança nova versão do Firefox 4 beta 1'>Mozilla lança nova versão do Firefox 4 beta 1</a></li><li><a href='http://leobalter.net/descompressao/mozilla-planeja-lancar-firefox-4-em-novembro-de-2010/' rel='bookmark' title='Mozilla planeja lançar Firefox 4 em Novembro de 2010'>Mozilla planeja lançar Firefox 4 em Novembro de 2010</a></li></ul></nav><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/leobalter?a=foiOT045y_I:PSNAc6z94OU:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/leobalter?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/leobalter?a=foiOT045y_I:PSNAc6z94OU:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/leobalter?i=foiOT045y_I:PSNAc6z94OU:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/leobalter?a=foiOT045y_I:PSNAc6z94OU:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/leobalter?i=foiOT045y_I:PSNAc6z94OU:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/leobalter?a=foiOT045y_I:PSNAc6z94OU:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/leobalter?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/leobalter/~4/foiOT045y_I" height="1" width="1"/>]]></content:encoded> <wfw:commentRss>http://leobalter.net/eventos/encontro-do-riojs-e-mozilla-representative/feed/</wfw:commentRss> <slash:comments>4</slash:comments> <feedburner:origLink>http://leobalter.net/eventos/encontro-do-riojs-e-mozilla-representative/</feedburner:origLink></item> <item><title>Escrever Ruby de uma forma melhor, com tipagem ou código mais bonito!</title><link>http://feedproxy.google.com/~r/leobalter/~3/_BEwpZ6C7Oc/</link> <comments>http://leobalter.net/cases/escrever-ruby-de-uma-forma-melhor-com-tipagem-ou-codigo-mais-bonito/#comments</comments> <pubDate>Fri, 11 Nov 2011 13:38:27 +0000</pubDate> <dc:creator>Leo Balter</dc:creator> <category><![CDATA[Cases]]></category> <category><![CDATA[coffescript]]></category> <category><![CDATA[dart]]></category> <category><![CDATA[javascript]]></category> <category><![CDATA[python]]></category> <category><![CDATA[ruby]]></category> <category><![CDATA[troll]]></category><guid isPermaLink="false">http://leobalter.net/?p=1146</guid> <description><![CDATA[Depois das ideias super bacanas que a comunidade Ruby trouxe, de fomentar o CoffeScript para escrever um &#8220;JavaScript&#8221; mais bonito, ou da Google de fazer o Dart para escrever um JavaScript &#8220;tipado&#8221;, resolvi também trabalhar em algo que deixaria o Ruby perfeito. Puby e Juby! São dois projetos distintos mas com propósitos excelentes: Puby No [...]]]></description> <content:encoded><![CDATA[<div class="twttr_button"> <a href="http://twitter.com/share?url=http://leobalter.net/cases/escrever-ruby-de-uma-forma-melhor-com-tipagem-ou-codigo-mais-bonito/&text=Escrever Ruby de uma forma melhor, com tipagem ou código mais bonito!" target="_blank" title="Click here if you liked this article."> <img class="colorbox-1146"  src="http://leobalter.net/wp-content/plugins/twitter-plugin/images/twitt.gif" alt="Twitt" /> </a></div><p>Depois das ideias super bacanas que a comunidade Ruby trouxe, de fomentar o <strong>CoffeScript</strong> para escrever um &#8220;<strong>JavaScript</strong>&#8221; mais bonito, ou da Google de fazer o <strong>Dart</strong> para escrever um JavaScript &#8220;tipado&#8221;, resolvi também trabalhar em algo que deixaria o Ruby perfeito.</p><p><strong>Puby</strong> e <strong>Juby</strong>! São dois projetos distintos mas com propósitos excelentes:</p><h3>Puby</h3><p>No Puby podemos escrever para a plataforma &#8220;Pails&#8221;, ou também &#8220;Puby on Pails&#8221;. A ideia é simples: o desenvolvedor precisa escrever em uma linguagem bonitona, como o Python, e aproveita a plataforma e bacanisse do framework Ruby on Rails.</p><p>Nada de indentação feiona, é importante seguir regras básicas para o código ter uma leitura mais humana.</p><p>Assim, um código onde está escrito:</p><div class="wp_syntax"><div class="code"><pre class="python" style="font-family:monospace;"><span style="color: #ff7700;font-weight:bold;">print</span> <span style="color: #483d8b;">&quot;Hello, World!&quot;</span></pre></div></div><p>é compilado para:</p><div class="wp_syntax"><div class="code"><pre class="ruby" style="font-family:monospace;"><span style="color:#CC0066; font-weight:bold;">puts</span> <span style="color:#996600;">'Hello, World!'</span></pre></div></div><p>Não tem muito mistério, é só saber Ruby e Python que dá certo.</p><h3>Juby</h3><p>Já no Juby é pra dar maior robustez aos projetos feitos em Rails, assim temos o framework &#8220;Juby on Jails&#8221;.</p><p>A ideia é trazermos todo o conceito de classes e tipagens obrigatórias do Java para o Ruby, além de métodos e própriedades privadas, estáticas, e outras coisas a mais que tornam o Java tão performático.</p><p>Assim um código com:</p><div class="wp_syntax"><div class="code"><pre class="java" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">class</span> HelloWorldConsole  
<span style="color: #009900;">&#123;</span>  
    <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">static</span> <span style="color: #000066; font-weight: bold;">void</span> main<span style="color: #009900;">&#40;</span><span style="color: #003399;">String</span> args<span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span>  
    <span style="color: #009900;">&#123;</span>  
        <span style="color: #003399;">System</span>.<span style="color: #006633;">out</span>.<span style="color: #006633;">println</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Hello, World!&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>  
    <span style="color: #009900;">&#125;</span>  
<span style="color: #009900;">&#125;</span></pre></div></div><p>é compilado para:</p><div class="wp_syntax"><div class="code"><pre class="ruby" style="font-family:monospace;"><span style="color:#CC0066; font-weight:bold;">puts</span> <span style="color:#996600;">'Hello, World!'</span></pre></div></div><p>Traz sempre uma maior liberdade para o desenvolvedor e inclusive da pra trazer boas bibliotecas e elementos de frameworks do Java para o Rails, como o Struts, Hybernante, JSF, etc.</p><h3>Resultado:</h3><p>Todo o código é convertido para Ruby, isso pode ocorrer em um momento de deploy, assim, não compromete a performance e boa escrita do seu código, até porque código sempre é bem escrito em python e robusto em Java.</p><p>A comunidade Ruby tem muito mais a ganhar de colaboração pois pode ter ajuda massiva da galera de Java e Python e assim criar mais apps interessantes.</p><p>Assim que tiver mais resultados efetivos, vou publicar o código que já está no github.com</p> <nav><header><h1>Leia Tamb&eacute;m:</h1></header><ul class="simPosts"><li><a href='http://leobalter.net/desenvolvimento/minimizar-codigo-javascript-com-uglifyjs/' rel='bookmark' title='Minimizar código JavaScript com UglifyJS'>Minimizar código JavaScript com UglifyJS</a></li><li><a href='http://leobalter.net/desenvolvimento/compilar-cdigo-em-javascript-google-closure-compiler/' rel='bookmark' title='Compilar código em Javascript &#8211; Google Closure Compiler'>Compilar código em Javascript &#8211; Google Closure Compiler</a></li><li><a href='http://leobalter.net/desenvolvimento/devinrio-2009-eu-vou/' rel='bookmark' title='DevInRio 2009 &#8211; Eu vou'>DevInRio 2009 &#8211; Eu vou</a></li></ul></nav><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/leobalter?a=_BEwpZ6C7Oc:CiB-5tgjnFQ:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/leobalter?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/leobalter?a=_BEwpZ6C7Oc:CiB-5tgjnFQ:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/leobalter?i=_BEwpZ6C7Oc:CiB-5tgjnFQ:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/leobalter?a=_BEwpZ6C7Oc:CiB-5tgjnFQ:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/leobalter?i=_BEwpZ6C7Oc:CiB-5tgjnFQ:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/leobalter?a=_BEwpZ6C7Oc:CiB-5tgjnFQ:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/leobalter?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/leobalter/~4/_BEwpZ6C7Oc" height="1" width="1"/>]]></content:encoded> <wfw:commentRss>http://leobalter.net/cases/escrever-ruby-de-uma-forma-melhor-com-tipagem-ou-codigo-mais-bonito/feed/</wfw:commentRss> <slash:comments>4</slash:comments> <feedburner:origLink>http://leobalter.net/cases/escrever-ruby-de-uma-forma-melhor-com-tipagem-ou-codigo-mais-bonito/</feedburner:origLink></item> <item><title>Fim do Flash para dispositivos móveis e fim total do Silverlight</title><link>http://feedproxy.google.com/~r/leobalter/~3/BNR-s4tgA_E/</link> <comments>http://leobalter.net/descompressao/fim-do-flash-para-dispositivos-moveis-e-fim-total-do-silverlight/#comments</comments> <pubDate>Thu, 10 Nov 2011 16:02:59 +0000</pubDate> <dc:creator>Leo Balter</dc:creator> <category><![CDATA[Descompressão]]></category> <category><![CDATA[Adobe]]></category> <category><![CDATA[Apple]]></category> <category><![CDATA[Flash]]></category> <category><![CDATA[html5]]></category><guid isPermaLink="false">http://leobalter.net/?p=1143</guid> <description><![CDATA[A comunidade que luta pelo desenvolvimento livre da Web pode comemorar. O Flash, da Adobe, será descontinuado para dispositivos móveis, sinal que realmente os aparelhos iPhone e iPad da Apple nunca aceitarão essa tecnologia. O motivo dessa recusa pelo Flash era justamente a falta de investimento e falta de amadurecimento do player em relação a [...]]]></description> <content:encoded><![CDATA[<div class="twttr_button"> <a href="http://twitter.com/share?url=http://leobalter.net/descompressao/fim-do-flash-para-dispositivos-moveis-e-fim-total-do-silverlight/&text=Fim do Flash para dispositivos móveis e fim total do Silverlight" target="_blank" title="Click here if you liked this article."> <img class="colorbox-1143"  src="http://leobalter.net/wp-content/plugins/twitter-plugin/images/twitt.gif" alt="Twitt" /> </a></div><p>A comunidade que luta pelo desenvolvimento livre da Web pode comemorar.</p><p>O Flash, da Adobe, será descontinuado para dispositivos móveis, sinal que realmente os aparelhos iPhone e iPad da Apple nunca aceitarão essa tecnologia. O motivo dessa recusa pelo Flash era justamente a falta de investimento e falta de amadurecimento do player em relação a consumo de CPU e Memória nesses aparelhos.</p><p>A Adobe também declarou que vai investir no desenvolvimento em flash para conversão do produto final em HTML5, isso é ótimo, pois mantém ativa a comunidade de desenvolvedores flash, não joga fora anos de estudos que o pessoal se dedicou.</p><p>A parte ruim da notícia é que ao mesmo tempo a Adobe demitiu 750 funcionários, também ontem (09/11/2011).</p><p>Em outro plano, a Microsoft também anunciou ontem que não dará mais continuidade ao Silverlight, produto similar ao Flash.</p><p>Foi uma vitória gigantesca da Open Web.</p><p>Com certeza o futuro indica que vamos ter maior investimento da Adobe no HTML 5, que é um padrão aberto e assim permitir uma evolução muito mais interessante da internet.</p> <nav><header><h1>Leia Tamb&eacute;m:</h1></header><ul class="simPosts"><li><a href='http://leobalter.net/descompressao/flash-os-tempos-mudaram/' rel='bookmark' title='Flash, os tempos mudaram.'>Flash, os tempos mudaram.</a></li><li><a href='http://leobalter.net/descompressao/thoughts-on-flash-a-carta-de-steve-jobs-sobre-o-flash/' rel='bookmark' title='Thoughts on Flash &#8211; A carta de Steve Jobs sobre o Flash'>Thoughts on Flash &#8211; A carta de Steve Jobs sobre o Flash</a></li><li><a href='http://leobalter.net/descompressao/voce-esta-pronto-para-o-ipad/' rel='bookmark' title='Você está pronto para o iPad? Ou: seu site está aproveitando as vantagens dos últimos padrões web?'>Você está pronto para o iPad? Ou: seu site está aproveitando as vantagens dos últimos padrões web?</a></li></ul></nav><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/leobalter?a=BNR-s4tgA_E:iYMZtYaPI4c:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/leobalter?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/leobalter?a=BNR-s4tgA_E:iYMZtYaPI4c:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/leobalter?i=BNR-s4tgA_E:iYMZtYaPI4c:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/leobalter?a=BNR-s4tgA_E:iYMZtYaPI4c:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/leobalter?i=BNR-s4tgA_E:iYMZtYaPI4c:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/leobalter?a=BNR-s4tgA_E:iYMZtYaPI4c:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/leobalter?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/leobalter/~4/BNR-s4tgA_E" height="1" width="1"/>]]></content:encoded> <wfw:commentRss>http://leobalter.net/descompressao/fim-do-flash-para-dispositivos-moveis-e-fim-total-do-silverlight/feed/</wfw:commentRss> <slash:comments>4</slash:comments> <feedburner:origLink>http://leobalter.net/descompressao/fim-do-flash-para-dispositivos-moveis-e-fim-total-do-silverlight/</feedburner:origLink></item> </channel> </rss><!-- Served from: leobalter.net @ 2013-04-25 13:51:44 by W3 Total Cache -->
