<?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>nuxlli &#187; plugins</title>
	<atom:link href="http://www.nuxlli.com.br/category/plugins/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.nuxlli.com.br</link>
	<description>um pluguinho</description>
	<lastBuildDate>Wed, 31 Aug 2011 17:57:44 +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>iPython console do gedit</title>
		<link>http://www.nuxlli.com.br/2008/12/10/ipython-console-do-gedit/</link>
		<comments>http://www.nuxlli.com.br/2008/12/10/ipython-console-do-gedit/#comments</comments>
		<pubDate>Wed, 10 Dec 2008 23:40:16 +0000</pubDate>
		<dc:creator>Everton Ribeiro</dc:creator>
				<category><![CDATA[Desenvolvimento]]></category>
		<category><![CDATA[plugins]]></category>
		<category><![CDATA[console]]></category>
		<category><![CDATA[gedit]]></category>
		<category><![CDATA[ipython]]></category>
		<category><![CDATA[python]]></category>

		<guid isPermaLink="false">http://www.nuxlli.com.br/?p=75</guid>
		<description><![CDATA[Juntamente com o plugin anterior, acabei por fazer um outro plugin, o ipythonconsole. Tenho usado o iPython a um bom tempo, por indicação do Ramiro Luz da comunidade Python do Paraná, ele é uma boa alternativa ao console padrão do Python, oferece uma infinidade de melhorias. Durante os testes para o desenvolvimento do plugin tabsextend,&#8230;]]></description>
			<content:encoded><![CDATA[<p>Juntamente com o plugin anterior, acabei por fazer um outro plugin, o <a href="http://github.com/nuxlli/gedit-ipythonconsole">ipythonconsole</a>.</p>
<p>Tenho usado o <a href="http://ipython.scipy.org/moin/FrontPage">iPython</a> a um bom tempo, por indicação do Ramiro Luz da comunidade Python do Paraná, ele é uma boa alternativa ao console padrão do Python, oferece uma infinidade de melhorias.</p>
<p>Durante os testes para o desenvolvimento do plugin <a href="https://github.com/nuxlli/gedit-tabsextend">tabsextend</a>, usei bastante o Python Console que já vem com o gedit, mas ele é bem limitado e meio chatinho de usar, sem falar que ele trabalha com a fonte monospace por padrão, como utilizo a fonte Monaco no editor, acabava ficando meio estranho.</p>
<p>Enquanto pesquisava para desenvolver o plugin acabei trombando com esse <a href="http://ipython.scipy.org/moin/Cookbook/EmbeddingInGTK">artigo</a> que da um exemplo de como colocar o <a href="http://ipython.scipy.org/moin/FrontPage">iPython</a> dentro de uma janela gtk, aproveitei o código deles e um pouco do código do próprio Python Console e crieio o plugin <a href="http://github.com/nuxlli/gedit-ipythonconsole">ipythonconsole</a>.</p>
<p>Bom o esquema para instalar é o mesmo do outro plugin, baixa o <a href="http://github.com/nuxlli/gedit-ipythonconsole/tarball/master">pacotinho</a>, e extrai na pasta ~/.gnome2/gedit/plugins</p>
]]></content:encoded>
			<wfw:commentRss>http://www.nuxlli.com.br/2008/12/10/ipython-console-do-gedit/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Plugin tabs extend para gedit</title>
		<link>http://www.nuxlli.com.br/2008/12/10/plugin-tabs-extend-para-gedit/</link>
		<comments>http://www.nuxlli.com.br/2008/12/10/plugin-tabs-extend-para-gedit/#comments</comments>
		<pubDate>Wed, 10 Dec 2008 23:24:23 +0000</pubDate>
		<dc:creator>Everton Ribeiro</dc:creator>
				<category><![CDATA[Desenvolvimento]]></category>
		<category><![CDATA[plugins]]></category>
		<category><![CDATA[editor]]></category>
		<category><![CDATA[gedit]]></category>
		<category><![CDATA[python]]></category>

		<guid isPermaLink="false">http://www.nuxlli.com.br/?p=74</guid>
		<description><![CDATA[Já faz um bom tempo eu venho pensando em melhorar o gedit com algumas coisas que eu sinto falta. Para isso estou construindo uma lista de coisas que gostaria que fosse adicionadas ao editor, e agora vou começar a tirar um tempinho para implementar essa lista. O primeiro pacote de funcionalidade vem com o plugin&#8230;]]></description>
			<content:encoded><![CDATA[<p>Já faz um bom tempo eu venho pensando em melhorar o gedit com algumas coisas que eu sinto falta. Para isso estou construindo uma lista de coisas que gostaria que fosse adicionadas ao editor, e agora vou começar a tirar um tempinho para implementar essa lista.</p>
<p>O primeiro pacote de funcionalidade vem com o plugin tabsextend, com os seguintes recursos:</p>
<ul>
<li>Fechar a aba com o botão do meio do mouse, ou com os dois botões se esta opção estiver configurada no seu X;</li>
<li>Desfazer o fechar de uma aba, parecido com o Firefox. Fechou uma aba? Não era isso que queria? Ctrl+Shift+T e ele vai reabrindo as abas fechas na ordem em que foram fechadas;</li>
<li>Fechar todas as outras abas menos a atual. Com atalho de Ctrl+Shift+O</li>
<li>Menu para as duas opções acima e mais a opção de fechar todas as abas (Ctrl+Shift+W) no menu da aba, essa opção parece um pouco besta pelo fato de já existir os atalhos, mas as vezes eu sinto falta e tirar a mão do mouse nem sempre é a opção mais rápida <img src='http://www.nuxlli.com.br/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </li>
</ul>
<p>Para instalar baixe este <a title="Downloa do tarball do plugin" href="http://github.com/nuxlli/gedit-tabsextend/tarball/master">pacote</a> e extraia os arquivos na pasta ~/.gnome2/gedit/plugins.</p>
<p>Bom é isso, espero que o plugin posso ajudar aguem, instalem, testem e se possível dêem um feedback, que eu fico agradecido!</p>
<p><strong>obs:</strong> Jayme seu plugin de fechar tags no html vai sair, tenha um pouco de paciência, rsrs</p>
]]></content:encoded>
			<wfw:commentRss>http://www.nuxlli.com.br/2008/12/10/plugin-tabs-extend-para-gedit/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ordenando a lista de opções no plugin activerecord_symbolize</title>
		<link>http://www.nuxlli.com.br/2008/11/14/ordenando-a-lista-de-opcoes-no-plugin-activerecord_symbolize/</link>
		<comments>http://www.nuxlli.com.br/2008/11/14/ordenando-a-lista-de-opcoes-no-plugin-activerecord_symbolize/#comments</comments>
		<pubDate>Fri, 14 Nov 2008 17:26:00 +0000</pubDate>
		<dc:creator>Everton Ribeiro</dc:creator>
				<category><![CDATA[Desenvolvimento]]></category>
		<category><![CDATA[plugins]]></category>
		<category><![CDATA[Ruby/Rails]]></category>
		<category><![CDATA[activerecord_symbolize]]></category>
		<category><![CDATA[ativerecord]]></category>
		<category><![CDATA[simbolos]]></category>

		<guid isPermaLink="false">http://www.nuxlli.com.br/?p=70</guid>
		<description><![CDATA[Ainda na continuação do post anterior, a troca de idéias com o Cássio acabaram por render mais frutos para o plugin. Já tinha tempo que eu estava precisando de uma forma de ordenar as opções que no select ou radio gerado pelos helpers select_sym e radio_sym respectivamente. O problema era que o plugin trabalhava com&#8230;]]></description>
			<content:encoded><![CDATA[<p>Ainda na continuação do post anterior, a troca de idéias com o Cássio acabaram por render mais frutos para o plugin.</p>
<p>Já tinha tempo que eu estava precisando de uma forma de ordenar as opções que no select ou radio gerado pelos helpers select_sym e radio_sym respectivamente. O problema era que o plugin trabalhava com o arrays simples ou com hash para estabelecer os valores possíveis para o atributo.</p>
<p>Bom como hash não tem um ardem certa em que os seus valores possam ser capturados, uma vez que ele seja definido, um simples each sobre o hash pode trazer seus valores em qualquer ordem.</p>
<p>Então agora o plugin conta com a opção de usar um matriz para definição dos valores, mantendo a opção de array simples e hash, sendo que no primeiro é mantido a ordem na qual os valores são definidos e no caso de hash é retornando em ordem alfabética. Vamos há alguns exemplos para claria as idéias:</p>
<p><script src="http://gist.github.com/25017.js"></script><noscript><code>&lt;br /&gt;
class User &lt; ActiveRecord::Base&lt;br /&gt;
  symbolize :status , :in =&gt; [:active, :inactive]&lt;br /&gt;
  symbolize :so, :allow_blank =&gt; true, :in =&gt; {&lt;br /&gt;
    :mac =&gt; &amp;#8216;Mac OS X&amp;#8217;,&lt;br /&gt;
    :win =&gt; &amp;#8216;Windows&amp;#8217;,&lt;br /&gt;
    :linux =&gt; &amp;#8216;Linux&amp;#8217;&lt;br /&gt;
  }&lt;br /&gt;
  symbolize &lt;img src='http://www.nuxlli.com.br/wp-includes/images/smilies/icon_surprised.gif' alt=':o' class='wp-smiley' /&gt; ffice, :allow_blank =&gt; true, :in =&gt; [&lt;br /&gt;
    [:kde , 'Koffice'],&lt;br /&gt;
    [:ms , 'Microsoft Office'],&lt;br /&gt;
    [:open, 'Open Office']&lt;br /&gt;
  ]&lt;br /&gt;
end&lt;br /&gt;
</code></noscript></p>
<p>Então para a definição de model acima, temos o seguintes resultados na view:</p>
<p><script src="http://gist.github.com/25018.js"></script><noscript><code>&lt;br /&gt;
&lt;% form_for @user do |f| %&gt;&lt;br /&gt;
  &lt;!-- Alphabetic order --&gt;&lt;br /&gt;
  &lt;%= f.select_sym &quot;so&quot; %&gt;&lt;br /&gt;
  &lt;!-- Fixed order --&gt;&lt;br /&gt;
  &lt;%= f.select_sym &quot;office&quot; %&gt;&lt;br /&gt;
&lt;% end %&gt;&lt;/p&gt;
&lt;p&gt;&lt;!-- Alphabetic order --&gt;&lt;/p&gt;
&lt;select id=&quot;user_so&quot; name=&quot;post[so]&quot;&gt;
&lt;option value=&quot;linux&quot; selected=&quot;selected&quot;&gt;Linux&lt;/option&gt;
&lt;option value=&quot;mac&quot;&gt;Mac OS X&lt;/option&gt;
&lt;option value=&quot;windows&quot;&gt;Windows XP&lt;/option&gt;
&lt;/select&gt;
&lt;p&gt;&lt;!-- Fixed order --&gt;&lt;/p&gt;
&lt;select id=&quot;user_office&quot; name=&quot;post[office]&quot;&gt;
&lt;option value=&quot;kde&quot; selected=&quot;selected&quot;&gt;Koffice&lt;/option&gt;
&lt;option value=&quot;ms&quot;&gt;Microsoft Office&lt;/option&gt;
&lt;option value=&quot;open&quot;&gt;Open Office&lt;/option&gt;
&lt;/select&gt;
&lt;p&gt;</code></noscript></p>
<p>Observe que no caso do so, a ordem não é a mesma estabelecida na chamada do symbolize, mas sim em ordem alfabética do humanize do atribute, enquanto no caso de office os valores vem na ordem que foram declaradas dentro do array.</p>
<p>Bom é isso, em breve mais uma opção de ordenação, mas por hora espero que esta opção agrade a quem precisar.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.nuxlli.com.br/2008/11/14/ordenando-a-lista-de-opcoes-no-plugin-activerecord_symbolize/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Novo atributo *_humanize no plugin activerecord_symbolize</title>
		<link>http://www.nuxlli.com.br/2008/11/14/novo-atributo-_humanize-no-plugin-activerecord_symbolize/</link>
		<comments>http://www.nuxlli.com.br/2008/11/14/novo-atributo-_humanize-no-plugin-activerecord_symbolize/#comments</comments>
		<pubDate>Fri, 14 Nov 2008 17:08:37 +0000</pubDate>
		<dc:creator>Everton Ribeiro</dc:creator>
				<category><![CDATA[Desenvolvimento]]></category>
		<category><![CDATA[plugins]]></category>
		<category><![CDATA[Ruby/Rails]]></category>
		<category><![CDATA[activerecord_symbolize]]></category>
		<category><![CDATA[ativerecord]]></category>
		<category><![CDATA[plugin]]></category>
		<category><![CDATA[rails]]></category>
		<category><![CDATA[simbolos]]></category>

		<guid isPermaLink="false">http://www.nuxlli.com.br/?p=68</guid>
		<description><![CDATA[O Cássio do /* CODIFICANDO */, fez um post dando uma dica de como simular uma funcionalidade de enum no ActiveRecord, para trabalhar com uma faixa de valores em um dos atributos do model. Então dei uma dica para ele do plugin activerecord_symbolize, do qual eu já falei por aqui e acabei por contribui com&#8230;]]></description>
			<content:encoded><![CDATA[<p>O Cássio do <a href="http://cassiomarques.wordpress.com">/* CODIFICANDO */</a>, fez um <a href="http://cassiomarques.wordpress.com/2008/11/11/simulando-enums-em-classes-ruby/">post</a> dando uma dica de como simular uma funcionalidade de enum no ActiveRecord, para trabalhar com uma faixa de valores em um dos atributos do model. Então dei uma dica para ele do plugin <a href="http://github.com/zargony/activerecord_symbolize">activerecord_symbolize</a>, do qual eu já falei por <a href="http://www.nuxlli.com.br/2008/08/19/activerecord_symbolize-a-solucao-para-o-seus-problemas/">aqui</a> e acabei por <a href="http://github.com/nuxlli/activerecord_symbolize">contribui</a> com algumas alterações.</p>
<p>Trocando idéia com o Cássio, ele sugeri o método *_str, para facilitar na hora de transformar a propriedade do model em um valor legível para o usuário. Bom, eu já tinha feito está alteração localmente e acabei por esquecer o commit/push dela.</p>
<p>A diferença do que ele sugeriu para o que eu tinha feito é que dei o nome de *_humanize para o método, o que é mais Ruby mod do que _str, com o _str poderia ser confundido com o método to_str. Passamos a ter:</p>
<p><script src="http://gist.github.com/24996.js"></script><noscript><code>&lt;br /&gt;
class User &lt; ActiveRecord:Base&lt;br /&gt;
  symbolize :foo&lt;br /&gt;
  symbolize :status, :in =&gt; [:active, :inactive]&lt;br /&gt;
  symbolize :so, :in =&gt; {&lt;br /&gt;
     :linux =&gt; &amp;#8216;Linux&amp;#8217;,&lt;br /&gt;
     :mac =&gt; &amp;#8216;Mac OS X&amp;#8217;&lt;br /&gt;
  }&lt;br /&gt;
end&lt;/p&gt;
&lt;p&gt;@user = User.create(:foo =&gt; :bar, :status =&gt; :inactive, :so =&gt; :mac)&lt;br /&gt;
@user.foo_humanize # Bar&lt;br /&gt;
@user.status_humanize # Inactive&lt;br /&gt;
@user.so_humanie # Mac OS X&lt;br /&gt;
</code></noscript></p>
<p>Com isso espero atender melhor aos usuário desse plugin, facilitando na hora de obter o valor que sera mostrado na view.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.nuxlli.com.br/2008/11/14/novo-atributo-_humanize-no-plugin-activerecord_symbolize/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Tarifas do Correios: Sedex e PAC (Atualizado)</title>
		<link>http://www.nuxlli.com.br/2007/12/14/tarifas-dos-correios-sedex-e-pac/</link>
		<comments>http://www.nuxlli.com.br/2007/12/14/tarifas-dos-correios-sedex-e-pac/#comments</comments>
		<pubDate>Fri, 14 Dec 2007 03:40:55 +0000</pubDate>
		<dc:creator>Éverton Antônio</dc:creator>
				<category><![CDATA[plugins]]></category>
		<category><![CDATA[Ruby/Rails]]></category>

		<guid isPermaLink="false">http://euvoupranasa.wordpress.com/2007/12/14/tarifas-dos-correios-sedex-e-pac/</guid>
		<description><![CDATA[Hoje postei minha primeira contribuição ao mundo Rails. Fiz isso no forum do RubyOnbr.org por dois motivos: ainda não descobrir como postar código com syntax colorida aqui no WordPress , e segundo que la tem bem mais acessos que aqui.. heheh Update: Na semana passada os correios fizeram algumas mudanças no serviço de consulta de&#8230;]]></description>
			<content:encoded><![CDATA[<div style="text-align:center;"><img src="http://www.nuxlli.com.br/wp-content/uploads/2007/12/correios.jpg" alt="Combosa do Sedex" /></div>
<p style="text-align:justify;">Hoje <a href="http://forum.rubyonbr.org/forums/14/topics/2510">postei</a> minha primeira contribuição ao mundo Rails. Fiz isso no forum do RubyOnbr.org por dois motivos: ainda não descobrir como postar código com syntax colorida aqui no WordPress <img src='http://www.nuxlli.com.br/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> , e segundo que la tem bem mais acessos que aqui.. heheh</p>
<p><strong>Update:</strong> Na semana passada os correios fizeram algumas mudanças no serviço de consulta de tarifas. Basicamente o que muda é que agora é necessário o uso de usuário e senha.</p>
<p>Este usuário e senha está disponível para empresas que tenha contrato com os correios, e é necessário o envio de pelo menos R$ 100,00 por mês para que possa utilizar o serviço.</p>
<p>Para o script, temos as seguintes mudanças:</p>
<ul>
<li>Os códigos dos produtos mudam para 40096 e 41068, Sedex e Pac respectivamente</li>
<li>O endereço do serviço: http://www.correios.com.br/encomendas/precos/calculo_contrato.cfm</li>
<li>E agora é necessário informar os campos tx_código e tx_senha (para obter os esta informação é necessário entrar em contato com os Correios e verificar com eles o seu contrato)</li>
</ul>
<p>Abaixo uma versão do script com as devidas atualizações, observe porem que a txt_codigo e tx_senha deve ser definidos:</p>
<p><script src="http://gist.github.com/103234.js"></script><noscript><code>require &amp;#8216;net/http&amp;#8217;&lt;br /&gt;
require &amp;#8216;uri&amp;#8217;&lt;br /&gt;
require &amp;#8216;timeout&amp;#8217;&lt;/p&gt;
&lt;p&gt;class CorreiosException &amp;lt; Exception&lt;br /&gt;
end&lt;/p&gt;
&lt;p&gt;class Correios&lt;br /&gt;
# C&Atilde;&sup3;digo dos servi&Atilde;&sect;os e urls&lt;br /&gt;
SEDEX = 40096&lt;br /&gt;
PAC   = 41068&lt;br /&gt;
ER    = /.*Tarifa=(.*)&amp;amp;erro=(.*?)&amp;#8221;/&lt;br /&gt;
URL   = &amp;#8216;http://www.correios.com.br/encomendas/precos/calculo_contrato.cfm&amp;#8217;&lt;/p&gt;
&lt;p&gt;def self.tarifa_sedex cepOrigem, cepDestino, peso, options = {}&lt;br /&gt;
options[:servico]   = SEDEX&lt;br /&gt;
options[:tx_codigo] ||= &amp;#8216;XXXXXXXXX&amp;#8217;&lt;br /&gt;
options[:tx_senha]  ||= &amp;#8216;XXXXXXXX&amp;#8217;&lt;br /&gt;
self::get cepOrigem, cepDestino, peso, options&lt;br /&gt;
end&lt;/p&gt;
&lt;p&gt;def self.tarifa_pac cepOrigem, cepDestino, peso, options = {}&lt;br /&gt;
options[:servico]   = PAC&lt;br /&gt;
options[:tx_codigo] ||= &amp;#8216;XXXXXXXXX&amp;#8217;&lt;br /&gt;
options[:tx_senha]  ||= &amp;#8216;XXXXXXXX&amp;#8217;&lt;br /&gt;
self::get cepOrigem, cepDestino, peso, options&lt;br /&gt;
end&lt;/p&gt;
&lt;p&gt;private&lt;br /&gt;
# TODO Adicionar tratamento de timeout do servidor dos correios&lt;br /&gt;
def self.get cepOrigem, cepDestino, peso,  options = {}&lt;br /&gt;
# Op&Atilde;&sect;&Atilde;&micro;es padr&Atilde;&pound;o&lt;br /&gt;
options[:servico]    ||= SEDEX&lt;br /&gt;
options[:MaoPropria] ||= &amp;#8216;n&amp;#8217;&lt;br /&gt;
options[:valorDeclarado]    ||= &amp;#8221;&lt;br /&gt;
options[:avisoRecebimento]  ||= &amp;#8216;N&amp;#8217;&lt;/p&gt;
&lt;p&gt;# Informa&Atilde;&sect;&Atilde;&micro;es basicas&lt;br /&gt;
options[:cepOrigem]  = cepOrigem&lt;br /&gt;
options[:cepDestino] = cepDestino&lt;br /&gt;
options[:peso]       = peso&lt;/p&gt;
&lt;p&gt;# Efetua um post no servidor dos correios&lt;br /&gt;
begin&lt;br /&gt;
timeout(10) do&lt;br /&gt;
response = Net::HTTP.post_form(URI.parse(URL), options)&lt;br /&gt;
# Analisa a resposta para pegar as informa&Atilde;&sect;&Atilde;&micro;es&lt;br /&gt;
match    = ER.match(response.body)&lt;br /&gt;
# Verifica se n&Atilde;&pound;o ocorreu nenhum erro&lt;br /&gt;
if match &amp;amp;&amp;amp; match[2] != &amp;#8220;&amp;#8221;&lt;br /&gt;
raise CorreiosException.new, match[2]&lt;br /&gt;
end&lt;br /&gt;
return match[1].to_f&lt;br /&gt;
end&lt;br /&gt;
rescue TimeoutError&lt;br /&gt;
raise CorreiosException.new, &amp;#8216;Servidor do correio fora do ar&amp;#8217;&lt;br /&gt;
end&lt;br /&gt;
end&lt;br /&gt;
end&lt;br /&gt;
</code></noscript></p>
]]></content:encoded>
			<wfw:commentRss>http://www.nuxlli.com.br/2007/12/14/tarifas-dos-correios-sedex-e-pac/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

