<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	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/"
	>

<channel>
	<title>Blog do Robson Dantas &#187; Internet</title>
	<atom:link href="http://blogdodantas.dxs.com.br/category/tecnologia_informatica/internet/feed/" rel="self" type="application/rss+xml" />
	<link>http://blogdodantas.dxs.com.br</link>
	<description>Tecnologia, segurança, cotidiano, pesca esportiva e inutilidades</description>
	<lastBuildDate>Tue, 31 Jan 2012 02:31:46 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.3</generator>
		<item>
		<title>Diário de bordo &#8211; Google I/O 2011</title>
		<link>http://blogdodantas.dxs.com.br/2011/05/14/diario-de-bordo-google-io-2011/</link>
		<comments>http://blogdodantas.dxs.com.br/2011/05/14/diario-de-bordo-google-io-2011/#comments</comments>
		<pubDate>Sat, 14 May 2011 22:29:09 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[Tecnologia e informática]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[apengine]]></category>
		<category><![CDATA[google io 2011]]></category>

		<guid isPermaLink="false">http://blogdodantas.dxs.com.br/?p=533</guid>
		<description><![CDATA[Introdução: Ano passado participei pela primeira vez do evento, que teve sua primeira edição em 2008, e concluí que deveria vir nos próximos, pois vale a pena. Esse ano não foi diferente, e foi mais legal ainda. Mais legal pelo fato que consegui convencer outros brasileiros a participar da viagem, e também porque a qualidade [...]]]></description>
			<content:encoded><![CDATA[<blockquote><p>Introdução:</p></blockquote>
<p>Ano passado<a href="http://blogdodantas.dxs.com.br/2010/05/18/resumo-ate-o-primeiro-dia-de-google-io/"  target="_blank"> participei pela primeira vez do evento</a>, que teve sua primeira edição em 2008, e concluí que deveria vir nos próximos, pois vale a pena.</p>
<p>Esse ano não foi diferente, e foi mais legal ainda. Mais legal pelo fato que consegui convencer outros brasileiros a participar da viagem, e também porque a qualidade do evento estava ainda melhor. Ah, a Google ainda pagou o hotel, que dividi com o <a href="http://www.twitter.com/renatomangini" onclick="javascript:pageTracker._trackPageview('out/www.twitter.com');" target="_blank">Renato Mangini</a> de BH &#8211; uma forma gentil que eles acharam para reconhecer o trabalho que fazemos nas comunidades <a href="http://www.sp-gtug.org" onclick="javascript:pageTracker._trackPageview('out/www.sp-gtug.org');" target="_blank">SP-GTUG</a> e <a href="http://bh.gtugs.org/" onclick="javascript:pageTracker._trackPageview('out/bh.gtugs.org');" target="_blank">BH-GTUG</a>.</p>
<p>Saí de São Paulo no sábado 9/05, rumo a San Francisco, fazendo escala em Miami. Cheguei em San Francisco no domingo e  já saí correndo para o escritório da Google, onde tivemos um <a href="http://wiki.gtugs.org" onclick="javascript:pageTracker._trackPageview('out/wiki.gtugs.org');" target="_blank">encontro das gtugs do mundo inteiro</a>. Ano passado foi apenas um jantar, mas durante o ano de 2010 tivemos uma <a href="http://geolabs.com.br/pulse/"  target="_blank">explosão de grupos iniciando</a> e vários coordenadores decidiram participar do evento.</p>
<blockquote><p>O Barcamp:</p></blockquote>
<p>Depois de uma breve apresentação de todos os membros (havia mais de cem), recebemos stickers para escrever sobre um determinado tópico e que devíamos grudar em uma lousa branca. Depois de um processo de moderação, as conversas foram divididas em seis mesas, com tempo aproximado de uma hora para cada sessão.</p>
<div id="attachment_537" class="wp-caption alignnone" style="width: 560px"><a href="http://www.dxs.com.br/wordpress/wp-content/uploads/2011/05/barcamp.jpg" ><img class="size-full wp-image-537 " title="barcamp - evento das gtugs" src="http://www.dxs.com.br/wordpress/wp-content/uploads/2011/05/barcamp.jpg" alt="barcamp - evento das gtugs" width="550" height="413" /></a><p class="wp-caption-text">barcamp - evento das gtugs</p></div>
<div id="attachment_538" class="wp-caption alignnone" style="width: 560px"><a href="http://www.dxs.com.br/wordpress/wp-content/uploads/2011/05/lousa.jpg" ><img class="size-full wp-image-538 " title="tópicos para discussão no barcamp" src="http://www.dxs.com.br/wordpress/wp-content/uploads/2011/05/lousa.jpg" alt="tópicos para discussão no barcamp" width="550" height="413" /></a><p class="wp-caption-text">tópicos para discussão no barcamp</p></div>
<p>Eu falei do processo de criação de um novo site para as GTUGs, onde o Renato também colaborou. Participamos também de forma bem ativa das outras discussões e que foram bem interessantes. O <a href="http://wiki.gtugs.org/barcamp" onclick="javascript:pageTracker._trackPageview('out/wiki.gtugs.org');" target="_blank">resumo de cada conversa pode ser visto aqui</a>.</p>
<p>No final do evento, por volta das sete horas da noite, tivemos um jantar com comida e bebida a vontade. Também ganhamos uma jaqueta e camiseta personalizada das GTUGs.</p>
<p>Foi sem dúvida um evento histórico. É raro ter a oportunidade de falar com pessoas de mais de trinta países e trocar idéias e experiências sobre qualquer assunto que viesse na cabeça.</p>
<blockquote><p>A mustang e visita a sede da Google:</p></blockquote>
<p>Na segunda-feira, decidi alugar um carro e convidei outros brasileiros que estavam por lá. Quando chegamos na loja, o Sam da StudioSol deu a brilhante idéia de alugarmos uma Mustang, ao invés de um carro compacto comum. Como estávamos em quatro pessoas, a brincadeira saiu por volta de 50usd &#8211; razoável.</p>
<p>Demos uma volta pela <a href="http://en.wikipedia.org/wiki/Fisherman" onclick="javascript:pageTracker._trackPageview('out/en.wikipedia.org');"s_Wharf,_San_Francisco" target="_blank">Fisherman´s Wharf</a>, onde é possível ver a ilha de Alcatraz. Almoçamos por ali mesmo e depois pegamos a auto estrada rumo a Mountain View, sede da Google. Não vou escrever sobre a sensação de dirigir uma Mustang, pois daria outro post, mas é algo bem legal.</p>
<div id="attachment_539" class="wp-caption alignnone" style="width: 560px"><a href="http://www.dxs.com.br/wordpress/wp-content/uploads/2011/05/mustang.jpg" ><img class="size-full wp-image-539 " title="mustang alugada em san francisco" src="http://www.dxs.com.br/wordpress/wp-content/uploads/2011/05/mustang.jpg" alt="mustang alugada em san francisco" width="550" height="368" /></a><p class="wp-caption-text">mustang alugada em san francisco</p></div>
<div id="attachment_544" class="wp-caption alignnone" style="width: 560px"><a href="http://www.dxs.com.br/wordpress/wp-content/uploads/2011/05/DSC_0114.jpg" ><img class="size-full wp-image-544" title="Golden Gate bridge" src="http://www.dxs.com.br/wordpress/wp-content/uploads/2011/05/DSC_0114.jpg" alt="Golden Gate bridge" width="550" height="368" /></a><p class="wp-caption-text">Golden Gate bridge</p></div>
<p>Passamos pelo escritório da Google, tiramos foto em frente ao prédio do Android, usamos o wifi de visitante que é gratuito e passamos por dentro da antiga sede (nome que eles dão para o prédio que era da Silicon Graphics).</p>
<div id="attachment_540" class="wp-caption alignnone" style="width: 560px"><a href="http://www.dxs.com.br/wordpress/wp-content/uploads/2011/05/android.jpg" ><img class="size-full wp-image-540 " title="Eu, Sam e Bruno no prédio do Android" src="http://www.dxs.com.br/wordpress/wp-content/uploads/2011/05/android.jpg" alt="Eu, Sam e Bruno no prédio do Android" width="550" height="368" /></a><p class="wp-caption-text">Eu, Sam e Bruno no prédio do Android</p></div>
<p>Na volta passamos na <a href="http://www.target.com" onclick="javascript:pageTracker._trackPageview('out/www.target.com');" target="_blank">Target</a> e <a href="http://www.babiesrus.com" onclick="javascript:pageTracker._trackPageview('out/www.babiesrus.com');" target="_blank">Babies R US</a>, e depois jantamos no <a href="http://www.lorisdiner.com/home.html" onclick="javascript:pageTracker._trackPageview('out/www.lorisdiner.com');" target="_blank">Lori´s</a>, que tem um milkshake de Oreo simplesmente fantástico.</p>
<blockquote><p>Primeiro dia de Google I/O:</p></blockquote>
<p>Já estava em San Francisco há dois dias, e a ansiedade para o evento só aumentava. Acordei às seis da manhã, e por volta das sete já estava lá para fazer o credenciamento e tomar o café da manhã. Tudo estava impecável, e verde! O que deixava claro o foco em Android na conferência.</p>
<div id="attachment_541" class="wp-caption alignnone" style="width: 490px"><a href="http://www.dxs.com.br/wordpress/wp-content/uploads/2011/05/moscone.jpg" ><img class="size-full wp-image-541" title="Entrada do moscone west" src="http://www.dxs.com.br/wordpress/wp-content/uploads/2011/05/moscone.jpg" alt="Entrada do moscone west" width="480" height="640" /></a><p class="wp-caption-text">Entrada do moscone west</p></div>
<p>Por volta das 8:30 a fila para o keynote já dava voltas dentro do <a href="http://www.moscone.com/site/do/index" onclick="javascript:pageTracker._trackPageview('out/www.moscone.com');" target="_blank">Moscone West</a>. Às  9:00, a entrada principal abriu, e o que eu via era apenas um monte de geeks correndo para pegar lugar na fileira mais próxima possível do palco. Consegui ficar na oitava fileira, o que foi bastante razoável.</p>
<p><a href="http://en.wikipedia.org/wiki/Vic_Gundotra" onclick="javascript:pageTracker._trackPageview('out/en.wikipedia.org');" target="_blank">Vic Gundotra</a> abriu o evento, agradecendo a presença de todos, falando do histórico e das evoluções tomando como base a apresentação do ano passado. Mais uma vez, tempo para alfinetar a Apple, mostrando o boneco do Android comendo uma maça e com os números de milhares de ativações de Android por dia.</p>
<p>Vários membros do time do Android subiram ao palco para falar das novidades, incluindo integrações com hardware através do <a href="http://developer.android.com/guide/topics/usb/adk.html" onclick="javascript:pageTracker._trackPageview('out/developer.android.com');" target="_blank">ADK </a>(Android Development Kit). No final, a belíssima surpresa de que todos no evento estariam recebendo um Galaxy Tab da Samsung de 10&#8217;1.</p>
<div id="attachment_543" class="wp-caption alignnone" style="width: 560px"><a href="http://www.dxs.com.br/wordpress/wp-content/uploads/2011/05/DSC_01471.jpg" ><img class="size-full wp-image-543 " title="Brasileiros felizes com o galaxy tab" src="http://www.dxs.com.br/wordpress/wp-content/uploads/2011/05/DSC_01471.jpg" alt="Brasileiros felizes com o galaxy tab" width="550" height="368" /></a><p class="wp-caption-text">Brasileiros felizes com o galaxy tab</p></div>
<p>Ao longo do dia, diversas palestras sobre Android, AppEngine e outras tecnologias aconteceram. As mesmas <a href="http://www.google.com/events/io/2011/sessions.html" onclick="javascript:pageTracker._trackPageview('out/www.google.com');" target="_blank">já estão disponíveis no site do Google I/O</a>.</p>
<p>No final, uma festa com comida e bebida a vontade, além do show do Jane´s Addiction. Vários expositores estavam lá mostrando robôs, carros que voam e outras coisas mais &#8230;</p>
<blockquote><p>Segundo dia de Google I/O:</p></blockquote>
<p>No segundo dia, Sundar Pichai (Chrome) abriu o evento. Falou-se muito da evolução do Chrome, de segurança, do mercado, e como todas as empresas evoluíram seus browsers desde o momento que a Google começou a trabalhar fortemente em aspectos como segurança e HTML5.</p>
<p>Membros do time apareceram para mostrar experimentos com HTML5 e CSS3d e logo na sequência foi falado de Chrome OS e do cenário atual. Mais uma surpresa foi que todos os presentes no evento ganhariam um ChromeBook (não mais chamado de netbook) da Samsung.</p>
<p>Durante o dia, várias palestras aconteceram &#8211; desde Android, HTML5, até Python no Google e Venture Capital. Perdi algumas, pois fui convidado para uma chamada Advocate Summit &#8211; fechada e entrada permitida mediante convite. Tive a honra e a chance de participar de uma sessão fechada com o top management do Google: Vic Gundotra, Michael Winton, Sundar Pichai e dois outros nomes que não me recordo.</p>
<div id="attachment_545" class="wp-caption alignnone" style="width: 560px"><a href="http://www.dxs.com.br/wordpress/wp-content/uploads/2011/05/DSC_0168.jpg" ><img class="size-full wp-image-545" title="Advocate summit" src="http://www.dxs.com.br/wordpress/wp-content/uploads/2011/05/DSC_0168.jpg" alt="Advocate summit" width="550" height="368" /></a><p class="wp-caption-text">Advocate summit</p></div>
<p>No final do dia, todos os GTUG managers foram convidados para um jantar próximo ao Moscone West, e os brasileiros que estavam comigo também participaram. Tive a chance de conhecer mais dois brasileiros empreendedores que moram lá em San Francisco: Rafael Sanches &#8211; criador do <a href="http://www.appbrain.com/app/recipe-search/com.mufumbo.android.recipe.search" onclick="javascript:pageTracker._trackPageview('out/www.appbrain.com');" target="_blank">Recipe Search</a>, app para Android bem famosa nos EUA, e sua esposa, Silvia.</p>
<p>Para fechar com chave de ouro, cada mesa de jantar teria direito a receber um <a href="http://developer.android.com/guide/topics/usb/adk.html" onclick="javascript:pageTracker._trackPageview('out/developer.android.com');" target="_blank">ADK</a>, e a pessoa que receberia, teria que ser escolhida por mérito. Como na mesa só havia brasileiros e o Renato já tinha o dele garantido, ficou pra mim. Como já tenho experiência com Arduino, vai ser tranquilo brincar com o aparelho.</p>
<blockquote><p>Concluindo:</p></blockquote>
<p>Terminado o jantar, era hora de juntar as malas e voltar para o Brasil. No final desses eventos sempre reflito sobre as oportunidades que a vida me proporciona. O que tenho a dizer ? Sou uma pessoa privilegiada, e devo agradecer todos os dias por isso.</p>
<p>Quer participar do #io2012 ? Então <a href="https://groups.google.com/d/topic/sp-gtug/zckfeN6qtLg/discussion" onclick="javascript:pageTracker._trackPageview('out/groups.google.com');" target="_blank">veja aqui o que você precisa</a>, e participe também do <a href="http://www.sp-gtug.org" onclick="javascript:pageTracker._trackPageview('out/www.sp-gtug.org');" target="_blank">SP-GTUG</a> &#8211; grupo o qual sou um dos coordenadores, onde discutimos sobre as tecnologias que a Google desenvolve.</p>
<p>Um abraço!</p>
<p>Robson Dantas</p>
<p class="bookmark-me">Bookmarks<a title="technorati.com" href="http://www.technorati.com/faves?add=http%3A%2F%2Fblogdodantas.dxs.com.br%2F2011%2F05%2F14%2Fdiario-de-bordo-google-io-2011%2F" onclick="javascript:pageTracker._trackPageview('out/www.technorati.com');" target="_blank" rel="nofollow"><img src="http://www.dxs.com.br/wordpress/wp-content/plugins/bookmark-me/images/technorati.png" style="margin:0;border:0;padding:0" alt="bookmark"/></a> <a title="del.icio.us" href="http://del.icio.us/post?url=http%3A%2F%2Fblogdodantas.dxs.com.br%2F2011%2F05%2F14%2Fdiario-de-bordo-google-io-2011%2F&amp;title=Di%C3%A1rio+de+bordo+%26%238211%3B+Google+I%2FO+2011" onclick="javascript:pageTracker._trackPageview('out/del.icio.us');" target="_blank" rel="nofollow"><img src="http://www.dxs.com.br/wordpress/wp-content/plugins/bookmark-me/images/delicious.png" style="margin:0;border:0;padding:0" alt="bookmark"/></a> <a title="digg.com" href="http://digg.com/submit?url=http%3A%2F%2Fblogdodantas.dxs.com.br%2F2011%2F05%2F14%2Fdiario-de-bordo-google-io-2011%2F&amp;title=Di%C3%A1rio+de+bordo+%26%238211%3B+Google+I%2FO+2011" onclick="javascript:pageTracker._trackPageview('out/digg.com');" target="_blank" rel="nofollow"><img src="http://www.dxs.com.br/wordpress/wp-content/plugins/bookmark-me/images/digg.png" style="margin:0;border:0;padding:0" alt="bookmark"/></a> <a title="www.facebook.com" href="http://www.facebook.com/share.php?u=http%3A%2F%2Fblogdodantas.dxs.com.br%2F2011%2F05%2F14%2Fdiario-de-bordo-google-io-2011%2F&amp;t=Di%C3%A1rio+de+bordo+%26%238211%3B+Google+I%2FO+2011" onclick="javascript:pageTracker._trackPageview('out/www.facebook.com');" target="_blank" rel="nofollow"><img src="http://www.dxs.com.br/wordpress/wp-content/plugins/bookmark-me/images/facebook.png" style="margin:0;border:0;padding:0" alt="bookmark"/></a> <a title="bookmarks.yahoo.com" href="http://bookmarks.yahoo.com/toolbar/savebm?opener=tb&amp;u=http%3A%2F%2Fblogdodantas.dxs.com.br%2F2011%2F05%2F14%2Fdiario-de-bordo-google-io-2011%2F" onclick="javascript:pageTracker._trackPageview('out/bookmarks.yahoo.com');" target="_blank" rel="nofollow"><img src="http://www.dxs.com.br/wordpress/wp-content/plugins/bookmark-me/images/yahoo.png" style="margin:0;border:0;padding:0" alt="bookmark"/></a> <a title="www.google.com" href="http://www.google.com/bookmarks/mark?op=edit&amp;output=popup&amp;bkmk=http%3A%2F%2Fblogdodantas.dxs.com.br%2F2011%2F05%2F14%2Fdiario-de-bordo-google-io-2011%2F&amp;title=Di%C3%A1rio+de+bordo+%26%238211%3B+Google+I%2FO+2011" onclick="javascript:pageTracker._trackPageview('out/www.google.com');" target="_blank" rel="nofollow"><img src="http://www.dxs.com.br/wordpress/wp-content/plugins/bookmark-me/images/google.png" style="margin:0;border:0;padding:0" alt="bookmark"/></a> </p><p><script type="text/javascript"><!--
google_ad_client = "pub-3400408440819022";
/* 468x60, criado 02/11/10 */
google_ad_slot = "1718761682";
google_ad_width = 468;
google_ad_height = 60;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></p>]]></content:encoded>
			<wfw:commentRss>http://blogdodantas.dxs.com.br/2011/05/14/diario-de-bordo-google-io-2011/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Removendo background de imagens usando ImageMagick (fundo transparente)</title>
		<link>http://blogdodantas.dxs.com.br/2011/04/19/removendo-background-de-imagens-usando-imagemagick-fundo-transparente/</link>
		<comments>http://blogdodantas.dxs.com.br/2011/04/19/removendo-background-de-imagens-usando-imagemagick-fundo-transparente/#comments</comments>
		<pubDate>Tue, 19 Apr 2011 23:14:20 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Edição de imagem e webdesign]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[hacking]]></category>
		<category><![CDATA[edição de imagem]]></category>
		<category><![CDATA[imagemagick]]></category>

		<guid isPermaLink="false">http://blogdodantas.dxs.com.br/?p=524</guid>
		<description><![CDATA[Esse post é curto, porém bem útil. Algumas vezes precisei remover o fundo de uma imagem, ou seja, deixá-la transparente. Vamos falar que sua foto tem um fundo totalmente verde, e que você quer removê-lo. Fazer isso no GIMP, Photoshop, ou outros, leva um tempinho, dependendo dos detalhes da imagem. Daí que entra um conjunto [...]]]></description>
			<content:encoded><![CDATA[<p>Esse post é curto, porém bem útil. Algumas vezes precisei remover o fundo de uma imagem, ou seja, deixá-la transparente.</p>
<p>Vamos falar que sua foto tem um fundo totalmente verde, e que você quer removê-lo. Fazer isso no GIMP, Photoshop, ou outros, leva um tempinho, dependendo dos detalhes da imagem.</p>
<p>Daí que entra um conjunto de utilitários para linha de comando &#8211; chamado <a href="http://www.imagemagick.org/script/index.php" onclick="javascript:pageTracker._trackPageview('out/www.imagemagick.org');" target="_blank">ImageMagick </a>- que permite realizar uma série de operações, entre eles remover fundo, compor imagens, converter formatos, etc.</p>
<p>Lembro que esse utilitário era usado para tratar imagens em uma empresa que faz sistemas para trânsito na qual trabalhei, já que também tem APIs para várias linguagens: C++, perl, php, C#, python, etc.</p>
<p>Então, vamos ao trabalho:  Supondo que você tenha a imagem abaixo, chamada imagem1.gif, e que queira converter para um png transparente:</p>
<div id="attachment_526" class="wp-caption alignnone" style="width: 360px"><a href="http://www.dxs.com.br/wordpress/wp-content/uploads/2011/04/vermelho.gif" ><img class="size-full wp-image-526" title="imagem com fundo vermelho" src="http://www.dxs.com.br/wordpress/wp-content/uploads/2011/04/vermelho.gif" alt="imagem com fundo vermelho" width="350" height="350" /></a><p class="wp-caption-text">imagem com fundo vermelho</p></div>
<p>Rodando o comando abaixo, teremos uma imagem transparente (png):</p>
<p><em>/diretorio_image_magick/convert.exe vermelho.gif -transparent red vermelho.png</em></p>
<p><strong>Em outras palavras</strong>: Rode convert.exe no arquivo vermelho.gif e tire todo o vermelho, salvando como vermelho.png. Resultado abaixo:</p>
<div id="attachment_527" class="wp-caption alignnone" style="width: 360px"><a href="http://www.dxs.com.br/wordpress/wp-content/uploads/2011/04/vermelho.png" ><img class="size-full wp-image-527" title="imagem sem o fundo vermelho" src="http://www.dxs.com.br/wordpress/wp-content/uploads/2011/04/vermelho.png" alt="imagem sem o fundo vermelho" width="350" height="350" /></a><p class="wp-caption-text">imagem sem o fundo vermelho</p></div>
<p>Obviamente que há outros parâmetros que você pode brincar, como o fuzz (lógica fuzzy). Basta olhar a vasta documentação no site, que eu recomendo, dado o poder da biblioteca.</p>
<p>Um abraço,</p>
<p>Robson Dantas</p>
<p class="bookmark-me">Bookmarks<a title="technorati.com" href="http://www.technorati.com/faves?add=http%3A%2F%2Fblogdodantas.dxs.com.br%2F2011%2F04%2F19%2Fremovendo-background-de-imagens-usando-imagemagick-fundo-transparente%2F" onclick="javascript:pageTracker._trackPageview('out/www.technorati.com');" target="_blank" rel="nofollow"><img src="http://www.dxs.com.br/wordpress/wp-content/plugins/bookmark-me/images/technorati.png" style="margin:0;border:0;padding:0" alt="bookmark"/></a> <a title="del.icio.us" href="http://del.icio.us/post?url=http%3A%2F%2Fblogdodantas.dxs.com.br%2F2011%2F04%2F19%2Fremovendo-background-de-imagens-usando-imagemagick-fundo-transparente%2F&amp;title=Removendo+background+de+imagens+usando+ImageMagick+%28fundo+transparente%29" onclick="javascript:pageTracker._trackPageview('out/del.icio.us');" target="_blank" rel="nofollow"><img src="http://www.dxs.com.br/wordpress/wp-content/plugins/bookmark-me/images/delicious.png" style="margin:0;border:0;padding:0" alt="bookmark"/></a> <a title="digg.com" href="http://digg.com/submit?url=http%3A%2F%2Fblogdodantas.dxs.com.br%2F2011%2F04%2F19%2Fremovendo-background-de-imagens-usando-imagemagick-fundo-transparente%2F&amp;title=Removendo+background+de+imagens+usando+ImageMagick+%28fundo+transparente%29" onclick="javascript:pageTracker._trackPageview('out/digg.com');" target="_blank" rel="nofollow"><img src="http://www.dxs.com.br/wordpress/wp-content/plugins/bookmark-me/images/digg.png" style="margin:0;border:0;padding:0" alt="bookmark"/></a> <a title="www.facebook.com" href="http://www.facebook.com/share.php?u=http%3A%2F%2Fblogdodantas.dxs.com.br%2F2011%2F04%2F19%2Fremovendo-background-de-imagens-usando-imagemagick-fundo-transparente%2F&amp;t=Removendo+background+de+imagens+usando+ImageMagick+%28fundo+transparente%29" onclick="javascript:pageTracker._trackPageview('out/www.facebook.com');" target="_blank" rel="nofollow"><img src="http://www.dxs.com.br/wordpress/wp-content/plugins/bookmark-me/images/facebook.png" style="margin:0;border:0;padding:0" alt="bookmark"/></a> <a title="bookmarks.yahoo.com" href="http://bookmarks.yahoo.com/toolbar/savebm?opener=tb&amp;u=http%3A%2F%2Fblogdodantas.dxs.com.br%2F2011%2F04%2F19%2Fremovendo-background-de-imagens-usando-imagemagick-fundo-transparente%2F" onclick="javascript:pageTracker._trackPageview('out/bookmarks.yahoo.com');" target="_blank" rel="nofollow"><img src="http://www.dxs.com.br/wordpress/wp-content/plugins/bookmark-me/images/yahoo.png" style="margin:0;border:0;padding:0" alt="bookmark"/></a> <a title="www.google.com" href="http://www.google.com/bookmarks/mark?op=edit&amp;output=popup&amp;bkmk=http%3A%2F%2Fblogdodantas.dxs.com.br%2F2011%2F04%2F19%2Fremovendo-background-de-imagens-usando-imagemagick-fundo-transparente%2F&amp;title=Removendo+background+de+imagens+usando+ImageMagick+%28fundo+transparente%29" onclick="javascript:pageTracker._trackPageview('out/www.google.com');" target="_blank" rel="nofollow"><img src="http://www.dxs.com.br/wordpress/wp-content/plugins/bookmark-me/images/google.png" style="margin:0;border:0;padding:0" alt="bookmark"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://blogdodantas.dxs.com.br/2011/04/19/removendo-background-de-imagens-usando-imagemagick-fundo-transparente/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Opções gratuitas para realizar vídeo conferências</title>
		<link>http://blogdodantas.dxs.com.br/2010/08/29/opcoes-gratuitas-para-realizar-video-conferencias/</link>
		<comments>http://blogdodantas.dxs.com.br/2010/08/29/opcoes-gratuitas-para-realizar-video-conferencias/#comments</comments>
		<pubDate>Sun, 29 Aug 2010 22:04:04 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[Tecnologia e informática]]></category>
		<category><![CDATA[chat online]]></category>
		<category><![CDATA[conferencia gratuita]]></category>
		<category><![CDATA[vídeo conferencia]]></category>

		<guid isPermaLink="false">http://blogdodantas.dxs.com.br/?p=434</guid>
		<description><![CDATA[O post é curto, mas a informação é importante. Sempre aparece alguém perguntando sobre vídeo conferência na web, ou até mesmo aparece essa necessidade de forma aleatória. Postei essa informação no meu twitter, e estou mandando o link por aqui também, veja: Opções gratuitas para vídeo conferência Espero que ajude. . -Robson Dantas Bookmarks]]></description>
			<content:encoded><![CDATA[<p>O post é curto, mas a informação é importante. Sempre aparece alguém perguntando sobre vídeo conferência na web, ou até mesmo aparece essa necessidade de forma aleatória.</p>
<p>Postei essa informação no meu <a title="robson dantas twitter" href="http://www.twitter.com/robsondantas" onclick="javascript:pageTracker._trackPageview('out/www.twitter.com');" target="_blank">twitter</a>, e estou mandando o link por aqui também, veja:</p>
<p><a title="opção gratuitas para vídeo conferencia" href="http://www.kabytes.com/aplicaciones-online/opciones-gratuitas-para-realizar-videoconferencias/" onclick="javascript:pageTracker._trackPageview('out/www.kabytes.com');" target="_self">Opções gratuitas para vídeo conferência</a></p>
<p>Espero que ajude.</p>
<p>.</p>
<p>-Robson Dantas</p>
<p class="bookmark-me">Bookmarks<a title="technorati.com" href="http://www.technorati.com/faves?add=http%3A%2F%2Fblogdodantas.dxs.com.br%2F2010%2F08%2F29%2Fopcoes-gratuitas-para-realizar-video-conferencias%2F" onclick="javascript:pageTracker._trackPageview('out/www.technorati.com');" target="_blank" rel="nofollow"><img src="http://www.dxs.com.br/wordpress/wp-content/plugins/bookmark-me/images/technorati.png" style="margin:0;border:0;padding:0" alt="bookmark"/></a> <a title="del.icio.us" href="http://del.icio.us/post?url=http%3A%2F%2Fblogdodantas.dxs.com.br%2F2010%2F08%2F29%2Fopcoes-gratuitas-para-realizar-video-conferencias%2F&amp;title=Op%C3%A7%C3%B5es+gratuitas+para+realizar+v%C3%ADdeo+confer%C3%AAncias" onclick="javascript:pageTracker._trackPageview('out/del.icio.us');" target="_blank" rel="nofollow"><img src="http://www.dxs.com.br/wordpress/wp-content/plugins/bookmark-me/images/delicious.png" style="margin:0;border:0;padding:0" alt="bookmark"/></a> <a title="digg.com" href="http://digg.com/submit?url=http%3A%2F%2Fblogdodantas.dxs.com.br%2F2010%2F08%2F29%2Fopcoes-gratuitas-para-realizar-video-conferencias%2F&amp;title=Op%C3%A7%C3%B5es+gratuitas+para+realizar+v%C3%ADdeo+confer%C3%AAncias" onclick="javascript:pageTracker._trackPageview('out/digg.com');" target="_blank" rel="nofollow"><img src="http://www.dxs.com.br/wordpress/wp-content/plugins/bookmark-me/images/digg.png" style="margin:0;border:0;padding:0" alt="bookmark"/></a> <a title="www.facebook.com" href="http://www.facebook.com/share.php?u=http%3A%2F%2Fblogdodantas.dxs.com.br%2F2010%2F08%2F29%2Fopcoes-gratuitas-para-realizar-video-conferencias%2F&amp;t=Op%C3%A7%C3%B5es+gratuitas+para+realizar+v%C3%ADdeo+confer%C3%AAncias" onclick="javascript:pageTracker._trackPageview('out/www.facebook.com');" target="_blank" rel="nofollow"><img src="http://www.dxs.com.br/wordpress/wp-content/plugins/bookmark-me/images/facebook.png" style="margin:0;border:0;padding:0" alt="bookmark"/></a> <a title="bookmarks.yahoo.com" href="http://bookmarks.yahoo.com/toolbar/savebm?opener=tb&amp;u=http%3A%2F%2Fblogdodantas.dxs.com.br%2F2010%2F08%2F29%2Fopcoes-gratuitas-para-realizar-video-conferencias%2F" onclick="javascript:pageTracker._trackPageview('out/bookmarks.yahoo.com');" target="_blank" rel="nofollow"><img src="http://www.dxs.com.br/wordpress/wp-content/plugins/bookmark-me/images/yahoo.png" style="margin:0;border:0;padding:0" alt="bookmark"/></a> <a title="www.google.com" href="http://www.google.com/bookmarks/mark?op=edit&amp;output=popup&amp;bkmk=http%3A%2F%2Fblogdodantas.dxs.com.br%2F2010%2F08%2F29%2Fopcoes-gratuitas-para-realizar-video-conferencias%2F&amp;title=Op%C3%A7%C3%B5es+gratuitas+para+realizar+v%C3%ADdeo+confer%C3%AAncias" onclick="javascript:pageTracker._trackPageview('out/www.google.com');" target="_blank" rel="nofollow"><img src="http://www.dxs.com.br/wordpress/wp-content/plugins/bookmark-me/images/google.png" style="margin:0;border:0;padding:0" alt="bookmark"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://blogdodantas.dxs.com.br/2010/08/29/opcoes-gratuitas-para-realizar-video-conferencias/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Reunião dos GTUGs no escritório da Google</title>
		<link>http://blogdodantas.dxs.com.br/2010/05/19/reuniao-dos-gtugs-no-escritorio-da-google/</link>
		<comments>http://blogdodantas.dxs.com.br/2010/05/19/reuniao-dos-gtugs-no-escritorio-da-google/#comments</comments>
		<pubDate>Wed, 19 May 2010 07:48:25 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Desenvolvimento de software]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[google groups]]></category>
		<category><![CDATA[gtug]]></category>
		<category><![CDATA[gtug google]]></category>
		<category><![CDATA[gtug san francisco]]></category>

		<guid isPermaLink="false">http://blogdodantas.dxs.com.br/?p=409</guid>
		<description><![CDATA[Depois do Bootcamp, todos os membros das GTUGs foram convidados a participar de um jantar no escritório da Google em San Francisco, que fica bem de frente para a Bay Bridge. Logo quando cheguei já pude ver a ponte e uma Ferrari vermelha estacionada &#8211; note que a foto eu tirei da mesa que estava [...]]]></description>
			<content:encoded><![CDATA[<p>Depois do Bootcamp, todos os membros das GTUGs foram convidados a participar de um jantar no escritório da Google em San Francisco, que fica bem de frente para a Bay Bridge. Logo quando cheguei já pude ver a ponte e uma Ferrari vermelha estacionada &#8211; note que a foto eu tirei da mesa que estava sentado.</p>
<div class="wp-caption alignnone" style="width: 522px"><img title="Google em San Francisco e a Ferrari" src="http://lh6.ggpht.com/_fs_Ln-StO8E/S_ON8jJcpCI/AAAAAAAADLI/XTIEfiIiD2k/s512/DSC_0186.JPG?imgmax=512" alt="Google em San Francisco e a Ferrari" width="512" height="343" /><p class="wp-caption-text">Google em San Francisco e a Ferrari</p></div>
<p>Andando um pouco pelo escritório, pude ver o refeitório e as mesas dos Googlers que ficam por lá.</p>
<div class="wp-caption alignnone" style="width: 522px"><img title="Refeitório do Google" src="http://lh4.ggpht.com/_fs_Ln-StO8E/S_ON_IqolwI/AAAAAAAADLQ/lvxSrjYlobY/s512/DSC_0187.JPG?imgmax=512" alt="Refeitório do Google" width="512" height="343" /><p class="wp-caption-text">Refeitório do Google</p></div>
<div class="wp-caption alignnone" style="width: 522px"><img title="Refeitório e a ponte no fundo" src="http://lh6.ggpht.com/_fs_Ln-StO8E/S_OOA40XO7I/AAAAAAAADLU/MlNzOmtlH4o/s512/DSC_0188.JPG?imgmax=512" alt="Refeitório e a ponte no fundo" width="512" height="343" /><p class="wp-caption-text">Refeitório e a ponte no fundo</p></div>
<div class="wp-caption alignnone" style="width: 522px"><img title="Local onde foi servido o jantar" src="http://lh6.ggpht.com/_fs_Ln-StO8E/S_OODP1m5cI/AAAAAAAADLY/CknItXuOiao/s512/DSC_0189.JPG?imgmax=512" alt="Local onde foi servido o jantar" width="512" height="343" /><p class="wp-caption-text">Local onde foi servido o jantar</p></div>
<p>Durante o jantar tivemos um grande espaço para networking, e após várias cervejas e vinhos as coisas ficaram mais fáceis. Pude conversar com membros de GTUG de vários países, dos quais me recordo: Chile, Argentina, Colômbia, Suécia, Japão, China, Canadá, Estados Unidos, França, Alemanha e Austrália.</p>
<p>Foi muito legal compartilhar e receber conhecimento dos outros, principalmente no que diz respeito a organização dos eventos.</p>
<p>Além dos membros de GTUG, estavam presentes diversos Googlers, entre eles:</p>
<ul>
<li>Stephanie Liu &#8211; developer relations;</li>
<li>Jason Cooper &#8211; developer programs engineer;</li>
<li>Tim Bray &#8211; Android ( e também um dos responsáveis pela especificação do XML );</li>
<li>Pamela Fox &#8211; Google Maps e Wave;</li>
<li>Naoki &#8211; praticamente todas as APIs;</li>
<li>Ikai Lan &#8211; AppEngine;</li>
<li>Arne Kurrik &#8211; HTML5 e Chrome;</li>
</ul>
<p>No final do jantar, o pessoal do Google solicitou que cada um fizesse uma auto apresentação. Muitas risadas e um grande momento de descontração. Além disso, falaram da importância das GTUGs e do enorme mapa que ficará disponível no I/O com as fotos das pessoas.</p>
<p>Antes de ir embora, bati um papo com o Ikai sobre o futuro do AppEngine e ouvi diversas coisas promissoras, na qual falarei no nosso próximo encontro em São Paulo <img src='http://www.dxs.com.br/wordpress/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  .</p>
<div class="wp-caption alignnone" style="width: 522px"><img title="Ikai - AppEngine" src="http://lh5.ggpht.com/_fs_Ln-StO8E/S_OOpRfsqTI/AAAAAAAADMg/DU42WcW4VLg/s512/DSC_0206.JPG?imgmax=512" alt="Ikai - AppEngine" width="512" height="343" /><p class="wp-caption-text">Ikai - AppEngine</p></div>
<div class="wp-caption alignnone" style="width: 522px"><img title="Pamela Fox e Stephanie Liu" src="http://lh6.ggpht.com/_fs_Ln-StO8E/S_OOrPh-8OI/AAAAAAAADMk/nJPVGuhUnNQ/s512/DSC_0207.JPG?imgmax=512" alt="Pamela Fox e Stephanie Liu" width="512" height="343" /><p class="wp-caption-text">Pamela Fox e Stephanie Liu</p></div>
<div class="wp-caption alignnone" style="width: 522px"><img title="Escorregador que vai de um andar para outro" src="http://lh3.ggpht.com/_fs_Ln-StO8E/S_OOxfwmjgI/AAAAAAAADMw/ZJSmqVVp4KQ/s512/DSC_0210.JPG?imgmax=512" alt="Escorregador que vai de um andar para outro" width="512" height="343" /><p class="wp-caption-text">Escorregador que vai de um andar para outro</p></div>
<p>Acho que foi isso. Um dia inesquecível na minha vida.</p>
<p>Amanhã tem mais, fiquem ligados!</p>
<p><a href="http://picasaweb.google.com.br/gdguiadogps/SFO?authkey=Gv1sRgCMzr7_HCkqqyQA#5472873968541986594"  target="_blank">Mais fotos no Picasa</a></p>
<p>Robson Dantas</p>
<p class="bookmark-me">Bookmarks<a title="technorati.com" href="http://www.technorati.com/faves?add=http%3A%2F%2Fblogdodantas.dxs.com.br%2F2010%2F05%2F19%2Freuniao-dos-gtugs-no-escritorio-da-google%2F" onclick="javascript:pageTracker._trackPageview('out/www.technorati.com');" target="_blank" rel="nofollow"><img src="http://www.dxs.com.br/wordpress/wp-content/plugins/bookmark-me/images/technorati.png" style="margin:0;border:0;padding:0" alt="bookmark"/></a> <a title="del.icio.us" href="http://del.icio.us/post?url=http%3A%2F%2Fblogdodantas.dxs.com.br%2F2010%2F05%2F19%2Freuniao-dos-gtugs-no-escritorio-da-google%2F&amp;title=Reuni%C3%A3o+dos+GTUGs+no+escrit%C3%B3rio+da+Google" onclick="javascript:pageTracker._trackPageview('out/del.icio.us');" target="_blank" rel="nofollow"><img src="http://www.dxs.com.br/wordpress/wp-content/plugins/bookmark-me/images/delicious.png" style="margin:0;border:0;padding:0" alt="bookmark"/></a> <a title="digg.com" href="http://digg.com/submit?url=http%3A%2F%2Fblogdodantas.dxs.com.br%2F2010%2F05%2F19%2Freuniao-dos-gtugs-no-escritorio-da-google%2F&amp;title=Reuni%C3%A3o+dos+GTUGs+no+escrit%C3%B3rio+da+Google" onclick="javascript:pageTracker._trackPageview('out/digg.com');" target="_blank" rel="nofollow"><img src="http://www.dxs.com.br/wordpress/wp-content/plugins/bookmark-me/images/digg.png" style="margin:0;border:0;padding:0" alt="bookmark"/></a> <a title="www.facebook.com" href="http://www.facebook.com/share.php?u=http%3A%2F%2Fblogdodantas.dxs.com.br%2F2010%2F05%2F19%2Freuniao-dos-gtugs-no-escritorio-da-google%2F&amp;t=Reuni%C3%A3o+dos+GTUGs+no+escrit%C3%B3rio+da+Google" onclick="javascript:pageTracker._trackPageview('out/www.facebook.com');" target="_blank" rel="nofollow"><img src="http://www.dxs.com.br/wordpress/wp-content/plugins/bookmark-me/images/facebook.png" style="margin:0;border:0;padding:0" alt="bookmark"/></a> <a title="bookmarks.yahoo.com" href="http://bookmarks.yahoo.com/toolbar/savebm?opener=tb&amp;u=http%3A%2F%2Fblogdodantas.dxs.com.br%2F2010%2F05%2F19%2Freuniao-dos-gtugs-no-escritorio-da-google%2F" onclick="javascript:pageTracker._trackPageview('out/bookmarks.yahoo.com');" target="_blank" rel="nofollow"><img src="http://www.dxs.com.br/wordpress/wp-content/plugins/bookmark-me/images/yahoo.png" style="margin:0;border:0;padding:0" alt="bookmark"/></a> <a title="www.google.com" href="http://www.google.com/bookmarks/mark?op=edit&amp;output=popup&amp;bkmk=http%3A%2F%2Fblogdodantas.dxs.com.br%2F2010%2F05%2F19%2Freuniao-dos-gtugs-no-escritorio-da-google%2F&amp;title=Reuni%C3%A3o+dos+GTUGs+no+escrit%C3%B3rio+da+Google" onclick="javascript:pageTracker._trackPageview('out/www.google.com');" target="_blank" rel="nofollow"><img src="http://www.dxs.com.br/wordpress/wp-content/plugins/bookmark-me/images/google.png" style="margin:0;border:0;padding:0" alt="bookmark"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://blogdodantas.dxs.com.br/2010/05/19/reuniao-dos-gtugs-no-escritorio-da-google/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Resumo até o primeiro dia de Google I/O</title>
		<link>http://blogdodantas.dxs.com.br/2010/05/18/resumo-ate-o-primeiro-dia-de-google-io/</link>
		<comments>http://blogdodantas.dxs.com.br/2010/05/18/resumo-ate-o-primeiro-dia-de-google-io/#comments</comments>
		<pubDate>Wed, 19 May 2010 02:27:56 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Google AppEngine]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[google io]]></category>
		<category><![CDATA[io2010]]></category>
		<category><![CDATA[san francisco]]></category>

		<guid isPermaLink="false">http://blogdodantas.dxs.com.br/?p=403</guid>
		<description><![CDATA[Finalmente fiz minha viagem acontecer, e não foi fácil! Além dos preparativos comuns de uma viagem internacional, tive várias questões profissionais para resolver para garantir uma semana &#8220;tranquila&#8221;. Saí de São Paulo no sábado 15/05 e 15horas depois estava descendo em San Francisco, debaixo de um tempo nublado e frio. Nem mal cheguei já saí [...]]]></description>
			<content:encoded><![CDATA[<p>Finalmente fiz minha viagem acontecer, e não foi fácil! Além dos preparativos comuns de uma viagem internacional, tive várias questões profissionais para resolver para garantir uma semana &#8220;tranquila&#8221;.</p>
<p>Saí de São Paulo no sábado 15/05 e 15horas depois estava descendo em San Francisco, debaixo de um tempo nublado e frio. Nem mal cheguei já saí andando pela cidade para conhecer os pontos turísticos &#8211; fisherman wharf, golden gate bridge, union square, etc. Ah, e é claro que dei uma passada na loja da Apple <img src='http://www.dxs.com.br/wordpress/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Na segunda-feira, aluguei um carro e fui visitar a sede da Google em Mountain View. O que tenho a falar do lugar ? É, realmente é espetacular e gigante! Uma rua de vários quilômetros só de prédios do Google.</p>
<p><img class="alignnone" title="Google Mountain View" src="http://lh3.ggpht.com/_fs_Ln-StO8E/S_HyLPo16CI/AAAAAAAADEI/5RGbiRdhOcU/s512/DSC_0131.JPG?imgmax=512" alt="" /></p>
<p>Almocei com Arne Kurrik, do developer relations team, e fiquei espantado com a variedade de comidas: eram 7 restaurantes, com as mais variadas comidas e bebidas a vontade. Encontrei o Patrick Chanezon, que é uma figura bem conhecida nos eventos e ficamos conversando sobre o SP-GTUG e AppEngine.</p>
<p><img class="alignnone" title="Eu e Arne Kurrik" src="http://lh6.ggpht.com/_fs_Ln-StO8E/S_Hxo-1d6oI/AAAAAAAADDQ/3nR7-0RTtE8/s512/DSC_0117.JPG?imgmax=512" alt="" /></p>
<p><img class="alignnone" title="Eu e Patrick Chanezon" src="http://lh5.ggpht.com/_fs_Ln-StO8E/S_Hx4GfPnuI/AAAAAAAADDs/Vk_ShByHKFA/s512/DSC_0124.JPG?imgmax=512" alt="" /></p>
<p>Quando estava no caminho de volta para San Francisco,  passei em frente ao prédio onde fica o time do Android. Preste atenção no tamanho do mesmo, impressiona!</p>
<p><img class="alignnone" title="Prédio do Android" src="http://lh5.ggpht.com/_fs_Ln-StO8E/S_HxSO6_OuI/AAAAAAAADCo/zzOWb1kvK0Y/s512/DSC_0105.JPG?imgmax=512" alt="" /></p>
<p>E assim acabou a minha segunda-feira, um sonho realizado.</p>
<p>Hoje pela manhã &#8211; dia que começou o Bootcamp, fui ao Moscone West para realizar o checkin e retirar meu kit &#8211; uma camiseta, a credencial e o tão esperado Nexus One ( sim, ele é tudo o que você imagina ).</p>
<p><img class="alignnone" title="Credenciais Google I/O" src="http://lh5.ggpht.com/_fs_Ln-StO8E/S_M_K1h2jNI/AAAAAAAADI0/4Dam72-EpnA/s512/DSC_0182.JPG?imgmax=512" alt="" /></p>
<p>Logo de cara, encontrei várias pessoas conhecidas, principalmente no meio do Opensocial. Entre eles estava Yoichiro &#8211; um dos cabeças do Mixi no Japão (maior rede social que há por lá) e Eiji Kitamura, que contribui com o Shindig-PHP.</p>
<p>Também encontrei o Van Riper, do Silicon Valley GTUG e a Francesca do Firenze GTUG. Trocamos algumas idéias e logo após subimos para o evento.</p>
<p>Já tinha definido minha agenda que era: Android, Google Maps API V3, Google AppEngine e Chrome Extensions.  Todos os eventos de Android estavam lotados e muita gente interessada no desenvolvimento de aplicativos.</p>
<p><em><strong>Android:</strong></em></p>
<p>Roman Nurik começou a apresentação, e pelo fato de ser um bootcamp, o conteúdo do mesmo foi bem superficial. Mesmo assim, deu para perceber o tanto de gente interessada e o volume de funcionalidades interessantes disponíveis, nas quais destaco multi-tasking e background service.</p>
<p><img class="alignnone" title="Iniciando apresentação de Android" src="http://lh4.ggpht.com/_fs_Ln-StO8E/S_M-vgu-RfI/AAAAAAAADHo/g9H5KucS_BU/s512/DSC_0159.JPG?imgmax=512" alt="" /></p>
<p><strong><em>Google Maps API V3:</em></strong></p>
<p>Essa palestra foi um hands on, onde tivemos a chance de codificar junto com um engenheiro do Google. Achei muito legal as melhorias que foram feitas na API V3, principalmente a parte de integração com o Google Maps (site). Caso queira acessar o conteúdo disponibilizado pelo palestrante como Sample, basta ir para a url <a href="http://onebox.appspot.com/" onclick="javascript:pageTracker._trackPageview('out/onebox.appspot.com');" target="_blank">onebox.appspot.com</a> .</p>
<p><img class="alignnone" title="Desenvolvedores na sessão do GoogleMaps" src="http://lh4.ggpht.com/_fs_Ln-StO8E/S_M-0D54ZbI/AAAAAAAADH4/EReeu7LRWBo/s512/DSC_0162.JPG?imgmax=512" alt="" /></p>
<p><img class="alignnone" title="Eu e Shawn Shen (Google)" src="http://lh5.ggpht.com/_fs_Ln-StO8E/S_M-2etcbRI/AAAAAAAADIA/Vj_VtGPtajI/s512/DSC_0164.JPG?imgmax=512" alt="" /></p>
<p>As palestras de AppEngine e Chrome Extensions cobriram assuntos de como começar uma aplicação e um plugin do zero, e também cobriram uns aspectos básicos. Acabei brincando com background service no AppEngine e com integração via OAuth nos plugins do Chrome.</p>
<p>Amanhã começa o I/O de verdade, com as palestras mais longas e mais atrativas. Hoje foi só um aquecimento, cobrindo aspectos um pouco mais básicos. A medida que as mesmas forem acontecendo, vou postando por aqui. Fique ligado!</p>
<p><a href="http://picasaweb.google.com.br/gdguiadogps/SFO?authkey=Gv1sRgCMzr7_HCkqqyQA#5472420034057400626"  target="_self">Veja mais fotos no Picasa</a></p>
<p>abs</p>
<p>Robson Dantas</p>
<p class="bookmark-me">Bookmarks<a title="technorati.com" href="http://www.technorati.com/faves?add=http%3A%2F%2Fblogdodantas.dxs.com.br%2F2010%2F05%2F18%2Fresumo-ate-o-primeiro-dia-de-google-io%2F" onclick="javascript:pageTracker._trackPageview('out/www.technorati.com');" target="_blank" rel="nofollow"><img src="http://www.dxs.com.br/wordpress/wp-content/plugins/bookmark-me/images/technorati.png" style="margin:0;border:0;padding:0" alt="bookmark"/></a> <a title="del.icio.us" href="http://del.icio.us/post?url=http%3A%2F%2Fblogdodantas.dxs.com.br%2F2010%2F05%2F18%2Fresumo-ate-o-primeiro-dia-de-google-io%2F&amp;title=Resumo+at%C3%A9+o+primeiro+dia+de+Google+I%2FO" onclick="javascript:pageTracker._trackPageview('out/del.icio.us');" target="_blank" rel="nofollow"><img src="http://www.dxs.com.br/wordpress/wp-content/plugins/bookmark-me/images/delicious.png" style="margin:0;border:0;padding:0" alt="bookmark"/></a> <a title="digg.com" href="http://digg.com/submit?url=http%3A%2F%2Fblogdodantas.dxs.com.br%2F2010%2F05%2F18%2Fresumo-ate-o-primeiro-dia-de-google-io%2F&amp;title=Resumo+at%C3%A9+o+primeiro+dia+de+Google+I%2FO" onclick="javascript:pageTracker._trackPageview('out/digg.com');" target="_blank" rel="nofollow"><img src="http://www.dxs.com.br/wordpress/wp-content/plugins/bookmark-me/images/digg.png" style="margin:0;border:0;padding:0" alt="bookmark"/></a> <a title="www.facebook.com" href="http://www.facebook.com/share.php?u=http%3A%2F%2Fblogdodantas.dxs.com.br%2F2010%2F05%2F18%2Fresumo-ate-o-primeiro-dia-de-google-io%2F&amp;t=Resumo+at%C3%A9+o+primeiro+dia+de+Google+I%2FO" onclick="javascript:pageTracker._trackPageview('out/www.facebook.com');" target="_blank" rel="nofollow"><img src="http://www.dxs.com.br/wordpress/wp-content/plugins/bookmark-me/images/facebook.png" style="margin:0;border:0;padding:0" alt="bookmark"/></a> <a title="bookmarks.yahoo.com" href="http://bookmarks.yahoo.com/toolbar/savebm?opener=tb&amp;u=http%3A%2F%2Fblogdodantas.dxs.com.br%2F2010%2F05%2F18%2Fresumo-ate-o-primeiro-dia-de-google-io%2F" onclick="javascript:pageTracker._trackPageview('out/bookmarks.yahoo.com');" target="_blank" rel="nofollow"><img src="http://www.dxs.com.br/wordpress/wp-content/plugins/bookmark-me/images/yahoo.png" style="margin:0;border:0;padding:0" alt="bookmark"/></a> <a title="www.google.com" href="http://www.google.com/bookmarks/mark?op=edit&amp;output=popup&amp;bkmk=http%3A%2F%2Fblogdodantas.dxs.com.br%2F2010%2F05%2F18%2Fresumo-ate-o-primeiro-dia-de-google-io%2F&amp;title=Resumo+at%C3%A9+o+primeiro+dia+de+Google+I%2FO" onclick="javascript:pageTracker._trackPageview('out/www.google.com');" target="_blank" rel="nofollow"><img src="http://www.dxs.com.br/wordpress/wp-content/plugins/bookmark-me/images/google.png" style="margin:0;border:0;padding:0" alt="bookmark"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://blogdodantas.dxs.com.br/2010/05/18/resumo-ate-o-primeiro-dia-de-google-io/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Semáforos e condições de corrida com memcache e python &#8211; lock em registros</title>
		<link>http://blogdodantas.dxs.com.br/2010/02/22/semaforos-e-condicoes-de-corrida-com-memcache-e-python-lock-em-registros/</link>
		<comments>http://blogdodantas.dxs.com.br/2010/02/22/semaforos-e-condicoes-de-corrida-com-memcache-e-python-lock-em-registros/#comments</comments>
		<pubDate>Mon, 22 Feb 2010 16:20:44 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[memcache condição de corrida]]></category>
		<category><![CDATA[memcache lock]]></category>
		<category><![CDATA[memcache semáforo]]></category>

		<guid isPermaLink="false">http://blogdodantas.dxs.com.br/?p=387</guid>
		<description><![CDATA[No post anterior, falei de performance em aplicações web e coloquei um ponto importante em relação ao processo caro de ficar acessando o banco de dados constantemente. Muitas empresas utilizam soluções de cache que são muito mais rápidas e eficientes, e entre as opções disponíveis, eu gostaria de destacar o memcached. Empresas como Facebook, Google, [...]]]></description>
			<content:encoded><![CDATA[<p>No post anterior, falei de performance em aplicações web e coloquei um ponto importante em relação ao processo caro de ficar acessando o banco de dados constantemente.</p>
<p>Muitas empresas utilizam soluções de cache que são muito mais rápidas e eficientes, e entre as opções disponíveis, eu gostaria de destacar o <a href="http://memcached.org/" onclick="javascript:pageTracker._trackPageview('out/memcached.org');" target="_blank">memcached</a>. Empresas como Facebook, Google, Wikipedia fazem uso bem intenso dessa ferramenta e ela é bem otimizada para uso em larga escala.</p>
<p>Apesar de ser projetado para Linux, <a href="http://jehiah.cz/projects/memcached-win32/" onclick="javascript:pageTracker._trackPageview('out/jehiah.cz');" target="_blank">há um port para windows no qual eu uso para testes</a> ( nunca testado em ambiente de produção). Basicamente sua função é armazenar coleções em memória, servindo os dados via socket para os clientes que conectarem ao servidor.  Usa UDP como protocolo de comunicação e um mecanismo muito eficiente para gerenciamento de dados.</p>
<p>Um exemplo prático de como seria usado o mecanismo de cache:</p>
<ul>
<li>Usuário A chama uma página e requisita cidades do estado de SP e a mesma não está em cache;</li>
<li>Aplicação chama consulta no banco de dados, adiciona a chave ao cache: cache.set(&#8220;cidades&#8221;,coleção);</li>
<li>Usuário B chama a aplicação e verifica que os dados estão no cache. Aplicação consulta cache e retorna os dados para serem tratados: cache.get(&#8220;cidades&#8221;);</li>
</ul>
<p>Se não tenha ficado claro, um pseudo-código pode ajudar:</p>
<ul>
<li>se existir cache.get(&#8220;cidade&#8221;) então:<br />
-&gt; popular controles com essa coleção</li>
<li>caso contrário:<br />
-&gt; buscar dados de cidade do banco;<br />
-&gt; setar cache cache.set(&#8220;cidade&#8221;, dados_do_banco);<br />
-&gt; popular controles com essa coleção;</li>
</ul>
<p><strong>Problemas de um cenário real:</strong></p>
<p>Na teoria parece muito simples, certo ? Se você estiver pensando em um ambiente que não haja restrição por condições de corrida ( usuários simultâneos realizando a mesma operação ), então é realmente simples.</p>
<p>Mas imagine um momento em que você precisa incrementar um registro no cache, e esse registro só pode ser incrementado se ninguém mais estiver fazendo o processo. Como você resolveria essa questão ?</p>
<p>Pesquisando um pouco, acabei lembrando dos <a href="http://pt.wikipedia.org/wiki/Regi%C3%A3o_cr%C3%ADtica" onclick="javascript:pageTracker._trackPageview('out/pt.wikipedia.org');" target="_blank">mecanismos de semáforo e de entrada em região crítica</a>, o que me levou a criar um modelo que tenta fazer algo parecido. Só para lembrar o processo de região crítica (retirado do link acima da wikipedia):</p>
<blockquote><p>Para entrar numa região crítica, uma linha de execução deve obter um semáforo, que será descartado na saída da região crítica. Cada recurso compartilhado, ou um conjunto de recursos compartilhados em comum, possui um semáforo próprio. Qualquer outra linha de execução deverá esperar para entrar numa região crítica em uso, mas poderá usar a CPU para executar qualquer outro código, incluindo regiões críticas protegidas por outro semáforo.</p></blockquote>
<p>Logo abaixo, postei o exemplo criado em Python, porém estou escrevendo um pseudo-código que pode ser facilmente migrado para qualquer linguagem:</p>
<ol>
<li>Conectar no memcache;</li>
<li>Tentar adicionar a chave(&#8220;lock&#8221;);</li>
<li>Se adicionar, então não tem ninguém esperando &#8211; incremente o registro que você precisa, remova a chave lock;</li>
<li>Caso tenha a chave, tente esperar alguns micro-segundos, e executar a operação &#8220;N&#8221; vezes. Se &#8220;N&#8221; for atingido, retornar erro, caso contrário, basta executar o procedimento anterior;</li>
<li>Desconectar do memcache;</li>
</ol>
<pre>import memcache
import time

def lock_update(key):

    # parametrizacoes, todo passar para um cfg
    m = memcache.Client(['127.0.0.1:11211'], debug=0)
    lock = "lock_" + key
    max_tries = 5 #tenta 5 vezes
    tries = 0
    expiration = 60 #segundos
    got_lock = False
    number = -1
    wait_time_between_tries = 101 #microsegundos

    # teste inicial, apenas para colocar algo na chave, caso não tenha no cache
    if m.get(key) is None:
        m.set(key,0)

    if(m):
        # roda o numero de tentativas para adquirir o lock
        for tries in range(0, max_tries):
            # se conseguir adicionar, adquire o lock
            if(m.add(lock, 1, expiration)):
                got_lock = True
                break

            # se nao conseguiu, espera um pouco
            time.sleep(wait_time_between_tries / 1000000.0)

        # consegui adquirir o lock
        if(got_lock):
            number = m.incr(key)
            m.delete(lock, 0)

        # retorna o valor
        return number

# só para teste pela linha de comando
if __name__=="__main__":
    print lock_update("teste")</pre>
<p><em>Simples</em>, não ?</p>
<p>Espero que ajude <img src='http://www.dxs.com.br/wordpress/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>abs</p>
<p>Robson Dantas</p>
<p class="bookmark-me">Bookmarks<a title="technorati.com" href="http://www.technorati.com/faves?add=http%3A%2F%2Fblogdodantas.dxs.com.br%2F2010%2F02%2F22%2Fsemaforos-e-condicoes-de-corrida-com-memcache-e-python-lock-em-registros%2F" onclick="javascript:pageTracker._trackPageview('out/www.technorati.com');" target="_blank" rel="nofollow"><img src="http://www.dxs.com.br/wordpress/wp-content/plugins/bookmark-me/images/technorati.png" style="margin:0;border:0;padding:0" alt="bookmark"/></a> <a title="del.icio.us" href="http://del.icio.us/post?url=http%3A%2F%2Fblogdodantas.dxs.com.br%2F2010%2F02%2F22%2Fsemaforos-e-condicoes-de-corrida-com-memcache-e-python-lock-em-registros%2F&amp;title=Sem%C3%A1foros+e+condi%C3%A7%C3%B5es+de+corrida+com+memcache+e+python+%26%238211%3B+lock+em+registros" onclick="javascript:pageTracker._trackPageview('out/del.icio.us');" target="_blank" rel="nofollow"><img src="http://www.dxs.com.br/wordpress/wp-content/plugins/bookmark-me/images/delicious.png" style="margin:0;border:0;padding:0" alt="bookmark"/></a> <a title="digg.com" href="http://digg.com/submit?url=http%3A%2F%2Fblogdodantas.dxs.com.br%2F2010%2F02%2F22%2Fsemaforos-e-condicoes-de-corrida-com-memcache-e-python-lock-em-registros%2F&amp;title=Sem%C3%A1foros+e+condi%C3%A7%C3%B5es+de+corrida+com+memcache+e+python+%26%238211%3B+lock+em+registros" onclick="javascript:pageTracker._trackPageview('out/digg.com');" target="_blank" rel="nofollow"><img src="http://www.dxs.com.br/wordpress/wp-content/plugins/bookmark-me/images/digg.png" style="margin:0;border:0;padding:0" alt="bookmark"/></a> <a title="www.facebook.com" href="http://www.facebook.com/share.php?u=http%3A%2F%2Fblogdodantas.dxs.com.br%2F2010%2F02%2F22%2Fsemaforos-e-condicoes-de-corrida-com-memcache-e-python-lock-em-registros%2F&amp;t=Sem%C3%A1foros+e+condi%C3%A7%C3%B5es+de+corrida+com+memcache+e+python+%26%238211%3B+lock+em+registros" onclick="javascript:pageTracker._trackPageview('out/www.facebook.com');" target="_blank" rel="nofollow"><img src="http://www.dxs.com.br/wordpress/wp-content/plugins/bookmark-me/images/facebook.png" style="margin:0;border:0;padding:0" alt="bookmark"/></a> <a title="bookmarks.yahoo.com" href="http://bookmarks.yahoo.com/toolbar/savebm?opener=tb&amp;u=http%3A%2F%2Fblogdodantas.dxs.com.br%2F2010%2F02%2F22%2Fsemaforos-e-condicoes-de-corrida-com-memcache-e-python-lock-em-registros%2F" onclick="javascript:pageTracker._trackPageview('out/bookmarks.yahoo.com');" target="_blank" rel="nofollow"><img src="http://www.dxs.com.br/wordpress/wp-content/plugins/bookmark-me/images/yahoo.png" style="margin:0;border:0;padding:0" alt="bookmark"/></a> <a title="www.google.com" href="http://www.google.com/bookmarks/mark?op=edit&amp;output=popup&amp;bkmk=http%3A%2F%2Fblogdodantas.dxs.com.br%2F2010%2F02%2F22%2Fsemaforos-e-condicoes-de-corrida-com-memcache-e-python-lock-em-registros%2F&amp;title=Sem%C3%A1foros+e+condi%C3%A7%C3%B5es+de+corrida+com+memcache+e+python+%26%238211%3B+lock+em+registros" onclick="javascript:pageTracker._trackPageview('out/www.google.com');" target="_blank" rel="nofollow"><img src="http://www.dxs.com.br/wordpress/wp-content/plugins/bookmark-me/images/google.png" style="margin:0;border:0;padding:0" alt="bookmark"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://blogdodantas.dxs.com.br/2010/02/22/semaforos-e-condicoes-de-corrida-com-memcache-e-python-lock-em-registros/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Melhores práticas de performance para aplicações web &#8211; python, asp.net, java, etc</title>
		<link>http://blogdodantas.dxs.com.br/2010/02/21/melhores-praticas-de-performance-para-aplicacoes-web-python-asp-net-java-etc/</link>
		<comments>http://blogdodantas.dxs.com.br/2010/02/21/melhores-praticas-de-performance-para-aplicacoes-web-python-asp-net-java-etc/#comments</comments>
		<pubDate>Mon, 22 Feb 2010 00:15:12 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Desenvolvimento de software]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[Tecnologia e informática]]></category>
		<category><![CDATA[apache php]]></category>
		<category><![CDATA[apache python]]></category>
		<category><![CDATA[otimizar site web]]></category>
		<category><![CDATA[performance aplicação]]></category>
		<category><![CDATA[tunning apache]]></category>

		<guid isPermaLink="false">http://blogdodantas.dxs.com.br/?p=380</guid>
		<description><![CDATA[Falar em performance para aplicações web é algo muito complexo. Envolve diretamente uma série de variáveis, desde configurações de máquina (hardware), configuração do seu modelo de rede, até o desenvolvimento e tunning da sua aplicação. Vale ressaltar que uma aplicação performática é resultado de uma equação de tunning de software e hardware, e ao contrário [...]]]></description>
			<content:encoded><![CDATA[<p>Falar em performance para aplicações web é algo muito complexo. Envolve diretamente uma série de variáveis, desde configurações de máquina (hardware), configuração do seu modelo de rede, até o desenvolvimento e tunning da sua aplicação. Vale ressaltar que uma aplicação performática é resultado de uma equação de tunning de software e hardware, e ao contrário que muitos desenvolvedores imaginam, uma aplicação bem desenvolvida requer muito menos recursos de infra-estrutura.</p>
<p>Alguns dos pontos listados aqui são resultados de longos anos de experiência, de pesquisa e de práticas que diversas equipes com que venho trabalhando aplicam. Além disso, vale a pena olhar iniciativas como <a href="http://developer.yahoo.com/yslow/" onclick="javascript:pageTracker._trackPageview('out/developer.yahoo.com');" target="_blank">YSlow</a> (Yahoo) e <a href="http://code.google.com/intl/pt-BR/speed/articles/" onclick="javascript:pageTracker._trackPageview('out/code.google.com');" target="_blank">PageSpeed</a> (Google), ambas lideradas por um cara chamado<a href="http://stevesouders.com/" onclick="javascript:pageTracker._trackPageview('out/stevesouders.com');" target="_blank"> Steve Souders</a>, referência no assunto.</p>
<p>Para começar, imagine-se num cenário onde seu negócio depende exclusivamente de resultados de aplicações web, e que todos os esforços devem ser aplicados para que seu site esteja altamente disponível, com o menor custo possível. Quais seriam os pontos que você atacaria para que tenha sucesso na sua empreitada ?</p>
<p>Que tal começar por esses abaixo ?</p>
<ul>
<li>Verificar toda a configuração de hardware do seu parque de máquinas;</li>
<li>Realizar testes de estresse e chegar em um modelo que determine o volume máximo de transações que sua aplicação aguenta;</li>
<li>Realizar um benchmark com outros aplicativos que tenham as mesmas características e determinar planos de ação;</li>
<li>Aplicar um guia de boas práticas &#8211; que estão descritas mais pra frente</li>
<li>Traçar um plano de melhoria para suas aplicações;</li>
</ul>
<h2>Guia de boas práticas para sua aplicação:</h2>
<p><strong>Carregue somente o necessário na página:</strong></p>
<p>Lembre-se que mesmo que não estejam em uso, os recursos são carregados se tiverem referências no HTML. Javascripts são os vilões para liberar a renderização da página, por parte do browser.</p>
<p><strong>Otimize os recursos:</strong></p>
<p>Otimize imagens, javascripts, css. Técnicas como css sprites, &#8220;minificação&#8221; de javascripts e redução de paleta de cores são as mais utilizadas e diminuirão o uso de recursos de rede de forma drástica.</p>
<p>Lembre-se do item número um &#8211; os javascripts seguram a renderização da página até que sejam totalmente baixados. Existem técnicas que amenizam isso, e uma das mais utilizadas é manter os arquivos de javascript no final da página, antes da tag body.</p>
<p>Para os arquivos css, coloque-os na tag head da página, diferentemente do que foi feito com os Javascript. O time do YSlow descobriu, através de experimentos, que tal ação faz a página renderizar de forma mais rápida.</p>
<p><strong>Diminua o acesso ao banco de dados, faça cache:</strong></p>
<p>Cache é uma das técnicas mais aplicadas nas aplicações web. O número de opções é bem grande: Pode ser cache em disco, cache distribuído, cache em memória etc&#8230;</p>
<p>Acessos ao banco de dados podem ser considerados um dos recursos mais caros pela aplicação web. Apesar de existirem técnicas de pooling de conexões para redução do tempo de latência entre a conexão do servidor web com o banco de dados, mecanismos de SELECT, INSERT, UPDATE e DELETE podem ser muito complexos e causarem altíssimos atrasos nas respostas.</p>
<p>Imagine uma página que faz 10 requisições ao banco a cada atualização de página, sendo que seu conteúdo que muda somente cinco ou seis vezes por dia. O custo de requisições frequentes ao banco de dados é alto, portanto, vale a pena realizar um cache dessa página (guardando somente o html resultante em disco).</p>
<p>Vale a pena tentar reduzir o número de chamadas, ou tentar guardar em algum mecanismo de cache dados que sejam frequentemente chamados pela aplicação e que não são alterados com tanta frequência. Como exemplo, podemos imaginar uma lista de estados ou cidade.</p>
<p><strong>Realize flush da página assim que possível:</strong></p>
<p>Pode parecer excesso de zelo, mas não é! Praticamente todas as linguagens de programação implementam um mecanismo de buferização do html, antes de começar a liberar os dados. Algumas até esperam que todo o conteúdo da página seja processado, para liberar o HTML ao browser.</p>
<p>No asp.net , você pode user o Response.Flush , no PHP você pode usar a função flush(); e assim por diante &#8230;</p>
<p><strong>Mova conteúdo estático para outros domínios:</strong></p>
<p>Essa técnica serve para reduzir o envio desnecessário de cookies, além de possibilitar uma migração futura para um CDN (content delivery network). Misturar aplicações dinâmicas com conteúdo dinâmico pode gerar um overhead desnecessário para o servidor web, principalmente no que se diz respeito a cookies. Os cookies são salvos no browser e a cada request realizado, são retransmitidos ao servidor web, até que os mesmos expirem.</p>
<p>Para uma página dinâmica, como um aspx, php, faz todo sentido receber os cookies de volta, caso tenham sido gravados, ou até mesmo usados para implementação de session. Mas não faz sentido retransmití-lo ao chamar arquivos como imagens, css, etc.</p>
<p>Além disso, tal prática vai possibilitar que você sirva conteúdo através de CDN´s em um segundo momento, sem muita dor de cabeça. CDN´s são utilizados em larga escala por empresas grandes &#8211; como exemplo cito o Google e o Facebook. Esses mecanismos implementam um sistema distribuído de cacheamento e roteamento, servindo os dados de um servidor mais próximo ao usuário, com menor latência de rede.</p>
<p><strong>Utilize ferramentas para análise de desempenho &#8211; conhecidas por profilers:</strong></p>
<p>Em java é muito comum usar ferramentas para análise de código fonte, que identificam possíveis problemas de performance ou overhead.</p>
<ul>
<li><a href="http://java-source.net/open-source/profilers" onclick="javascript:pageTracker._trackPageview('out/java-source.net');" target="_blank">Veja uma lista de profilers disponíveis para Java</a>;</li>
<li><a href="http://msdn.microsoft.com/en-us/library/3xxk09t8(VS.71).aspx" onclick="javascript:pageTracker._trackPageview('out/msdn.microsoft.com');" target="_blank">Veja um artigo sobre uso de Perfmon para Asp.Net</a>;</li>
<li><a href="http://docs.python.org/library/profile.html" onclick="javascript:pageTracker._trackPageview('out/docs.python.org');" target="_blank">Veja um artigo sobre profilers para Python</a>;</li>
</ul>
<h2>Guia de boas práticas para infra-estrutura:</h2>
<p>Apesar de muitas das práticas estarem baseadas no servidor Apache, com certeza você você poderá aproveitá-las para outros servidores web como IIS, por exemplo.</p>
<p><strong>Faça uso de balanceadores de carga:</strong></p>
<p>Balanceadores de carga representam uma forma fácil de aumentar os recursos de infra-estrutura. São feitos via hardware específico ou via software e os que mais utilizei são: Alteon, LVS ( linux ) e F5 BigIP.</p>
<p>O uso correto de tais aplicações melhoram e muito o desempenho, porém, vale lembrar que alguns pontos devem ser levados em consideração:</p>
<ul>
<li>O uso de sticky session ( para aplicações autenticadas), diminui a capacidade de saída, uma vez que os mecanismos de balanceamento levam em consideração endereço ip do usuário;</li>
<li>Divida as configurações de domínio entre dinâmico e estático para garantir maior eficiência no balanceamento;</li>
<li>Evite balancear somente via DNS;</li>
</ul>
<p><strong>Ative a compressão de páginas:</strong></p>
<p>Quando você vai transferir um arquivo grande você costuma zipá-lo, certo ? Para as páginas web você deveria fazer o mesmo. Browsers modernos como Firefox, Chrome e IE a partir da versão 8 suportam compressão, enviando um parâmetro no cabeçalho da requisição, para o servidor web.</p>
<p>Para os browsers que não suportam, o servidor web não vão comprimir os dados, portanto, não há efeitos colaterais para seu aplicativo. Essa técnica, apesar de aumentar um pouco o processamento, reduz drasticamente o tamanho dos arquivos, principalmente javascript, css e html´s.</p>
<p><strong>Marque a data de expiração dos arquivos:</strong></p>
<p>Arquivos como imagens dificilmente são modificados, portanto, marcar a data de expiração para uma data futura pelo servidor web, vai fazer com que o browser do usuário faça cache dos arquivos, não precisando enviar uma requisição novamente desse arquivo.</p>
<p>Compilação do servidor Apache:</p>
<p>Compile seu servidor para carregar somente os módulos que você precisa. Instalações padrão costumam vir carregadas de módulos opcionais que provavelmente você não vá usar e que estão lá ocupando memória de bobeira.</p>
<p>Além da compilação, escolha o melhor formato do Apache MPM (multi processing module). Existem dois formatos:</p>
<ul>
<li>Worker MPM &#8211; que usa múltiplos processos filhos e threads para servir cada requisição. Tem um uso relativamente baixo de memória, porém seu nível de isolamento é menor. Se um processo filho é corrompido,  todas as threads pertencentes ao filho são afetadas. É melhor usado para máquinas com vários processadores;</li>
<li>Prefork MPM &#8211; usa multiplos processos filhos, porém, cada um deles é responsável por uma requisição http. É mais tolerante a falhas, pois cada processo filho é isolado. Porém esse nível de isolamento custa um maior uso de memória e quanto mais acesso, mais memória usada.</li>
</ul>
<p><strong>Utilize endereços IP ao invés de nomes nos arquivos de configuração:</strong></p>
<p>Faça uso de endereços de IP, para prevenir chamadas desnecessárias de DNS. Normalmente essas entradas são usadas em diretivas Allow e Deny no Apache.</p>
<p><strong>Não use AllowOverride None:</strong></p>
<p>Essa diretiva no Apache gera chamadas desnecessárias no filesystem. Basicamente, para cada diretório/subdiretório de um determinado arquivo, o Apache fará chamadas para localizar arquivos .htaccess .</p>
<p><strong>Configure o KeepAlive e o KeepAliveTimeout:</strong></p>
<p>Para páginas com muitas imagens, uma única conexão TCP pode ser usada para trazer os dados, reduzindo latência de rede.</p>
<p><strong>Divida o conteúdo dinâmico do estático em dois servidores:</strong></p>
<p>Usando o mod_proxy você pode fazer com que um servidor tipo lighthttp ou apache sem nenhum módulo ativo, possa servir conteúdo estático e repassar para um Apache o conteúdo dinâmico.</p>
<p>Pelo fato dos segmentos de memória usados pelo servidor web não serem divididos e realocados até que os processos acabem (ou deixei de existir), o uso de conteúdo dinâmico mesclado com conteúdo estático pode gerar overheads desnecessários. Exemplo: uma página PHP pode carregar 20MB de memória ram, e após liberado, esse espaço de memória não será desalocado e pode dar espaço para servir um arquivo jpeg que não usará todo esse espaço de memória.</p>
<p><strong>Evite o uso de CGI &#8211; use módulos para melhorar performance:</strong></p>
<p>Módulos como FastCgi, mod_php, mod_perl, mod_python, melhoram e muito a performance dos aplicativos dinâmicos. Ao invés de configurá-los como CGI diferetamente, dê preferência ao uso desses módulos citados.</p>
<p><strong>Adquira um CDN, caso possível:</strong></p>
<p>Se grande parte de seu conteúdo é composto por arquivos de mídia &#8211; imagens, vídeos, áudio, etc, considere a hipótese de usar um CDN &#8211; content delivery network. Além de reduzirem a carga de rede da sua infra-estrutura, aumentam e muito a velocidade em que o conteúdo é servido, pois seus mecanismos de cache procuram um servidor que terá a menor latência para servir ao usuário final.</p>
<p>Ex: Se um usuário que está nos EUA solicitar o download de um vídeo, o CDN vai rotear o usuário para um servidor dos EUA, que terá uma latência muito menor do que vir até um servidor localizado no Brasil. Há um custo de roteamento alto nessa transação.</p>
<p>Utilizei duas soluções com muito sucesso em diversos aplicativos:</p>
<ul>
<li>Akamai Edge Server &#8211; solução oferecida pela <a href="http://www.exceda.com/servicos/site-delivery/edgecomputing/" onclick="javascript:pageTracker._trackPageview('out/www.exceda.com');" target="_blank">Exceda</a>, no Brasil;</li>
<li><a href="http://www.maxcdn.com/" onclick="javascript:pageTracker._trackPageview('out/www.maxcdn.com');" target="_blank">MaxCDN</a> &#8211; Possui um custo barato, porém, ainda não existe cobertura de servidores no Brasil;</li>
</ul>
<p>Acho que é isso. Tentei cobrir, na medida do possível, alguns pontos de forma genérica. Tentarei manter esse guia sempre atualizado, e é claro, sua opinião é fundamental. Se tiver algo para contribuir, deixe um comentário.</p>
<p>Não deixe de instalar as ferramentas YSlow e PageSpeed no seu Firefox. Dão dicas valiosas para aumentar o desempenho do seu aplicativo.</p>
<p>Um abraço,</p>
<p>Robson Dantas</p>
<p class="bookmark-me">Bookmarks<a title="technorati.com" href="http://www.technorati.com/faves?add=http%3A%2F%2Fblogdodantas.dxs.com.br%2F2010%2F02%2F21%2Fmelhores-praticas-de-performance-para-aplicacoes-web-python-asp-net-java-etc%2F" onclick="javascript:pageTracker._trackPageview('out/www.technorati.com');" target="_blank" rel="nofollow"><img src="http://www.dxs.com.br/wordpress/wp-content/plugins/bookmark-me/images/technorati.png" style="margin:0;border:0;padding:0" alt="bookmark"/></a> <a title="del.icio.us" href="http://del.icio.us/post?url=http%3A%2F%2Fblogdodantas.dxs.com.br%2F2010%2F02%2F21%2Fmelhores-praticas-de-performance-para-aplicacoes-web-python-asp-net-java-etc%2F&amp;title=Melhores+pr%C3%A1ticas+de+performance+para+aplica%C3%A7%C3%B5es+web+%26%238211%3B+python%2C+asp.net%2C+java%2C+etc" onclick="javascript:pageTracker._trackPageview('out/del.icio.us');" target="_blank" rel="nofollow"><img src="http://www.dxs.com.br/wordpress/wp-content/plugins/bookmark-me/images/delicious.png" style="margin:0;border:0;padding:0" alt="bookmark"/></a> <a title="digg.com" href="http://digg.com/submit?url=http%3A%2F%2Fblogdodantas.dxs.com.br%2F2010%2F02%2F21%2Fmelhores-praticas-de-performance-para-aplicacoes-web-python-asp-net-java-etc%2F&amp;title=Melhores+pr%C3%A1ticas+de+performance+para+aplica%C3%A7%C3%B5es+web+%26%238211%3B+python%2C+asp.net%2C+java%2C+etc" onclick="javascript:pageTracker._trackPageview('out/digg.com');" target="_blank" rel="nofollow"><img src="http://www.dxs.com.br/wordpress/wp-content/plugins/bookmark-me/images/digg.png" style="margin:0;border:0;padding:0" alt="bookmark"/></a> <a title="www.facebook.com" href="http://www.facebook.com/share.php?u=http%3A%2F%2Fblogdodantas.dxs.com.br%2F2010%2F02%2F21%2Fmelhores-praticas-de-performance-para-aplicacoes-web-python-asp-net-java-etc%2F&amp;t=Melhores+pr%C3%A1ticas+de+performance+para+aplica%C3%A7%C3%B5es+web+%26%238211%3B+python%2C+asp.net%2C+java%2C+etc" onclick="javascript:pageTracker._trackPageview('out/www.facebook.com');" target="_blank" rel="nofollow"><img src="http://www.dxs.com.br/wordpress/wp-content/plugins/bookmark-me/images/facebook.png" style="margin:0;border:0;padding:0" alt="bookmark"/></a> <a title="bookmarks.yahoo.com" href="http://bookmarks.yahoo.com/toolbar/savebm?opener=tb&amp;u=http%3A%2F%2Fblogdodantas.dxs.com.br%2F2010%2F02%2F21%2Fmelhores-praticas-de-performance-para-aplicacoes-web-python-asp-net-java-etc%2F" onclick="javascript:pageTracker._trackPageview('out/bookmarks.yahoo.com');" target="_blank" rel="nofollow"><img src="http://www.dxs.com.br/wordpress/wp-content/plugins/bookmark-me/images/yahoo.png" style="margin:0;border:0;padding:0" alt="bookmark"/></a> <a title="www.google.com" href="http://www.google.com/bookmarks/mark?op=edit&amp;output=popup&amp;bkmk=http%3A%2F%2Fblogdodantas.dxs.com.br%2F2010%2F02%2F21%2Fmelhores-praticas-de-performance-para-aplicacoes-web-python-asp-net-java-etc%2F&amp;title=Melhores+pr%C3%A1ticas+de+performance+para+aplica%C3%A7%C3%B5es+web+%26%238211%3B+python%2C+asp.net%2C+java%2C+etc" onclick="javascript:pageTracker._trackPageview('out/www.google.com');" target="_blank" rel="nofollow"><img src="http://www.dxs.com.br/wordpress/wp-content/plugins/bookmark-me/images/google.png" style="margin:0;border:0;padding:0" alt="bookmark"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://blogdodantas.dxs.com.br/2010/02/21/melhores-praticas-de-performance-para-aplicacoes-web-python-asp-net-java-etc/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Falha de segurança no IE &#8211; O buraco é mais fundo do que parece</title>
		<link>http://blogdodantas.dxs.com.br/2010/01/22/falha-de-seguranca-no-ie-o-buraco-e-mais-fundo-do-que-parece/</link>
		<comments>http://blogdodantas.dxs.com.br/2010/01/22/falha-de-seguranca-no-ie-o-buraco-e-mais-fundo-do-que-parece/#comments</comments>
		<pubDate>Fri, 22 Jan 2010 10:53:00 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[Navegador de internet]]></category>
		<category><![CDATA[Segurança e Redes]]></category>
		<category><![CDATA[hacking]]></category>
		<category><![CDATA[falha internet explorer]]></category>
		<category><![CDATA[google internet explorer]]></category>
		<category><![CDATA[segurança internet explorer]]></category>

		<guid isPermaLink="false">http://blogdodantas.dxs.com.br/?p=377</guid>
		<description><![CDATA[Saiu em tudo que é site na internet, sobre a invasão ocorrida nos sistemas do Google, e que foram atribuídas para um grupo de hackers chineses, supostamente a serviço do seu governo. Pois bem. Estava lendo agora pouco sobre o método que foi usado, e ficou claro que havia uma falha de segurança enorme no [...]]]></description>
			<content:encoded><![CDATA[<p>Saiu em tudo que é site na internet, sobre a <a href="http://mashable.com/2010/01/14/google-china-attack-anatomy/" onclick="javascript:pageTracker._trackPageview('out/mashable.com');" target="_blank">invasão ocorrida nos sistemas do Google</a>, e que foram atribuídas para um grupo de hackers chineses, supostamente a serviço do seu governo.</p>
<p>Pois bem. Estava lendo agora pouco sobre o método que foi usado, e ficou claro que havia uma <a href="http://mashable.com/2010/01/22/microsoft-fixes-ie/" onclick="javascript:pageTracker._trackPageview('out/mashable.com');" target="_blank">falha de segurança enorme no Internet Explorer</a>, e diga-se de passagem que afeta praticamente todas as versões, que possibilitou o ataque.</p>
<p>Em poucas palavras, o ataque explorava uma falha no IE, instalando um malware no computador do usuário, permitindo controle total sobre a máquina infectada. Veja abaixo um pedaço do post do Mashable, que explica o que aconteceu:</p>
<blockquote><p>As with most targeted attacks, the intruders gained access to an organization by sending a tailored attack to one or a few targeted individuals. We suspect these individuals were targeted because they likely had access to valuable intellectual property. These attacks will look like they come from a trusted source, leading the target to fall for the trap and clicking a link or file. That’s when the exploitation takes place, using the vulnerability in Microsoft’s Internet Explorer.</p>
<p>Once the malware is downloaded and installed, it opens a back door that allows the attacker to perform reconnaissance and gain complete control over the compromised system. The attacker can now identify high value targets and start to siphon off valuable data from the company.</p></blockquote>
<p>Enfim, se você usa Internet Explorer, <a href="http://update.microsoft.com/microsoftupdate/v6/default.aspx" onclick="javascript:pageTracker._trackPageview('out/update.microsoft.com');" target="_blank">sugiro que atualize seu browser agora mesmo</a>, já que a Microsoft publicou um fix para a falha explorada, ou faça algo realmente melhor: troque seu browser para algo decente, como o Firefox ou Chrome.</p>
<p>Não deixe de comentar.</p>
<p class="bookmark-me">Bookmarks<a title="technorati.com" href="http://www.technorati.com/faves?add=http%3A%2F%2Fblogdodantas.dxs.com.br%2F2010%2F01%2F22%2Ffalha-de-seguranca-no-ie-o-buraco-e-mais-fundo-do-que-parece%2F" onclick="javascript:pageTracker._trackPageview('out/www.technorati.com');" target="_blank" rel="nofollow"><img src="http://www.dxs.com.br/wordpress/wp-content/plugins/bookmark-me/images/technorati.png" style="margin:0;border:0;padding:0" alt="bookmark"/></a> <a title="del.icio.us" href="http://del.icio.us/post?url=http%3A%2F%2Fblogdodantas.dxs.com.br%2F2010%2F01%2F22%2Ffalha-de-seguranca-no-ie-o-buraco-e-mais-fundo-do-que-parece%2F&amp;title=Falha+de+seguran%C3%A7a+no+IE+%26%238211%3B+O+buraco+%C3%A9+mais+fundo+do+que+parece" onclick="javascript:pageTracker._trackPageview('out/del.icio.us');" target="_blank" rel="nofollow"><img src="http://www.dxs.com.br/wordpress/wp-content/plugins/bookmark-me/images/delicious.png" style="margin:0;border:0;padding:0" alt="bookmark"/></a> <a title="digg.com" href="http://digg.com/submit?url=http%3A%2F%2Fblogdodantas.dxs.com.br%2F2010%2F01%2F22%2Ffalha-de-seguranca-no-ie-o-buraco-e-mais-fundo-do-que-parece%2F&amp;title=Falha+de+seguran%C3%A7a+no+IE+%26%238211%3B+O+buraco+%C3%A9+mais+fundo+do+que+parece" onclick="javascript:pageTracker._trackPageview('out/digg.com');" target="_blank" rel="nofollow"><img src="http://www.dxs.com.br/wordpress/wp-content/plugins/bookmark-me/images/digg.png" style="margin:0;border:0;padding:0" alt="bookmark"/></a> <a title="www.facebook.com" href="http://www.facebook.com/share.php?u=http%3A%2F%2Fblogdodantas.dxs.com.br%2F2010%2F01%2F22%2Ffalha-de-seguranca-no-ie-o-buraco-e-mais-fundo-do-que-parece%2F&amp;t=Falha+de+seguran%C3%A7a+no+IE+%26%238211%3B+O+buraco+%C3%A9+mais+fundo+do+que+parece" onclick="javascript:pageTracker._trackPageview('out/www.facebook.com');" target="_blank" rel="nofollow"><img src="http://www.dxs.com.br/wordpress/wp-content/plugins/bookmark-me/images/facebook.png" style="margin:0;border:0;padding:0" alt="bookmark"/></a> <a title="bookmarks.yahoo.com" href="http://bookmarks.yahoo.com/toolbar/savebm?opener=tb&amp;u=http%3A%2F%2Fblogdodantas.dxs.com.br%2F2010%2F01%2F22%2Ffalha-de-seguranca-no-ie-o-buraco-e-mais-fundo-do-que-parece%2F" onclick="javascript:pageTracker._trackPageview('out/bookmarks.yahoo.com');" target="_blank" rel="nofollow"><img src="http://www.dxs.com.br/wordpress/wp-content/plugins/bookmark-me/images/yahoo.png" style="margin:0;border:0;padding:0" alt="bookmark"/></a> <a title="www.google.com" href="http://www.google.com/bookmarks/mark?op=edit&amp;output=popup&amp;bkmk=http%3A%2F%2Fblogdodantas.dxs.com.br%2F2010%2F01%2F22%2Ffalha-de-seguranca-no-ie-o-buraco-e-mais-fundo-do-que-parece%2F&amp;title=Falha+de+seguran%C3%A7a+no+IE+%26%238211%3B+O+buraco+%C3%A9+mais+fundo+do+que+parece" onclick="javascript:pageTracker._trackPageview('out/www.google.com');" target="_blank" rel="nofollow"><img src="http://www.dxs.com.br/wordpress/wp-content/plugins/bookmark-me/images/google.png" style="margin:0;border:0;padding:0" alt="bookmark"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://blogdodantas.dxs.com.br/2010/01/22/falha-de-seguranca-no-ie-o-buraco-e-mais-fundo-do-que-parece/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Como fazer jailbreak no iPhone com OS 3</title>
		<link>http://blogdodantas.dxs.com.br/2009/06/21/como-fazer-jailbreak-no-iphone-com-os-3/</link>
		<comments>http://blogdodantas.dxs.com.br/2009/06/21/como-fazer-jailbreak-no-iphone-com-os-3/#comments</comments>
		<pubDate>Sun, 21 Jun 2009 18:30:24 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[jailbreak iphone os3]]></category>
		<category><![CDATA[os3 jailbreak]]></category>

		<guid isPermaLink="false">http://blogdodantas.dxs.com.br/?p=305</guid>
		<description><![CDATA[Fazer jailbreak no iPhone com OS 3 funciona. Acabei de fazer no meu e está rodando perfeitamente! Os passos são bem simples, porém, demoram um pouco por causa do tamanho dos downloads. Conecte seu iPhone com cabo USB e pelo iTunes mande fazer um sincronismo para backup; Ainda pelo iTunes, mande baixar a versão do [...]]]></description>
			<content:encoded><![CDATA[<p>Fazer jailbreak no iPhone com OS 3 funciona. Acabei de fazer no meu e está rodando perfeitamente!</p>
<p>Os passos são bem simples, porém, demoram um pouco por causa do tamanho dos downloads.</p>
<ul>
<li>Conecte seu iPhone com cabo USB e pelo iTunes mande fazer um sincronismo para backup;</li>
<li>Ainda pelo iTunes, mande baixar a versão do OS 3. Quando fiz isso, meu iTunes pediu para atualizar e baixou 70MB. Depois da atualização, mais 230 MB de atualização do OS 3. Como de costume, só ficar olhando e esperando atualizar;</li>
<li>O processo de jailbreak para OS 3 é feito pelo redsnow. Só rode esse cara se você NÃO ESTIVER usando yellowsnow para desbloquear as ligações (casos de iPhones vindos de fora do Brasil). Você pode acessar o site do <a href="http://blog.iphone-dev.org/post/126908912/redsn0w-in-june" onclick="javascript:pageTracker._trackPageview('out/blog.iphone-dev.org');">redsnow por aqui</a> ;</li>
<li>O download do redsnow pode ser feito via <a href="http://torrents.thepiratebay.org/4965140/redsn0w-win_0.7.1.zip.4965140.TPB.torrent" onclick="javascript:pageTracker._trackPageview('out/torrents.thepiratebay.org');">torrent</a> ou por mirrors <a href="http://intern.datentankstelle.at/iphone/redsn0w-win_0.7.1.zip" onclick="javascript:pageTracker._trackPageview('out/intern.datentankstelle.at');">independentes</a>. Eu baixei pelo mirror independente. Nota: as versões que coloquei aqui pra download são pra windows, se quiser pra MAC, entre no site direto;</li>
<li>Depois de baixado o redsnow, descompacte e não deixe de ler o readme;</li>
<li>Execute o redsnow e tenha certeza de já estar com seu iPhone rodando OS 3. A primeira tela manda você deixar o aparelho DESLIGADO, porém, com o cabo USB ligado. Faça isso!</li>
<li>Depois, ele manda você localizar o arquivo de firmware. Estou rodando o windows XP e o meu estava em:  <em>&#8220;C:\Documents and Settings\usuario\Dados de aplicativos\Apple Computer\iTunes\iPhone Software Updates\iPhone1,2_3.0_7A341_Restore.ipsw&#8221;;</em></li>
<li>Feito isso, ele vai mandar você executar uma série de comandos: Segurar o power por 3 segundos, manter o power segurado e pressionar e tecla home por 15 segundos, soltar o power e manter o home segurado. Se der certo, você verá que o windows vai localizar um dispositivo USB;</li>
<li>Após o passo acima é só esperar que o processo será feito e estará com Cydia rolando;</li>
</ul>
<p><strong>Dica importante:</strong> Se estiver usando Installous, suas aplicações irão desaparecer, e só depois de instalar ele novamente que vão voltar pro aparelho.</p>
<p>Espero ter ajudado e qualquer dúvida só comentar</p>
<p class="bookmark-me">Bookmarks<a title="technorati.com" href="http://www.technorati.com/faves?add=http%3A%2F%2Fblogdodantas.dxs.com.br%2F2009%2F06%2F21%2Fcomo-fazer-jailbreak-no-iphone-com-os-3%2F" onclick="javascript:pageTracker._trackPageview('out/www.technorati.com');" target="_blank" rel="nofollow"><img src="http://www.dxs.com.br/wordpress/wp-content/plugins/bookmark-me/images/technorati.png" style="margin:0;border:0;padding:0" alt="bookmark"/></a> <a title="del.icio.us" href="http://del.icio.us/post?url=http%3A%2F%2Fblogdodantas.dxs.com.br%2F2009%2F06%2F21%2Fcomo-fazer-jailbreak-no-iphone-com-os-3%2F&amp;title=Como+fazer+jailbreak+no+iPhone+com+OS+3" onclick="javascript:pageTracker._trackPageview('out/del.icio.us');" target="_blank" rel="nofollow"><img src="http://www.dxs.com.br/wordpress/wp-content/plugins/bookmark-me/images/delicious.png" style="margin:0;border:0;padding:0" alt="bookmark"/></a> <a title="digg.com" href="http://digg.com/submit?url=http%3A%2F%2Fblogdodantas.dxs.com.br%2F2009%2F06%2F21%2Fcomo-fazer-jailbreak-no-iphone-com-os-3%2F&amp;title=Como+fazer+jailbreak+no+iPhone+com+OS+3" onclick="javascript:pageTracker._trackPageview('out/digg.com');" target="_blank" rel="nofollow"><img src="http://www.dxs.com.br/wordpress/wp-content/plugins/bookmark-me/images/digg.png" style="margin:0;border:0;padding:0" alt="bookmark"/></a> <a title="www.facebook.com" href="http://www.facebook.com/share.php?u=http%3A%2F%2Fblogdodantas.dxs.com.br%2F2009%2F06%2F21%2Fcomo-fazer-jailbreak-no-iphone-com-os-3%2F&amp;t=Como+fazer+jailbreak+no+iPhone+com+OS+3" onclick="javascript:pageTracker._trackPageview('out/www.facebook.com');" target="_blank" rel="nofollow"><img src="http://www.dxs.com.br/wordpress/wp-content/plugins/bookmark-me/images/facebook.png" style="margin:0;border:0;padding:0" alt="bookmark"/></a> <a title="bookmarks.yahoo.com" href="http://bookmarks.yahoo.com/toolbar/savebm?opener=tb&amp;u=http%3A%2F%2Fblogdodantas.dxs.com.br%2F2009%2F06%2F21%2Fcomo-fazer-jailbreak-no-iphone-com-os-3%2F" onclick="javascript:pageTracker._trackPageview('out/bookmarks.yahoo.com');" target="_blank" rel="nofollow"><img src="http://www.dxs.com.br/wordpress/wp-content/plugins/bookmark-me/images/yahoo.png" style="margin:0;border:0;padding:0" alt="bookmark"/></a> <a title="www.google.com" href="http://www.google.com/bookmarks/mark?op=edit&amp;output=popup&amp;bkmk=http%3A%2F%2Fblogdodantas.dxs.com.br%2F2009%2F06%2F21%2Fcomo-fazer-jailbreak-no-iphone-com-os-3%2F&amp;title=Como+fazer+jailbreak+no+iPhone+com+OS+3" onclick="javascript:pageTracker._trackPageview('out/www.google.com');" target="_blank" rel="nofollow"><img src="http://www.dxs.com.br/wordpress/wp-content/plugins/bookmark-me/images/google.png" style="margin:0;border:0;padding:0" alt="bookmark"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://blogdodantas.dxs.com.br/2009/06/21/como-fazer-jailbreak-no-iphone-com-os-3/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Resumo sobre o CmsBrasil 2009</title>
		<link>http://blogdodantas.dxs.com.br/2009/06/20/resumo-sobre-o-cmsbrasil-2009/</link>
		<comments>http://blogdodantas.dxs.com.br/2009/06/20/resumo-sobre-o-cmsbrasil-2009/#comments</comments>
		<pubDate>Sat, 20 Jun 2009 21:20:10 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Tecnologia e informática]]></category>
		<category><![CDATA[Wordpress - PHP]]></category>
		<category><![CDATA[cmsbrasil]]></category>
		<category><![CDATA[cmsbrasil2009]]></category>
		<category><![CDATA[drupal cms]]></category>
		<category><![CDATA[joomla cms]]></category>
		<category><![CDATA[php cms]]></category>
		<category><![CDATA[wordpress cms]]></category>

		<guid isPermaLink="false">http://blogdodantas.dxs.com.br/?p=299</guid>
		<description><![CDATA[Hoje estivemos em mais um evento e o tema da vez foi CMS (Content Management System), ou em português, sistemas de gestão de conteúdo. Representando a AgênciaClick, estavam presentes eu (Robson Dantas) @robsondantas &#8211;  gerente de tecnologia, Edson Suey @esuey &#8211; gerente de tecnologia e Leonardo Santos @leonardosouza &#8211; líder célula de interface . Não [...]]]></description>
			<content:encoded><![CDATA[<p>Hoje estivemos em mais um evento e o tema da vez foi CMS (Content Management System), ou em português, sistemas de gestão de conteúdo.</p>
<div class="wp-caption alignnone" style="width: 558px"><img title="CMSBrasil2009" src="http://www.dxs.com.br/wordpress/images/cmsbrasil2009.jpg" alt="CMSBrasil2009 - Matt Mulenweg - WordPress" width="548" height="373" /><p class="wp-caption-text">CMSBrasil2009 - Matt Mulenweg - WordPress</p></div>
<p>Representando a AgênciaClick, estavam presentes eu (Robson Dantas) @robsondantas &#8211;  gerente de tecnologia, Edson Suey @esuey &#8211; gerente de tecnologia e Leonardo Santos @leonardosouza &#8211; líder célula de interface . Não nos dividimos para poder cobrir todo o conteúdo, cada um foi pro seu canto, postando updates no Twitter.</p>
<p><strong>Assuntos abordados:</strong></p>
<ul>
<li>CMS &#8211; focaram em soluções Opensource (todas baseadas em PHP) &#8211; WordPress, Drupal e Joomla;</li>
<li>Metodologias ágeis (case da Globo.com);</li>
<li>Hospedagem com servidores linux;</li>
<li>SEO;</li>
</ul>
<p><strong>Organização das palestras:</strong></p>
<ul>
<li>No auditório principal, apresentações genéricas e mesas redondas para discussão;</li>
<li>No auditório secundário, oficinas com foco mais técnico;</li>
</ul>
<p><strong>Sequência do que foi visto:</strong></p>
<p>1) Começamos o evento, assistindo uma apresentação do Guilherme Chapiewski, falando de metodologias ágeis, especificamente aplicadas na Globo.com. Eu gosto muito do tema, mas acredito que para o mundo de agências, fica muito difícil vender um projeto para o cliente e adotar o processo da forma que foi colocado (contrato de escopo negociável). Imagine você falando para o cliente: &#8220;Olha, vou te vender 10 sprints, e você vai receber o conteúdo desses sprints&#8221; &#8211; complicado, não ? ; para utilizar internamente, entre as áreas, acho que é válido.</p>
<p>2) Logo após, entrou o Matt Mulenweg, o cara que criou o WordPress. A palestra foi muito fraca na minha concepção, sinceramente esperava mais. Foi contada a história de como nasceu a WordPress, mas não foi falado nada do futuro da ferramenta e qual linha vão atacar. Rolaram alguns defeitos técnicos na palestra, principalmente com falha dos microfones, que pararam de funcionar algumas vezes.</p>
<p>3) Assistimos uma palestra sobre hospedagem na web com Linux e essa foi hilária. Alguns participantes deram uma aula de linux para o palestrante, que deveria falar sobre Linux <img src='http://www.dxs.com.br/wordpress/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  . No fim, o cara conseguiu apresentar algo interessante sobre performance e proxy reverso. Saí no meio da palestra e fui conferir o fim da mesa redonda com o Matt Mulenweg respondendo questões dos participantes.</p>
<p>Pausamos para o almoço, comemos uma feijoada, mas sem o joelho de porco, né Leozão <img src='http://www.dxs.com.br/wordpress/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>4) Voltando para o evento, fui conferir a palestra da Addison Berry, líder do time de documentação do Drupal. Ela falou um pouco sobre o projeto e deu foco na versão 7.0, onde ela disse que o produto será um &#8220;cutting edge&#8221;, ou seja, inovando drasticamente.</p>
<p>Achei um pouco melhor que a palestra do Matt, e deu pra entender um pouco da linha de atuação do Drupal, até o funcionamento do processo de entrada de desenvolvedores no projeto.</p>
<p>5) Nas oficinas ficaram o Leo e o Edson, se divertindo com os palestrantes e as gafes de pronúncia da língua inglesa. Rolaram eventos técnicos sobre desenvolvimento de plugins com wordpress, plugin de e-commerce, além de hands-on com Drupal e depois Joomla.</p>
<p><strong>Para finalizar, vão aqui minhas considerações finais:</strong></p>
<ul>
<li>Minha nota para o evento: 6,5;</li>
<li>Faltou organização e espaço; muitas pessoas sentadas no chão e várias vezes os equipamentos de áudio e vídeo falharam;</li>
<li>Não havia controle de entrada e saída de participantes. Pagamos pela inscrição gold, que dava acesso as oficinas e palestras, mas dava pra ver claramente que não havia diferença, dava pra ir nos 2 sem controle algum;</li>
<li>O tempo de perguntas foi muito curto, acho que esse era o ponto principal;</li>
<li>O tema de CMS é bem difundido e tem muita gente antenada;</li>
</ul>
<p>Acho que valeu o dia, deu pra ver que muita gente tem interesse no assunto. Caso tenha alguma consideração, não deixe de comentar.</p>
<p>Deixo aqui, também, o post da <a href="http://blogpagseguro.com.br/2009/06/ganhe-uma-mochila-do-pagseguro/"  target="_blank">PagSeguro oferecendo uma mochila para os trackbacks.</a></p>
<p>um abraço,</p>
<p>-Robson</p>
<p class="bookmark-me">Bookmarks<a title="technorati.com" href="http://www.technorati.com/faves?add=http%3A%2F%2Fblogdodantas.dxs.com.br%2F2009%2F06%2F20%2Fresumo-sobre-o-cmsbrasil-2009%2F" onclick="javascript:pageTracker._trackPageview('out/www.technorati.com');" target="_blank" rel="nofollow"><img src="http://www.dxs.com.br/wordpress/wp-content/plugins/bookmark-me/images/technorati.png" style="margin:0;border:0;padding:0" alt="bookmark"/></a> <a title="del.icio.us" href="http://del.icio.us/post?url=http%3A%2F%2Fblogdodantas.dxs.com.br%2F2009%2F06%2F20%2Fresumo-sobre-o-cmsbrasil-2009%2F&amp;title=Resumo+sobre+o+CmsBrasil+2009" onclick="javascript:pageTracker._trackPageview('out/del.icio.us');" target="_blank" rel="nofollow"><img src="http://www.dxs.com.br/wordpress/wp-content/plugins/bookmark-me/images/delicious.png" style="margin:0;border:0;padding:0" alt="bookmark"/></a> <a title="digg.com" href="http://digg.com/submit?url=http%3A%2F%2Fblogdodantas.dxs.com.br%2F2009%2F06%2F20%2Fresumo-sobre-o-cmsbrasil-2009%2F&amp;title=Resumo+sobre+o+CmsBrasil+2009" onclick="javascript:pageTracker._trackPageview('out/digg.com');" target="_blank" rel="nofollow"><img src="http://www.dxs.com.br/wordpress/wp-content/plugins/bookmark-me/images/digg.png" style="margin:0;border:0;padding:0" alt="bookmark"/></a> <a title="www.facebook.com" href="http://www.facebook.com/share.php?u=http%3A%2F%2Fblogdodantas.dxs.com.br%2F2009%2F06%2F20%2Fresumo-sobre-o-cmsbrasil-2009%2F&amp;t=Resumo+sobre+o+CmsBrasil+2009" onclick="javascript:pageTracker._trackPageview('out/www.facebook.com');" target="_blank" rel="nofollow"><img src="http://www.dxs.com.br/wordpress/wp-content/plugins/bookmark-me/images/facebook.png" style="margin:0;border:0;padding:0" alt="bookmark"/></a> <a title="bookmarks.yahoo.com" href="http://bookmarks.yahoo.com/toolbar/savebm?opener=tb&amp;u=http%3A%2F%2Fblogdodantas.dxs.com.br%2F2009%2F06%2F20%2Fresumo-sobre-o-cmsbrasil-2009%2F" onclick="javascript:pageTracker._trackPageview('out/bookmarks.yahoo.com');" target="_blank" rel="nofollow"><img src="http://www.dxs.com.br/wordpress/wp-content/plugins/bookmark-me/images/yahoo.png" style="margin:0;border:0;padding:0" alt="bookmark"/></a> <a title="www.google.com" href="http://www.google.com/bookmarks/mark?op=edit&amp;output=popup&amp;bkmk=http%3A%2F%2Fblogdodantas.dxs.com.br%2F2009%2F06%2F20%2Fresumo-sobre-o-cmsbrasil-2009%2F&amp;title=Resumo+sobre+o+CmsBrasil+2009" onclick="javascript:pageTracker._trackPageview('out/www.google.com');" target="_blank" rel="nofollow"><img src="http://www.dxs.com.br/wordpress/wp-content/plugins/bookmark-me/images/google.png" style="margin:0;border:0;padding:0" alt="bookmark"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://blogdodantas.dxs.com.br/2009/06/20/resumo-sobre-o-cmsbrasil-2009/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

