<?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/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Barenko</title>
	<atom:link href="http://barenko.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://barenko.wordpress.com</link>
	<description>Just another WordPress.com weblog</description>
	<lastBuildDate>Tue, 28 Dec 2010 22:43:14 +0000</lastBuildDate>
	<language>pt-br</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='barenko.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>Barenko</title>
		<link>http://barenko.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://barenko.wordpress.com/osd.xml" title="Barenko" />
	<atom:link rel='hub' href='http://barenko.wordpress.com/?pushpress=hub'/>
		<item>
		<title>Ruby 1.9 &#8211; invalid multibyte char (US-ASCII)</title>
		<link>http://barenko.wordpress.com/2010/09/14/ruby-1-9-invalid-multibyte-char-us-ascii/</link>
		<comments>http://barenko.wordpress.com/2010/09/14/ruby-1-9-invalid-multibyte-char-us-ascii/#comments</comments>
		<pubDate>Wed, 15 Sep 2010 02:44:44 +0000</pubDate>
		<dc:creator>barenko</dc:creator>
				<category><![CDATA[Dicas]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[charset]]></category>
		<category><![CDATA[encoding]]></category>
		<category><![CDATA[ruby 1.9.2]]></category>

		<guid isPermaLink="false">http://barenko.wordpress.com/?p=83</guid>
		<description><![CDATA[Não sei quanto a vocês, mas eu vivo esbarrando em códigos-fonte e aplicações web com problemas de encoding. Minha mais nova experiência foi com um &#8220;invalid multibyte char (US-ASCII)&#8221; quando eu executava um script em Ruby 1.9.2: Na minha jornada para tentar solucionar o problema acabei encontrando um excelente artigo do troelskn: Character Sets / [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=barenko.wordpress.com&amp;blog=11332518&amp;post=83&amp;subd=barenko&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Não sei quanto a vocês, mas eu vivo esbarrando em códigos-fonte e aplicações web com problemas de encoding.</p>
<p>Minha mais nova experiência foi com um &#8220;<strong>invalid multibyte char (US-ASCII)</strong>&#8221; quando eu executava um script em Ruby 1.9.2:</p>
<p><pre class="brush: plain;">

i18n.rb:2: invalid multibyte char (US-ASCII)

</pre></p>
<p>Na minha jornada para tentar solucionar o problema acabei encontrando um excelente artigo do troelskn: <a title="Character Sets / Character Encoding Issues" href="http://www.phpwact.org/php/i18n/charsets">Character Sets / Character Encoding Issues</a>, que explica muito sobre encoding e como contornar problemas com charset em browsers. Realmente vale a pena dar uma olhada.</p>
<p>Embora o artigo do troelskn me desse base teórica, não me auxiliava com o problema específico: Dizer ao interpretador Ruby 1.9.2 que eu estou usando UTF-8 (e não aquela coisa atrasada do US-ASCII &#8211; Aliás, ainda não entendi o motivo do Matz não usar UTF-8 como encoding padrão&#8230; mas enfim&#8230;).</p>
<p>A solução só foi encontrada num <a title="fórum do dreamincode" href="http://www.dreamincode.net/forums/topic/164204-replacing-smart-quotesapostrophes/">fórum do dreamincode</a>, pelo Erik Price, com uma inserção de meta-tag de comentário que me lembra os hints do oracle e, tirando a bizarrice que é colocar meta-tag em código-fonte, serviu bem ao propósito: Fez o interpretador ler o código ruby como UTF-8!</p>
<p>O comentário que modifica o charset é:</p>
<p><pre class="brush: ruby;">
# -*- coding: utf-8 -*-
</pre></p>
<p>E o script ruby fica assim:</p>
<p><pre class="brush: ruby;">
# -*- coding: utf-8 -*- #especificado para caracteres UTF-8

print 'E não é que a Iñtërnâtiônàlizætiøn funciona???'
</pre></p>
<p>É isso!</p>
<h2>Atualização</h2>
<p>Encontrei a <a title="gem magic_encoding do m-ryan" href="http://github.com/m-ryan/magic_encoding">gem magic_encoding do m-ryan</a> que inclui o comentário &#8216;mágico&#8217; em todos os arquivos rb de um diretório e sub-diretórios.</p>
<p>Para usá-la, basta instalar a gem com:</p>
<p><pre class="brush: plain;">
gem install magic_encoding 
</pre></p>
<p>e depois entrar no diretório do projeto ruby e digitar</p>
<p><pre class="brush: plain;">
magic_encoding
</pre></p>
<p>Isso incluirá a meta-tag de comentário para o encoding UTF-8 em todos os arquivos .rb do diretório e subdiretórios.</p>
<p>Caso deseje outro encoding ou mais opções de uso, não esqueça de dar uma olhada na <a href="http://github.com/m-ryan/magic_encoding">página do m-ryan no github</a>.</p>
<br />Filed under: <a href='http://barenko.wordpress.com/category/dicas/'>Dicas</a>, <a href='http://barenko.wordpress.com/category/programacao/ruby-programacao/'>Ruby</a> Tagged: <a href='http://barenko.wordpress.com/tag/charset/'>charset</a>, <a href='http://barenko.wordpress.com/tag/encoding/'>encoding</a>, <a href='http://barenko.wordpress.com/tag/ruby-1-9-2/'>ruby 1.9.2</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/barenko.wordpress.com/83/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/barenko.wordpress.com/83/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/barenko.wordpress.com/83/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/barenko.wordpress.com/83/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/barenko.wordpress.com/83/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/barenko.wordpress.com/83/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/barenko.wordpress.com/83/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/barenko.wordpress.com/83/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/barenko.wordpress.com/83/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/barenko.wordpress.com/83/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/barenko.wordpress.com/83/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/barenko.wordpress.com/83/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/barenko.wordpress.com/83/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/barenko.wordpress.com/83/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=barenko.wordpress.com&amp;blog=11332518&amp;post=83&amp;subd=barenko&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://barenko.wordpress.com/2010/09/14/ruby-1-9-invalid-multibyte-char-us-ascii/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<georss:point>-23.531692 -46.789923</georss:point>
		<geo:lat>-23.531692</geo:lat>
		<geo:long>-46.789923</geo:long>
		<media:content url="http://1.gravatar.com/avatar/7e20a163073b752e4792611d531d669b?s=96&#38;d=http%3A%2F%2Fs0.wp.com%2Fi%2Fmu.gif&#38;r=G" medium="image">
			<media:title type="html">barenko</media:title>
		</media:content>
	</item>
		<item>
		<title>SimpleLog &#8211; Um logger java simples, baseado em log4j</title>
		<link>http://barenko.wordpress.com/2010/05/28/simplelog-um-logger-java-simples-baseado-em-log4j/</link>
		<comments>http://barenko.wordpress.com/2010/05/28/simplelog-um-logger-java-simples-baseado-em-log4j/#comments</comments>
		<pubDate>Fri, 28 May 2010 11:00:00 +0000</pubDate>
		<dc:creator>barenko</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Log]]></category>
		<category><![CDATA[Log4j]]></category>
		<category><![CDATA[SimpleLog]]></category>

		<guid isPermaLink="false">http://barenko.wordpress.com/?p=76</guid>
		<description><![CDATA[Geralmente uso o log4j em meus projetos java, porém, certo dia surgiu uma necessidade diferente: Eu precisava logar a aplicação por módulo de negócio (por exemplo: integracao.log para o modulo que fazia a integração, persistencia.log para o modulo que se encarregava da persistência). Porém, certos pacotes que eram utilizados por vários modulos do sistema (por ex: [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=barenko.wordpress.com&amp;blog=11332518&amp;post=76&amp;subd=barenko&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Geralmente uso o log4j em meus projetos java, porém, certo dia surgiu uma necessidade diferente:</p>
<p>Eu precisava logar a aplicação por módulo de negócio (por exemplo: integracao.log para o modulo que fazia a integração, persistencia.log para o modulo que se encarregava da persistência). Porém, certos pacotes que eram utilizados por vários modulos do sistema (por ex: o módulo de utilitários). Por isso, meu log não poderia ser baseado na classe (assim como é o logger padrão do java ou o log4j), eu teria que baseá-lo na instância.</p>
<p>Não encontrei uma forma de resolver isso no log4j (talvez até exista, mas eu desconheço), então criei um logger minimalista que possui características muito similares ao Log4j.</p>
<h1>SimpleLog</h1>
<p>O <a href="http://github.com/barenko/SimpleLog">SimpleLog</a> foi criado para ser utilizado em instâncias, mas nada impede seu uso em classes, assim como o Log4j é utilizado.</p>
<h2>Instanciação</h2>
<p>O SimpleLog pode ser instanciado das seguintes formas:</p>
<ul>
<li>Direta, utilizando as configurações padrões:</li>
</ul>
<p><pre class="brush: java;">
Log log = new DefaultLog();
</pre></p>
<ul>
<li>Direta, utilizando configurações personalizadas:</li>
</ul>
<p><pre class="brush: java;">
LogConfig logConf = new DefaultLogConfig(
                   LogLevel.WARNING,
                   new RollingFileAppender(new DefaultLayout())
              );
Log log = new DefaultLog(logConf);
</pre></p>
<h2>Layouts</h2>
<p>Há 3 layouts disponíveis para o log:</p>
<ul>
<li><span style="font-family:helvetica, arial, freesans, clean, sans-serif;line-height:20px;"><span style="line-height:1.4em;margin:0;padding:0;"><strong>DateLayout</strong>: Um layout simples, que utiliza apenas a data e a informação de log</span></span></li>
<li><span style="font-family:helvetica, arial, freesans, clean, sans-serif;line-height:20px;"><span style="line-height:1.4em;margin:0;padding:0;"><span style="line-height:20px;"><span style="line-height:1.4em;margin:0;padding:0;"><strong>DefaultLayout</strong>: Um log com informações úteis</span></span></span></span></li>
<li><span style="font-family:helvetica, arial, freesans, clean, sans-serif;line-height:20px;"><span style="line-height:1.4em;margin:0;padding:0;"><span style="line-height:20px;"><span style="line-height:1.4em;margin:0;padding:0;"><span style="line-height:20px;"><span style="line-height:1.4em;margin:0;padding:0;"><strong>FullLayout</strong>: Um log extremamente detalhado (ele pode tornar sua aplicação mais lenta, por isso, utilize em situações específicas)</span></span></span></span></span></span></li>
</ul>
<h2>Appenders</h2>
<p>Há 2 appenders disponíveis:</p>
<ul>
<li><strong>ConsoleAppender</strong>: Loga tudo no console java</li>
<li><span style="font-family:helvetica, arial, freesans, clean, sans-serif;line-height:20px;"><span style="line-height:1.4em;margin:0;padding:0;"><strong>RollingFileAppender</strong>: Loga tudo em arquivo, que pode ser configurado para rotacionar, ter tamanho máximo, separar por período, etc.</span></span></li>
</ul>
<h2>Exemplos de utilização</h2>
<ul>
<li>Logar uma mensagem:</li>
</ul>
<p><pre class="brush: java;">log.trace(&quot;Minha mensagem de log&quot;);</pre></p>
<ul>
<li>Logar uma mensagem com Throwable:</li>
</ul>
<p><pre class="brush: java;">log.trace(&quot;Minha mensagem de log&quot;, myException);</pre></p>
<ul>
<li>Logar uma mensagem com format:</li>
</ul>
<p><pre class="brush: java;">
log.trace(&quot;Minha mensagem de log deu erro de %s: %s&quot;,
                  myException.getClass().getSimpleName(),
                  myException.getMessage()
     );
</pre></p>
<p>Há 6 níveis de log, que estão disponíveis como métodos:</p>
<ol>
<li><strong>trace</strong>: utilizado para log extremamente detalhado</li>
<li><strong>debug</strong>: utilizado para log de detalhamento específico</li>
<li><strong>info</strong>: utilizado para log de informações de processos e configurações</li>
<li><strong>warning</strong>: utilizado para log de alertas</li>
<li><strong>error</strong>: utilizado para log de erros nos quais a aplicação possa continuar executando outros processos sem problemas</li>
<li><strong>fatal</strong>: utilizado para log de erros irrecuperáveis, nos quais a aplicação não tem condições de continuar a execução garantindo integridade</li>
</ol>
<h2>Download</h2>
<p>O <a href="http://github.com/barenko/SimpleLog">SimpleLog</a> pode ser obtido no meu site do <a href="http://github.com/barenko/SimpleLog">github</a>.</p>
<ol></ol>
<br />Filed under: <a href='http://barenko.wordpress.com/category/programacao/java-programacao/'>Java</a> Tagged: <a href='http://barenko.wordpress.com/tag/java/'>Java</a>, <a href='http://barenko.wordpress.com/tag/log/'>Log</a>, <a href='http://barenko.wordpress.com/tag/log4j/'>Log4j</a>, <a href='http://barenko.wordpress.com/tag/simplelog/'>SimpleLog</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/barenko.wordpress.com/76/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/barenko.wordpress.com/76/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/barenko.wordpress.com/76/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/barenko.wordpress.com/76/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/barenko.wordpress.com/76/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/barenko.wordpress.com/76/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/barenko.wordpress.com/76/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/barenko.wordpress.com/76/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/barenko.wordpress.com/76/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/barenko.wordpress.com/76/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/barenko.wordpress.com/76/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/barenko.wordpress.com/76/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/barenko.wordpress.com/76/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/barenko.wordpress.com/76/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=barenko.wordpress.com&amp;blog=11332518&amp;post=76&amp;subd=barenko&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://barenko.wordpress.com/2010/05/28/simplelog-um-logger-java-simples-baseado-em-log4j/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<georss:point>-23.531692 -46.789923</georss:point>
		<geo:lat>-23.531692</geo:lat>
		<geo:long>-46.789923</geo:long>
		<media:content url="http://1.gravatar.com/avatar/7e20a163073b752e4792611d531d669b?s=96&#38;d=http%3A%2F%2Fs0.wp.com%2Fi%2Fmu.gif&#38;r=G" medium="image">
			<media:title type="html">barenko</media:title>
		</media:content>
	</item>
		<item>
		<title>LogWrapper &#8211; Log qualquer método, de qualquer instância</title>
		<link>http://barenko.wordpress.com/2010/05/22/logwrapper-log-qualquer-metodo-de-qualquer-classe/</link>
		<comments>http://barenko.wordpress.com/2010/05/22/logwrapper-log-qualquer-metodo-de-qualquer-classe/#comments</comments>
		<pubDate>Sat, 22 May 2010 07:17:57 +0000</pubDate>
		<dc:creator>barenko</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[CGLIB]]></category>
		<category><![CDATA[LogWrapper]]></category>
		<category><![CDATA[Reflection]]></category>

		<guid isPermaLink="false">http://barenko.wordpress.com/?p=69</guid>
		<description><![CDATA[Decidi brincar um pouco com reflexão e uma API chamada CGLIB (Code Generation Library) e acabei criando um pacote que consegue pegar uma instância qualquer, a devolve encapsulada com características de log de método, bem prático. CGLIB Em poucas palavras, a CGLIB é capaz de gerar classes que implementam interfaces que as classes originais não [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=barenko.wordpress.com&amp;blog=11332518&amp;post=69&amp;subd=barenko&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Decidi brincar um pouco com reflexão e uma API chamada <a title="CGLIB" href="http://cglib.sourceforge.net/" target="_blank">CGLIB</a> (Code Generation Library) e acabei criando um pacote que consegue pegar uma instância qualquer, a devolve encapsulada com características de log de método, bem prático.</p>
<h2>CGLIB</h2>
<p>Em poucas palavras, a CGLIB é capaz de gerar classes que implementam interfaces que as classes originais não implementavam, também pode estender classes, efetuando proxy. O melhor: tudo em tempo de execução!</p>
<p>Maiores detalhes sobre essa API podem ser vistos no <a href="http://cglib.sourceforge.net/">site do desenvolvedor</a> e também no ótimo artigo do <a href="http://www.soartigos.com/articles/3406/1/Utilizando-a-API-CGLIB-para-interceptar-chamadas-de-metodos-em-objetos-Java/Invalid-Language-Variable1.html">Carlos Eduardo Gusso Tosin</a>.</p>
<h2>LogWrapper</h2>
<p>Ao desenvolver o LogWrapper, tive sempre em mente a filosofia de <em>&#8220;Logar tudo, de qualquer classe&#8221;</em>.</p>
<p><a href="http://github.com/barenko/LogWrapper">LogWrapper</a> é um pacote que torna mais fácil a tarefa de logar dentro de qualquer classe de qualquer pacote java (tanto seu quanto de terceiros), via reflexão, utilizando a API <a href="http://cglib.sourceforge.net/">CGLIB</a>.</p>
<p>Ele pode ser obtido diretamente do meu projeto no <a href="http://github.com/barenko/LogWrapper">github</a>.</p>
<h3>Funcionamento</h3>
<p><a href="http://github.com/barenko/LogWrapper">LogWrapper</a> é capaz de encapsular uma instância específica, dando a ela a habilidade de logar tanto as chamadas de métodos (com seus respectivos parâmetros) quanto seu retorno.</p>
<p>Se o método logado disparar alguma exceção, essa também será capturada e logada, inclusive com o Stacktrace.</p>
<h3>Exemplo de uso</h3>
<div id="_mcePaste">É muito simples começar a logar uma instância, basta fazer isso:</div>
<p><pre class="brush: java;">
ClassToTest t = LogWrapper.enableTrace(new ClassToTest(), log, Level.INFO);
</pre></p>
<div>Por exemplo, para logarmos uma ArrayList, a encapsulariamos no LogWrapper e a usaríamos normalmente:</div>
<p><pre class="brush: java;">
List&lt;String&gt; myList = LogWrapper.enableTrace(new ArrayList&lt;String&gt;(), log, Level.INFO);
myList.add(&quot;It's a test&quot;);
myList.add(&quot;and another test&quot;);
</pre></p>
<div id="_mcePaste">Esse código irá gerar o seguinte log:</div>
<p><pre class="brush: plain;">
[Thread[main,5,main]] java.util.ArrayList.add(&quot;It's a test&quot;)	  # add method call (with argument)
[Thread[main,5,main]] java.util.ArrayList.ensureCapacity(1)		  # ensureCapacity call (called internally by add)
[Thread[main,5,main]] return: [null]							  # return of ensureCapacity (void)
[Thread[main,5,main]] return: [true]							  # return of add (true)
[Thread[main,5,main]] java.util.ArrayList.add(&quot;and another test&quot;) # the same process again...
[Thread[main,5,main]] java.util.ArrayList.ensureCapacity(2)
[Thread[main,5,main]] return: [null]
[Thread[main,5,main]] return: [true]
</pre></p>
<h2>Conclusão</h2>
<p>Usar CGLIB é muito fácil, logo de cara já vi diversas coisas interessantes que dá para se fazer com ela.  Eu sempre ouvi falar que API&#8217;s que alteram o bytecode eram poderosas e muito úteis. Pude comprovar isso nesse exemplo que é bem prático e interessante.</p>
<br />Filed under: <a href='http://barenko.wordpress.com/category/programacao/java-programacao/'>Java</a> Tagged: <a href='http://barenko.wordpress.com/tag/cglib/'>CGLIB</a>, <a href='http://barenko.wordpress.com/tag/logwrapper/'>LogWrapper</a>, <a href='http://barenko.wordpress.com/tag/reflection/'>Reflection</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/barenko.wordpress.com/69/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/barenko.wordpress.com/69/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/barenko.wordpress.com/69/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/barenko.wordpress.com/69/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/barenko.wordpress.com/69/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/barenko.wordpress.com/69/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/barenko.wordpress.com/69/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/barenko.wordpress.com/69/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/barenko.wordpress.com/69/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/barenko.wordpress.com/69/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/barenko.wordpress.com/69/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/barenko.wordpress.com/69/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/barenko.wordpress.com/69/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/barenko.wordpress.com/69/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=barenko.wordpress.com&amp;blog=11332518&amp;post=69&amp;subd=barenko&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://barenko.wordpress.com/2010/05/22/logwrapper-log-qualquer-metodo-de-qualquer-classe/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<georss:point>-23.531692 -46.789923</georss:point>
		<geo:lat>-23.531692</geo:lat>
		<geo:long>-46.789923</geo:long>
		<media:content url="http://1.gravatar.com/avatar/7e20a163073b752e4792611d531d669b?s=96&#38;d=http%3A%2F%2Fs0.wp.com%2Fi%2Fmu.gif&#38;r=G" medium="image">
			<media:title type="html">barenko</media:title>
		</media:content>
	</item>
		<item>
		<title>Cryptografy &#8211; Um novo pacote Java de Criptografia</title>
		<link>http://barenko.wordpress.com/2010/04/01/cryptografy-um-novo-pacote-java-de-criptografia/</link>
		<comments>http://barenko.wordpress.com/2010/04/01/cryptografy-um-novo-pacote-java-de-criptografia/#comments</comments>
		<pubDate>Fri, 02 Apr 2010 02:54:17 +0000</pubDate>
		<dc:creator>barenko</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[criptografia]]></category>
		<category><![CDATA[criptografy]]></category>

		<guid isPermaLink="false">http://barenko.wordpress.com/?p=61</guid>
		<description><![CDATA[Esse é meu primeiro post sobre java no blog, e logo de cara vou lhes apresentar um pacote de criptografia que fiz a uns meses atrás e aperfeiçoei e disponibilizei no GitHub recentemente. Certa vez precisei criptografar uns dados simples para inserir numa coluna do banco de dados e fiquei frustrado com a dificuldade e [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=barenko.wordpress.com&amp;blog=11332518&amp;post=61&amp;subd=barenko&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Esse é meu primeiro post sobre java no blog, e logo de cara vou lhes apresentar um pacote de criptografia que fiz a uns meses atrás e aperfeiçoei e disponibilizei no <a href="http://github.com/barenko/Cryptografy">GitHub</a> recentemente.</p>
<p>Certa vez precisei criptografar uns dados simples para inserir numa coluna do banco de dados e fiquei frustrado com a dificuldade e a confusão que é implementar diversas criptografias diferentes, até que decidi criar um facilitador, para que eu pudesse criptografar e decriptografar sem precisar entrar em detalhes do uso de Cipher, geração de Keys, etc&#8230;</p>
<p>A filosofia principal desse projeto é: <strong>Facilidade de uso de criptografia</strong></p>
<p>Tentei implementar algo que fosse o mais simples possível de usar e que ao mesmo tempo fosse útil, encapsulando muitas das criptografias mais usadas, tais como as <a href="http://pt.wikipedia.org/wiki/Criptografia#Algoritmos_sim.C3.A9tricos">criptografias simétricas</a> e até <a href="http://pt.wikipedia.org/wiki/Criptografia#Algoritmos_assim.C3.A9tricos_ou_de_chave_p.C3.BAblica">criptografias assimétricas</a>.</p>
<p>A lista de criptografias implementadas atualmente é a seguinte:</p>
<p><strong>Simétricas</strong>:</p>
<ol>
<li>AES</li>
<li>Blowfish</li>
<li>DES</li>
<li>DESede</li>
<li>PBEWithMD5AndDES</li>
<li>PBEWithSHA1AndDESede</li>
<li>RC2</li>
<li>RC4</li>
</ol>
<p><strong>Assimétricas</strong>:</p>
<ol>
<li>RSA 1024 bits</li>
</ol>
<h2>Exemplo de uso do pacote <a href="http://github.com/barenko/Cryptografy">Cryptografy</a> com algoritmos simétricos</h2>
<h3>Criptografia</h3>
<p><pre class="brush: java;">
//Obtenho a fábrica de criptografia simétrica
SymmetricCryptFactory factory = SymmetricCryptFactory.getInstance();

//Escolho o algoritmo PBEWithMD5AndDES
SymmetricCrypter pbeWithMd5AndDes = factory.getCryptografy(SymmetricAlgorithm.PBEWithMD5AndDES);

//Gero a chave (posso carregar uma pré-existente também)
pbeWithMd5AndDes.generateKey();

//Criptografo (posso obter o valor cripografado tanto em string quanto em byte, para retornar string, utilizo Base64 no byte)
String encrypted = pbeWithMd5AndDes.encrypt(&quot;input&quot;);

//Obtenho a chave serializada (para poder descriptografar posteriormente)
byte[] key = pbeWithMd5AndDes.getSerializedKey();
</pre></p>
<h3>Descriptografia</h3>
<p><pre class="brush: java;">
//Obtenho a fábrica de criptografia simétrica
SymmetricCryptFactory factory = SymmetricCryptFactory.getInstance();

//Escolho o algoritmo PBEWithMD5AndDES e passo a chave serializada obtida durante a criptografia
SymmetricCrypter anotherPbeWithMd5AndDes = factory.getCryptografy(SymmetricAlgorithm.PBEWithMD5AndDES, key);

//Descriptografo o conteúdo criptografado, pronto!
String decryptedAgain = anotherPbeWithMd5AndDes.decrypt(encrypted);
</pre></p>
<h2>Exemplo de uso do pacote <a href="http://github.com/barenko/Cryptografy">Cryptografy</a> com algoritmos assimétricos</h2>
<h3>Criptografia</h3>
<p><pre class="brush: java;">
//Obtenho a fábrica de criptografia assimétrica
AsymmetricCryptFactory factory = AsymmetricCryptFactory.getInstance();

//Escolho o algoritmo RSA de 1024bits
AsymmetricCrypter rsa = factory.getCryptografy(AsymmetricAlgorithm.RSA_1024bits);

//Gero as chaves pública e privada (posso carregar pré-existentes também)
rsa.generateKeys();

//Criptografo e obtenho um objeto EncryptSet, com o conteúdo criptofrafado e
EncryptSet es = rsa.encrypt(&quot;input&quot;);
String encrypted = es.getContents();
String encryptedKey = es.getEncryptedKey();

//Obtenho a chave publica serializada (para poder descriptografar posteriormente)
byte[] pubK = rsa.getSerializedPublicKey();
</pre></p>
<h3>Descriptografia</h3>
<p><pre class="brush: java;">
//Obtenho a fábrica de criptografia assimétrica
AsymmetricCryptFactory factory = AsymmetricCryptFactory.getInstance();

//Escolho o algoritmo RSA de 1024bits passando a chave pública obtida na criptografia
AsymmetricCrypter rsap = factory.getCryptografy(AsymmetricAlgorithm.RSA_1024bits,pubK);

//Descriptografo o conteúdo criptografado, utilizando a chave criptografada criada junto ao conteudo criptografado. Pronto!
String decryptedAgain = rsap.decrypt(encripted, encryptedKey);
</pre></p>
<p>Simples, não? Para quem se interessar no projeto e quiser testar, divulgar ou ajudar a desenvolver, baixe-o no GitHub clicando <a href="http://github.com/barenko/Cryptografy/archives/master">aqui</a>.</p>
<br />Filed under: <a href='http://barenko.wordpress.com/category/programacao/java-programacao/'>Java</a> Tagged: <a href='http://barenko.wordpress.com/tag/criptografia/'>criptografia</a>, <a href='http://barenko.wordpress.com/tag/criptografy/'>criptografy</a>, <a href='http://barenko.wordpress.com/tag/java/'>Java</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/barenko.wordpress.com/61/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/barenko.wordpress.com/61/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/barenko.wordpress.com/61/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/barenko.wordpress.com/61/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/barenko.wordpress.com/61/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/barenko.wordpress.com/61/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/barenko.wordpress.com/61/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/barenko.wordpress.com/61/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/barenko.wordpress.com/61/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/barenko.wordpress.com/61/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/barenko.wordpress.com/61/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/barenko.wordpress.com/61/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/barenko.wordpress.com/61/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/barenko.wordpress.com/61/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=barenko.wordpress.com&amp;blog=11332518&amp;post=61&amp;subd=barenko&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://barenko.wordpress.com/2010/04/01/cryptografy-um-novo-pacote-java-de-criptografia/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<georss:point>-23.531692 -46.789923</georss:point>
		<geo:lat>-23.531692</geo:lat>
		<geo:long>-46.789923</geo:long>
		<media:content url="http://1.gravatar.com/avatar/7e20a163073b752e4792611d531d669b?s=96&#38;d=http%3A%2F%2Fs0.wp.com%2Fi%2Fmu.gif&#38;r=G" medium="image">
			<media:title type="html">barenko</media:title>
		</media:content>
	</item>
		<item>
		<title>Como instalar o ruby 1.9.1 em distros baseadas em Debian usando apt-get</title>
		<link>http://barenko.wordpress.com/2010/02/11/como-instalar-o-ruby-1-9-1-em-distros-baseadas-em-debian-usando-apt-get/</link>
		<comments>http://barenko.wordpress.com/2010/02/11/como-instalar-o-ruby-1-9-1-em-distros-baseadas-em-debian-usando-apt-get/#comments</comments>
		<pubDate>Fri, 12 Feb 2010 00:38:21 +0000</pubDate>
		<dc:creator>barenko</dc:creator>
				<category><![CDATA[Ruby]]></category>
		<category><![CDATA[ruby jolicloud]]></category>

		<guid isPermaLink="false">http://barenko.wordpress.com/?p=55</guid>
		<description><![CDATA[Essa é uma dica rápida para quem tem problemas em instalar o ruby 1.9.1 via apt-get em distribuições baseadas em Debian (tais como ubuntu ou jolicloud). A dica é simples, basta adicionar os seguintes sources no arquivo /etc/apt/sources.list: Após isso, atualize a lista de pacotes e instale o ruby 1.9.1: Para facilitar, criaremos um link [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=barenko.wordpress.com&amp;blog=11332518&amp;post=55&amp;subd=barenko&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Essa é uma dica rápida para quem tem problemas em instalar o ruby 1.9.1 via apt-get em distribuições baseadas em Debian (tais como ubuntu ou jolicloud).</p>
<p>A dica é simples, basta adicionar os seguintes sources no arquivo <strong>/etc/apt/sources.list</strong>:</p>
<p><pre class="brush: plain;">deb http://us.archive.ubuntu.com/ubuntu/ karmic universe
deb-src http://us.archive.ubuntu.com/ubuntu/ karmic universe
deb http://us.archive.ubuntu.com/ubuntu/ karmic-updates universe
deb-src http://us.archive.ubuntu.com/ubuntu/ karmic-updates universe</pre></p>
<p>Após isso, atualize a lista de pacotes e instale o ruby 1.9.1:<br />
<pre class="brush: plain;">sudo apt-get update
sudo apt-get install ruby1.9.1-full rubygems1.9.1</pre></p>
<p>Para facilitar, criaremos um link simbólico do ruby 1.9.1 para ruby:<br />
<pre class="brush: plain;">sudo ln -sf /usr/bin/ruby1.9.1 /usr/bin/ruby</pre></p>
<p>Pronto!</p>
<br />Filed under: <a href='http://barenko.wordpress.com/category/programacao/ruby-programacao/'>Ruby</a> Tagged: <a href='http://barenko.wordpress.com/tag/ruby-jolicloud/'>ruby jolicloud</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/barenko.wordpress.com/55/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/barenko.wordpress.com/55/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/barenko.wordpress.com/55/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/barenko.wordpress.com/55/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/barenko.wordpress.com/55/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/barenko.wordpress.com/55/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/barenko.wordpress.com/55/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/barenko.wordpress.com/55/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/barenko.wordpress.com/55/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/barenko.wordpress.com/55/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/barenko.wordpress.com/55/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/barenko.wordpress.com/55/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/barenko.wordpress.com/55/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/barenko.wordpress.com/55/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=barenko.wordpress.com&amp;blog=11332518&amp;post=55&amp;subd=barenko&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://barenko.wordpress.com/2010/02/11/como-instalar-o-ruby-1-9-1-em-distros-baseadas-em-debian-usando-apt-get/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<georss:point>-23.531692 -46.789923</georss:point>
		<geo:lat>-23.531692</geo:lat>
		<geo:long>-46.789923</geo:long>
		<media:content url="http://1.gravatar.com/avatar/7e20a163073b752e4792611d531d669b?s=96&#38;d=http%3A%2F%2Fs0.wp.com%2Fi%2Fmu.gif&#38;r=G" medium="image">
			<media:title type="html">barenko</media:title>
		</media:content>
	</item>
		<item>
		<title>Instalação do Gitosis no Linux</title>
		<link>http://barenko.wordpress.com/2010/02/06/instalacao-do-gitosis-no-linux/</link>
		<comments>http://barenko.wordpress.com/2010/02/06/instalacao-do-gitosis-no-linux/#comments</comments>
		<pubDate>Sat, 06 Feb 2010 15:04:01 +0000</pubDate>
		<dc:creator>barenko</dc:creator>
				<category><![CDATA[Git]]></category>
		<category><![CDATA[git gitosis linux]]></category>

		<guid isPermaLink="false">http://barenko.wordpress.com/?p=50</guid>
		<description><![CDATA[O gitosis, é um servidor git bem simples e funcional. Instalei o Gitosis e o configurei muito facilmente. Ele tem uma interface muito simples, configurada por um projeto git que contém apenas um arquivo e um diretório para chaves públicas. Devido a sua simplicidade, a experiência com gitosis se torna mais rica se utilizarmos outras [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=barenko.wordpress.com&amp;blog=11332518&amp;post=50&amp;subd=barenko&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>O gitosis, é um servidor git bem simples e funcional. Instalei o Gitosis e o configurei muito facilmente. Ele tem uma interface muito simples, configurada por um projeto git que contém apenas um arquivo e um diretório para chaves públicas.</p>
<p>Devido a sua simplicidade, a experiência com gitosis se torna mais rica se utilizarmos outras ferramentas em conjunto, dependendo da necessidade.<br />
Esse artigo demonstra os passos que fiz para instalar o gitosis, além de como contornar alguns problemas.</p>
<h1>Instalação</h1>
<p>Essa instalação foi feita no Jolicloud pre-beta 4 e deve funcionar com poucas ou nenhuma alteração em outras distros baseadas no Debian, tais como o Ubuntu.<br />
Primeiro instalaremos os pré-requisitos:<strong> </strong></p>
<p><strong>ssh</strong>: para estabelecer conexão com o protocolo do git<br />
<strong>git-core</strong>: pacote do git<br />
<strong>gitk</strong>: (opcional) interface gráfica para o git, exibindo os branchs e o histórico de alterações do repositório.<br />
<strong>python-setuptools</strong>: compilador python, necessário para instalar e executar o gitosis</p>
<p><pre class="brush: plain;">
sudo apt-get install ssh git-core gitk python-setuptools
</pre></p>
<p>Vamos criar um diretório de downloads apenas para nos mantermos organizados:</p>
<p><pre class="brush: plain;">
mkdir -p ~/downloads
cd ~/downloads
</pre></p>
<p>E baixar o projeto do gitosis se algum dos repositórios abaixo:</p>
<p><pre class="brush: plain;">
git clone git://eagain.net/gitosis.git
</pre></p>
<p>ou</p>
<p><pre class="brush: plain;">
git clone git://github.com/res0nat0r/gitosis.git
</pre></p>
<p>ou</p>
<p><pre class="brush: plain;">
git clone &lt;a href=&quot;http://github.com/res0nat0r/gitosis.git&quot;&gt;http://github.com/res0nat0r/gitosis.git&lt;/a&gt;
</pre></p>
<p><strong><em>OBS</em></strong><em>: tentei utilizar o caminho curto: sudo apt-get install gitosis, porém sempre que eu tentava acessar o gitosis era solicitada senha no ssh e eu não consegui resolver o problema. Por isso, atualmente não recomendo a instalação via apt-get.</em><br />
Após o download do projeto, instale-o:</p>
<p><pre class="brush: plain;">
cd gitosis
sudo python setup.py install
</pre></p>
<p>Adicione o usuário git (usuário que será utilizado pelo gitosis para conexão via ssh &#8211; é utilizado no endereço do repositório.<br />
Ex: git clone USUARIO_GIT://eagain.net/gitosis.git)</p>
<p><pre class="brush: plain;">
sudo adduser \
--system \
--shell /bin/sh \
--gecos 'git version control' \
--group \
--disabled-password \
--home /home/git \
git
</pre></p>
<p>Agora criaremos uma chave rsa para o usuário administrador (não é o git, mas sim o usuário linux que será utilizado para alterar as configurações do gitosis), neste caso, o próprio usuário atual:</p>
<p><pre class="brush: plain;">
ssh-keygen -t rsa
</pre></p>
<p>Em seguida passamos a chave pública criada para o gitosis utilizando o seguinte comando:</p>
<p><pre class="brush: plain;">
sudo -H -u git gitosis-init &amp;lt; ~/.ssh/id_rsa.pub
</pre></p>
<p>Para finalizar a instalação, temos que dar direito de escrita e leitura para o arquivo post-update (caso contrário, as alterações feitas pelo administrador não serão refletidas para o gitosis:</p>
<p><pre class="brush: plain;">
sudo chmod 755 /home/git/repositories/gitosis-admin.git/hooks/post-update
</pre></p>
<h1>Configuração do servidor</h1>
<p>Voltando ao nosso diretório de trabalho:</p>
<p><pre class="brush: plain;">
cd ~/downloads
</pre></p>
<p>Com o gitosis instalado, agora iremos acessar suas configurações. As configurações do gitorious ficam no repositório &#8220;gitosis-admin&#8221; que deve ser acessado via git com o comando:</p>
<p><pre class="brush: plain;">
git clone git@localhost:gitosis-admin.git
cd gitosis-admin
</pre></p>
<p>No repositório gitosis-admin há toda a configuração necessária para que o gitosis funcione corretamente. Nele há o arquivo gitosis.conf, que contém as configurações do servidor, grupos, direitos de acesso, etc e a pasta keydir, que contém a chave pública de todos os usuários que possuem permissão para acessar os repositórios do gitosis.</p>
<p>Olhando o gitosis.conf, vemos que a única configuração que há nele é a do usuário atual como administrador (obtido pela chave pública enviada ao gitosis-init na etapa de instalação)</p>
<p><pre class="brush: plain;">
less gitosis.conf
</pre></p>
<p><pre class="brush: plain;">
[gitosis]

[group gitosis-admin]
writable = gitosis-admin
members = usuario@maquina
</pre></p>
<p>Vamos editar o gitosis.conf e adicionar mais algumas configurações, tais como habilitar o debug e inserir um novo grupo para um projeto. O debug servirá para que nós possamos entender melhor algum erro que possa ocorrer durante a instalação. No final do procedimento ele pode ser removido.</p>
<p>O grupo, chamado equipeAlpha, inicialmente possuirá direito de escrita no repositório myProject e terá como membro apenas o usuário jolicloud@vm (usuário da máquina local).</p>
<p><pre class="brush: plain;">
vi gitosis.conf
</pre></p>
<p><pre class="brush: plain;">
# Leia o arquivo example.conf no diretório do projeto gitosis para ver outros exemplos comentados
[gitosis]
loglevel = DEBUG
[group gitosis-admin]
writable = gitosis-admin
members = jolicloud@vm root@vm

##################################
###   GROUPS   ##########################
##################################
[group development]
writable = Repositorio2 ProjetoXpto MyProject MyJdbc JavaCommons
members = jolicloud@vm

[group rcaetano]
writable = RelationalDao RelationalDaoSample Cryptografy
members = jolicloud@vm
</pre></p>
<p>Após essas alterações, salve o arquivo e não esqueça de comitá-lo e o enviar de volta ao servidor gitosis:</p>
<p><pre class="brush: plain;">
git commit -am 'Adicionados grupos development e rcaetano'
git push
</pre></p>
<p>Com isso feito, o servidor já estará habilitado para aceitar os repositórios Repositorio2, ProjetoXpto, MyProject, MyJdbc, JavaCommons, RelationalDao, RelationalDaoSample e Cryptografy.</p>
<p>Dentro de cada grupo, há duas tags obrigatórias: writable e members.</p>
<p>A tag writable indiga quais repositórios podem ser alterados.</p>
<p>A tag members indica as chaves públicas dos usuários que podem escrever nos repositórios de writable. Note que as chaves públicas do arquivo não possuem a extensão “.pub”. Além disso, essas chaves devem estar no diretório keydir (mais detalhes sobre as chaves, na sessão abaixo).</p>
<h1>Criando e usando um repositório</h1>
<p>Voltando ao diretório de trabalho:</p>
<p><pre class="brush: plain;">
cd ~/downloads
</pre></p>
<p>Vamos criar um novo diretório para o repositório Cryptografy:</p>
<p><pre class="brush: plain;">
mkdir Cryptografy
cd Cryptografy
</pre></p>
<p>E vamos iniciá-lo:</p>
<p><pre class="brush: plain;">
git init
</pre></p>
<p>Agora que já temos nosso repositório, vamos adicionar o gitosis como servidor de origem (destino do git push):</p>
<p><pre class="brush: plain;">
git remote add origin git@localhost:Cryptografy.git
</pre></p>
<p>&#8230;Trabalhe normalmente no projeto&#8230;</p>
<p>Após trabalhar no projeto, adicione os arquivos no git e salve as mudanças.</p>
<p><pre class="brush: plain;">
git add .
git commit -am 'commit inicial'
</pre></p>
<p>Para só então enviá-lo ao servidor:</p>
<p><pre class="brush: plain;">
git push origin master:refs/heads/master
</pre></p>
<p><em><strong>OBS:</strong> quando não há branch (o projeto acabou de ser criado), o primeiro push deve ser especificado como master. Após isso, os outros push’s podem ser feitos sem especificar a origem.</em></p>
<h1>Adicionando novos usuários</h1>
<p>A adição de novos usuários exige uma iteração maior entre o usuário e o administrador, pois antes que o administrador possa adicioná-los no gitosis, os próprios usuários deverão fornecer suas respectivas chaves públicas.</p>
<p>O procedimento para geração de chaves públicas de usuário é idêntico ao utilizado pelo administrador. Porém deve ser efetuado na própria máquina do usuário:</p>
<h4>Linux:</h4>
<p>No Linux, basta executar o seguinte comando:</p>
<p><pre class="brush: plain;">
ssh-keygen -t rsa
</pre></p>
<p>Após gerar suas chaves, os usuários deverão ir em seus respectivos diretórios ~/.ssh e enviar o arquivo de chave pública (id_rsa.pub) ao administrador, renomeando-as no padrão <a href="mailto:USUARIO@MAQUINA.pub">USUARIO@MAQUINA.pub</a> para evitar conflito de nome.</p>
<h4>Windows:</h4>
<p>Se o usuário estiver no Windows, ele deverá instalar o Cygwin (<a href="http://www.cygwin.com/">http://www.cygwin.com/</a>) seguindo o seguinte procedimento:</p>
<ol>
<li>Baixe o cygwin na página <a href="http://www.cygwin.com/">HTTP://www.cygwin.com/</a></li>
<li>Execute-o e clique em avançar:</li>
</ol>
<p>Clique me instalar pela internet e avance:</p>
<p>Configure para o diretório c:\cygwin para todos os usuários e avance:</p>
<p>Coloque os pacotes no diretório em c:\cygwin-pkg e avance:</p>
<p>Configure o Proxy e avance novamente:</p>
<p>Escolha qualquer mirror e avance:</p>
<p>Aguarde o download dos pacotes:</p>
<p>Após o download, abrirá a tela de escolha de pacotes do Shell. Nesta tela, procure e marque para instalação os seguintes pacotes: openssh, git, git-gui, gitk, git-completion, curl, cvsps, cvs e wget.</p>
<p>Os pacotes selecionados serão instalados&#8230;</p>
<p><span style="text-decoration:underline;"> </span></p>
<p>Agora basta marcar os atalhos e concluir a instalação:</p>
<p>Após instalar o cygwin, execute-o e digite:</p>
<p><pre class="brush: plain;">
ssh-keygen -t rsa
</pre></p>
<p>Esse comando criará a pasta .ssh que contém a chave pública e privada. A pasta .ssh fica em ~/.ssh no cygwin e fica em C:\Documents and Settings\usuario\.ssh no Windows.</p>
<p>O usuário deverá enviar o arquivo de chave pública (id_rsa.pub) ao administrador, renomeando-as no padrão <a href="mailto:USUARIO@MAQUINA.pub">USUARIO@MAQUINA.pub</a> para evitar conflito de nome.</p>
<h4>Permitindo usuário no gitosis:</h4>
<p>De posse das chaves públicas, o administrador pode adicioná-los no gitosis simplesmente as copiando para dentro da pasta keydir. Aqui, suponha que as chaves públicas foram copiadas na /tmp:</p>
<p><pre class="brush: plain;">
cd gitosis-admin
cp /tmp/rcaetano@cas165.pub keydir/
git add .
</pre></p>
<p>Com as chaves públicas copiadas, edite o gitosis.conf novamente para adicionar os novos usuários em seus respectivos grupos:</p>
<p><pre class="brush: plain;">
vi gitosis.conf
</pre></p>
<p><pre class="brush: plain;">
[group development]
writable = Repositorio2 ProjetoXpto MyProject MyJdbc JavaCommons
members = jolicloud@vm rcaetano@cas165

[group rcaetano]
writable = RelationalDao RelationalDaoSample Cryptografy
members = jolicloud@vm rcaetano@cas165
</pre></p>
<p>E publique as mudanças no gitosis:</p>
<p><pre class="brush: plain;">
git commit -am 'Adicionado rcaetano em development e rcaetano'
git push
</pre></p>
<p>A partir daqui, os usuários adicionados já podem acessar os projetos em suas respectivas máquinas apenas digitando:</p>
<p><pre class="brush: plain;">
git clone git@vm:MyProject.git
</pre></p>
<h4>Sugestão:</h4>
<p>Uma forma prática p/ envio de chaves públicas (porém pouco segura, utilize apenas para testes) é criar um usuário próprio p/ envio das chaves via ssh. Para isso, criamos o usuário tmp na máquina que contém o gitosis:</p>
<p><pre class="brush: plain;">
sudo adduser \
--no-create-home \
--shell /bin/sh \
--gecos 'usuario para transferencia de chaves publicas' \
tmp
</pre></p>
<p>Os usuários passariam as chaves utilizando o seguinte comando em suas respectivas máquinas:</p>
<p><pre class="brush: plain;">
scp ~/.ssh/id_rsa.pub tmp@local.server:/tmp/USUARIO@MAQUINA.pub
</pre></p>
<p>E finalmente, o administrador do gitosis poderia adicionar as chaves passadas (que se encontram na pasta /tmp) para o gitosis:</p>
<p><pre class="brush: plain;">
sudo mv /tmp/USUARIO@MAQUINA.pub ~/downloads/gitosis-admin/keydir/
</pre></p>
<p>e adicionar os usuários em seus respectivos grupos no gitosis.conf.</p>
<h1>Erros comuns</h1>
<h4>ssh pede senha durante o git clone</h4>
<p>Isso pode ocorrer se você instalou o gitosis utilizando:</p>
<p><pre class="brush: plain;">
sudo apt-get install gitosis
</pre></p>
<p>Não descobri o motivo, mas baixando o gitosis pelo git e instalando com o setup.py esse erro não ocorre.</p>
<h4>gitosis não permite fazer push de um novo repositório mesmo após configurar o gitosis.conf</h4>
<p>Esse erro pode ocorrer por esquecer de dar o push no projeto gitosis-admin ou por não haver permissão de escrita no arquivo post-update, no caso do seguindo problema, o comando abaixo deve ser executado no servidor do gitosis:</p>
<p><pre class="brush: plain;">
sudo chmod 755 /home/git/repositories/gitosis-admin.git/hooks/post-update
</pre></p>
<p><span style="text-decoration:underline;"> </span></p>
<br />Filed under: <a href='http://barenko.wordpress.com/category/programacao/git/'>Git</a> Tagged: <a href='http://barenko.wordpress.com/tag/git-gitosis-linux/'>git gitosis linux</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/barenko.wordpress.com/50/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/barenko.wordpress.com/50/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/barenko.wordpress.com/50/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/barenko.wordpress.com/50/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/barenko.wordpress.com/50/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/barenko.wordpress.com/50/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/barenko.wordpress.com/50/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/barenko.wordpress.com/50/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/barenko.wordpress.com/50/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/barenko.wordpress.com/50/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/barenko.wordpress.com/50/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/barenko.wordpress.com/50/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/barenko.wordpress.com/50/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/barenko.wordpress.com/50/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=barenko.wordpress.com&amp;blog=11332518&amp;post=50&amp;subd=barenko&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://barenko.wordpress.com/2010/02/06/instalacao-do-gitosis-no-linux/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<georss:point>-23.531692 -46.789923</georss:point>
		<geo:lat>-23.531692</geo:lat>
		<geo:long>-46.789923</geo:long>
		<media:content url="http://1.gravatar.com/avatar/7e20a163073b752e4792611d531d669b?s=96&#38;d=http%3A%2F%2Fs0.wp.com%2Fi%2Fmu.gif&#38;r=G" medium="image">
			<media:title type="html">barenko</media:title>
		</media:content>
	</item>
		<item>
		<title>Preparando o Ubuntu para múltiplos ambientes ruby utilizando RVM</title>
		<link>http://barenko.wordpress.com/2010/01/19/preparando-o-ubuntu-para-multiplos-ambientes-ruby-utilizando-rvm/</link>
		<comments>http://barenko.wordpress.com/2010/01/19/preparando-o-ubuntu-para-multiplos-ambientes-ruby-utilizando-rvm/#comments</comments>
		<pubDate>Tue, 19 Jan 2010 22:56:28 +0000</pubDate>
		<dc:creator>barenko</dc:creator>
				<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Netbeans]]></category>
		<category><![CDATA[Ruby on Rails]]></category>
		<category><![CDATA[RVM]]></category>
		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://barenko.wordpress.com/?p=41</guid>
		<description><![CDATA[Recentemente o Fábio Akita publicou um excelente artigo sobre instalação do RVM no Snow Leopard em seu blog. Com base no artigo dele, escrevi esse, que ensina a instalar o RVM para Ubuntu. Nesse artigo, pretendo demonstrar passo-a-passo como instalar um ambiente de programação ruby funcional e produtivo no Ubuntu. Não deixem de compartilhar caso [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=barenko.wordpress.com&amp;blog=11332518&amp;post=41&amp;subd=barenko&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Recentemente o <a href="http://akitaonrails.com/2010/01/01/limpando-meu-ambiente-de-desenvolvimento" target="_blank">Fábio Akita</a> publicou um excelente artigo sobre instalação do RVM no Snow Leopard em seu blog. Com base no artigo dele, escrevi esse, que ensina a instalar o RVM para Ubuntu.  Nesse artigo, pretendo demonstrar passo-a-passo como instalar um ambiente de programação ruby funcional e produtivo no Ubuntu. Não deixem de compartilhar caso vocês tenham alguma sugestão que vocês achem produtiva para ruby no Ubuntu.</p>
<h1>Preparando o Ubuntu</h1>
<p>Primeiramente, vamos atualizar o sistema:</p>
<p><pre class="brush: plain;">
&gt; sudo apt-get update
&gt; sudo apt-get upgrade
</pre></p>
<p>Agora vamos começar a instalar os pacotes que são pré-requisitos e o git.  Os pacotes essenciais são instalados da seguinte forma:</p>
<p><pre class="brush: plain;">
&gt; sudo apt-get install build-essential zlib1g-dev libssl-dev libreadline5-dev
&gt; sudo apt-get install curl sun-java6-jdk
&gt; sudo apt-get install ruby rubygems
</pre></p>
<p>e os do git, assim:</p>
<p><pre class="brush: plain;">
&gt; sudo apt-get install git-core git-doc git-svn git-gui gitk
</pre></p>
<h1>Instalando e configurando o RVM</h1>
<p>Com os pré-requisitos instalados, agora já podemos instalar o rvm e montar os ambientes rubies. Para isso, instale a gem do rvm:</p>
<p><pre class="brush: plain;">
&gt; sudo gem install rvm
&gt; /var/lib/gems/1.8/bin/rvm-install
</pre></p>
<p>Apos terminar a instalação do rvm, é necessário configurar o .bashrc. Para isso, execute o comando:</p>
<p><pre class="brush: plain;">
&gt; sudo gedit ~/.bashrc
</pre></p>
<p>e insira o seguinte trecho no final do arquivo:</p>
<p><pre class="brush: plain;">
if [[ -s $HOME/.rvm/scripts/rvm ]] ; then
 source $HOME/.rvm/scripts/rvm
fi
export PS1='\w `/usr/local/rvm/bin/rvm-prompt i v` `git branch 2&gt; /dev/null | grep -e ^* | sed -E s/^\\\\\*\ \(.+\)$/\(\\\\\1\)\ /`\[&#092;&#048;33[37m\]$\[&#092;&#048;33[00m\] '
</pre></p>
<h1>Instalando os ambientes ruby</h1>
<p>Nesse ponto é necessário reabrir o console (para atualizar o path) e instalar os ambientes (cada ambiente demora alguns minutos para ser instalado):</p>
<p><pre class="brush: plain;">
&gt; rvm install ree
&gt; rvm install 1.9.1
&gt; rvm install jruby
</pre></p>
<p>Caso queira listar todos os ambientes suportados, utilize o comando:</p>
<p><pre class="brush: plain;">
&gt; rvm list known
</pre></p>
<p>Com os ambientes instalados, execute o comando a seguir para instalar o rails em todos os ambientes de uma só vez (esse comando demora, aproveite para um cafezinho <img src='http://s0.wp.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> ):</p>
<p><pre class="brush: plain;">
&gt; rvm gem install rails
</pre></p>
<p>Pronto! a configuração principal do ambiente esta finalizada.  Comandos básicos para manipular os ambientes no RVM  Para listar os ambientes instalados, use:</p>
<p><pre class="brush: plain;">
&gt; rvm list
</pre></p>
<p>Para alterar o ambiente padrão, use:</p>
<p><pre class="brush: plain;">
&gt; rvm [nome do ambiente] --default
</pre></p>
<p>Para trocar o ambiente ativo, use:</p>
<p><pre class="brush: plain;">
&gt; rvm [nome do ambiente]
</pre></p>
<p>Uma descrição detalhada do uso do rvm pode ser encontrada <a href="http://rvm.beginrescueend.com/">aqui</a>.</p>
<h1>Instalando o Netbeans &#8211; Ruby (opcional)</h1>
<p>Agora instalaremos a versão do Netbeans 6.8 para ruby. Para isso, acesse o site <a href="http://netbeans.org/downloads/">http://netbeans.org/downloads/</a> e faça download da distribuição para ruby (aprox. 91mb).  Após o download, entre no diretório onde salvou o pacote do Netbeans via terminal e digite:</p>
<p><pre class="brush: plain;">
&gt; cd Downloads/
&gt; chmod 775 netbeans-6.8-ml-ruby-linux.sh
&gt; ./netbeans-6.8-ml-ruby-linux.sh
</pre></p>
<p>Uma interface gráfica abrirá. Basta seguir os passos e aguardar a conclusão do processo de instalação.  Com o RVM, rubies e Netbeans instalados, o ubuntu ja esta muito bem preparado para iniciarmos nossa exploracao em ruby e ruby on rails. Lembrando que ainda falta baixar suas gems favoritas e comecar a brincar! Uma sugestão de duas gems que ja usei e gostei bastante: memoize (aplica a tecnica de memoization, um tipo de cache para metodos) e hpricot (analisa texto, xml e html utilizando regex).</p>
<br />Publicado em Ruby Tagged: Netbeans, Ruby, Ruby on Rails, RVM, Ubuntu <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/barenko.wordpress.com/41/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/barenko.wordpress.com/41/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/barenko.wordpress.com/41/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/barenko.wordpress.com/41/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/barenko.wordpress.com/41/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/barenko.wordpress.com/41/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/barenko.wordpress.com/41/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/barenko.wordpress.com/41/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/barenko.wordpress.com/41/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/barenko.wordpress.com/41/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/barenko.wordpress.com/41/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/barenko.wordpress.com/41/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/barenko.wordpress.com/41/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/barenko.wordpress.com/41/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=barenko.wordpress.com&amp;blog=11332518&amp;post=41&amp;subd=barenko&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://barenko.wordpress.com/2010/01/19/preparando-o-ubuntu-para-multiplos-ambientes-ruby-utilizando-rvm/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		<georss:point>-23.531692 -46.789923</georss:point>
		<geo:lat>-23.531692</geo:lat>
		<geo:long>-46.789923</geo:long>
		<media:content url="http://1.gravatar.com/avatar/7e20a163073b752e4792611d531d669b?s=96&#38;d=http%3A%2F%2Fs0.wp.com%2Fi%2Fmu.gif&#38;r=G" medium="image">
			<media:title type="html">barenko</media:title>
		</media:content>
	</item>
		<item>
		<title>Postando Código fonte no WordPress.com</title>
		<link>http://barenko.wordpress.com/2010/01/14/postando-codigo-fonte-no-wordpress-com/</link>
		<comments>http://barenko.wordpress.com/2010/01/14/postando-codigo-fonte-no-wordpress-com/#comments</comments>
		<pubDate>Thu, 14 Jan 2010 11:54:32 +0000</pubDate>
		<dc:creator>barenko</dc:creator>
				<category><![CDATA[Dicas]]></category>
		<category><![CDATA[Syntax Highlighting]]></category>
		<category><![CDATA[Wordpress]]></category>

		<guid isPermaLink="false">http://barenko.wordpress.com/?p=23</guid>
		<description><![CDATA[Essa matéria foi escrita pelo suporte da wordpress.com e eu tomei a liberdade de compilar a parte que me interessa. Caso esteja interessado na matéria completa, veja direto na fonte: Code » Posting Source Code. Alex Gorbatchev criou a SyntaxHighlighter, muito interessante para postar códigos fonte formatado. A WordPress.com não permite a adição de scripts [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=barenko.wordpress.com&amp;blog=11332518&amp;post=23&amp;subd=barenko&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Essa matéria foi escrita pelo suporte da wordpress.com e eu tomei a liberdade de compilar a parte que me interessa.</p>
<p>Caso esteja interessado na matéria completa, veja direto na fonte: <a href="http://en.support.wordpress.com/code/posting-source-code/">Code » Posting Source Code</a>.</p>
<p>Alex Gorbatchev criou a <a href="http://alexgorbatchev.com/wiki/SyntaxHighlighter">SyntaxHighlighter</a>,  muito interessante para postar códigos fonte formatado.</p>
<p>A <a href="http://www.wordpress.com">WordPress.com</a> não permite a adição de scripts externos, mas incorporou a funcionalidade do SyntaxHighlighter com a tag <code> sourcecode </code>.</p>
<p>Por exemplo, o código:<br />
<code><br />
[sourc<span>ecode language="java"]</span><br />
public Class HelloWorld{<br />
&nbsp;&nbsp;&nbsp;public static void main(String[] args){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println("HelloWord!!");<br />
&nbsp;&nbsp;&nbsp;}<br />
}<br />
[/sourc<span>ecode]</span><br />
</code><br />
Irá gerar a seguinte saída:<br />
<pre class="brush: java;">
public Class HelloWorld{
   public static void main(String[] args){
      System.out.println(&quot;HelloWord!!&quot;); System.out.println(&quot;HelloWord!!&quot;); System.out.println(&quot;HelloWord!!&quot;); System.out.println(&quot;HelloWord!!&quot;);
   }
}
</pre></p>
<p>Atualmente as seguintes linguagens são suportadas na tag <code>language</code>: actionscript3, bashcoldfusion, cpp, csharp, css, delphi, erlang, fsharp, diff, groovy, javascript, java, javafx, matlab, objc, perl, php, text, powershell, python, ruby, scala, sql, vb e xml.</p>
<p>Além disso, <code>sourcecode</code> possui os seguintes parâmetros opcionais:</p>
<ul>
<li><strong>autolinks</strong> (<strong>true</strong>/false) — Torna clicáveis todas as URLs do código fonte.</li>
<li><strong>collapse </strong>(true/<strong>false</strong>) — Se verdadeiro, a caixa do código estará reduzida quando a página carregar, exigindo que o visitante clique para expandí-la. Útil para postar códigos fonte longos</li>
<li><strong>firstline </strong>(inteiro &#8211; <strong>1</strong>) — Usado para mudar o número da linha inicial do código</li>
<li><strong>gutter </strong>(<strong>true</strong>/false) — Se falso, a numeração de linhas do lado esquerdo será omitida</li>
<li><strong>highlight </strong>(lista de números separados por vírgula) — enfatiza as linhas de código especificadas pela lista de números</li>
<li><strong>htmlscript </strong>(true/<strong>false</strong>) — Se verdadeiro, qualquer HTML/XML no código será enfatizado. É útil quando há outro tipo de código fonte misturado com HTML, tal como PHP dentro de HTML. Não funciona com algumas linguagens</li>
<li><strong>light </strong>(true/<strong>false</strong>) — Se verdadeiro, o <em>gutter </em>e o <em>toolbar </em>serão ocultados. Útil para exibir somente uma ou duas linhas de código</li>
<li><strong>padlinenumbers </strong>(<strong>true</strong>/false/integer) — Permite controlar o padding do número da linha. Verdadeiro é padding automático, falso não faz padding e o número irá forçar uma tamanho fixo de padding</li>
<li><strong>toolbar </strong>(<strong>true</strong>/false) — Se falso, a barra de ferramentas contendo botões utilitários que aparece quando o mouse passa pelo código não aparecerá</li>
<li><strong>wraplines </strong>(<strong>true</strong>/false) — Se verdadeiro, a quebra de linha será desativada. Ocasionando no aparecimento de uma barra horizontal na caixa do código quando houver linhas muito longas.</li>
</ul>
<br />Publicado em Dicas Tagged: Syntax Highlighting, Wordpress <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/barenko.wordpress.com/23/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/barenko.wordpress.com/23/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/barenko.wordpress.com/23/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/barenko.wordpress.com/23/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/barenko.wordpress.com/23/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/barenko.wordpress.com/23/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/barenko.wordpress.com/23/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/barenko.wordpress.com/23/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/barenko.wordpress.com/23/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/barenko.wordpress.com/23/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/barenko.wordpress.com/23/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/barenko.wordpress.com/23/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/barenko.wordpress.com/23/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/barenko.wordpress.com/23/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=barenko.wordpress.com&amp;blog=11332518&amp;post=23&amp;subd=barenko&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://barenko.wordpress.com/2010/01/14/postando-codigo-fonte-no-wordpress-com/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		<georss:point>-23.531692 -46.789923</georss:point>
		<geo:lat>-23.531692</geo:lat>
		<geo:long>-46.789923</geo:long>
		<media:content url="http://1.gravatar.com/avatar/7e20a163073b752e4792611d531d669b?s=96&#38;d=http%3A%2F%2Fs0.wp.com%2Fi%2Fmu.gif&#38;r=G" medium="image">
			<media:title type="html">barenko</media:title>
		</media:content>
	</item>
		<item>
		<title>Tudo o que você pensa, pense ao contrário</title>
		<link>http://barenko.wordpress.com/2010/01/13/tudo-o-que-voce-pensa-pense-ao-contrario/</link>
		<comments>http://barenko.wordpress.com/2010/01/13/tudo-o-que-voce-pensa-pense-ao-contrario/#comments</comments>
		<pubDate>Thu, 14 Jan 2010 01:55:17 +0000</pubDate>
		<dc:creator>barenko</dc:creator>
				<category><![CDATA[Conhecimentos Gerais]]></category>
		<category><![CDATA[dica]]></category>
		<category><![CDATA[Livro]]></category>

		<guid isPermaLink="false">http://barenko.wordpress.com/?p=20</guid>
		<description><![CDATA[Com a mudança de emprego, mudei também alguns de meus hábitos. Um deles foi começar a usar transporte público (trem), uma decisão economicamente sensata (gastos de apenas R$ 5,10/dia e sem preocupações com trânsito ou congestionamentos). Porém demoro o dobro do tempo para chegar ao meu destino (mas isso é assunto para algum post off-topic [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=barenko.wordpress.com&amp;blog=11332518&amp;post=20&amp;subd=barenko&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Com a mudança de emprego, mudei também alguns de meus hábitos. Um deles foi começar a usar transporte público (trem), uma decisão economicamente sensata (gastos de apenas R$ 5,10/dia e sem preocupações com trânsito ou congestionamentos). Porém demoro o dobro do tempo para chegar ao meu destino (mas isso é assunto para algum post off-topic futuro).</p>
<p>Como tenho bastante tempo disponível entre viagens para casa, adquiri o hábito de ler no trem-metrô e recentemente terminei de ler o ótimo livro <a href="http://www.intrinseca.com.br/catalogo_ficha.php?livrosID=32"> Tudo o que você pensa, pense ao contrário</a> da editora <a href="http://www.intrinseca.com.br">Intrínseca</a>.</p>
<p>O livro é fantástico, uma verdadeira obra que incentiva a criatividade e a importância de ter coragem para inovar e assumir riscos. Com leitura agradável, formato de bolso e imagens belíssimas, o livro cativa e te impulsiona a &#8220;pensar ao contrário&#8221;.</p>
<p>Eu não conhecia as obras de <a href="http://www.paularden.com/">Paul Arden</a> mas confesso que depois de ler essa, estou interessado em outros livros do autor.</p>
<br />Publicado em Conhecimentos Gerais Tagged: dica, Livro <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/barenko.wordpress.com/20/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/barenko.wordpress.com/20/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/barenko.wordpress.com/20/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/barenko.wordpress.com/20/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/barenko.wordpress.com/20/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/barenko.wordpress.com/20/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/barenko.wordpress.com/20/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/barenko.wordpress.com/20/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/barenko.wordpress.com/20/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/barenko.wordpress.com/20/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/barenko.wordpress.com/20/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/barenko.wordpress.com/20/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/barenko.wordpress.com/20/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/barenko.wordpress.com/20/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=barenko.wordpress.com&amp;blog=11332518&amp;post=20&amp;subd=barenko&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://barenko.wordpress.com/2010/01/13/tudo-o-que-voce-pensa-pense-ao-contrario/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<georss:point>-23.531692 -46.789923</georss:point>
		<geo:lat>-23.531692</geo:lat>
		<geo:long>-46.789923</geo:long>
		<media:content url="http://1.gravatar.com/avatar/7e20a163073b752e4792611d531d669b?s=96&#38;d=http%3A%2F%2Fs0.wp.com%2Fi%2Fmu.gif&#38;r=G" medium="image">
			<media:title type="html">barenko</media:title>
		</media:content>
	</item>
		<item>
		<title>Os neurônios que moldaram a civilização</title>
		<link>http://barenko.wordpress.com/2010/01/12/os-neuronios-que-moldaram-a-civilizacao/</link>
		<comments>http://barenko.wordpress.com/2010/01/12/os-neuronios-que-moldaram-a-civilizacao/#comments</comments>
		<pubDate>Wed, 13 Jan 2010 02:13:22 +0000</pubDate>
		<dc:creator>barenko</dc:creator>
				<category><![CDATA[Conhecimentos Gerais]]></category>

		<guid isPermaLink="false">http://barenko.wordpress.com/?p=9</guid>
		<description><![CDATA[Para quem não sabe, falando de forma simplista, TED é um evento onde se reúnem diversos pensadores das mais diferentes áreas para expor seus pontos de vista sobre um tema em comum. Quando vi algumas das apresentações do evento, fiquei impressionado com a qualidade e o conteúdo (com certeza eu estarei no TEDxSP de 2010!) [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=barenko.wordpress.com&amp;blog=11332518&amp;post=9&amp;subd=barenko&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Para quem não sabe, falando de forma simplista,  TED é um evento onde se reúnem diversos pensadores das mais diferentes áreas para expor seus pontos de vista sobre um tema em comum. Quando vi algumas das apresentações do evento, fiquei impressionado com a qualidade e o conteúdo (com certeza eu estarei no <a href="http://tedxsaopaulo.com.br">TEDxSP</a> de 2010!) e desde então eu busco videos relacionados para assistir nas horas vagas.</p>
<p>Sempre me interessei por ciência em geral, sendo a cognitiva uma das que mais me despertam interesse e ao ver a apresentação do Ramachandran, não pude deixar de escrever esse post (inaugurando o blog! hip hip Uhaaa!).</p>
<p>Na apresentação ele fala de uma descoberta impressionante: Estamos mais ligados mentalmente você pode imaginar! Confira <a href="http://www.ted.com/talks/lang/por_br/vs_ramachandran_the_neurons_that_shaped_civilization.html"><strong>AQUI</strong></a>!</p>
<br />Publicado em Conhecimentos Gerais  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/barenko.wordpress.com/9/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/barenko.wordpress.com/9/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/barenko.wordpress.com/9/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/barenko.wordpress.com/9/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/barenko.wordpress.com/9/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/barenko.wordpress.com/9/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/barenko.wordpress.com/9/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/barenko.wordpress.com/9/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/barenko.wordpress.com/9/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/barenko.wordpress.com/9/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/barenko.wordpress.com/9/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/barenko.wordpress.com/9/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/barenko.wordpress.com/9/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/barenko.wordpress.com/9/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=barenko.wordpress.com&amp;blog=11332518&amp;post=9&amp;subd=barenko&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://barenko.wordpress.com/2010/01/12/os-neuronios-que-moldaram-a-civilizacao/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<georss:point>-23.531692 -46.789923</georss:point>
		<geo:lat>-23.531692</geo:lat>
		<geo:long>-46.789923</geo:long>
		<media:content url="http://1.gravatar.com/avatar/7e20a163073b752e4792611d531d669b?s=96&#38;d=http%3A%2F%2Fs0.wp.com%2Fi%2Fmu.gif&#38;r=G" medium="image">
			<media:title type="html">barenko</media:title>
		</media:content>
	</item>
	</channel>
</rss>
