<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" version="2.0">

<channel>
	<title>AURELIO.NET</title>
	
	<link>http://aurelio.net</link>
	<description>Relaxe, leia com calma, aproveite a viagem.</description>
	<lastBuildDate>Wed, 11 Jan 2012 10:47:44 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/AurelioJargas" /><feedburner:info xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" uri="aureliojargas" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><image><link>http://aurelio.wordpress.com</link><url>http://aurelio.net/img/icon128/aurelio.png</url><title>Aurélio</title></image><feedburner:emailServiceId xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0">AurelioJargas</feedburner:emailServiceId><feedburner:feedburnerHostname xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0">http://feedburner.google.com</feedburner:feedburnerHostname><item>
		<title>Jogo EmoMemory agora é gratuito, código-fonte liberado</title>
		<link>http://aurelio.net/blog/2011/12/17/jogo-emomemory-agora-e-gratuito-codigo-fonte-liberado/</link>
		<comments>http://aurelio.net/blog/2011/12/17/jogo-emomemory-agora-e-gratuito-codigo-fonte-liberado/#comments</comments>
		<pubDate>Sat, 17 Dec 2011 10:54:22 +0000</pubDate>
		<dc:creator>Aurelio Jargas</dc:creator>
				<category><![CDATA[Nerd]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Apple]]></category>
		<category><![CDATA[AppleScript]]></category>
		<category><![CDATA[DMG]]></category>
		<category><![CDATA[EmoMemory]]></category>
		<category><![CDATA[Gamez]]></category>
		<category><![CDATA[grana]]></category>
		<category><![CDATA[Lion]]></category>
		<category><![CDATA[Mac OS X]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[programação]]></category>
		<category><![CDATA[Xcode]]></category>

		<guid isPermaLink="false">http://aurelio.net/?p=3505</guid>
		<description><![CDATA[O EmoMemory é um jogo de &#8220;memória emocional&#8221; para Mac OS X. Em vez de cartas ou figuras, ele usa as fotos dos seus contatos para compor o tabuleiro. Concentrando-se nas fotos das pessoas que você gosta (ou não), você &#8230; <a href="http://aurelio.net/blog/2011/12/17/jogo-emomemory-agora-e-gratuito-codigo-fonte-liberado/">Continue lendo <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><img class="aligncenter" title="EmoMemory icon" src="http://aurelio.net/soft/img/emomemory-big.png" alt="" width="162" height="150" /></p>
<p><img class="aligncenter" title="EmoMemory main screen" src="http://aurelio.net/soft/emomemory/shot-kid-ab.jpg" alt="" width="449" height="529" /></p>
<p>O <a href="http://aurelio.net/soft/emomemory/">EmoMemory</a> é um jogo de &#8220;memória emocional&#8221; para Mac OS X. Em vez de cartas ou figuras, ele usa as fotos dos seus contatos para compor o tabuleiro. Concentrando-se nas fotos das pessoas que você gosta (ou não), você trabalha com <a href="http://en.wikipedia.org/wiki/Emotion_and_memory">memória e emoção</a> ao mesmo tempo, dando um gostinho diferente ao tradicional jogo da memória.</p>
<p><a href="http://aurelio.net/blog/2007/03/15/o-amanhecer-de-uma-ideia/">Fiz este jogo em 2007</a> e lancei como shareware, à venda por 7 dólares. Tentei deixá-lo bem completo, com toolbar, ícone bonitinho, <a href="http://aurelio.net/soft/emomemory/help/">texto de ajuda</a>, efeitos sonoros, placar local e até <a href="http://aurelio.net/soft/emomemory/scores.php">placar mundial</a>. Ele foi todo escrito em AppleScript, uma linguagem cheia de limitações, foi um grande desafio.</p>
<p><img class="aligncenter" title="EmoMemory settings screen" src="http://aurelio.net/soft/emomemory/shot-new-game.jpg" alt="" width="439" height="528" /></p>
<p>Foi minha primeira (e única) experiência com software fechado/comercial, depois de uma década somente lançando <a href="http://aurelio.net/bin/">softwares livres</a>. Vendeu pouco e no geral não gostei da experiência, mas essa história eu conto com detalhes em outro texto.</p>
<p>O que eu quero anunciar hoje é que <strong>agora ele é um programa gratuito e de código aberto</strong>.</p>
<h2>Usuários</h2>
<ul>
<li>Basta <a href="http://aurelio.net/soft/emomemory/EmoMemory.dmg">baixar o EmoMemory</a> e usar o código <strong>FREEGAME:D535DA</strong> na tela de registro para destravá-lo.</li>
<li>Aqui no OS X Lion, o único problema que percebi é que quebrou a integração com a Agenda (Address Book.app), então infelizmente não dá pra usar as fotos dos contatos no tabuleiro. Mas você pode escolher uma pasta com fotos ou usar os ícones do sistema.</li>
</ul>
<h2>Nerds</h2>
<ul>
<li>O código-fonte completo <a href="https://github.com/oreio/emomemory">está no GitHub</a>, sob a licença MIT.</li>
<li>Bom para quem quiser conhecer ou estudar <a href="http://en.wikipedia.org/wiki/AppleScript">AppleScript</a>. <a href="http://aurelio.net/blog/2009/11/26/quer-brincar-de-applescript/">Fiz um vídeo de introdução à linguagem</a>, se você preferir se ambientar primeiro. <a href="http://aurelio.net/doc/as4pp.html">Manja de Python?</a></li>
<li>Além dos códigos de funcionamento do jogo, há meus algoritmos caseiros toscos para implementar: <a href="https://github.com/oreio/emomemory/blob/master/xcode/Remember%20Me%3F.applescript#L213">período de trial</a> (20 dias), <a href="https://github.com/oreio/emomemory/blob/master/xcode/Remember%20Me%3F.applescript#L177">código de ativação</a> (e-mail do comprador cifrado), e <a href="https://github.com/oreio/emomemory/blob/master/xcode/Numbers.applescript">placares</a> (string cifrada, com checksum).</li>
<li>Para compilar, só com uma máquina antiga (Leopard, Xcode 3), pois ele usa o já aposentado framework <a href="http://developer.apple.com/library/mac/#documentation/applescript/conceptual/AppleScriptX/Concepts/applescript_studio.html">AppleScript Studio</a>.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://aurelio.net/blog/2011/12/17/jogo-emomemory-agora-e-gratuito-codigo-fonte-liberado/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>CSS Sprites na prática: o carregamento da página caiu de 40s para 8s!</title>
		<link>http://aurelio.net/blog/2011/12/05/css-sprites-na-pratica/</link>
		<comments>http://aurelio.net/blog/2011/12/05/css-sprites-na-pratica/#comments</comments>
		<pubDate>Mon, 05 Dec 2011 17:10:01 +0000</pubDate>
		<dc:creator>Aurelio Jargas</dc:creator>
				<category><![CDATA[Nerd]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[tutorial]]></category>
		<category><![CDATA[Webstandards]]></category>

		<guid isPermaLink="false">http://aurelio.net/?p=3448</guid>
		<description><![CDATA[Faz alguns anos já que leio aqui e ali sobre a tal técnica de CSS Sprites, mas nunca experimentei. Sempre achei que era complicado demais e que era desnecessário, que o ganho seria irrisório. Como eu estava enganado! Na cruzada &#8230; <a href="http://aurelio.net/blog/2011/12/05/css-sprites-na-pratica/">Continue lendo <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Faz alguns anos já que leio aqui e ali sobre a tal <a href="http://css-tricks.com/158-css-sprites/">técnica de CSS Sprites</a>, mas nunca experimentei. Sempre achei que era complicado demais e que era desnecessário, que o ganho seria irrisório.</p>
<p>Como eu estava enganado!</p>
<p>Na cruzada sagrada para diminuir o tempo de carregamento do blog e do site, melhorando sua performance, descobri esta excelente ferramenta online <a href="http://www.webpagetest.org">WebPageTest</a>.</p>
<p>Ela mede quanto tempo leva para carregar uma página completa, e depois lhe dá um relatório detalhado, inclusive com dicas do que você pode fazer para deixar o site mais rápido. Dicas estas, que são as mesmas usadas pelo <a href="http://pagespeed.googlelabs.com/">Page Speed do Google</a>, outra excelente ferramenta online.</p>
<p>Fiquei indignado ao saber que a página principal do meu site (home) estava levando <strong>inacreditáveis 40 segundos para carregar</strong> completamente! Uma eternidade para a internet.</p>
<p>Uma das sugestões que a ferramenta me deu para melhorar isso, foi justamente… o CSS Sprites. Tá, você venceu. Não vou mais te ignorar. Bora aprender de vez o que é isso e como implementar.</p>
<p>Mas antes, deixa eu te mostrar qual era o meu problema. Esta é uma foto da home do meu site, a página lerda:</p>
<p><img class="aligncenter size-full wp-image-3410" title="Home, Matrix de ícones" src="http://aurelio.net/wp/wp-content/uploads/2011/09/home-matrix.jpg" alt="" width="450" height="350" /></p>
<p>Tá vendo aquela tabela cheia de ícones ali? São 30 ao todo. Pois é, eu sempre achei que era melhor ter várias imagens pequenas, que o navegador poderia baixar rapidamente cada uma e fazer cache. Na minha cabeça isso era melhor do que uma única imagem enorme com todos aqueles ícones.</p>
<p><a href="http://yuiblog.com/blog/2006/11/28/performance-research-part-1/">Mas é justo o contrário!</a></p>
<p>No fim das contas o navegador consegue baixar mais rápido uma única imagem maior do que várias pequenas, pelo fato de que ele não pode abrir muitas conexões simultâneas. O número varia, mas consideremos que é no máximo quatro conexões.</p>
<blockquote><p>É como um banco lotado com somente quatro atendentes. Aí forma uma fila com todas essas 30 imagenzinhas, que também concorrem com os arquivos CSS, Javascript, outras imagens e todos os outros componentes que compõem a página. E assim, de quatro em quatro por vez, todo mundo fica naquela fila enooorme esperando sua vez e a página demora pra carregar.</p></blockquote>
<p>A técnica do CSS Sprites consiste em juntar todos estes 30 ícones numa única imagem e deixar que as regras do CSS façam os recortes necessários nesta imagem (usando background-position) para mostrar cada pedaço no lugar certo. A grande vantagem é que sendo uma única imagem em vez de 30, ela ocupa somente uma &#8220;atendente do banco&#8221;, deixando as outras três livres para atender os outros elementos, e assim a fila anda mais rápido.</p>
<blockquote><p>É, o CSS Sprites é aquele office boy que chega com uma pasta lotada de boletos e monopoliza um dos caixas do banco por vários minutos :)</p></blockquote>
<h2>Ok, e como implementar o CSS Sprites?</h2>
<p>Nem perca tempo querendo fazer isso &#8220;na mão&#8221; que já tem várias ferramentas prontas na web. Basta procurar por <a href="http://www.google.com.br/search?q=CSS+Sprites+generator">CSS Sprites generator</a>.</p>
<p>A que eu mais gostei foi a <a href="http://spritegen.website-performance.org">http://spritegen.website-performance.org</a>. Você coloca todas as imagens dentro de um ZIP (no meu caso, os ícones) e manda para o generator, que te retorna uma única imagem e ainda de brinde já te dá as regras CSS prontinhas para usar.</p>
<p style="text-align: center;"> <a href="http://spritegen.website-performance.org"><img class="size-large wp-image-3411 aligncenter" title="CSS Sprite Generator" src="http://aurelio.net/wp/wp-content/uploads/2011/09/css-sprite-generator-500x318.png" alt="" width="500" height="318" /></a></p>
<p>Dê uma olhada lá, há várias opções para você escolher na hora de compor a imagem final, como formato (PNG, JPG, GIF), número de cores e qualidade (ambos importantes para deixar o arquivo pequeno!). Também há opções para as regras do CSS, como adicionar prefixo ou sufixo para cada uma.</p>
<blockquote><p><strong>Dica:</strong> Para facilitar sua vida, atente para o nome de cada imagem antes de fazer o ZIP, deixe curto e descritivo, pois ele usará os nomes para gerar as regras do CSS.</p></blockquote>
<p>Usei este site para gerar <a href="http://aurelio.net/img/index-sprites.png">um PNG com todos os meus ícones</a>, e depois passei este PNG no <a title="Usando Smush.it e shell script para otimizar imagens de um site" href="http://aurelio.net/blog/2011/09/02/usando-smush-it-e-shell-script-para-otimizar-imagens-de-um-site/">Smush.it</a> para garantir que ele não fique pesado.</p>
<p>A imagem ficou com 120KB no final. Não é leve, mas também não é um monstro. Mas o mais importante foi a <strong>diferença brutal no tempo de carregamento da página</strong>: o que antes eram 40 segundos, agora com CSS Sprites ficou apenas 8 segundos!</p>
<p>Se o seu site está pesado e carrega muitas imagens pequenas, faça a experiência de juntá-las em uma só, que você pode ter um resultado parecido com o meu.</p>
<p>Ah, só pra ilustrar, veja um exemplo de como são as regras CSS que fazem os recortes de cada ícone:</p>
<pre>#aa-matrix .sp-adiumbook { background-position: 0 0;       }
#aa-matrix .sp-baterna   { background-position: 0 -81px;   }
#aa-matrix .sp-canivete  { background-position: 0 -162px;  }
#aa-matrix .sp-carve     { background-position: 0 -243px;  }
#aa-matrix .sp-codare    { background-position: 0 -324px;  }
#aa-matrix .sp-csssandbox{ background-position: 0 -405px;  }
#aa-matrix .sp-curso     { background-position: 0 -486px;  }
#aa-matrix .sp-dialog    { background-position: 0 -567px;  }
#aa-matrix .sp-doc       { background-position: 0 -648px;  }
...</pre>
]]></content:encoded>
			<wfw:commentRss>http://aurelio.net/blog/2011/12/05/css-sprites-na-pratica/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Vídeo-aula: Expressões Regulares – Quantificadores Gulosos</title>
		<link>http://aurelio.net/blog/2011/11/29/video-aula-expressoes-regulares-quantificadores-gulosos/</link>
		<comments>http://aurelio.net/blog/2011/11/29/video-aula-expressoes-regulares-quantificadores-gulosos/#comments</comments>
		<pubDate>Tue, 29 Nov 2011 19:08:12 +0000</pubDate>
		<dc:creator>Aurelio Jargas</dc:creator>
				<category><![CDATA[Nerd]]></category>
		<category><![CDATA[Vídeo-aula (screencast)]]></category>
		<category><![CDATA[Expressões Regulares]]></category>
		<category><![CDATA[Livro]]></category>
		<category><![CDATA[piazinho]]></category>
		<category><![CDATA[tutorial]]></category>
		<category><![CDATA[Vídeo]]></category>

		<guid isPermaLink="false">http://aurelio.net/?p=3420</guid>
		<description><![CDATA[Já faz um bom tempo, anos até, que eu marquei aqui na minha interminável (e sempre crescente) lista de tarefas o item &#8220;vídeo tutorial regex&#8221;. A ideia era fazer vários pequenos vídeos, cada um explicando um conceito, ou um metacaractere &#8230; <a href="http://aurelio.net/blog/2011/11/29/video-aula-expressoes-regulares-quantificadores-gulosos/">Continue lendo <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Já faz um bom tempo, anos até, que eu marquei aqui na minha interminável (e sempre crescente) lista de tarefas o item &#8220;vídeo tutorial regex&#8221;. A ideia era fazer vários pequenos vídeos, cada um explicando um conceito, ou um metacaractere das <a href="http://aurelio.net/regex/">expressões regulares</a>.</p>
<p>Mas tá. Eu anotei e ali ficou, esquecido.</p>
<p>Dias atrás, pesquisando sobre SQL para tentar compor uma query cabeluda (para os meus padrões de aprendiz), acabei caindo <a href="http://www.youtube.com/watch?v=M3Dj6UWDj-4">num vídeo do YouTube</a> que explicou e demonstrou de maneira muito clara e simples a diferença entre os tipos de JOIN: INNER, CROSS, LEFT, RIGHT e FULL.</p>
<p>Nestes anos de nerdice eu já li muita documentação técnica sobre SQL e seus comandos, mas foi <strong>um simples vídeo de 9 minutos</strong> que me fez ver a luz e entender bem a diferença dos JOINs. Não que o vídeo te ensine a compor uma query, mas dá aquela visão geral de como funciona. Sem entrar em detalhes, sem exceções, sem casos especiais. Em outras palavras, ele te mostra o mapa e você faz teu próprio caminho.</p>
<p>Após ver o vídeo, ainda sentindo aquela satisfação de ter finalmente entendido algo que era confuso na cabeça, fiquei com vontade de fazer o mesmo: <strong>criar um vídeo que esclarecesse dúvidas</strong>. Então lembrei da minha &#8220;dívida&#8221; lá na minha lista de tarefas: os vídeos de expressões regulares.</p>
<p>Não sei se isso vai ser uma série, ou se vou logo enjoar e mudar de assunto (bem provável), mas aqui está a minha primeira tentativa de esclarecer dúvidas em regex:</p>
<p><iframe width="640" height="360" src="http://www.youtube.com/embed/0O2yQgRXnLU?fs=1&#038;feature=oembed" frameborder="0" allowfullscreen></iframe></p>
<p>EXPRESSÕES REGULARES &#8211; Quantificadores Gulosos (<a href="http://www.youtube.com/watch?v=0O2yQgRXnLU">YouTube</a>)</p>
<p>Iniciantes, me desculpem, mas <strong>este é um vídeo para quem já sabe usar expressões regulares</strong>. Ele demonstra (usando o <a href="http://regexpal.com/">RegexPal</a>) os conceitos de &#8220;guloso&#8221; e &#8220;não-guloso&#8221;, em relação ao comportamento dos metacaracteres quantificadores. O guloso casa tudo o que puder, enquanto o não-guloso casa o mínimo possível. Porém ambos são forçados a ceder para validar a expressão.</p>
<p>Vou colar aqui a tabela mostrada no vídeo:</p>
<pre>Guloso   Não-guloso  Quantidade
---------------------------------------
*        *?          zero ou mais
+        +?          um ou mais
?        ??          zero ou um
{n,m}    {n,m}?      mínimo N, máximo M</pre>
<p>Bem, pra registrar, vou colar aqui também o histórico de expressões utilizadas:</p>
<pre>^um
^um.*
^um.*i
^um.*is

^um.*?
^um.*?i
^um.*?in

^um.+
^um.+?
^um.+?i
^um.+?in

^um, do?
^um, do??
^um, do??is

^.{3,15}
^.{3,15}?
^.{3,15}?t
^.{3,15}?trê</pre>
<p>Se você tem <a href="http://www.piazinho.com.br">o livro do piazinho</a>, o vídeo demonstra o que está explicado no Capítulo 3, tópicos &#8220;Quantificadores gulosos&#8221; e &#8220;Quantificadores não-gulosos&#8221;. Estes tópicos também estão na versão online (gratuita) do livro:</p>
<ul>
<li><a href="http://aurelio.net/regex/guia/quantificadores-gulosos.html">http://aurelio.net/regex/guia/quantificadores-gulosos.html</a></li>
<li><a href="http://aurelio.net/regex/guia/quantificadores-nao-gulosos.html">http://aurelio.net/regex/guia/quantificadores-nao-gulosos.html</a></li>
</ul>
<p><strong>Se você gostou do vídeo</strong>, <a href="http://www.youtube.com/watch?v=0O2yQgRXnLU">vai lá no YouTube e deixa um joinha</a>. E se quiser me ajudar a melhorar os próximos vídeos, deixe um comentário com a sua opinião. Pode ser aqui no blog ou lá no YouTube mesmo. Ainda não me decidi qual o melhor lugar pra estes vídeos.</p>
<p><strong>Se você não gostou do vídeo</strong>, aí o seu comentário é obriatório, pois tenho total interesse em melhorar as falhas!</p>
<blockquote><p>Nota: Este foi mais um vídeo da série SEM: sem ensaio, sem cortes, sem edição :)</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://aurelio.net/blog/2011/11/29/video-aula-expressoes-regulares-quantificadores-gulosos/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>iStat Menus 2 (gratuito) funcionando no Mac OS X Lion</title>
		<link>http://aurelio.net/blog/2011/10/27/istat-menus-2-gratuito-funcionando-no-mac-os-x-lion/</link>
		<comments>http://aurelio.net/blog/2011/10/27/istat-menus-2-gratuito-funcionando-no-mac-os-x-lion/#comments</comments>
		<pubDate>Thu, 27 Oct 2011 19:28:11 +0000</pubDate>
		<dc:creator>Aurelio Jargas</dc:creator>
				<category><![CDATA[Nerd]]></category>
		<category><![CDATA[Apple]]></category>
		<category><![CDATA[DMG]]></category>
		<category><![CDATA[Lion]]></category>
		<category><![CDATA[Mac OS X]]></category>
		<category><![CDATA[recomendação]]></category>
		<category><![CDATA[tutorial]]></category>

		<guid isPermaLink="false">http://aurelio.net/?p=3413</guid>
		<description><![CDATA[O iStat Menus é o melhor aplicativo que conheço para monitorar o Mac: consumo de memória, CPU e disco, tráfego da rede, temperatura, entre outros. Você pode escolher exatamente o que quer monitorar e ele cria novos itens lá no &#8230; <a href="http://aurelio.net/blog/2011/10/27/istat-menus-2-gratuito-funcionando-no-mac-os-x-lion/">Continue lendo <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>O iStat Menus é o melhor aplicativo que conheço para <strong>monitorar o Mac</strong>: consumo de memória, CPU e disco, tráfego da rede, temperatura, entre outros. Você pode escolher exatamente o que quer monitorar e ele cria novos itens lá no menu, no canto superior direito da tela. Com um clique em cada um deles você obtém mais informações. Rápido e prático, uso há anos.</p>
<p><img class="aligncenter size-full wp-image-3414" title="iStat Menus - Network" src="http://aurelio.net/wp/wp-content/uploads/2011/10/istat-menus.jpg" alt="" width="550" height="492" /></p>
<p>Este aplicativo era gratuito até a sua versão 2.0. Depois lançaram a <a href="http://bjango.com/mac/istatmenus/">versão 3</a>, cobrando 16 dólares por ela. Mas hein? Como a <strong>versão 2 gratuita funcionava 100% para mim</strong>, continuei com ela. Uso desde a época do Leopard, e tudo continuou funcionando perfeitamente quando atualizei o sistema para o Snow Leopard, e mais recentemente, para o Lion.</p>
<p>Porém, ignorando a sabedoria popular que &#8220;time que está ganhando não se mexe&#8221;, e certo de que eu iria me arrepender dessa decisão rapidamente, resolvi:</p>
<p>— Vou <strong>instalar o Lion novamente</strong>.<br />
— O quê???<br />
— E dessa vez, vou fazer uma instalação limpa, do zero, com HD formatado.<br />
— Para! Você só pode estar brincando, né?<br />
— E tem mais: sem usar o <a href="http://support.apple.com/kb/HT4889?viewlocale=pt_BR">Assistente de Migração</a>! Vou reinstalar e reconfigurar os programas um por um para deixar o sistema o mais ágil possível.</p>
<blockquote><p>Viu só, eu praticamente me ajoelhei e clamei aos céus: Manda-me todo tipo de problemas, Senhor!</p></blockquote>
<p>Resultado: feita a reinstalação, dentre os vários problemas que enfrentei para voltar a minha máquina ao estado anterior, o iStat Menus foi um que não voltou à vida. <strong>Mórreu.</strong></p>
<p>Mas como ele funcionou quando eu atualizei do Snow pro Lion e agora não funciona mais com a instalação limpa? Bem, a explicação é nerd e chata, poupar-lhe-ei. O que importa é que a solução é muito simples: <strong>basta atualizar um único arquivo</strong> para uma versão mais recente e tudo volta a funcionar 100%.</p>
<p>Então, se você era usuário do iStat Menus 2 e ele parou de funcionar no Lion, ou se você vai querer começar a brincar com ele agora, <strong>siga estes passos</strong>:</p>
<ol>
<li>Instale o <a href="http://dl2.macupdate.com/istat2.zip">iStat Menus versão 2.0</a>.</li>
<li>Encerre o aplicativo Preferências do Sistema.</li>
<li>Baixe a versão mais recente do <a href="http://sourceforge.net/projects/menucracker/files/menucracker/">MenuCracker</a>.</li>
<li>Abra o arquivo <code>MenuCracker-2.2.dmg</code></li>
<li>Copie o <code>MenuCracker.menu</code> para a pasta <code>/Library/Application Support/iStat local/extras/</code>, sobrescrevendo a versão antiga dele.</li>
<li>Abra as Preferências do Sistema e aproveite o iStat Menus!</li>
</ol>
<blockquote><p>Não se assuste com o nome MenuCracker, não é vírus nem nada do tipo. Ele é um componente usado por vários aplicativos que precisam se inserir lá na barra de menus.</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://aurelio.net/blog/2011/10/27/istat-menus-2-gratuito-funcionando-no-mac-os-x-lion/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Usando Smush.it e shell script para otimizar imagens de um site</title>
		<link>http://aurelio.net/blog/2011/09/02/usando-smush-it-e-shell-script-para-otimizar-imagens-de-um-site/</link>
		<comments>http://aurelio.net/blog/2011/09/02/usando-smush-it-e-shell-script-para-otimizar-imagens-de-um-site/#comments</comments>
		<pubDate>Fri, 02 Sep 2011 22:25:04 +0000</pubDate>
		<dc:creator>Aurelio Jargas</dc:creator>
				<category><![CDATA[Nerd]]></category>
		<category><![CDATA[Vídeo-aula (screencast)]]></category>
		<category><![CDATA[AdSense]]></category>
		<category><![CDATA[blog]]></category>
		<category><![CDATA[Expressões Regulares]]></category>
		<category><![CDATA[sed]]></category>
		<category><![CDATA[Shell Script]]></category>
		<category><![CDATA[Vídeo]]></category>
		<category><![CDATA[ZIP]]></category>

		<guid isPermaLink="false">http://aurelio.net/?p=3278</guid>
		<description><![CDATA[Hoje acordei atacado da rinite, misturado com resfriado. Estou o dia todo espirrando, com o nariz todo trancado e respirando pela boca. São péssimas condições para se gravar qualquer coisa que dependa da minha voz, certo? Certo. Mas mesmo assim &#8230; <a href="http://aurelio.net/blog/2011/09/02/usando-smush-it-e-shell-script-para-otimizar-imagens-de-um-site/">Continue lendo <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Hoje acordei atacado da rinite, misturado com resfriado. Estou o dia todo espirrando, com o nariz todo trancado e respirando pela boca. São péssimas condições para se gravar qualquer coisa que dependa da minha voz, certo? Certo. Mas mesmo assim eu tive que gravar um vídeo hoje, porque senão a vontade de gravar passa e ele será mais um pra entrar na enorme lista dos vídeos que um dia eu quase gravei&#8230;</p>
<blockquote><p>Em outras palavras: era hoje ou nunca :)</p></blockquote>
<p>Então desde já peço perdão pelas fungadas, respiração ofegante e voz falhada. Eu também me perdi no meio do vídeo, o pensamento voou longe, mas isso não é culpa da rinite. Para este preciso arranjar outro bode expiatório :)</p>
<p>Bem, terminado o discurso introdutório, vamos às nerdices.</p>
<p>Neste vídeo eu mostro como usar o <a href="http://www.smushit.com/">Smush.it</a>, uma excelente ferramenta criada pelo Yahoo! para otimizar imagens de sites. Você passa pra ela os seus arquivos PNG, GIF e JPG e <strong>ela te devolve os arquivos otimizados</strong>, ou seja, com o tamanho reduzido mas sem perder a qualidade.</p>
<blockquote><p>Este site é similar ao <a href="http://pmt.sourceforge.net/pngcrush/">pngcrush</a>, <a href="http://optipng.sourceforge.net">optipng</a> e outras ferramentas bacanas que otimizam imagens na linha de comando. Além de ser mais fácil de usar, o site tenta várias técnicas de otimização em cada arquivo e escolhe a que deu melhor resultado. Então, considere-o como <strong>um combo de várias ferramentas de otimização</strong>.</p></blockquote>
<p>Uma foto de 200KB pode ficar com meros 100KB (-50%!) e olhando você nem nota a diferença, pois não há perda de qualidade (<a href="http://optipng.sourceforge.net/pngtech/optipng.html">lossless</a>). Muito útil pra webmasters, pois com as imagens otimizadas <strong>o seu site ficará mais leve e rápido de carregar</strong>. Com isso, todo mundo fica mais feliz:</p>
<ul>
<li>o visitante terá um site mais rápido</li>
<li>o Google (<a href="http://www.brasilseo.com.br/google/google-panda-update">Panda</a>) vai gostar mais do seu site</li>
<li>o seu provedor de hospedagem terá menos banda consumida</li>
<li>e você ganhará mais pontinhos com todos eles :)</li>
</ul>
<p>Tá, mas e onde entra o <a href="http://aurelio.net/shell/">shell script</a> na história?</p>
<p>A ferramenta espera receber uma lista de URLs de suas imagens, uma por linha. Usando mágicas na linha de comando é fácil obter a lista completa de todas as imagens do seu site, não importa em qual pasta elas estejam. Você ainda pode escolher otimizar somente um tipo de imagem (PNG, por exemplo) e deixar os outros para outro momento.</p>
<p>No vídeo eu uso o find para listar os arquivos, depois o <a href="http://aurelio.net/sed/">sed</a> para formatar o resultado. E claro, as <a href="http://aurelio.net/regex/">expressões regulares</a> não poderiam ficar de fora!</p>
<p>Passada a lista para o site ele te devolve um <a href="http://pt.wikipedia.org/wiki/ZIP">arquivo ZIP</a> com todas as imagens que foram otimizadas, mantendo a estrutura original de pastas. Aí é só você expandir este ZIP no lugar certo e pronto.</p>
<p>Como bônus, no final eu mostro <strong>como usar o sed para compor um comando do shell</strong>, que depois é executado via <a href="http://en.wikipedia.org/wiki/Standard_streams">STDIN</a>. Já perdi a conta de quantas vezes usei esta técnica para me salvar de trabalho braçal. Recomendo++.</p>
<p>Então, vamos ver o vídeo? Como <a href="http://aurelio.net/blog/category/screencast/">os vídeos anteriores</a>, este também foi gravado direto: sem cortes, sem edição, sem frescura. Então coloca em tela cheia e aproveite a viagem!</p>
<p><object width="640" height="360"><param name="movie" value="http://www.youtube.com/v/GqV3psNyzy8?version=3&#038;feature=oembed"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/GqV3psNyzy8?version=3&#038;feature=oembed" type="application/x-shockwave-flash" width="640" height="360" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<p>Gostou do vídeo? Então eu agradeço se você <a href="http://www.youtube.com/watch?v=GqV3psNyzy8">me der um joinha lá no You Tube</a> :)</p>
<p>Vou colar aqui os dois comandos mágicos demonstrados no vídeo:</p>
<pre># Liste os arquivos PNG, adicione http://aurelio.net/ no início
# e copie o resultado (exceto a pasta icon)
find img -name \*.png | sed 's@^@http://aurelio.net/@' | grep -v /icon/ | pbcopy
#
#
# Liste todos os arquivos, monte um comando mv com eles e execute
find img -type f | sed 's@.*@ mv -v &amp; /a/www/&amp; @' | sh</pre>
<p>Aprenda mais sobre os comandos do vídeo:</p>
<ul>
<li><a href="http://aurelio.net/shell/">http://aurelio.net/shell/</a></li>
<li><a href="http://aurelio.net/sed/">http://aurelio.net/sed/</a></li>
<li><a href="http://aurelio.net/regex/">http://aurelio.net/regex/</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://aurelio.net/blog/2011/09/02/usando-smush-it-e-shell-script-para-otimizar-imagens-de-um-site/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Eu te desafio a ficar 30 dias sem TV</title>
		<link>http://aurelio.net/blog/2011/07/22/eu-te-desafio-a-ficar-30-dias-sem-tv/</link>
		<comments>http://aurelio.net/blog/2011/07/22/eu-te-desafio-a-ficar-30-dias-sem-tv/#comments</comments>
		<pubDate>Fri, 22 Jul 2011 19:31:36 +0000</pubDate>
		<dc:creator>Aurelio Jargas</dc:creator>
				<category><![CDATA[Barbada]]></category>

		<guid isPermaLink="false">http://aurelio.net/?p=3041</guid>
		<description><![CDATA[Para participar deste desafio, siga estes passos: 1. Vá até sua TV. 2. Puxe o cabo da tomada. 3. Pronto! Agora lembre-se: você só pode ligar o cabo daqui 30 dias. Anote em seu calendário. O prêmio será revelado no &#8230; <a href="http://aurelio.net/blog/2011/07/22/eu-te-desafio-a-ficar-30-dias-sem-tv/">Continue lendo <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Para participar deste desafio, siga estes passos:</p>
<p>1. Vá até sua TV.<br />
2. Puxe o cabo da tomada.<br />
3. Pronto!</p>
<p>Agora lembre-se: você só pode ligar o cabo daqui 30 dias. Anote em seu calendário.</p>
<p>O prêmio será revelado no 31º dia.</p>
<p>Participe!</p>
]]></content:encoded>
			<wfw:commentRss>http://aurelio.net/blog/2011/07/22/eu-te-desafio-a-ficar-30-dias-sem-tv/feed/</wfw:commentRss>
		<slash:comments>61</slash:comments>
		</item>
		<item>
		<title>$ vi livro-sed.txt</title>
		<link>http://aurelio.net/blog/2011/06/24/vi-livro-sed-txt/</link>
		<comments>http://aurelio.net/blog/2011/06/24/vi-livro-sed-txt/#comments</comments>
		<pubDate>Sat, 25 Jun 2011 01:44:13 +0000</pubDate>
		<dc:creator>Aurelio Jargas</dc:creator>
				<category><![CDATA[Livro]]></category>
		<category><![CDATA[Conectiva]]></category>
		<category><![CDATA[Expressões Regulares]]></category>
		<category><![CDATA[Funções ZZ]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[sed]]></category>
		<category><![CDATA[Shell Script]]></category>
		<category><![CDATA[txt2tags]]></category>
		<category><![CDATA[Vim]]></category>

		<guid isPermaLink="false">http://aurelio.net/?p=3032</guid>
		<description><![CDATA[Amiguinhos, MUITO OBRIGADO a todos que mandaram sugestões, eu finalmente me decidi e gostaria de avisar que ontem comecei a trabalhar no meu próximo livro, que será sobre o comando sed. Eu sei que estou atrasado, eu sei que isso &#8230; <a href="http://aurelio.net/blog/2011/06/24/vi-livro-sed-txt/">Continue lendo <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Amiguinhos, MUITO OBRIGADO a todos que <a href="http://aurelio.net/proximo-livro/">mandaram sugestões</a>, eu finalmente me decidi e gostaria de avisar que <strong>ontem comecei a trabalhar no meu próximo livro</strong>, que será sobre o <a href="http://aurelio.net/sed/">comando sed</a>.</p>
<p>Eu sei que estou atrasado, eu sei que isso já deveria estar pronto há anos, e é deprimente perceber quanto tempo passou sem eu ter feito um livro novo. O <a href="http://www.shellscript.com.br/">Shell Script Profissional</a> é de abril de 2008! Mas é assim que funciona, durante estes anos não deu o tesão de escrever, e <strong>sem tesão não tem ação</strong>, é um loop infinito de escreve-apaga-escreve-apaga e nunca sai do lugar.</p>
<p>Felizmente a abstinência terminou e agora estou aqui, empolgadíssimo para ficar semanas (meses?) enclausurado, escrevendo um livrinho novo. A escolha do tema favoreceu muito a volta da inspiração, pois <strong>o sed é meu comando Unix preferido</strong> e posso ficar horas falando sem parar sobre ele :)</p>
<p>O sed é uma ferramenta que, <a href="http://aurelio.net/blog/2009/07/03/10anos-sed/">após uma década</a>, continuo usando quase que diariamente. Sempre tem algum texto pra limpar, pra reformatar, pra apagar algum pedaço e quando vejo <a href="http://aurelio.net/blog/2011/04/19/o-jeito-shell-script-de-resolver-problemas/">lá estou eu na tela preta digitando algum comando sed</a>. Esse é um filme mais repetido que <a href="http://www.youtube.com/watch?v=8WCXDsXDAcc">Curtindo a Vida Adoidado</a> na Sessão da Tarde :)</p>
<p>Uso o sed porque é útil e porque eu gosto. Ele é um bichinho estranho, que parece alienígena, mas esconde uma simplicidade bela, que só quem o conhece bem sabe admirar (tipo o <a href="http://aurelio.net/vim/">Vim</a>). E quando combinado com <a href="http://aurelio.net/er/">expressões regulares</a>, mostra seu verdadeiro poder e faz mágicas.</p>
<blockquote><p>Já cheguei ao cúmulo de <a href="http://aurelio.net/sed/sokoban/sokoban.sed.html">fazer joguinho com sed</a>, mas <a href="https://github.com/oreio/scripts/blob/master/html-scraps-to-wordpress-xml/recados2wordpress-meta.sh#L92">hoje sou mais moderado</a> :)</p></blockquote>
<p>O sed foi importante desde o ínicio de minha carreira: foi a primeira ferramenta do Unix que aprendi a dominar, quando ainda era estagiário. Ser o &#8220;guru do sed&#8221; dentro da empresa (Conectiva) significou muito para mim na época. Foi por causa do sed que tive que aprender expressões regulares, as <a href="http://funcoeszz.net">Funções ZZ</a> usam sed no lugar de outras ferramentas para garantir compatibilidade entre sistemas e o <a href="http://txt2tags.org/pt/">txt2tags</a> só existe porque um dia eu quis escrever um <a href="http://aurelio.net/sed/sed-HOWTO/">sed-HOWTO</a> em SGML. Mais detalhes sobre essas histórias no post <a href="http://aurelio.net/blog/2009/07/03/10anos-sed/">10 anos: Sed</a>.</p>
<pre>$ ls -1 zz* | wc -l             # Nas 125 funções ZZ...
     125
$ grep -w sed zz* | wc -l       # ...o sed é usado 331 vezes!
     311</pre>
<p>Enfim, o sed estava lá desde o começo, participou das minhas criações mais importantes e continua firme e forte na minha rotina. Fazendo esse retrospecto, fica claro que é minha obrigação moral retribuir e fazer esta homenagem à ferramenta, fechando a trinca de livros: <strong>Shell + Sed + Expressões Regulares</strong>.</p>
<ul>
<li>Eu sei que sed é um assunto de nicho.</li>
<li>Eu sei que o público é restrito.</li>
<li>Eu sei que vai vender pouco.</li>
</ul>
<p>Mas tudo bem, quero fazer este livro de qualquer jeito. Não quero morrer com este conhecimento guardado na cabeça. <strong>Quero poder &#8220;mostrar a luz&#8221; do sed para outros nerds</strong>.</p>
<p>Já fiz <a href="http://aurelio.net/sed/">vários documentos</a> sobre o sed, inclusive <a href="http://aurelio.net/sed/livro/">um livro inacabado</a>, mas falta a obra definitiva: um texto completo, coeso, que parte do zero e <strong>ensina</strong> como funciona e como usar. E claro, o mais importante: o texto tem que ser leve e divertido, como uma conversa entre amigos. Detesto livros técnicos chatões.</p>
<p>O trabalho começou ontem, mas a escrita de verdade ainda leva um tempo. Esta fase inicial é de ambientação e planejamento. Estou definindo a forma do livro e sua didática: que assuntos vai ter, em que ordem, como será a narrativa, os exemplos, qual será o nível técnico, o público-alvo, essas coisas. <strong>Preciso primeiro &#8220;enxergar&#8221; o livro todo</strong>, do início ao fim, e quando essa massa imaginária de ideias toma forma e fica consistente, formando um ensinamento coeso de complexidade crescente, então estarei pronto para começar a escrever. Considero esta parte inicial a mais importante e difícil. Escrever o texto é a parte fácil.</p>
<p>Então, agora, mais do que em qualquer outra parte o processo, <strong>é a hora certa para você ajudar</strong>. Como a forma final ainda não foi definida, esta é a fase em que estou mais influenciável :) Por favor, use a caixa de comentários para dar sua opinião e suas ideias:</p>
<ul>
<li>O que você gostaria de aprender sobre o sed?</li>
<li>Quais suas dificuldades?</li>
<li>Quais tarefas você gostaria de usar o sed mas não sabe como?</li>
<li>O que te impede de aproveitar melhor o sed?</li>
<li>Como é seu uso atual do sed? Usa para quais tarefas?</li>
<li>Fora o s///, usa outros comandos?</li>
<li>Em qual sistema você usa(ria) o sed: Linux, Mac, Windows, Unix, outro?</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://aurelio.net/blog/2011/06/24/vi-livro-sed-txt/feed/</wfw:commentRss>
		<slash:comments>30</slash:comments>
		</item>
		<item>
		<title>iPhone + TIM + DDD = FAIL</title>
		<link>http://aurelio.net/blog/2011/06/21/iphone-tim-ddd-fail/</link>
		<comments>http://aurelio.net/blog/2011/06/21/iphone-tim-ddd-fail/#comments</comments>
		<pubDate>Tue, 21 Jun 2011 22:15:07 +0000</pubDate>
		<dc:creator>Aurelio Jargas</dc:creator>
				<category><![CDATA[Meu querido diário]]></category>
		<category><![CDATA[Apple]]></category>
		<category><![CDATA[Expressões Regulares]]></category>
		<category><![CDATA[fvm]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[Mac OS X]]></category>
		<category><![CDATA[Oi]]></category>
		<category><![CDATA[programação]]></category>
		<category><![CDATA[PyObjC]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[svn]]></category>
		<category><![CDATA[TextMate]]></category>
		<category><![CDATA[twitter]]></category>

		<guid isPermaLink="false">http://aurelio.net/?p=3021</guid>
		<description><![CDATA[Faz anos que uso a Agenda (Address Book) do Mac OS X para guardar nomes, endereços e telefones de todos os meus contatos. Está tudo lá, bem organizado, com grupos, fotinhos, impecável. Quando ganhei um iPhone de aniversário (valeu Gabriel!), sincronizei &#8230; <a href="http://aurelio.net/blog/2011/06/21/iphone-tim-ddd-fail/">Continue lendo <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Faz anos que uso a <strong>Agenda</strong> (Address Book) do Mac OS X para guardar nomes, endereços e telefones de todos os meus contatos. Está tudo lá, bem organizado, com grupos, fotinhos, impecável.</p>
<p>Quando ganhei um iPhone de aniversário (valeu Gabriel!), sincronizei alegremente meus contatos e plim!, tudo funcionou perfeitamente. Eu clicava em um contato, ele chamava e eu falava. Normal.</p>
<p>Pelo menos era assim na operadora Oi (Brasil Telecom). Mas <strong>recentemente migrei para a TIM</strong> para poder usufruir da internet de pobre por 50 centavos/dia no pré-pago. A internet funcionou bem, mas quando fui fazer uma ligação:</p>
<blockquote><p>&#8220;O número chamado não existe. Por favor, verifique o número discado e tente novamente.&#8221;</p></blockquote>
<p>— Mas hein?<br />
— Como assim o meu número de casa não existe?</p>
<p>Tentei ligar para o celular da Mog, e nada, mesma mensagem. Editei o número e tirei o DDD, aí funcionou. Com DDD, só funcionou se o número estiver no formato completo: <strong>zero + operadora + DDD + número</strong>, mesmo que seja um número local.</p>
<p>Achei bizarro, pois durante anos sempre cadastrei os telefones em minha agenda no formato <strong>(DDD) NNNN-NNNN</strong>. Então, um telefone de Curitiba, por exemplo, fica como (41) 1234-5678. E pronto. Sem zero e sem operadora, conforme Deus gosta.</p>
<p>Após pesquisas na internet e com a ajuda de amigos <a href="http://twitter.com/oreio/status/78517719795908608">no twitter</a>, descobri que <strong>na Oi funcionava</strong> porque eles são espertos e moderninhos. Eles alteram o número no momento da chamada, para que fique correto:</p>
<ul>
<li>Se for uma chamada local, o código DDD é removido.</li>
<li>Se for chamada à distância, eles colocam o zero e o código de operadora (a deles, claro).</li>
</ul>
<p>Tudo automaticamente, sem que eu precise sequer saber que isso existe. <strong>Simplesmente funciona</strong>, conforme Deus gosta também. Na TIM, porém, a central é mais tosca e não sabe o que fazer com o meu número. Daí a tiazinha me fala que o número não existe&#8230;</p>
<p>Mas tá, já que a modernização da central da TIM não deve ocorrer a curto prazo, terei que mudar o meu lado e fornecer o número no formato que eles entendem. Em outras palavras, terei que <strong>poluir minha agenda</strong> colocando o código da operadora em todos os números. Que saco.</p>
<p>A TIM até oferece uma solução para isso, um programinha no Menu TIM chamado <strong>Agenda LD</strong>, que adiciona o zero e o código da operadora deles (41) em todos os seus contatos do chip. Do chip? Quack!</p>
<ul>
<li>O iPhone guarda os contatos em sua memória, e não no chip.</li>
<li>Não há opção para copiar os contatos do telefone para o chip.</li>
<li>Quack!</li>
</ul>
<p>Então, só me restou a última alternativa: eu mesmo modificar manualmente todas as centenas de contatos da minha agenda (Quack²), ou achar algum programa que faça isso automaticamente. Encontrei três na App Store:</p>
<ul>
<li><a href="http://itunes.apple.com/br/app/ddd-facil/id381994693?mt=8#">DDD Fácil</a></li>
<li><a href="http://itunes.apple.com/br/app/minha-operadora/id401640256?mt=8#">Minha Operadora</a></li>
<li><a href="http://itunes.apple.com/br/app/lebcontacts/id309713512?mt=8#">LEBContacts</a></li>
</ul>
<p>Todos parecem funcionar bem e não são caros, e teria sido melhor eu ter simplesmente comprado um deles e pronto. <strong>Mas nerd é uma merda.</strong> Lendo as descrições dos apps e as opiniões dos usuários, acabei tendo uma ideia que arruinou meus planos de trabalho ontem:</p>
<blockquote><p>&#8220;E se eu pudesse usar <a href="http://aurelio.net/er/">expressões regulares</a> para reformatar os números de telefone do jeito que eu quiser?&#8221;</p></blockquote>
<p>A ideia me empolgou, e como anos atrás eu já havia feito um <a href="http://aurelio.net/mac/dev/tutorial-pyobjc/#toc26">programa em Python que acessa a Agenda do Mac usando PyObjC</a>, não teve mais volta: abre o TextMate, pesquisas no Google, digita daqui, testa dali, e oito horas depois nascia mais um filhote: <a href="https://github.com/oreio/ab-rephone">ab-rephone.py</a>.</p>
<blockquote><p><strong>ab-rephone:</strong> Usa expressões regulares para alterar telefones na Agenda do Mac. Útil para adicionar/remover código de área e código da operadora. Pode editar todos os contatos ou um grupo específico. ATENÇÃO: SOMENTE PARA NERDS. <a href="https://github.com/oreio/ab-rephone">https://github.com/oreio/ab-rephone</a></p></blockquote>
<p><a href="http://aurelio.net/wp/wp-content/uploads/2011/06/ab-rephone.png"><img class="aligncenter size-large wp-image-3024" title="ab-rephone Address Book regex replace" src="http://aurelio.net/wp/wp-content/uploads/2011/06/ab-rephone-500x306.png" alt="" width="500" height="306" /></a></p>
<p>Resolveu o meu problema atual e futuros, pois agora tenho a liberdade de modificar os telefones de maneira automática. Assim como agora coloquei o bendito prefixo 041 em todos os telefones, amanhã posso remover, trocar por outro, colocar um +55 na frente, etc. Além disso, com poucas alterações este script pode virar um grep ou alterar outros campos da Agenda.</p>
<p>Se você passa por um problema parecido e o termo &#8220;expressões regulares&#8221; não lhe causa medo nem estranheza, usa lá que é software livre/aberto/gratuito/casa-da-mãe-Joana. Como o código está limpo e comentado, também serve de aprendizado para usar o <a href="http://aurelio.net/mac/dev/tutorial-pyobjc/">PyObjC</a>.</p>
<p>Se você não for nerd, <strong>nem perca tempo</strong> que este programa só servirá para você voltar aqui e me xingar. Aconselho que você compre um dos programas para iPhone que citei anteriormente.</p>
<p>Ah, esse script marca minha estreia no <a href="http://git-scm.com/">Git</a> e no <a href="https://github.com/">GitHub</a>. Sou um feliz usuário do <a href="http://subversion.apache.org/">SVN</a> para todos os meus projetos, e num <strong>raro acesso de falta de conservadorismo</strong>, resolvi experimentar o concorrente. Sinto-me estranho :)</p>
]]></content:encoded>
			<wfw:commentRss>http://aurelio.net/blog/2011/06/21/iphone-tim-ddd-fail/feed/</wfw:commentRss>
		<slash:comments>27</slash:comments>
		</item>
		<item>
		<title>Aos 33, descobri que meu nome não tem acento!</title>
		<link>http://aurelio.net/blog/2011/05/26/aos-33-descobri-que-meu-nome-nao-tem-acento/</link>
		<comments>http://aurelio.net/blog/2011/05/26/aos-33-descobri-que-meu-nome-nao-tem-acento/#comments</comments>
		<pubDate>Fri, 27 May 2011 02:49:08 +0000</pubDate>
		<dc:creator>Aurelio Jargas</dc:creator>
				<category><![CDATA[Meu querido diário]]></category>
		<category><![CDATA[Livro]]></category>
		<category><![CDATA[Mog]]></category>

		<guid isPermaLink="false">http://aurelio.net/?p=2914</guid>
		<description><![CDATA[Se me contassem eu não iria acreditar, mas aconteceu comigo: ontem, aos 33 anos de idade, descobri que passei a vida escrevendo meu nome errado. Desde criança escrevo meu primeiro nome como Aurélio. Porém, meu nome oficial na certidão de nascimento &#8230; <a href="http://aurelio.net/blog/2011/05/26/aos-33-descobri-que-meu-nome-nao-tem-acento/">Continue lendo <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Se me contassem eu não iria acreditar, mas aconteceu comigo: <a href="http://twitter.com/oreio/status/73482308434399233">ontem</a>, aos 33 anos de idade, descobri que passei a vida escrevendo meu nome errado. Desde criança escrevo meu primeiro nome como <strong>Aurélio</strong>. Porém, meu nome oficial na certidão de nascimento é <strong>Aurelio</strong>, sem acento. E o bizarro é que eu nunca percebi essa diferença!</p>
<p>Estou chocado. Logo eu que gosto tanto de padrões e manipulação de texto, que estou sempre atento aos detalhes. Como pude deixar passar essa? E durante tantos anos? Bizarro, é só isso que consigo pensar.</p>
<p>Posso até dizer que me bateu uma crise de identidade. Imagina, quantos cadastros já preenchi, as provas da escola, os meus livros, até minha assinatura é acentuada! Ontem eu era o Aurélio, agora eu sou um erro ortográfico, que até o fim da vida vai ser sublinhado com riscos vermelhos.</p>
<p><img class="aligncenter size-large wp-image-2921" title="aurelio-sem-acento-sublinhado" src="http://aurelio.net/wp/wp-content/uploads/2011/05/aurelio-sem-acento-500x350.png" alt="" width="500" height="350" /></p>
<p>Tá, chega de drama, é só um acento :)</p>
<p>Vamos logo passar pra <del>comédia</del> história: tudo começou no <a title="Casamento" href="http://aurelio.net/blog/2011/05/13/casamento/">dia do casamento</a>. Horas depois de voltarmos do cartório, já em casa, a Mog pegou a certidão de casamento para ler.</p>
<p>─ Teu nome tá sem acento.<br />
─ Sério? Deixa ver&#8230; É mesmo!<br />
─ Aurélio&#8230; Você tem certeza que teu nome tem acento?<br />
─ Claro né! Dããããr, que pergunta.<br />
─ Eu acho que o teu nome não tem acento.<br />
─ Ah Mog, vai catá coquinho vai, até parece.</p>
<p>Minha certeza era tão inabalável que somente cogitar essa possibilidade já parecia um absurdo. Imagina só se eu não saberia meu próprio nome&#8230;</p>
<p>Mas tá, isso foi há duas semanas. Ontem estava eu aqui, sozinho em casa, e precisei fazer uma compra em um site. Na tela de cadastro, após eu preencher todos os meus dados pessoais, li uma mensagem que dizia para conferir se os dados eram os mesmos que constavam no cartão de crédito. Olhei para o cartão e conferi os números e a data. Vi ali também o meu nome impresso: AURELIO M JARGAS, sem acento.</p>
<p>Nessa hora deu um clique e lembrei da pergunta absurda da Mog:</p>
<p>─ Você tem certeza que teu nome tem acento?</p>
<p>Pela primeira vez, titubeei. Será que&#8230; Não, impossível, imagina que ridículo&#8230; Mmmm&#8230; Será? Pulei da cadeira, abri o armário e peguei a pasta que guarda meus documentos. Um por um, fui conferindo. Carteira de reservista do exército, título de eleitor, carteira de motorista, CPF, RG, todos sem acento. Mas até aí nenhuma novidade, as poucas vezes que olhei estes documentos e percebi que não tinha acento, a explicação que veio na minha cabeça era sempre a mesma:</p>
<blockquote><p>Essas porcarias desses sistemas toscos MS-DOS que o governo usa, além de só escrever em maiúsculas, não usam acentos.</p></blockquote>
<p>Mas meu mundo desabou quando encontrei a prova cabal: uma cópia de minha certidão de nascimento. Eu já vi esse documento várias vezes, mas dessa vez eu estava realmente prestando atenção. E contrariando todas as minhas certezas, lá estava, datilografado em maiúsculas, para o mundo ver: AURELIO MARINHO JARGAS, sem acento.</p>
<div id="attachment_2922" class="wp-caption aligncenter" style="width: 510px"><img class="size-full wp-image-2922" title="certidao-de-nascimento" src="http://aurelio.net/wp/wp-content/uploads/2011/05/certidao-nasc-500.jpg" alt="" width="500" height="364" /><p class="wp-caption-text">Bastard Datilógrafo From Hell</p></div>
<p>Olhei mais de perto. Vai que o risquinho do acento saiu meio falhado? Máquina de escrever, sabe como é. Que nada, não havia risquinho. Era só uma letra E mesmo. Então, neste momento, em silêncio, segurando a certidão perto do rosto, meu queixo caiu. Figurativamente, ok? :)</p>
<p>Chocado, liguei pra minha mãe.</p>
<p>─ Mãe! Tenho uma notícia bombástica pra te contar!<br />
─ Ai, ai, ai. O que é?<br />
─ Descobri que meu nome não tem acento!<br />
─ Hein?<br />
─ Meu nome, é Aurélio sem acento!<br />
─ Sim, eu sei filho, respondeu ela, calmamente.</p>
<p>[queixo caindo ainda mais]</p>
<p>─ Como assim??!? Desde criança, eu sempre escrevi Aurélio com acento!!!!<br />
─ Sério? Nunca percebi.<br />
─ Coooomo não mãe!!! Tudo! Na escola, nas provas, minha assinatura. Olha aí, olha na capa dos meus livros!*<br />
─ Noooossa, é mesmo filho&#8230;</p>
<p>E assim, neste dia também descobri que a falta de atenção ao meu nome é hereditária ;)</p>
<blockquote><p>* A mãe deixa os meus livros na mesinha da sala, sempre à mostra. Sabe como é, pra mostrar pras visitas :)</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://aurelio.net/blog/2011/05/26/aos-33-descobri-que-meu-nome-nao-tem-acento/feed/</wfw:commentRss>
		<slash:comments>82</slash:comments>
		</item>
		<item>
		<title>Obsolescência Programada, você participa?</title>
		<link>http://aurelio.net/blog/2011/05/18/obsolescencia-programada-voce-participa/</link>
		<comments>http://aurelio.net/blog/2011/05/18/obsolescencia-programada-voce-participa/#comments</comments>
		<pubDate>Wed, 18 May 2011 04:26:33 +0000</pubDate>
		<dc:creator>Aurelio Jargas</dc:creator>
				<category><![CDATA[Meu querido diário]]></category>
		<category><![CDATA[Joinville]]></category>
		<category><![CDATA[twitter]]></category>
		<category><![CDATA[vida simples]]></category>
		<category><![CDATA[Vídeo]]></category>

		<guid isPermaLink="false">http://aurelio.net/?p=2909</guid>
		<description><![CDATA[Hoje de manhã fui ligar meu monitor e ele não funcionou. Tudo preto, luzes apagadas. Apertei o botão de novo e nada. Xi&#8230; Conferi os cabos, o plugue, a tomada; tudo certo. Troquei o cabo de força por outro, nada. &#8230; <a href="http://aurelio.net/blog/2011/05/18/obsolescencia-programada-voce-participa/">Continue lendo <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Hoje de manhã fui ligar meu monitor e ele não funcionou. Tudo preto, luzes apagadas. Apertei o botão de novo e nada. Xi&#8230; Conferi os cabos, o plugue, a tomada; tudo certo. Troquei o cabo de força por outro, nada. Não é que o coitado morreu mesmo?</p>
<p>Eu gosto desse monitor, é um LG (L175S LCD 17&#8243;) que comprei novo em 2005 e usei quase que diariamente desde então. Hoje mesmo o levei numa eletrônica aqui em Joinville e estou esperando eles me ligarem para dizer o orçamento.</p>
<blockquote><p><strong>Atualização em 27/05/2011:</strong> O primeiro lugar que levei foi na <a href="http://www.eletronicamanchester.com.br">Eletrônica Manchester</a>, que é assistência técnica autorizada LG em Joinville. O diagnóstico foi o pior possível: queimou a fonte de alimentação e não há substituta, não tem conserto. Em outras palavras, declararam meu monitor morto. Não satisfeito, busquei uma segunda opinião e levei o monitor na <a href="http://www.infoservicejoinville.com.br">InfoService</a>, que fica ali perto. O técnico (Reinaldo) não só arrumou o monitor (que estou usando neste momento) como disse que era somente um problema de mau contato, e nem quis cobrar pelo serviço. Resumo: Manchester FAIL, InfoService WIN.</p></blockquote>
<p><a href="http://twitter.com/oreio/status/70502030338310144">Comentei sobre o assunto no twitter</a>, e alguns amigos me disseram para eu comprar um monitor novo. Se o preço do conserto for muito caro, esta pode ser uma opção. Mas eu prefiro continuar usando o meu monitor antigo, pois ele supre minha necessidade, e felizmente eu não participo da <strong>frustrante corrida ao equipamento recém-lançado</strong>.</p>
<p>Mas enfim, dessa história toda do monitor, o que me valeu o dia hoje foi o link que o <a href="http://twitter.com/dbolgheroni">Daniel Bolgheroni</a> mandou sobre um excelente documentário que investiga o porquê das coisas não durarem mais como antigamente: a chamada <strong>Obsolescência Programada</strong>. Acabei de ver o documentário e escrevi este texto aqui no blog somente para divulgá-lo, pois achei muito muito interessante.</p>
<p>O filme tem 50 minutos, é muito bem produzido e explica como já em 1924 um cartel dos fabricantes de lâmpadas decidiu reduzir a vida útil delas de 2500 para 1000 horas, para que precisássemos comprar mais lâmpadas. Esta prática se generalizou e hoje parece que tudo é descartável, com durabilidade mínima e qualquer problema é só comprar um novo (e dá-lhe lixo acumulando!). Assista:</p>
<p><object width="640" height="385"><param name="movie" value="http://www.youtube.com/v/QosF0b0i2f0?version=3"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/QosF0b0i2f0?version=3" type="application/x-shockwave-flash" width="640" height="385" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<p>Eu peço que você faça um esforço e separe uma hora de seu tempo para assistir a este documentário. Está em espanhol, mas como todo brasileiro arranha um portunhol, você vai entender, não se preocupe. Mesmo que você discorde e não aceite as evidências fornecidas no filme, pelo menos pare para pensar sobre seu próprio consumo.</p>
<ul>
<li>Você compra demais?</li>
<li>Você compra por necessidade ou por impulso?</li>
<li>Seu consumo é racional ou emocional?</li>
<li>Sua felicidade está condicionada ao que você possui?</li>
</ul>
<p>Caso você ainda não tenha visto, outro vídeo muito esclarecedor sobre o absurdo que é o consumo atualmente, chama-se <strong>A História das Coisas</strong>. Esse já é um clássico, tem 20 minutos e foi até dublado em português:</p>
<p><object width="640" height="505"><param name="movie" value="http://www.youtube.com/v/lgmTfPzLl4E?version=3"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/lgmTfPzLl4E?version=3" type="application/x-shockwave-flash" width="640" height="505" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://aurelio.net/blog/2011/05/18/obsolescencia-programada-voce-participa/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
	</channel>
</rss><!-- Dynamic page generated in 0.764 seconds. --><!-- Cached page generated by WP-Super-Cache on 2012-01-26 17:47:02 --><!-- Compression = gzip -->

