<?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>Wed, 09 May 2012 16:00:33 +0000</lastBuildDate> <language>en</language> <sy:updatePeriod>hourly</sy:updatePeriod> <sy:updateFrequency>1</sy:updateFrequency> <generator>http://wordpress.org/?v=3.3.2</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>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[<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>
<p><a href="http://feedads.g.doubleclick.net/~a/krKd1XAvZdkkzZUVkLdVN7BKzu4/0/da"><img src="http://feedads.g.doubleclick.net/~a/krKd1XAvZdkkzZUVkLdVN7BKzu4/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/krKd1XAvZdkkzZUVkLdVN7BKzu4/1/da"><img src="http://feedads.g.doubleclick.net/~a/krKd1XAvZdkkzZUVkLdVN7BKzu4/1/di" border="0" ismap="true"></img></a></p><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>1</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[<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>
<p><a href="http://feedads.g.doubleclick.net/~a/9CJYEflru7_--tqzyEtAqmV3UP4/0/da"><img src="http://feedads.g.doubleclick.net/~a/9CJYEflru7_--tqzyEtAqmV3UP4/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/9CJYEflru7_--tqzyEtAqmV3UP4/1/da"><img src="http://feedads.g.doubleclick.net/~a/9CJYEflru7_--tqzyEtAqmV3UP4/1/di" border="0" ismap="true"></img></a></p><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>0</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[<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>
<p><a href="http://feedads.g.doubleclick.net/~a/o6N4b5aWumLg9Ea2zo93ZuFQ5SY/0/da"><img src="http://feedads.g.doubleclick.net/~a/o6N4b5aWumLg9Ea2zo93ZuFQ5SY/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/o6N4b5aWumLg9Ea2zo93ZuFQ5SY/1/da"><img src="http://feedads.g.doubleclick.net/~a/o6N4b5aWumLg9Ea2zo93ZuFQ5SY/1/di" border="0" ismap="true"></img></a></p><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[<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>
<p><a href="http://feedads.g.doubleclick.net/~a/yf7Amw__LBewYdiMp_mEfOZe0HU/0/da"><img src="http://feedads.g.doubleclick.net/~a/yf7Amw__LBewYdiMp_mEfOZe0HU/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/yf7Amw__LBewYdiMp_mEfOZe0HU/1/da"><img src="http://feedads.g.doubleclick.net/~a/yf7Amw__LBewYdiMp_mEfOZe0HU/1/di" border="0" ismap="true"></img></a></p><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[<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>
<p><a href="http://feedads.g.doubleclick.net/~a/vBlJunHoCz7yElPEwGhPDnh6L9E/0/da"><img src="http://feedads.g.doubleclick.net/~a/vBlJunHoCz7yElPEwGhPDnh6L9E/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/vBlJunHoCz7yElPEwGhPDnh6L9E/1/da"><img src="http://feedads.g.doubleclick.net/~a/vBlJunHoCz7yElPEwGhPDnh6L9E/1/di" border="0" ismap="true"></img></a></p><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[<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>
<p><a href="http://feedads.g.doubleclick.net/~a/YSTYJLNOQfncTkpqGmIOJp62t38/0/da"><img src="http://feedads.g.doubleclick.net/~a/YSTYJLNOQfncTkpqGmIOJp62t38/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/YSTYJLNOQfncTkpqGmIOJp62t38/1/da"><img src="http://feedads.g.doubleclick.net/~a/YSTYJLNOQfncTkpqGmIOJp62t38/1/di" border="0" ismap="true"></img></a></p><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[<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>
<p><a href="http://feedads.g.doubleclick.net/~a/ntaQJCoBJiBuxMAAaGH5iGNo-Ks/0/da"><img src="http://feedads.g.doubleclick.net/~a/ntaQJCoBJiBuxMAAaGH5iGNo-Ks/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/ntaQJCoBJiBuxMAAaGH5iGNo-Ks/1/da"><img src="http://feedads.g.doubleclick.net/~a/ntaQJCoBJiBuxMAAaGH5iGNo-Ks/1/di" border="0" ismap="true"></img></a></p><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> <item><title>Minimizar código JavaScript com UglifyJS</title><link>http://feedproxy.google.com/~r/leobalter/~3/hED9yuLhmbM/</link> <comments>http://leobalter.net/desenvolvimento/minimizar-codigo-javascript-com-uglifyjs/#comments</comments> <pubDate>Tue, 18 Oct 2011 21:01:21 +0000</pubDate> <dc:creator>Leo Balter</dc:creator> <category><![CDATA[Cases]]></category> <category><![CDATA[Desenvolvimento]]></category> <category><![CDATA[desempenho]]></category> <category><![CDATA[javascript]]></category> <category><![CDATA[pimpmyjs]]></category><guid isPermaLink="false">http://leobalter.net/?p=1139</guid> <description><![CDATA[Desempenho de FrontEnd é muito importante e deve ser feito através de várias técnicas. Uma delas é pela minimização de código estático entregue ao browser do usuário. E é com essa justificativa que venho apresentar o PimpMyJS. No site do jQuery, por exemplo, encontramos lá uma versão de produção, com comentários e código de leitura [...]]]></description> <content:encoded><![CDATA[<p>Desempenho de FrontEnd é muito importante e deve ser feito através de várias técnicas. Uma delas é pela minimização de código estático entregue ao browser do usuário. E é com essa justificativa que venho apresentar o <a href="http://pimpmyjs.com" title="Interface Web do PimpMyJS" target="_blank">PimpMyJS</a>.</p><p>No site do jQuery, por exemplo, encontramos lá uma versão de <em>produção</em>, com comentários e código de leitura fácil, bem estruturado e com tamanho relativamente grande, além de uma versão de <em>desenvolvimento</em>, sem comentários e código de dificílima leitura humana, normalmente estruturado em um número mínimo de linhas, mas com o tamanho consideravelmente menor que a outra versão.</p><p>Isso não é um trabalho que é feito a mão, não o de criar essas versões de <em>desenvolvimento</em>, ou também chamadas de código <strong>minimizado</strong> ou <strong>comprimido</strong>. Temos várias ferramentas que fazem isso.</p><p>Uma dessas ferramentas que mais me agrada é o <a href="https://github.com/mishoo/UglifyJS" title="Github do UglifyJS" target="_blank">UglifyJS</a>. É feito em JavaScript e pronto para ser executado via NodeJS. Como indicado em sua própria documentação, <strong>o UglifyJS tem um resultado de minimização mais vantajoso que outras ferramentas similares</strong>, como o <em>Google Closure Compiler</em> ou o <em>YUICompiler</em>.</p><p>Há pouco quis criar um <em>webservice</em> que poderia ser utilizado para o retorno dele com o UglifyJS. Daí veio a ideia de criar um site também com uma interface web para pequenos testes. Troquei umas ideias com uns amigos e finalmente tirei o projeto do papel.</p><p>Lancei, então, o <strong><a href="http://pimpmyjs.com" title="Interface Web do PimpMyJS" target="_blank">PimpMyJS</a></strong> com o projeto em aberto no <a href="https://github.com/leobalter/PimpMyCode" title="Github do PimpMyJS" target="_blank">Github</a>.</p><p>O trabalho dele é simples: <strong>você manda um código JavaScript e</strong> escolhe as opções (com pequena documentação na página do Github), <strong>ele devolve pra você o código minimizado</strong>, ou não. Se for marcada a opção &#8220;beautify&#8221;, o código minimizado será <em>expandido</em>.</p><p>A interface web é inspirada no site do <em>JSHint</em>, utilizando o <em>CodeMirror</em> para fazer edição do código &#8220;colorido&#8221; em tempo real, além disso utilizei o <em>Twitter Bootstrap</em> parar não me preocupar muito com a interface enquanto me focava no código. Em breve o amigo Bernard de Luna prometeu uma nova interface e podemos ter um estilo bem bacana.</p><p>Se curtiu, vai lá no Github e me ajude colaborando com o projeto, seja reportando problemas, indicando novas funcionalidades ou botando a mão na massa e trazendo código novo.</p> <nav><header><h1>Leia Tamb&eacute;m:</h1></header><ul class="simPosts"><li><a href='http://leobalter.net/desenvolvimento/javascript-e-linguagens-de-pre-compilacao/' rel='bookmark' title='JavaScript e linguagens de pré compilação'>JavaScript e linguagens de pré compilação</a></li><li><a href='http://leobalter.net/cases/escrever-ruby-de-uma-forma-melhor-com-tipagem-ou-codigo-mais-bonito/' rel='bookmark' title='Escrever Ruby de uma forma melhor, com tipagem ou código mais bonito!'>Escrever Ruby de uma forma melhor, com tipagem ou código mais bonito!</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></ul></nav>
<p><a href="http://feedads.g.doubleclick.net/~a/Fuz94Vbd36YUW4MqlLeToC1jJLg/0/da"><img src="http://feedads.g.doubleclick.net/~a/Fuz94Vbd36YUW4MqlLeToC1jJLg/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/Fuz94Vbd36YUW4MqlLeToC1jJLg/1/da"><img src="http://feedads.g.doubleclick.net/~a/Fuz94Vbd36YUW4MqlLeToC1jJLg/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/leobalter?a=hED9yuLhmbM:WufnQJ4nVf0:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/leobalter?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/leobalter?a=hED9yuLhmbM:WufnQJ4nVf0:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/leobalter?i=hED9yuLhmbM:WufnQJ4nVf0:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/leobalter?a=hED9yuLhmbM:WufnQJ4nVf0:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/leobalter?i=hED9yuLhmbM:WufnQJ4nVf0:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/leobalter?a=hED9yuLhmbM:WufnQJ4nVf0: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/hED9yuLhmbM" height="1" width="1"/>]]></content:encoded> <wfw:commentRss>http://leobalter.net/desenvolvimento/minimizar-codigo-javascript-com-uglifyjs/feed/</wfw:commentRss> <slash:comments>2</slash:comments> <feedburner:origLink>http://leobalter.net/desenvolvimento/minimizar-codigo-javascript-com-uglifyjs/</feedburner:origLink></item> <item><title>Steve Jobs e o mundo Open Source</title><link>http://feedproxy.google.com/~r/leobalter/~3/V2mApaB-Yvo/</link> <comments>http://leobalter.net/descompressao/steve-jobs-e-o-mundo-open-source/#comments</comments> <pubDate>Sun, 09 Oct 2011 15:37:11 +0000</pubDate> <dc:creator>Leo Balter</dc:creator> <category><![CDATA[Descompressão]]></category> <category><![CDATA[Apple]]></category> <category><![CDATA[OpenSource]]></category><guid isPermaLink="false">http://leobalter.net/?p=1134</guid> <description><![CDATA[Há poucos dias, logo após o falecimento de Steve Jobs encontrei um artigo acalorado citando o Steve Jobs como um grande vilão do mundo Open Source, que invés de ajudar, ele simplesmente seria um bloqueio. Vai o link do artigo se quiser ver: A morte de Steve Jobs, o inimigo número um da colaboração. Acredito [...]]]></description> <content:encoded><![CDATA[<p>Há poucos dias, logo após o falecimento de Steve Jobs encontrei um artigo acalorado citando o Steve Jobs como um grande vilão do mundo Open Source, que invés de ajudar, ele simplesmente seria um bloqueio. Vai o link do artigo se quiser ver: <a href="http://www.trezentos.blog.br/?p=6403" target="_blank" rel="nofollow">A morte de Steve Jobs, o inimigo número um da colaboração</a>.</p><p>Acredito que meu comentário foi suficiente pra expressar a opinião e inclusive transformar em um artigo aqui, concluindo com a citação do comentário do <a href="http://twitter.com/roneyb">Roney Belhassof</a> que complementa muita coisa que falei.</p><p>Achei importante transformar os comentários em artigos pelo desvio causado lá no blog de tantos comentários apenas com frases: &#8220;é muito bom&#8221; e vários adjetivos sem pontos críticos. Não queria essa ideia como um ponto perdido no meio.</p><p>Lá vai:</p><h3>meu comentário ao artigo:</h3><blockquote><p>Cara, parece ignorância falar que Jobs simplesmente não contribuiu para o mundo open source, ainda mais que quando se fala esse nome também da impressão que isso significa apenas um outro nome: Linux.</p><p>O sistema operacional utilizado nas máquinas atuais da Apple, desde que passaram a utilizar processadores de padrão Intel, são apenas uma versão do BSD. A Apple colabora constantemente com o desenvolvimento do BSD, um sistema muito mais robusto, rápido e eficiente que uma distro do Linux, e sim, tem suas versões open source (veja FreeBSD e OpenBSD, por exemplo).</p><p>Além disso, você encontra a disposição das mesmas máquinas Apple n ferramentas de desenvolvimento Open Source.</p><p>Veja mais uma, por exemplo: Webkit. O navegador padrão do Mac OS, o Safari, é 100% baseado no Webkit, mesma engine open source utilizada pelo Google Chrome. A Apple também está em constante colaboração no Webkit, assim como também da apoio nos trabalhos da W3C, fortalezando sempre o lema “Web para todos”.</p><p>O hardware da Apple é todo feito com apelos ecológicos, tudo com o selo “verde”. Os produtos vendidos são de qualidade e duram muito mais que 99% de qualquer concorrência. Não vão te vender produtos que causam poluição (no uso e em sua fabriação).</p><p>A Apple não faz diferente de outros fabricantes e distribuidores, exceto pela determinação em só lançar coisas com qualidade que beiram à perfeição na visão de suas gestões. Justo dos produtos os clientes levam a satisfação de atendimento. Um serviço incluso que é excepcional.</p><p>Em termos de pensar também em qualquer pessoa como usuário, todos os produtos atendem regras de acessibilidade, permitindo a utilização por pessoas com deficiências físicas.</p><p>Até que ponto você deve abrir mão e passar a frente aquilo que você produziu? A que ponto isso não vai afetar o seu compromisso com a qualidade?</p><p>Todos querem e merecem conforto a partir de muito trabalho, dessa forma, não importa o quanto a Apple lucrou com suas vendas, ela fez por seu mérito, as pessoas compraram porque confiaram em seus produtos. Se você faz esse discurso para e pensa se você ainda estivesse aqui sem usar seu mouse, ou no seu trabalho em que foi necessário utilizar um iPad (a ponto de comprar um). Por que você antes do discurso não abriu mão de tudo isso? Seria hipocrisia?</p><p>O mundo open source existe, não é melhor porque é formado por uma maioria de humanos comuns que precisam também ter um trabalho que lhes garantam sustento e a dedicação as vezes não termina em primeiro plano. Nessas horas que um trabalho lucrativo faz a gente respirar, descansar e ter mais estímulo para produzir mais, criar mais.</p></blockquote><h3>Comentário do Roney Belhassof</h3><blockquote><p> No meu mundo perfeito o conhecimento é livre e as ferramentas para construí-lo e modelá-lo também são, mas isso não está acontecendo e ao ver seu post e alguns outros temo que realmente jamais acontecerá, que o conhecimento livre simplesmente é incompatível com o espírito humano (ou memético) e que a nossa mente coletiva simplemente não é capaz de construir as bases para o conhecimento livre.</p><p>Jobs nunca foi um obstáculo para o OpenSource, ele apenas fazia seu trabalho com competência. Sabia o que as pessoas precisavam antes delas. Bill Gates também fez seu trabalho ao pegar carona nas ideias do Jobs e ao saber muito bem o que as pessoas queriam.</p><p>A comunidade OpenSource poderia ter lucrado com esses homens, poderia ter absorvido o conhecimento deles para produzir ferramentas que eles jamais poderiam produzir por estarem presos à propriedade intelectual.</p><p>Isso não foi feito…</p><p>Em vez de atribuir a Jobs poderes mágicos para deter o OpenSource e impor sistemas fechados deveríamos nos perguntar porque as pessoas preferem o fechado ao aberto?</p><p>Devíamos nos perguntar porque grandes fabricantes de software que concorrem com a Apple e Microsoft como Adobe, Avid e tantas outras não lançam seus aplicativos em versão Linux? Garanto que não foi pela força do Jobs, mas por perceber que o universo OpenSource é hostil ao mundo de código fechado.</p><p>Lembrem-se que Jobs e Gates foram ao mesmo tempo adversários e parceiros até o final. Outra lição que a comunidade OpenSource poderia aprender.</p><p>A essa altura todas as pequenas empresas como locadoras de vídeo, lan houses, livrarias e restaurantes deviam usar Linux com sistemas de gerenciamento OpenSouce. A Apple tem ZERO de penetração nessas áreas que movimentam um capital enorme.</p><p>No entanto isso não acontece. Já ouvi do pessoal de Lan House que aparentemente a comunidade OpenSource não tem interesse em desenvolver um sistema para eles pois são empresas voltadas ao lucro.</p><p>Sim, lucro. A Terra contemporânea é capitalista.</p><p>Os grandes inimigos do OpenSource não são Gates ou Jobs, o grande inimigo é a cegueira que assola a comunidade e continua levando-a a eleger anticristos para justificar a própria incompetência.</p></blockquote> <nav><header><h1>Leia Tamb&eacute;m:</h1></header><ul class="simPosts"><li><a href='http://leobalter.net/descompressao/fim-do-flash-para-dispositivos-moveis-e-fim-total-do-silverlight/' rel='bookmark' title='Fim do Flash para dispositivos móveis e fim total do Silverlight'>Fim do Flash para dispositivos móveis e fim total do Silverlight</a></li><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></ul></nav>
<p><a href="http://feedads.g.doubleclick.net/~a/IjjGYR70hEhUo-wfrMco5BDfAS0/0/da"><img src="http://feedads.g.doubleclick.net/~a/IjjGYR70hEhUo-wfrMco5BDfAS0/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/IjjGYR70hEhUo-wfrMco5BDfAS0/1/da"><img src="http://feedads.g.doubleclick.net/~a/IjjGYR70hEhUo-wfrMco5BDfAS0/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/leobalter?a=V2mApaB-Yvo:poMch3rifZ8:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/leobalter?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/leobalter?a=V2mApaB-Yvo:poMch3rifZ8:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/leobalter?i=V2mApaB-Yvo:poMch3rifZ8:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/leobalter?a=V2mApaB-Yvo:poMch3rifZ8:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/leobalter?i=V2mApaB-Yvo:poMch3rifZ8:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/leobalter?a=V2mApaB-Yvo:poMch3rifZ8: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/V2mApaB-Yvo" height="1" width="1"/>]]></content:encoded> <wfw:commentRss>http://leobalter.net/descompressao/steve-jobs-e-o-mundo-open-source/feed/</wfw:commentRss> <slash:comments>1</slash:comments> <feedburner:origLink>http://leobalter.net/descompressao/steve-jobs-e-o-mundo-open-source/</feedburner:origLink></item> <item><title>Mídias sociais precisam se comunicar de forma ágil e simples</title><link>http://feedproxy.google.com/~r/leobalter/~3/818lSUxDc24/</link> <comments>http://leobalter.net/descompressao/midias-sociais-precisam-se-comunicar-de-forma-agil-e-simples/#comments</comments> <pubDate>Fri, 30 Sep 2011 17:11:37 +0000</pubDate> <dc:creator>Leo Balter</dc:creator> <category><![CDATA[Descompressão]]></category> <category><![CDATA[facebook]]></category> <category><![CDATA[humano]]></category> <category><![CDATA[pessoas]]></category> <category><![CDATA[rede social]]></category> <category><![CDATA[twitter]]></category><guid isPermaLink="false">http://leobalter.net/?p=1132</guid> <description><![CDATA[Particularmente não curto o facebook, gosto tanto dele quanto do Orkut. Acho que já foi bom quando não era tão popular. Pode ser que mudei minha opinião não por causa das pessoas que entraram nessa nova fase, mas pela disposição de coisas, complexidade e seus excessos. Eu gosto de ferramentas limpas e mimalistas, mesmo que [...]]]></description> <content:encoded><![CDATA[<p>Particularmente não curto o facebook, gosto tanto dele quanto do Orkut. Acho que já foi bom quando não era tão popular. Pode ser que mudei minha opinião não por causa das pessoas que entraram nessa nova fase, mas pela disposição de coisas, complexidade e seus excessos.</p><p>Eu gosto de ferramentas limpas e mimalistas, mesmo que isso possa limitar um uso alternativo. É como o twitter, simples e direto: você escreve até 140 caracteres e le apenas as atualizações de quem está seguindo.</p><p>Uma opção como o Google+ (ou Google Plus) é até interessante quando vem com as features de criar círculos de tipos de convivência que tem com cada pessoa. Um amigo tem uma intimidade diferente de um colega ou uma pessoa que nem conhecemos pessoalmente. Mas isso nos dá trabalho, e particularmente prefiro as coisas que me dão menos trabalho, pois não sou pago pra usar essas ferramentas, são distrações do dia a dia.</p><p>Posso resumir isso como: prefiro o entretenimento direto. Como uma peça de teatro, você paga a entrada e assiste. Não precisa determinar como gostaria que fosse o cenário, os atores, a música, etc. Você só escolhe que peça vai assistir, já está tudo pronto, não tem muita coisa pra mudar nisso, mesmo que seja um show de improvisos.</p><p>O importante de usar ferramentas de redes sociais, como Facebook, Twitter, Google+, Orkut, o que for, é a comunicação, é o contato da rede social que você forma ali. Grupos de amigos, parentes que moram distantes (motivo que mantenho minha conexão no facebook), colegas de faculdade etc. A ideia é poder se comunicar com eles, principalmente quando um contato pessoal não é possível (mas evite sempre se privar disso).</p><p>Dito isto, meu apelo é que não tornem essas ferramentas trabalhosas, tentem usá-las de forma mais enxuta. E se der pra encontrar aquela pessoa invés de perder horas no chat, encontre-a pessoalmente. Não ceda seu tempo para configurar círculos, ou as pessoas que você vai acompanhar as atualizações, use para se comunicar, se isso ficar difícil, reconsidere se isso realmente cria contatos ou barreiras para as suas redes sociais (a formada por humanos que você forma com seus amigos, colegas e familiares).</p><p>Eu, por exemplo, gosto muito de utilizar uma ferramenta para trocar pequenas ideias sobre tecnologia. Essa ferramenta é o <a href="http://convore.com" tittle="Página inicial do Convore">Convore</a>, onde você diretamente encontra grupos com os temas, entra nos que te interessa, encontra tópicos e fala. As comunicações são curtas e dinâmicas, não precisa escrever textos grandes como de fóruns tradicionais pela internet e as atualizações aparecem em tempo real.</p><p>Gostaria que essa ferramenta fosse mais utilizada por amigos, para não falar só sobre tecnologia, mas outros assuntos que acabo recorrendo a outras ferramentas. Assim como o twitter é muito bom para uma comunicação menos pessoal, onde considero um ótimo muro de bilhetes, e você vai encontrando alguns que podem te interessar. Também pra tecnologia é ótimo para encontrar bons links com novidades e as vezes ouvir uma piada de algum amigo.</p><p>Não acho que devem utilizar ferramenta <i>a</i> ou <i>b</i>, mas com certeza acho que é extramemente saudável não ser perder mais tempo se preocupando com quaisquer dessas ferramentas do que com o tempo que você passa tendo contatos pessoais. Seja um encontro com a namorada ou um bate papo com os amigos tomando uma cerveja. Não tranquem as portas de suas casas, ao menos que saiam pra viajar. Até lá receba convide seus amigos, as experiencias serão as mais interessantes possíveis, e são as que mais irão se lembrar no futuro.</p><p>Aproveitando o assunto, parem de julgar nichos de pessoas se elas são de geração x, y, z ou geração &#8216;whatevs&#8217;. São humanos, e assim, cada um possui uma personalidade individual, é o que define nossas identidades. Generalizações são apenas artifícios para te manter afastado desse conhecimento rico, sem valor que o substitua.</p><p>Comportamento de pessoas especiais surgem de onde menos se espera, são sempre exceções que vão marcar a mudança de uma comunidade. E são essas atitudes que vão sustentar essas mesmas comunidade. Uma sociedade vai se estruturar dessas movimentações de comportamentos individuais, alguns com ideias brilhantes, como um Leonardo da Vinci surgindo no meio do Renascentismo.</p><p>No final, fica um simples apelo: encarem ferramentas sociais na internet como extensões da sua comunicação pessoal, são acessórios que acompanham o principal, contato humano.</p> <nav><header><h1>Leia Tamb&eacute;m:</h1></header><ul class="simPosts"><li><a href='http://leobalter.net/cases/escrever-ruby-de-uma-forma-melhor-com-tipagem-ou-codigo-mais-bonito/' rel='bookmark' title='Escrever Ruby de uma forma melhor, com tipagem ou código mais bonito!'>Escrever Ruby de uma forma melhor, com tipagem ou código mais bonito!</a></li><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/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>
<p><a href="http://feedads.g.doubleclick.net/~a/LFvvi0AD90oUS6NufBPrpgGnN2o/0/da"><img src="http://feedads.g.doubleclick.net/~a/LFvvi0AD90oUS6NufBPrpgGnN2o/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/LFvvi0AD90oUS6NufBPrpgGnN2o/1/da"><img src="http://feedads.g.doubleclick.net/~a/LFvvi0AD90oUS6NufBPrpgGnN2o/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/leobalter?a=818lSUxDc24:-_hPoNXIww8:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/leobalter?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/leobalter?a=818lSUxDc24:-_hPoNXIww8:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/leobalter?i=818lSUxDc24:-_hPoNXIww8:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/leobalter?a=818lSUxDc24:-_hPoNXIww8:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/leobalter?i=818lSUxDc24:-_hPoNXIww8:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/leobalter?a=818lSUxDc24:-_hPoNXIww8: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/818lSUxDc24" height="1" width="1"/>]]></content:encoded> <wfw:commentRss>http://leobalter.net/descompressao/midias-sociais-precisam-se-comunicar-de-forma-agil-e-simples/feed/</wfw:commentRss> <slash:comments>4</slash:comments> <feedburner:origLink>http://leobalter.net/descompressao/midias-sociais-precisam-se-comunicar-de-forma-agil-e-simples/</feedburner:origLink></item> </channel> </rss><!-- Served from: leobalter.net @ 2012-05-17 14:31:21 by W3 Total Cache -->

