<?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</title>
	<atom:link href="http://blogdodantas.dxs.com.br/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>Sun, 29 Aug 2010 22:04:04 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<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><p style="text-align: center;"><script type="text/javascript"><!--
google_ad_client = "pub-3076033770669884";
/* 468x60, criado 11/08/08 */
google_ad_slot = "4702962714";
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/2010/08/29/opcoes-gratuitas-para-realizar-video-conferencias/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Como extrair FLV do Youtube com PHP</title>
		<link>http://blogdodantas.dxs.com.br/2010/08/01/como-extrair-flv-do-youtube-com-php/</link>
		<comments>http://blogdodantas.dxs.com.br/2010/08/01/como-extrair-flv-do-youtube-com-php/#comments</comments>
		<pubDate>Sun, 01 Aug 2010 23:50:32 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Gambiarras]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[download flv youtube]]></category>
		<category><![CDATA[youtube flv]]></category>
		<category><![CDATA[youtube php]]></category>

		<guid isPermaLink="false">http://blogdodantas.dxs.com.br/?p=428</guid>
		<description><![CDATA[Um dia desses estava precisando fazer um teste para extrair mp3 a partir de um vídeo de Youtube, mas como passo inicial, precisava baixar o flv automaticamente. Usando o firebug, consegui identificar o padrão que o Youtube passa como flashvars, para identifcar o vídeo.
Com base nisso, criei um script em php, muito simples. Basicamente você [...]]]></description>
			<content:encoded><![CDATA[<p>Um dia desses estava precisando fazer um teste para extrair mp3 a partir de um vídeo de Youtube, mas como passo inicial, precisava baixar o flv automaticamente. Usando o firebug, consegui identificar o padrão que o Youtube passa como flashvars, para identifcar o vídeo.</p>
<p>Com base nisso, criei um script em php, muito simples. Basicamente você precisa obter a chave fmt_stream_map do flashvars e fazer download.</p>
<p>Preciso melhorar o código, mas para o propósito que eu tinha em mente, funcionou muito bem. Veja abaixo o código:</p>
<pre>// recebe pela linha de comando a url de vídeo do Youtube
if(count($argv)&gt;=2)
  $url = $argv[1];
else
  die("Usage: php youtube.php url");

// passo 1, baixar o html para fazer parse.
// estou usando file_get_contents por ser mais simples
// mas curl é o recomendado
echo "Baixando $url\r\n";
$f = file_get_contents($argv[1]);

// executa um parse, que converte em array string no formato
// de dados de post: a=1&amp;b=2&amp;c=3, vira array['a']=1 ..
echo "Executando parse na str\r\n";
parse_str($f, $output);

// recebe a chave fmt_stream_map e remove a string concatenada no começo
// Ex: 35|url
$flv = $output["fmt_stream_map"];
$flv = explode("|",$flv);

// chama wget para baixar o flv. Grava no disco com o nome 'video.flv'
$r = `wget -O video.flv "$flv[1]"`;

//fim
</pre>
<p>.</p>
<p>Tem dúvida ? Não deixe de comentar.</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%2F01%2Fcomo-extrair-flv-do-youtube-com-php%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%2F01%2Fcomo-extrair-flv-do-youtube-com-php%2F&amp;title=Como+extrair+FLV+do+Youtube+com+PHP" 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%2F01%2Fcomo-extrair-flv-do-youtube-com-php%2F&amp;title=Como+extrair+FLV+do+Youtube+com+PHP" 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%2F01%2Fcomo-extrair-flv-do-youtube-com-php%2F&amp;t=Como+extrair+FLV+do+Youtube+com+PHP" 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%2F01%2Fcomo-extrair-flv-do-youtube-com-php%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%2F01%2Fcomo-extrair-flv-do-youtube-com-php%2F&amp;title=Como+extrair+FLV+do+Youtube+com+PHP" 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/01/como-extrair-flv-do-youtube-com-php/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>IDE para desenvolvimento .NET no Linux</title>
		<link>http://blogdodantas.dxs.com.br/2010/08/01/ide-para-desenvolvimento-net-no-linux/</link>
		<comments>http://blogdodantas.dxs.com.br/2010/08/01/ide-para-desenvolvimento-net-no-linux/#comments</comments>
		<pubDate>Sun, 01 Aug 2010 23:21:14 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[Desenvolvimento de software]]></category>
		<category><![CDATA[.net linux]]></category>
		<category><![CDATA[mono]]></category>
		<category><![CDATA[monodevelop]]></category>

		<guid isPermaLink="false">http://blogdodantas.dxs.com.br/?p=423</guid>
		<description><![CDATA[Sim, é totalmente possível desenvolver aplicações .NET e rodá-las no Linux ( e no Mac também ). Tudo isso deve-se ao projeto Mono, que é bem antigo e bem ativo. Em poucas palavras e de uma forma bem macro, a idéia do projeto é implementar a máquina virtual para outros sistemas operacionais, tornando o desenvolvimento [...]]]></description>
			<content:encoded><![CDATA[<p>Sim, é totalmente possível desenvolver aplicações .NET e rodá-las no Linux ( e no Mac também ). Tudo isso deve-se ao projeto <a title="Mono C#" href="http://www.mono-project.com" onclick="javascript:pageTracker._trackPageview('out/www.mono-project.com');" target="_blank">Mono</a>, que é bem antigo e bem ativo. Em poucas palavras e de uma forma bem macro, a idéia do projeto é implementar a máquina virtual para outros sistemas operacionais, tornando o desenvolvimento compatível.</p>
<p><a title="implementação do framework" href="http://go-mono.com/status/" onclick="javascript:pageTracker._trackPageview('out/go-mono.com');" target="_blank">Clique aqui</a> para conferir o status da implementação das classes de cada framework.</p>
<p>Se você gostou da idéia e quer começar a desenvolver suas aplicações no linux, não deixe de conferir o <a title="monodevelop c# ide" href="http://monodevelop.com/" onclick="javascript:pageTracker._trackPageview('out/monodevelop.com');" target="_blank">Mono Develop</a>, que é uma IDE bem leve e funcional &#8211; possui code complete, compilação integrada e outras funcionalidades &#8230;</p>
<div id="attachment_424" class="wp-caption alignnone" style="width: 560px"><a href="http://www.dxs.com.br/wordpress/wp-content/uploads/2010/08/monodevelop.jpg" ><img class="size-full wp-image-424" title="Mono Develop - Linux" src="http://www.dxs.com.br/wordpress/wp-content/uploads/2010/08/monodevelop.jpg" alt="Mono Develop - Linux" width="550" height="302" /></a><p class="wp-caption-text">Mono Develop - Linux</p></div>
<p>Usuários de Ubuntu e outras distribuições baseadas no Debian, basta abrir um terminal e executar: apt-get install monodevelop</p>
<p>Dúvidas ? Poste seu comentário.</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%2F08%2F01%2Fide-para-desenvolvimento-net-no-linux%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%2F01%2Fide-para-desenvolvimento-net-no-linux%2F&amp;title=IDE+para+desenvolvimento+.NET+no+Linux" 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%2F01%2Fide-para-desenvolvimento-net-no-linux%2F&amp;title=IDE+para+desenvolvimento+.NET+no+Linux" 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%2F01%2Fide-para-desenvolvimento-net-no-linux%2F&amp;t=IDE+para+desenvolvimento+.NET+no+Linux" 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%2F01%2Fide-para-desenvolvimento-net-no-linux%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%2F01%2Fide-para-desenvolvimento-net-no-linux%2F&amp;title=IDE+para+desenvolvimento+.NET+no+Linux" 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/01/ide-para-desenvolvimento-net-no-linux/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Criando aplicação para Facebook com REST, FBML e plugins sociais</title>
		<link>http://blogdodantas.dxs.com.br/2010/07/11/criando-aplicacao-para-facebook-com-rest-fbml-e-plugins-sociais/</link>
		<comments>http://blogdodantas.dxs.com.br/2010/07/11/criando-aplicacao-para-facebook-com-rest-fbml-e-plugins-sociais/#comments</comments>
		<pubDate>Mon, 12 Jul 2010 01:38:46 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[apis do facebook]]></category>
		<category><![CDATA[facebook]]></category>

		<guid isPermaLink="false">http://blogdodantas.dxs.com.br/?p=419</guid>
		<description><![CDATA[Já havia falado aqui no blog sobre os meus estudos com as APIs de Facebook. Dessa vez engrenei de vez, e me aprofundei muito no assunto, já que estou desenvolvendo um projeto freelancer para uma empresa européia.
Estou muito surpreso com a qualidade das documentações e com o volume de APIs expostas, que permitem inúmeras integrações [...]]]></description>
			<content:encoded><![CDATA[<p>Já havia falado aqui no blog sobre os meus estudos com as APIs de Facebook. Dessa vez engrenei de vez, e me aprofundei muito no assunto, já que estou desenvolvendo um projeto freelancer para uma empresa européia.</p>
<p>Estou muito surpreso com a qualidade das documentações e com o volume de APIs expostas, que permitem inúmeras integrações com a rede &#8211; e que diga-se de passagem &#8211; muito maior que o próprio Orkut fornece.</p>
<p>Basicamente, o Facebook oferece integrações:</p>
<ul>
<li>Server-to-server através de da <a href="http://developers.facebook.com/docs/api" onclick="javascript:pageTracker._trackPageview('out/developers.facebook.com');" target="_blank">Graph API</a> &#8211; REST, com chamadas autenticadas via OAuth;</li>
<li>Tags próprias &#8211; chamadas de <a href="http://developers.facebook.com/docs/reference/fbml/" onclick="javascript:pageTracker._trackPageview('out/developers.facebook.com');" target="_blank">FBML</a>;</li>
<li><a href="http://developers.facebook.com/plugins" onclick="javascript:pageTracker._trackPageview('out/developers.facebook.com');" target="_blank">Plugins sociais</a> &#8211; sem necessidade de conhecimento de linguagens de programação (caixa de comentários, like this page, etc);</li>
</ul>
<p>Além disso tudo, o Facebook oferece o <a href="http://developers.facebook.com/docs/reference/fql/" onclick="javascript:pageTracker._trackPageview('out/developers.facebook.com');" target="_self">FQL</a>, que permite que você faça queries nas tabelas para trazer os dados em formato JSON.</p>
<p>Em breve vou escrever um artigo para que você possa entender o ciclo de funcionamento de uma aplicação do Facebook, comparada a do Opensocial.</p>
<p>Enquanto isso, não deixe de acessar os links que deixei acima, além de acessar o <a href="http://www.facebook.com/developers/apps.php" onclick="javascript:pageTracker._trackPageview('out/www.facebook.com');" target="_blank">console de registro de aplicações</a>, além da página inicial das <a href="http://developers.facebook.com/docs/" onclick="javascript:pageTracker._trackPageview('out/developers.facebook.com');" target="_blank">documentações das APIs do Facebook</a>.</p>
<p>Fique ligado!</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%2F07%2F11%2Fcriando-aplicacao-para-facebook-com-rest-fbml-e-plugins-sociais%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%2F07%2F11%2Fcriando-aplicacao-para-facebook-com-rest-fbml-e-plugins-sociais%2F&amp;title=Criando+aplica%C3%A7%C3%A3o+para+Facebook+com+REST%2C+FBML+e+plugins+sociais" 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%2F07%2F11%2Fcriando-aplicacao-para-facebook-com-rest-fbml-e-plugins-sociais%2F&amp;title=Criando+aplica%C3%A7%C3%A3o+para+Facebook+com+REST%2C+FBML+e+plugins+sociais" 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%2F07%2F11%2Fcriando-aplicacao-para-facebook-com-rest-fbml-e-plugins-sociais%2F&amp;t=Criando+aplica%C3%A7%C3%A3o+para+Facebook+com+REST%2C+FBML+e+plugins+sociais" 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%2F07%2F11%2Fcriando-aplicacao-para-facebook-com-rest-fbml-e-plugins-sociais%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%2F07%2F11%2Fcriando-aplicacao-para-facebook-com-rest-fbml-e-plugins-sociais%2F&amp;title=Criando+aplica%C3%A7%C3%A3o+para+Facebook+com+REST%2C+FBML+e+plugins+sociais" 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/07/11/criando-aplicacao-para-facebook-com-rest-fbml-e-plugins-sociais/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Como mudar os botões de minimizar, maximizar e fechar no Ubuntu 10.04</title>
		<link>http://blogdodantas.dxs.com.br/2010/06/30/como-mudar-os-botoes-de-minimizar-maximizar-e-fechar-no-ubuntu-10-04/</link>
		<comments>http://blogdodantas.dxs.com.br/2010/06/30/como-mudar-os-botoes-de-minimizar-maximizar-e-fechar-no-ubuntu-10-04/#comments</comments>
		<pubDate>Wed, 30 Jun 2010 15:43:31 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Sistemas operacionais]]></category>
		<category><![CDATA[configuracao]]></category>
		<category><![CDATA[kubuntu]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://blogdodantas.dxs.com.br/?p=417</guid>
		<description><![CDATA[O Kubuntu 10.04 ficou incrivelmente rápido. Minha máquina estava com Windows e o boot levava mais de 2minutos e agora com o Kubuntu, menos de 20segundos.
Apesar de ser um fanático pelo Linux, algumas coisas ainda não me agradam, como principalmente a dificuldade de achar drivers para o hardware e a dificuldade para acertar algumas configurações. [...]]]></description>
			<content:encoded><![CDATA[<p>O Kubuntu 10.04 ficou incrivelmente rápido. Minha máquina estava com Windows e o boot levava mais de 2minutos e agora com o Kubuntu, menos de 20segundos.</p>
<p>Apesar de ser um fanático pelo Linux, algumas coisas ainda não me agradam, como principalmente a dificuldade de achar drivers para o hardware e a dificuldade para acertar algumas configurações. A dica de hoje serve para acertar os botões de minimizar, maximizar e fechar no Gnome, que está seguindo os mesmos moldes do MACOS.</p>
<p>Para corrigir, você pode fazer de duas formas:</p>
<p>1- Via linha de comando:</p>
<p>gconftool-2 &#8211;type string &#8211;set /apps/metacity/general/button_layout &#8220;:minimize,maximize,close&#8221;</p>
<p>2- Por utilitários:</p>
<ul>
<li>Abra o gconf-editor;</li>
<li>Procure a chave apps -&gt; metacity -&gt; general e modifique na direita a opção button_layout para :minimize,maximize,close</li>
</ul>
<p>Fonte: <a href="http://motersho.com/blog/index.php/2010/03/08/fix-minimizemaximizeclose-button-order-in-ubuntu-10-04-lucid-lynx/" onclick="javascript:pageTracker._trackPageview('out/motersho.com');" target="_blank">Motersho &#8211; ramblings of a computer geek</a></p>
<p>Simples? Não! <img src='http://www.dxs.com.br/wordpress/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<p>Espero que ajude.</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%2F06%2F30%2Fcomo-mudar-os-botoes-de-minimizar-maximizar-e-fechar-no-ubuntu-10-04%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%2F06%2F30%2Fcomo-mudar-os-botoes-de-minimizar-maximizar-e-fechar-no-ubuntu-10-04%2F&amp;title=Como+mudar+os+bot%C3%B5es+de+minimizar%2C+maximizar+e+fechar+no+Ubuntu+10.04" 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%2F06%2F30%2Fcomo-mudar-os-botoes-de-minimizar-maximizar-e-fechar-no-ubuntu-10-04%2F&amp;title=Como+mudar+os+bot%C3%B5es+de+minimizar%2C+maximizar+e+fechar+no+Ubuntu+10.04" 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%2F06%2F30%2Fcomo-mudar-os-botoes-de-minimizar-maximizar-e-fechar-no-ubuntu-10-04%2F&amp;t=Como+mudar+os+bot%C3%B5es+de+minimizar%2C+maximizar+e+fechar+no+Ubuntu+10.04" 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%2F06%2F30%2Fcomo-mudar-os-botoes-de-minimizar-maximizar-e-fechar-no-ubuntu-10-04%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%2F06%2F30%2Fcomo-mudar-os-botoes-de-minimizar-maximizar-e-fechar-no-ubuntu-10-04%2F&amp;title=Como+mudar+os+bot%C3%B5es+de+minimizar%2C+maximizar+e+fechar+no+Ubuntu+10.04" 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/06/30/como-mudar-os-botoes-de-minimizar-maximizar-e-fechar-no-ubuntu-10-04/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Biblioteca para acesso ao orkut em PHP &#8211; orkut os client php 3legged</title>
		<link>http://blogdodantas.dxs.com.br/2010/06/18/biblioteca-para-acesso-ao-orkut-em-php-orkut-os-client-php-3legged/</link>
		<comments>http://blogdodantas.dxs.com.br/2010/06/18/biblioteca-para-acesso-ao-orkut-em-php-orkut-os-client-php-3legged/#comments</comments>
		<pubDate>Fri, 18 Jun 2010 20:50:19 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Desenvolvimento de software]]></category>
		<category><![CDATA[Opensocial]]></category>
		<category><![CDATA[Opensocial com PHP]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[client orkut php]]></category>
		<category><![CDATA[cliente orkut php]]></category>
		<category><![CDATA[orkut 3legged php]]></category>
		<category><![CDATA[orkut client]]></category>
		<category><![CDATA[orkut-os-client]]></category>

		<guid isPermaLink="false">http://blogdodantas.dxs.com.br/?p=413</guid>
		<description><![CDATA[Ufa, faz um bom tempo que não escrevo no blog. A vida no trabalho não está fácil!
Hoje, gostaria de anunciar que consegui dedicar uma parte das minhas madrugadas desenvolvendo e ajudando um projeto opensource, que consegue se conectar ao Orkut. Para quem já conhece Opensocial, sabe que é possível desenvolver aplicativos para redes sociais e [...]]]></description>
			<content:encoded><![CDATA[<p>Ufa, faz um bom tempo que não escrevo no blog. A vida no trabalho não está fácil!</p>
<p>Hoje, gostaria de anunciar que consegui dedicar uma parte das minhas madrugadas desenvolvendo e ajudando um projeto opensource, que consegue se conectar ao Orkut. Para quem já conhece <a href="http://wiki.opensocial.org" onclick="javascript:pageTracker._trackPageview('out/wiki.opensocial.org');" target="_blank">Opensocial</a>, sabe que é possível desenvolver aplicativos para redes sociais e fazê-los rodar lá dentro. Mas e caso você queira fazer uso da rede social para promover seu aplicativo/site, sem ter necessariamente que produzir um aplicativo Opensocial ?</p>
<p>O Facebook, por exemplo, permite tal interação através do <a title="facebook api" href="http://developers.facebook.com/docs/" onclick="javascript:pageTracker._trackPageview('out/developers.facebook.com');" target="_blank">Facebook Connect</a>, que é basicamente um conjunto de APIs para interagir com a rede, ex: mudar mensagem de status, postar mensagens no mural, buscar amigos, etc &#8230;</p>
<p>Até pouco tempo atrás, a única forma de interagir com o Orkut sem estar necessariamente logado dentro da rede, era usando o <a href="http://sites.google.com/site/oauthgoog/2leggedoauth/2opensocialrestapi" onclick="javascript:pageTracker._trackPageview('out/sites.google.com');" target="_blank">2-legged OAuth</a> que foi disponibilizado a partir da versão 0.8 do Opensocial via REST ou RPC - em poucas palavras, para ter acesso às informações do usuário por fora da rede social, o usuário deve ter um aplicativo seu escrito em Opensocial instalado no perfil. Como parte dos inúmeros processos de melhoria, o time do Orkut desenvolveu um projeto, chamado <a title="orkut os client" href="http://code.google.com/p/orkut-os-client" onclick="javascript:pageTracker._trackPageview('out/code.google.com');" target="_blank">Orkut-os-client</a> &#8211; baseado em 3legged OAuth, e que permite fazer acesso as informações dos usuários dentro do Orkut sem precisar de nenhum aplicativo instalado no perfil.</p>
<p>Mas nem tudo é uma maravilha: A API foi desenvolvida em Java, sendo que a grande maioria das pessoas usam PHP para o desenvolvimento. Depois de um certo tempo lendo usuários solicitando a API em outras linguagens, decidi migrar parte do código para a linguagem PHP, e pesquisando, consegui fazer algo simples e rápido.</p>
<p>A pergunta que você pode estar fazendo é &#8220;como simples e rápido&#8221; ? Bom, primeiro dei uma lida geral no código fonte da API em Java e descobri que todo o processo é um RPC Wrapper, e que as chamadas dos métodos da rede social são exatamente as mesmas usadas no Opensocial, ex: &#8220;messages.get&#8221; .</p>
<p>Com base nisso, fiz download da API já existente &#8211; desenvolvida pelos caras da Google, chamada <a href="http://code.google.com/p/opensocial-php-client/" onclick="javascript:pageTracker._trackPageview('out/code.google.com');" target="_blank">opensocial-php-client </a>-  que possui implementação de 2-legged e 3-legged para uma grande parte das redes sociais.</p>
<p>Apliquei um patch, modificando as url&#8217;s de access token, além de alterar as chamadas JSON que são feitas ao servidor de RPC, e funcionou muito bem. Já há uma versão rodando que permite ler e gravar SCRAPS, além de pegar informações dos seus amigos.</p>
<p>Continuo trabalhando para dar suporte às outras funcionalidades: Álbum, activities, e outros.</p>
<p>O projeto foi disponibilizado no GoogleCode, e criei uma lista de discussão para os interessados no desenvolvimento. Caso queira participar, sua contribuição é bem vinda.</p>
<p>Site do projeto, no Google Code: <a href="http://code.google.com/p/orkut-os-client-php/" onclick="javascript:pageTracker._trackPageview('out/code.google.com');" target="_blank">Orkut-os-client-php</a></p>
<p><a href="http://groups.google.com/group/orkut-php-client/" onclick="javascript:pageTracker._trackPageview('out/groups.google.com');" target="_blank">Grupo de discussão sobre a biblioteca</a></p>
<p>Enjoy!</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%2F06%2F18%2Fbiblioteca-para-acesso-ao-orkut-em-php-orkut-os-client-php-3legged%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%2F06%2F18%2Fbiblioteca-para-acesso-ao-orkut-em-php-orkut-os-client-php-3legged%2F&amp;title=Biblioteca+para+acesso+ao+orkut+em+PHP+%26%238211%3B+orkut+os+client+php+3legged" 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%2F06%2F18%2Fbiblioteca-para-acesso-ao-orkut-em-php-orkut-os-client-php-3legged%2F&amp;title=Biblioteca+para+acesso+ao+orkut+em+PHP+%26%238211%3B+orkut+os+client+php+3legged" 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%2F06%2F18%2Fbiblioteca-para-acesso-ao-orkut-em-php-orkut-os-client-php-3legged%2F&amp;t=Biblioteca+para+acesso+ao+orkut+em+PHP+%26%238211%3B+orkut+os+client+php+3legged" 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%2F06%2F18%2Fbiblioteca-para-acesso-ao-orkut-em-php-orkut-os-client-php-3legged%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%2F06%2F18%2Fbiblioteca-para-acesso-ao-orkut-em-php-orkut-os-client-php-3legged%2F&amp;title=Biblioteca+para+acesso+ao+orkut+em+PHP+%26%238211%3B+orkut+os+client+php+3legged" 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/06/18/biblioteca-para-acesso-ao-orkut-em-php-orkut-os-client-php-3legged/feed/</wfw:commentRss>
		<slash:comments>6</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í andando [...]]]></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>6</slash:comments>
		</item>
		<item>
		<title>Como desbloquear a porta USB no Windows Xp/2000</title>
		<link>http://blogdodantas.dxs.com.br/2010/03/04/como-desbloquear-a-porta-usb-no-windows-xp2000/</link>
		<comments>http://blogdodantas.dxs.com.br/2010/03/04/como-desbloquear-a-porta-usb-no-windows-xp2000/#comments</comments>
		<pubDate>Thu, 04 Mar 2010 13:49:11 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Segurança e Redes]]></category>
		<category><![CDATA[Sistemas operacionais]]></category>
		<category><![CDATA[hacking]]></category>
		<category><![CDATA[desbloquear usb]]></category>
		<category><![CDATA[regedit bloqueado windows]]></category>
		<category><![CDATA[usb windows]]></category>

		<guid isPermaLink="false">http://blogdodantas.dxs.com.br/?p=394</guid>
		<description><![CDATA[É normal você usar seu computador, por exemplo na empresa, e as portas USB estarem bloqueadas. Praticamente todas essas funções de bloqueio estão localizadas dentro do registry do Windows e se você tem acesso nele, pode ter certeza que vai conseguir desbloquear o acesso na sua USB e a qualquer outra coisa.
Para fazer um teste, [...]]]></description>
			<content:encoded><![CDATA[<p>É normal você usar seu computador, por exemplo na empresa, e as portas USB estarem bloqueadas. Praticamente todas essas funções de bloqueio estão localizadas dentro do registry do Windows e se você tem acesso nele, pode ter certeza que vai conseguir desbloquear o acesso na sua USB e a qualquer outra coisa.</p>
<p>Para fazer um teste, vá no iniciar e clique em executar. Digite o comando <em>regedit </em>e pressione <em>enter</em>. Se aparecer uma mensagem que você não tem acesso, ainda há uma saída. Achei na internet um <a title="Desbloquear acesso ao registro do windows" href="http://www.dxs.com.br/resources/regtool.zip"  target="_blank">script feito em vbscript que tenta desbloquear o acesso para você</a>.</p>
<p>Eu li o código fonte inteiro para entender o que faz. Fique tranquilo que não tem nada de malware e não vai danificar seu micro. Basicamente ele faz uma consulta via Shell do WScript, para validar se o regedit está ativado, se não tiver, tenta ativar. Script que desbloqueia o regedit no windows.</p>
<p>Se não funcionar, pode parar o tutorial por aqui, pois seu usuário não tem permissão suficiente para fazer os desbloqueios. Se funcionar, continue lendo&#8230;</p>
<p>Com o regedit aberto, vá logo nos primeiros nós da esquerda selecionando:</p>
<ul>
<li>HKEY_LOCAL_MACHINE;</li>
<li>System;</li>
<li>CurrentControlSet;</li>
<li>Services;</li>
<li>UsbStor;</li>
</ul>
<p>Depois disso, haverá na sua direita uma chave chamada &#8220;Start&#8221;. Dê um duplo click e veja o valor que aparece &#8211; coloque 3 para desbloquear e 4 para bloquear. Anexei um print com o resultado que deve ficar.</p>
<div id="attachment_395" class="wp-caption alignnone" style="width: 560px"><a href="http://www.dxs.com.br/wordpress/wp-content/uploads/2010/03/print_01-Mar.-04-10.03.jpg" ><img class="size-full wp-image-395" title="Desbloqueando o regedit" src="http://www.dxs.com.br/wordpress/wp-content/uploads/2010/03/print_01-Mar.-04-10.03.jpg" alt="Desbloqueando o regedit" width="550" height="300" /></a><p class="wp-caption-text">Desbloqueando o regedit</p></div>
<p>Depois de feito isso, só desplugar e plugar o cabo que vai funcionar.</p>
<p>É isso <img src='http://www.dxs.com.br/wordpress/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Gostou, tem dúvida ? Comente!</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%2F2010%2F03%2F04%2Fcomo-desbloquear-a-porta-usb-no-windows-xp2000%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%2F03%2F04%2Fcomo-desbloquear-a-porta-usb-no-windows-xp2000%2F&amp;title=Como+desbloquear+a+porta+USB+no+Windows+Xp%2F2000" 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%2F03%2F04%2Fcomo-desbloquear-a-porta-usb-no-windows-xp2000%2F&amp;title=Como+desbloquear+a+porta+USB+no+Windows+Xp%2F2000" 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%2F03%2F04%2Fcomo-desbloquear-a-porta-usb-no-windows-xp2000%2F&amp;t=Como+desbloquear+a+porta+USB+no+Windows+Xp%2F2000" 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%2F03%2F04%2Fcomo-desbloquear-a-porta-usb-no-windows-xp2000%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%2F03%2F04%2Fcomo-desbloquear-a-porta-usb-no-windows-xp2000%2F&amp;title=Como+desbloquear+a+porta+USB+no+Windows+Xp%2F2000" 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/03/04/como-desbloquear-a-porta-usb-no-windows-xp2000/feed/</wfw:commentRss>
		<slash:comments>2</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, Wikipedia [...]]]></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>
	</channel>
</rss>
