<?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>Jam-Pow! &#187; Web</title>
	<atom:link href="http://blog.jampow.com.br/category/web/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.jampow.com.br</link>
	<description>...!?!...</description>
	<lastBuildDate>Thu, 19 Jan 2012 23:12:19 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Debugger mobile</title>
		<link>http://blog.jampow.com.br/2012/01/19/debugger-mobile/</link>
		<comments>http://blog.jampow.com.br/2012/01/19/debugger-mobile/#comments</comments>
		<pubDate>Thu, 19 Jan 2012 23:12:02 +0000</pubDate>
		<dc:creator>Jam-Pow!</dc:creator>
				<category><![CDATA[Mobile]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[celular]]></category>
		<category><![CDATA[debugger]]></category>
		<category><![CDATA[iOS]]></category>
		<category><![CDATA[javascript]]></category>

		<guid isPermaLink="false">http://blog.jampow.com.br/?p=200</guid>
		<description><![CDATA[Para inserir o Firebug Lite em qualquer site que você queira no Android, iPhone, iPad, no computador do trabalho (onde você não tem permissão pra instalar nada), etc. Basta adicionar este código abaixo como favorito e clicar depois de ter aberto o site que deseja debugar. Como assim!? Pra quem não sabe, há uma forma [...]]]></description>
			<content:encoded><![CDATA[<p>Para inserir o Firebug Lite em qualquer site que você queira no Android, iPhone, iPad, no computador do trabalho (onde você não tem permissão pra instalar nada), etc. Basta adicionar este código abaixo como favorito e clicar depois de ter aberto o site que deseja debugar.</p>
<pre class="brush: jscript; title: ; notranslate">
javascript:(function(F,i,r,e,b,u,g,L,I,T,E)%7Bif(F.getElementById(b))return;E=F%5Bi+'NS'%5D&amp;&amp;F.documentElement.namespaceURI;E=E?F%5Bi+'NS'%5D(E,'script'):F%5Bi%5D('script');E%5Br%5D('id',b);E%5Br%5D('src',I+g+T);E%5Br%5D(b,u);(F%5Be%5D('head')%5B0%5D%7C%7CF%5Be%5D('body')%5B0%5D).appendChild(E);E=new%20Image;E%5Br%5D('src',I+L);%7D)(document,'createElement','setAttribute','getElementsByTagName','FirebugLite','4','firebug-lite.js','releases/lite/latest/skin/xp/sprite.png','https://getfirebug.com/','%23startOpened');
</pre>
<h2>Como assim!?</h2>
<p>Pra quem não sabe, há uma forma de se inserir js em qualquer site pela barra de endereço. Faça o teste, neste meu blog mesmo!</p>
<ol>
<li>Apague tudo o que estiver na barra de endereço</li>
<li>Escreva: javascript:alert(&#8216;Luiza está no Canadá&#8217;);</li>
<li>&lt;Enter&gt;</li>
</ol>
<div>Sacou?! Se você adicionar este código no lugar de uma url de um favorito ele executará o código na página que estiver aberta.</div>
<div>PS.: Não é tão fácil de usar num aparelho touch e/ou mobile, mesmo porque a interface é pra quem tem um mouse e mesmo se seu aparelho tiver uma daquelas canetas a tela dele provavelmente é bem pequena, mas quebra um galho dependendo do que quiser fazer com o debugger!</div>
]]></content:encoded>
			<wfw:commentRss>http://blog.jampow.com.br/2012/01/19/debugger-mobile/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Estudando a API do Google Mapas</title>
		<link>http://blog.jampow.com.br/2011/09/07/estudando-a-api-do-google-mapas/</link>
		<comments>http://blog.jampow.com.br/2011/09/07/estudando-a-api-do-google-mapas/#comments</comments>
		<pubDate>Wed, 07 Sep 2011 21:44:38 +0000</pubDate>
		<dc:creator>Jam-Pow!</dc:creator>
				<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://blog.jampow.com.br/?p=178</guid>
		<description><![CDATA[Já tinha dado uma lida aqui, outra ali, mas hoje resolvi pôr a mão na massa definitivamente e fazer algo que alguns clientes vêm pedindo há algum tempo. Uma ferramenta simples onde pudesse colocar alguns endereços ordená-los como eu quiser e pedir ao google que trace as rotas entre os pontos. 1. Iniciando Vamos começar [...]]]></description>
			<content:encoded><![CDATA[<p>Já tinha dado uma lida aqui, outra ali, mas hoje resolvi pôr a mão na massa definitivamente e fazer algo que alguns clientes vêm pedindo há algum tempo. Uma ferramenta simples onde pudesse colocar alguns endereços ordená-los como eu quiser e pedir ao google que trace as rotas entre os pontos.</p>
<h3>1. Iniciando</h3>
<p>Vamos começar com a estrutura básica e a inicialização do mapa.</p>
<pre class="brush: xml; title: ; notranslate">
&lt;!DOCTYPE html&gt;
&lt;html&gt;
&lt;head&gt;
&lt;meta name=&quot;viewport&quot; content=&quot;initial-scale=1.0, user-scalable=no&quot;/&gt;
&lt;meta http-equiv=&quot;content-type&quot; content=&quot;text/html; charset=UTF-8&quot;/&gt;
&lt;title&gt;Google Maps - Rotas&lt;/title&gt;
&lt;link href=&quot;http://code.google.com/apis/maps/documentation/javascript/examples/default.css&quot; rel=&quot;stylesheet&quot; type=&quot;text/css&quot; /&gt;

  &lt;script type=&quot;text/javascript&quot; src=&quot;http://maps.googleapis.com/maps/api/js?sensor=false&quot;&gt;&lt;/script&gt;
  &lt;script type=&quot;text/javascript&quot;&gt;
    var directionDisplay;
    var map;

    function initialize() {
      directionsDisplay = new google.maps.DirectionsRenderer();
      var saopaulo = new google.maps.LatLng(-23.5489433, -46.6388182);
      var myOptions = {
        zoom: 12,
        mapTypeId: google.maps.MapTypeId.ROADMAP,
        center: saopaulo
      }
      map = new google.maps.Map(document.getElementById(&quot;map_canvas&quot;), myOptions);
      directionsDisplay.setMap(map);
    }

  &lt;/script&gt;
&lt;/head&gt;
&lt;body onload=&quot;initialize()&quot;&gt;
&lt;div id=&quot;map_canvas&quot; style=&quot;float:left;width:100%;height:100%;&quot;&gt;&lt;/div&gt;
&lt;/body&gt;
&lt;/html&gt;
</pre>
<h3>2. Adicionando alguns controles</h3>
<p>Certo. Vamos modificar um pouco e colocar um painel de controle a direita, para que possamos adicionar uma lista com endereços, para facilitar um pouco, vamos carregar o jQuery (1.6.2) e jQueryUI (1.8.16). Nosso HTML entre as tags &lt;body&gt;&lt;/body&gt; ficam assim.</p>
<pre class="brush: xml; title: ; notranslate">
&lt;div id=&quot;map_canvas&quot; style=&quot;float:left;width:70%;height:100%;&quot;&gt;&lt;/div&gt;
&lt;div id=&quot;control_panel&quot; style=&quot;float:right;width:30%;text-align:left;&quot;&gt;
  &lt;div style=&quot;padding:10px&quot;&gt;
    &lt;input type=&quot;text&quot;   id=&quot;addr&quot; name=&quot;address&quot; /&gt;
    &lt;input type=&quot;button&quot; id=&quot;adic&quot; name=&quot;adicionar&quot; value=&quot;Adicionar à Rota&quot; /&gt;

    &lt;p&gt;Dê um duplo clique para remover um endereço da rota&lt;/p&gt;

    &lt;ol id=&quot;route&quot;&gt;
      &lt;li id=&quot;1&quot;&gt;R. Cipriano Barata, 200 - São Paulo&lt;/li&gt;
      &lt;li id=&quot;2&quot;&gt;Av. Lacerda Franco, 400 - São Paulo&lt;/li&gt;
    &lt;/ol&gt;

    &lt;input type=&quot;button&quot; id=&quot;trace&quot; name=&quot;trace&quot; value=&quot;Traçar Rota&quot; /&gt;
  &lt;/div&gt;

&lt;/div&gt;
</pre>
<p>E ao nosso JavaScript adicionamos:</p>
<pre class="brush: jscript; title: ; notranslate">
    $(function(){

      //Adiciona endereço à lista
      $('#adic').click(function(){
        var ender = $('#addr').val();
        if (ender != '') {
          $('#addr').val('');
          var newid = new Date().getTime();
          $('#route').append('&lt;li id=&quot;' + newid + '&quot;&gt;' + ender + '&lt;/li&gt;');
        }
      });

      //Habilita função de ordenação da lista
      $('#route').sortable({axis:'y'});

      //exclui no duplo clique
      $('#route').delegate('li', 'dblclick', function(){
        $(this).remove();
      });

    });
</pre>
<p>Legal, temos uma lista dinâmicas de endereços e um botão pra atualizar o mapa, que não faz nada ainda. Então&#8230;</p>
<h3>3. Atualizando o mapa com as rotas</h3>
<p>Começamos instanciando o objeto DirectionsService da API, para isso vamos adicionar a seguinte linha nas declarações iniciais do nosso bloco de JS.</p>
<pre class="brush: jscript; title: ; notranslate">
var directionsService = new google.maps.DirectionsService();
</pre>
<p>E por fim no clique do botão &#8220;Traçar Rota&#8221;</p>
<pre class="brush: jscript; title: ; notranslate">

      function getText(id) {
        return $('#'+id).text();
      }

      $('#trace').click(function () {
        var addresses = $('#route').sortable(&quot;toArray&quot;);
        var len       = addresses.length

        if (len &lt; 2) {
          alert('Se liga... Não existe rota sem pelo menos dois endereços!');
          return false;
        }

        var start = getText(addresses[0]);
        var end   = getText(addresses[len - 1]);
        var waypts = [];
        for (var i = 1; i &lt; len-1; i++) {
            waypts.push({
                location:getText(addresses[i]),
                stopover:true});
        }

        var request = {
            origin: start,
            destination: end,
            waypoints: waypts,
            optimizeWaypoints: false,
            travelMode: google.maps.DirectionsTravelMode.DRIVING
        };
        directionsService.route(request, function(response, status) {
          if (status == google.maps.DirectionsStatus.OK) {
            directionsDisplay.setDirections(response);
          }
        });
      });
</pre>
<p>O resultado final, você pode ver <a title="Map_Route" href="http://blog.jampow.com.br/wp-content/uploads/2011/09/MAP_TEST.html" target="_blank">aqui</a>.</p>
<p><ins datetime="2011-09-14T14:08:05+00:00">Acompanhe a evolução do código ou proponha melhorias no meu <a href="https://github.com/jampow/Google-Maps-Routes" target="_blank">repositório do Git Hub</a></ins></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.jampow.com.br/2011/09/07/estudando-a-api-do-google-mapas/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>O que é closure?!</title>
		<link>http://blog.jampow.com.br/2011/08/13/o-que-e-closure/</link>
		<comments>http://blog.jampow.com.br/2011/08/13/o-que-e-closure/#comments</comments>
		<pubDate>Sat, 13 Aug 2011 21:04:36 +0000</pubDate>
		<dc:creator>Jam-Pow!</dc:creator>
				<category><![CDATA[Web]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[tutorial]]></category>

		<guid isPermaLink="false">http://blog.jampow.com.br/?p=163</guid>
		<description><![CDATA[Bem, eu também não sabia, mas agora eu sei! Sim, mas também não falarei o que é! Acesse este site, faça os simples exercícios propostos e descubra você mesmo, é fácil e rápido! Se você não é tão bom de inglês, fique tranquilo! Eu estou traduzindo/adaptando traduzi/adaptei as lições para o português pra que todos [...]]]></description>
			<content:encoded><![CDATA[<p>Bem, eu também não sabia, mas agora eu sei! Sim, mas também não falarei o que é! Acesse <a title="Nathan's JS Lessons" href="http://nathansjslessons.appspot.com/" target="_blank">este site</a>, faça os simples exercícios propostos e descubra você mesmo, é fácil e rápido!</p>
<p>Se você não é tão bom de inglês, fique tranquilo! Eu <del datetime="2011-09-07T20:29:21+00:00">estou traduzindo/adaptando</del> <ins datetime="2011-09-07T20:29:21+00:00">traduzi/adaptei</ins> as lições para o português pra que todos possam entender!</p>
<p><del datetime="2011-09-07T20:20:58+00:00">Atualizarei este post em breve com o link traduzido assim que concluir o trabalho.</del></p>
<p><ins datetime="2011-09-07T20:20:58+00:00">Pra vê-la em português, clique na bandeira do Brasil no rodapé da página.</ins></p>
<p>Até mais!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.jampow.com.br/2011/08/13/o-que-e-closure/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Gerando documentação ruby on rails</title>
		<link>http://blog.jampow.com.br/2011/03/13/gerando-documentacao-ruby-on-rails/</link>
		<comments>http://blog.jampow.com.br/2011/03/13/gerando-documentacao-ruby-on-rails/#comments</comments>
		<pubDate>Sun, 13 Mar 2011 21:43:06 +0000</pubDate>
		<dc:creator>Jam-Pow!</dc:creator>
				<category><![CDATA[Web]]></category>
		<category><![CDATA[ruby on rails]]></category>

		<guid isPermaLink="false">http://blog.jampow.com.br/?p=153</guid>
		<description><![CDATA[Não sei você mas eu já precisei trabalhar em locais sem internet, até mesmo em casa quando meu provedor de internet resolve me deixar na mão. Mas enfim, você precisa produzir e não lembra como escreve aquele método que você tanto precisa e não consegue acessar a internet para consultar a documentação&#8230; o que fazer?! [...]]]></description>
			<content:encoded><![CDATA[<p>Não sei você mas eu já precisei trabalhar em locais sem internet, até mesmo em casa quando meu provedor de internet resolve me deixar na mão. Mas enfim, você precisa produzir e não lembra como escreve aquele método que você tanto precisa e não consegue acessar a internet para consultar a documentação&#8230; o que fazer?!</p>
<p>Enquanto estiver com internet prepare seu computador pra quando ela se for!</p>
<p>ruby:</p>
<pre class="brush: bash; title: ; notranslate">
cd ~/.rvm/source/ruby-1.8.7-p302
rdoc -o ~/rubydoc --format=html
</pre>
<p>gems:</p>
<pre class="brush: bash; title: ; notranslate">
gem install yard
yard server --gems
</pre>
]]></content:encoded>
			<wfw:commentRss>http://blog.jampow.com.br/2011/03/13/gerando-documentacao-ruby-on-rails/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Gráficos na Web</title>
		<link>http://blog.jampow.com.br/2010/10/16/graficos-na-web/</link>
		<comments>http://blog.jampow.com.br/2010/10/16/graficos-na-web/#comments</comments>
		<pubDate>Sat, 16 Oct 2010 17:09:23 +0000</pubDate>
		<dc:creator>Jam-Pow!</dc:creator>
				<category><![CDATA[Web]]></category>
		<category><![CDATA[chart]]></category>
		<category><![CDATA[gem]]></category>
		<category><![CDATA[gráfico]]></category>
		<category><![CDATA[ruby on rails]]></category>

		<guid isPermaLink="false">http://blog.jampow.com.br/?p=150</guid>
		<description><![CDATA[Depois do curso de imersão rails da e-genial sinto-me mais confiante pra usar o rails e todo o poder de ruby, por isso decidi buscar mais gems pra resolver meus problemas e tirar algumas das bibliotecas JS que tenho usado, por exemplo, pra fazer gráficos, como o FLOT pra jQuery. Já tinha visto meio por [...]]]></description>
			<content:encoded><![CDATA[<p>Depois do <a href="http://www.egenial.com.br/imersaorubyonrails/grade" target="_blank">curso de imersão rails da e-genial</a> sinto-me mais confiante pra usar o rails e todo o poder de ruby, por isso decidi buscar mais gems pra resolver meus problemas e tirar algumas das bibliotecas JS que tenho usado, por exemplo, pra fazer gráficos, como o <a href="http://code.google.com/p/flot/" target="_blank">FLOT</a> pra <a href="http://jquery.com/" target="_blank">jQuery</a>. Já tinha visto meio por cima o <a href="http://code.google.com/intl/pt-BR/apis/chart/" target="_blank">Google Charts</a>, mas como já tinha iniciado a implementação dos gráficos com FLOT achei melhor dar continuidade e avaliar depois uma alteração ou deixar para novos projetos, quando achei a<a href="https://rubygems.org/gems/googlecharts" target="_blank"> GEM chamada GoogleCharts</a>, mais auto-explicativa impossível! Muito fácil de usar também. A única desvantagem que vejo em usar essa GEM é o fato dela devolver uma imagem estática com o gráfico, com javascript conseguimos ter algumas &#8220;firulas&#8221; interativas que os clientes adoram, por outro lado, pra renderizar o JSON no formato que o plugin exige é um pouco mais trabalhoso. #segueadica</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.jampow.com.br/2010/10/16/graficos-na-web/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Abridor de navegadores!</title>
		<link>http://blog.jampow.com.br/2010/03/23/abridor-de-navegadores/</link>
		<comments>http://blog.jampow.com.br/2010/03/23/abridor-de-navegadores/#comments</comments>
		<pubDate>Tue, 23 Mar 2010 17:53:31 +0000</pubDate>
		<dc:creator>Jam-Pow!</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Rwindows]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[bat]]></category>
		<category><![CDATA[browsers]]></category>
		<category><![CDATA[gnome]]></category>
		<category><![CDATA[navegadores]]></category>
		<category><![CDATA[shell]]></category>
		<category><![CDATA[windows]]></category>
		<category><![CDATA[zenity]]></category>

		<guid isPermaLink="false">http://blog.jampow.com.br/?p=132</guid>
		<description><![CDATA[Pra quem não sabe ou não leu o &#8220;About&#8221; do Blog, sou desenvolvedor de sites e acho um saco a parte de codificação do front-end, quando tenho que ficar abrindo vários browsers e testar o layout e ver se está igual em todos, pra agilizar um pouco meu trabalho fiz uma BAT onde eu entrava [...]]]></description>
			<content:encoded><![CDATA[<p>Pra quem não sabe ou não leu o &#8220;About&#8221; do Blog, sou desenvolvedor de sites e acho um saco a parte de codificação do front-end, quando tenho que ficar abrindo vários browsers e testar o layout e ver se está igual em todos, pra agilizar um pouco meu trabalho fiz uma BAT onde eu entrava com a url do site e ele abria todos os navegadores (Chrome, Firefox, Opera, Safari e Internet Explorer) já no site certo. Segue o código:</p>
<pre class="brush: bash; title: ; notranslate">
@echo off
echo digite o site:
set /P url=
start \Arquiv~1\Opera\opera.exe %url%
start \Arquiv~1\Mozill~1\firefox.exe %url%
start %APPDATA%\Google\Chrome\Application\chrome.exe %url%
start \Arquiv~1\Intern~1\iexplore.exe %url%
start safari %url%
</pre>
<p>Mas como sou usuário linux na maior parte do tempo, fiz um shell script para a mesma função, mas para os browsers disponíveis para linux (Chrome, Firefox e Opera).</p>
<pre class="brush: bash; title: ; notranslate">
#!/bin/bash
echo -n &quot;Digite o site: http://&quot;
read site
opera 'http://'$site &amp;
firefox 'http://'$site &amp;
google-chrome 'http://'$site &amp;
</pre>
<p>Lendo um pouco sobre shell script, vi que poderia usar o <a href="http://library.gnome.org/users/zenity/stable/" target="_blank">Zenity</a> para gerar uma <a href="http://pt.wikipedia.org/wiki/Gui" target="_blank">GUI</a> depois de pouco tempo consegui chegar nesse resultado , que me agradou muito porque não é sempre que quero abrir todos os browsers, posso querer testar em um ou dois somente.</p>
<pre class="brush: bash; title: ; notranslate">
#!/bin/bash

options=$(zenity --list \
  --title=&quot;Escolha os browsers&quot; \
  --column=&quot;&quot; --column=&quot;Nome&quot; \
  true google-chrome \
  true firefox \
  true opera \
  --checklist \
  --separator=&quot;:&quot;)

site=$(zenity --entry \
--title=&quot;Abridor de browsers&quot; \
--text=&quot;O que vai ser hoje patrão?&quot; \
--entry-text &quot;http://&quot;)

echo &quot;$options&quot;|while IFS=&quot;:&quot; read f1 f2 f3
do
[ -z $f1] || $f1 $site &amp; # if [! -z $f1]; then; $f1 $site; fi;
[ -z $f2] || $f2 $site &amp;
[ -z $f3] || $f3 $site &amp;
done
</pre>
<p>O próximo passo é fazer o mesmo pra windows, estou pensando em usar o <a href="http://www.autoitscript.com/autoit3/index.shtml" target="_blank">AutoIt</a>.</p>
<p>Abs</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.jampow.com.br/2010/03/23/abridor-de-navegadores/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Você é um ninja Gmail?! Qual graduação?</title>
		<link>http://blog.jampow.com.br/2009/07/01/voce-e-um-ninja-gmail-qual-graduacao/</link>
		<comments>http://blog.jampow.com.br/2009/07/01/voce-e-um-ninja-gmail-qual-graduacao/#comments</comments>
		<pubDate>Wed, 01 Jul 2009 03:19:14 +0000</pubDate>
		<dc:creator>Jam-Pow!</dc:creator>
				<category><![CDATA[Web]]></category>
		<category><![CDATA[gmail]]></category>

		<guid isPermaLink="false">http://blog.jampow.com.br/?p=108</guid>
		<description><![CDATA[Você usa o Gmail? O quanto dele você usa? Não, não estou falando de espaço em disco, me refiro aos recursos, pois é são realmente muitos, por isso o google inventou essa brincadeira de &#8220;ninja Gmail&#8221; onde fizeram até um PDF com as funcionalidades listadas por graduação, caso alguém queira deixar do lado da mesa [...]]]></description>
			<content:encoded><![CDATA[<p>Você usa o Gmail? O quanto dele você usa? Não, não estou falando de espaço em disco, me refiro aos recursos, pois é são realmente muitos, por isso o google inventou essa brincadeira de &#8220;ninja Gmail&#8221; onde fizeram até um <a href="http://www.google.com/mail/help/gmail_tips.pdf" target="_blank">PDF</a> com as funcionalidades listadas por graduação, caso alguém queira deixar do lado da mesa para treinar e se tornar um &#8220;Mestre Ninja Gmail&#8221;.</p>
<p>Assumo que fiquei espantado ao ver que usava quase tudo, podendo me considerar um quase Mestre Gmail! ahahahah&#8230;</p>
<p>E você que nível é?</p>
<p>Abs</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.jampow.com.br/2009/07/01/voce-e-um-ninja-gmail-qual-graduacao/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Como fazer suas assinaturas randômicas no Gmail com Ruby on Rails</title>
		<link>http://blog.jampow.com.br/2009/06/03/como-fazer-suas-assinaturas-randomicas-no-gmail-com-ruby-on-rails/</link>
		<comments>http://blog.jampow.com.br/2009/06/03/como-fazer-suas-assinaturas-randomicas-no-gmail-com-ruby-on-rails/#comments</comments>
		<pubDate>Thu, 04 Jun 2009 01:04:12 +0000</pubDate>
		<dc:creator>Jam-Pow!</dc:creator>
				<category><![CDATA[Web]]></category>
		<category><![CDATA[assinatura]]></category>
		<category><![CDATA[gmail]]></category>
		<category><![CDATA[randômico]]></category>
		<category><![CDATA[ruby on rails]]></category>
		<category><![CDATA[xml]]></category>

		<guid isPermaLink="false">http://blog.jampow.com.br/?p=54</guid>
		<description><![CDATA[Fuçando um pouco hoje, vi no Gmail uma opção para pegar uma assinatura randômica de um RSS, o endereço que vem padrão tem frases em inglês, procurei um em português, mas não achei nenhum que funcionasse no Gmail, resolvi então botar a mão na massa e fazer o meu próprio XML, no padrão do Gmail, [...]]]></description>
			<content:encoded><![CDATA[<p>Fuçando um pouco hoje, vi no Gmail uma opção para pegar uma assinatura randômica de um RSS, o endereço que vem padrão tem frases em inglês, procurei um em português, mas não achei nenhum que funcionasse no Gmail, resolvi então botar a mão na massa e fazer o meu próprio XML, no padrão do Gmail, só que não queria ter que cadastrar as frases num banco de dados, ia gerar um trabalho que não disponho de tempo pra fazer, sendo que hoje existem vários sites que disponibilizam feed&#8217;s com frases atualizadas diariamente, que são ótimas pros leitores de RSS, mas não funcionam no Gmail, o que eu fiz foi ler um desses RSS&#8217;s e renderizar os mesmos dados com os padrões do google, mantendo os links pro site de direito!</p>
<p>Em sua aplicação rails, edite o arquivo config/enviroment.rb e faça os seguintes requires depois do último end.</p>
<pre class="brush: ruby; title: ; notranslate">require 'rubygems'
require 'simple-rss'
require 'open-uri'</pre>
<p>Crie um controller que buscará as informações de um XML de algum desses sites de frases e pensamentos</p>
<pre class="brush: bash; title: ; notranslate">./script/generate controller phrases index</pre>
<p>Edite o arquivo app/controllers/phrases_controller.rb deixando-o parecido com isso:</p>
<pre class="brush: ruby; title: ; notranslate">class PhrasesController &lt; ApplicationController
def index
@rss = SimpleRSS.parse open('http://www.algumfeeddefras.es/feed')
end
end</pre>
<p>e a sua view (app/views/phrases/index.html.erb) deixe-a como a seguir</p>
<pre class="brush: xml; title: ; notranslate">&lt;?xml version=&quot;1.0&quot; encoding=&quot;ISO-8859-1&quot; ?&gt;
&lt;rss version=&quot;0.91&quot;&gt;

&lt;channel&gt;
&lt;title&gt;Assinaturas Gmail&lt;/title&gt;
&lt;link&gt;http://sitedeondevcpegouasfras.es&lt;/link&gt;
&lt;description&gt;Minhas assinaturas do gmail&lt;/description&gt;
&lt;language&gt;en-us&lt;/language&gt;

&lt;!-- [1,9] porque o Gmail lê no máximo 9 itens --&gt;
&lt;% @rss.items[1,9].each do |item| %&gt;

&lt;item&gt;

&lt;!-- o Gmail lê no máximo 93 caracteres por título--&gt;
&lt;% if item.description.length &gt;= 89 %&gt;
&lt;title&gt;&lt;%= item.description[0,88] + &quot; ...&quot; %&gt;&lt;/title&gt;
&lt;% else %&gt;
&lt;title&gt;&lt;%= item.description %&gt;&lt;/title&gt;
&lt;% end %&gt;

&lt;link&gt;&lt;%= item.link %&gt;&lt;/link&gt;
&lt;description&gt;&lt;/description&gt;
&lt;/item&gt;
&lt;% end %&gt;
&lt;/channel&gt;
&lt;/rss&gt;</pre>
<p>Pronto só acessar as configurações do gmail e em signatures marcar a opção &#8220;Append a random signature from feed:&#8221; e colar a sua URL (http://suaaplicacaorails/phrases) que toda vez que você começar um novo e-mail aparecerá uma frase diferente!</p>
<p>Espero ter ajudado</p>
<p>Hugs!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.jampow.com.br/2009/06/03/como-fazer-suas-assinaturas-randomicas-no-gmail-com-ruby-on-rails/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

