<?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>Vinicius Ebersol &#187; Linux</title>
	<atom:link href="http://vebersol.net/category/linux/feed/" rel="self" type="application/rss+xml" />
	<link>http://vebersol.net</link>
	<description>Blog on Rails</description>
	<lastBuildDate>Wed, 28 Dec 2011 15:22:47 +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>Dica rápida: tail no windows</title>
		<link>http://vebersol.net/2009/01/15/dica-rapida-tail-no-windows/</link>
		<comments>http://vebersol.net/2009/01/15/dica-rapida-tail-no-windows/#comments</comments>
		<pubDate>Thu, 15 Jan 2009 11:33:00 +0000</pubDate>
		<dc:creator>Vinicius Ebersol</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Eu adoro plataformas UNIX principalmente pelo fato de eu ter à minha disposição um comandinho milagroso: $ tail -f log/development.log Este comando permite que no terminal eu acompanhe o log de desevolvimento da minha aplicação (log/development.log) mostrando-o sempre atualizado. Hoje &#8230; <a href="http://vebersol.net/2009/01/15/dica-rapida-tail-no-windows/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Eu adoro plataformas <span class="caps">UNIX</span> principalmente pelo fato de eu ter à minha disposição um comandinho milagroso:</p>
<pre>$ tail -f log/development.log</pre>
<p>Este comando permite que no terminal eu acompanhe o log de desevolvimento da minha aplicação (log/development.log) mostrando-o sempre atualizado.</p>
<p>Hoje lendo a lista de e-mails rails-br eu encontrei um assunto sobre isso e alguns usuários deram dicas realmente relevantes, como quase sempre. Dessas dicas, dois projetos que simulam o tail no windows foram apresentados: <a href="http://www.geocities.com/SiliconValley/Vista/8632/ts_wintail.html"><strong>WinTail</strong></a> e <a href="http://tailforwin32.sourceforge.net/"><strong>Tail for Win32</strong></a>.</p>
<p>Aqui onde eu trabalho eu uso normalmente windows, pois trabalho muito com <em>client side</em> e interface. Então essa ferramenta com certeza será muito útil.</p>
<p>Porém, creio que em casa eu vou seguir usando o <strong>tail</strong> mesmo.</p>
]]></content:encoded>
			<wfw:commentRss>http://vebersol.net/2009/01/15/dica-rapida-tail-no-windows/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Flash 10 para Linux e outros SO</title>
		<link>http://vebersol.net/2008/08/04/flash-10-para-linux-e-outros-so/</link>
		<comments>http://vebersol.net/2008/08/04/flash-10-para-linux-e-outros-so/#comments</comments>
		<pubDate>Mon, 04 Aug 2008 12:52:00 +0000</pubDate>
		<dc:creator>Vinicius Ebersol</dc:creator>
				<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Eu já estava enjoado do problema de transparência do flash 9 para o Linux. Saí em busca de uma solução genérica e funcional. Acabei me surpreendendo quando vi que já liberaram versões beta do flash 10. Segundo alguns colegas aqui &#8230; <a href="http://vebersol.net/2008/08/04/flash-10-para-linux-e-outros-so/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Eu já estava enjoado do problema de transparência do flash 9 para o Linux. Saí em busca de uma solução genérica e funcional. Acabei me surpreendendo quando vi que já liberaram versões beta do flash 10.</p>
<p>Segundo alguns colegas aqui do escritório da <a href="http://conrad-caine.com">Conrad Caine</a>, o flash player 10 virá com 3D nativo entre outras features. Acabei de instalar e fiquei satisfeito com o resultado. Problemas de transparência e problemas de disposição (As animações em flash ignoravam o z-index, ficavam sempre à frente de tudo) foram resolvidos.</p>
<p><a href="http://labs.adobe.com/">Clique aqui para baixar a versão do flash player 10 para Linux, Mac, Windows e etc…</a></p>
]]></content:encoded>
			<wfw:commentRss>http://vebersol.net/2008/08/04/flash-10-para-linux-e-outros-so/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Problemas com caracteres especiais no emacs com Ubuntu Hardy Heron</title>
		<link>http://vebersol.net/2008/05/07/problemas-com-caracteres-especiais-no-emacs-com-ubuntu-hardy-heron/</link>
		<comments>http://vebersol.net/2008/05/07/problemas-com-caracteres-especiais-no-emacs-com-ubuntu-hardy-heron/#comments</comments>
		<pubDate>Thu, 08 May 2008 02:51:00 +0000</pubDate>
		<dc:creator>Vinicius Ebersol</dc:creator>
				<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Desde ontem eu passei o dia procurando solução pro problema que surgiu após uma atualização do Ubuntu. Simplesmente parou de funcionar qualquer tipo de acentuação e caracter especial. Imaginem eu programando sem poder utilizar aspas duplas e aspas simples? Ainda &#8230; <a href="http://vebersol.net/2008/05/07/problemas-com-caracteres-especiais-no-emacs-com-ubuntu-hardy-heron/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[</p>
<p>Desde ontem eu passei o dia procurando solução pro problema que surgiu após uma atualização do Ubuntu. Simplesmente parou de funcionar qualquer tipo de <strong>acentuação</strong> e <strong>caracter especial</strong>. Imaginem eu programando sem poder utilizar aspas duplas e aspas simples? Ainda bem que eu estava programando em Rails.</p>
<p>A solução é muito simples, embora tenha consumido horas do meu dia. Porém, aqui vai ficar documentado para que outras pessoas não passem o que eu passei.</p>
<p>O problema consiste em tentar utilizar por exemplo, acento circunflexo, aparece:</p>
<p>&lt;dead-acute&gt; is undefined</p>
<p>Quanto tentava utilizar aspas duplas, retornava o seguinte:</p>
<p>&lt;S-dead-diaeresis&gt; is undefined</p>
<p>A solução, que eu encontrei <a href="https://bugs.launchpad.net/ubuntu/+source/emacs-snapshot/+bug/199915">aqui</a>, é simples. Remova ou renomeie os arquivos da pasta <code>~/.xinput.d/</code> e o problema estará solucionado após você reiniciar o seu computador. Aqui não teve nenhuma secuela notada a partir da remoção deste arquivo. O layout de teclado (Estilo americano com teclas acentuáveis) funciona perfeitamente.</p>
]]></content:encoded>
			<wfw:commentRss>http://vebersol.net/2008/05/07/problemas-com-caracteres-especiais-no-emacs-com-ubuntu-hardy-heron/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Upgrade do Ubuntu Hardy Heron, uma dor de cabeça sem tamanho!</title>
		<link>http://vebersol.net/2008/04/30/upgrade-do-ubuntu-hardy-heron-uma-dor-de-cabeca-sem-tamanho/</link>
		<comments>http://vebersol.net/2008/04/30/upgrade-do-ubuntu-hardy-heron-uma-dor-de-cabeca-sem-tamanho/#comments</comments>
		<pubDate>Wed, 30 Apr 2008 15:58:00 +0000</pubDate>
		<dc:creator>Vinicius Ebersol</dc:creator>
				<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Estou revoltado com o uppgrade do Ubuntu. Eu tenho em meu notebook de trabalho o Ubuntu Gutsy Gibbon (7.10) instalado e ontem me veio a oferta de instalar a atualização quentinha do Ubuntu Hardy Heron (8.04 LTS). Resolvi baixar os &#8230; <a href="http://vebersol.net/2008/04/30/upgrade-do-ubuntu-hardy-heron-uma-dor-de-cabeca-sem-tamanho/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><img class="aligncenter size-full wp-image-89" title="hardy_heron" src="http://vebersol.net/wp-content/uploads/2008/04/hardy_heron.jpg" alt="hardy_heron" width="506" height="313" /></p>
<p>Estou revoltado com o uppgrade do <a href="http://www.ubuntu-br.org">Ubuntu</a>. Eu tenho em meu notebook de trabalho o Ubuntu Gutsy Gibbon  (7.10) instalado e ontem me veio a oferta de instalar a atualização quentinha do <a href="http://www.ubuntu.com/products/whatisubuntu/804features/">Ubuntu Hardy Heron (8.04 LTS)</a>. Resolvi baixar os mais de 900 MB pois acreditei que valia a pena, visto que eu já havia instalado o 8.04 beta no meu PC e não encontrei problemas. Muito pelo contrário, desta vez não precisei <a href="http://thiago-augusto.eti.br/novo-driver-ati-com-suporte-ao-aiglx/">instalar o Driver proprietário da ATI no braço e compilar o Kernel</a> para a aceleração 3D funcionar corretamente!</p>
<p>Após a finalização do download pus para prosseguir o upgrade e segui trabalhando, quando de repente me surge uma janela na frente que simplesmente travou e não voltou mais ao normal, ficou eternamente cinza&#8230; Resolvi reiniciar para ver se voltava ao normal e para a minha surpresa ele não entrava mais no X. Logava e tal, mas a tela ficava em branco.</p>
<p>Após várias pesquisas nos fórums do Ubuntu e uma tentativa frustrada de ajuda no canal de IRC #ubuntu-br, desisti. Hoje enquanto fazia backups dos meus dados para formatar eu li no forum do ubuntu uma dica que parecia que resolveria meu problema. Subi como root e tentei:</p>
<p>aptitude update &amp;&amp; aptitude dist-upgrade</p>
<p>Até adiantou alguma coisa, comecei a ter oficialmente a distro 8.04 em meu notebook, porém, após o login permanecia a situação em que nada aparecia.</p>
<p>Estou agora a 18% de finalizar a instalação &#8220;do zero&#8221; do Ubuntu Hardy Heron 8.04, e desta vez com a home em outra partição&#8230; vivendo e aprendendo!</p>
<p>Mesmo assim, o problema que passei é pouco perto do que já passei enquanto usuário Windows. São dois dias perdidos, mas que valerão a pena para entender uma coisa: &#8220;Sempre fazer backup de tudo antes de fazer atualizações e upgrades críticos&#8221;.</p>
<p>Ao que me parece, este problema não ocorreu somente comigo&#8230; o <a href="http://eustaquiorangel.com/">Eustáquio Rangel</a> passou por um problema semelhante, como vocês podem acompanhar por <a href="http://twitter.com/taq">aqui</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://vebersol.net/2008/04/30/upgrade-do-ubuntu-hardy-heron-uma-dor-de-cabeca-sem-tamanho/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Instale o Firebug no Firefox 3</title>
		<link>http://vebersol.net/2008/04/21/instale-o-firebug-no-firefox-3/</link>
		<comments>http://vebersol.net/2008/04/21/instale-o-firebug-no-firefox-3/#comments</comments>
		<pubDate>Mon, 21 Apr 2008 22:40:00 +0000</pubDate>
		<dc:creator>Vinicius Ebersol</dc:creator>
				<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Se você é como eu, não desenvolve sem utilizar o Firebug. Pode sentir-se limitado ao migrar para a versão beta do Firefox 3. Há dias venho postergando minha mudança para o firefox 3 em meu Ubuntu Gutsy Gibbon (7.10). Porém, &#8230; <a href="http://vebersol.net/2008/04/21/instale-o-firebug-no-firefox-3/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><img class="aligncenter size-full wp-image-91" title="firebug" src="http://vebersol.net/wp-content/uploads/2008/04/firebug.png" alt="firebug" width="442" height="154" /></p>
<p>Se você é como eu, não desenvolve sem utilizar o <a href="http://getfirebug.com/">Firebug</a>. Pode sentir-se limitado ao migrar para a versão beta do <a href="http://getfirefox.com">Firefox</a> 3. Há dias venho postergando minha mudança para o firefox 3 em meu <a href="http://ubuntu-br.org">Ubuntu</a> Gutsy Gibbon (7.10). Porém, intalei o Ubuntu Hardy Heron (8.04) no meu pc de casa. Ele já vem com o Firefox 3 beta, porém, agora ia trabalhar em um projeto nele e me deparei com a seguinte situação: fui direto à página de add-ons da Mozilla e busquei pelo firebug e tentei instalar, não deu, pois a versão atual não é suportada pelo Firefox 3 Beta.</p>
<h3>A solução</h3>
<p>É simples, vá ao site do <a href="http://getfirebug.com/releases/">Firebug</a> e baixe a versão 1.1 beta. A versão 1.05 é a versão do site de Add-ons da Mozilla, portanto, ela não funciona na versão 3 do Firefox. Se você migrou da versão 2 para a três provavelmente pode resolver os seus problemas agora!</p>
]]></content:encoded>
			<wfw:commentRss>http://vebersol.net/2008/04/21/instale-o-firebug-no-firefox-3/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Aprendendo muito com um pequeno problema</title>
		<link>http://vebersol.net/2008/03/06/aprendendo-muito-com-um-pequeno-problema/</link>
		<comments>http://vebersol.net/2008/03/06/aprendendo-muito-com-um-pequeno-problema/#comments</comments>
		<pubDate>Thu, 06 Mar 2008 15:44:20 +0000</pubDate>
		<dc:creator>Vinicius Ebersol</dc:creator>
				<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Vida de quem trabalha com tecnologia é assim, hoje você aprende uma coisa que amanhã não será mais necessário, e assim consecutivamente&#8230; Encontro-me em um estágio de aprendizado constante, ainda mais quando estamos promovendo na equipe uma alteração drástica na &#8230; <a href="http://vebersol.net/2008/03/06/aprendendo-muito-com-um-pequeno-problema/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Vida de quem trabalha com tecnologia é assim, hoje você aprende uma coisa que amanhã não será mais necessário, e assim consecutivamente&#8230; Encontro-me em um estágio de aprendizado constante, ainda mais quando estamos promovendo na equipe uma alteração drástica na infra-estrutura.</p>
<p>Em reunião decidimos no início do ano que iríamos utilizar trac&#8217;s em ruby para facilitar a customização e a integração com nosso futuro site, clientes, etc&#8230; É um passo muito grande para uma equipe que arrecém está se estabelecendo, porém, creio que nos tornará mais produtivos e com certeza diferenciais no mercado.</p>
<p>Outro fator importante, é a mudança no controlador de versão. Muitas vezes ficamos empatados em tickets por depender de conexão (pode acontecer de sua internet estar fora do ar) ou ainda por problemas como <a href="http://www.awtres.com/controladores-de-versao-e-a-dependencia-externa/">este</a>. Por isso decidimos passar a usar o Git.</p>
<p>Ainda não etávamos utilizando Git, por estarmos em projetos antigos, mas esta semana começamos um projeto e decidimos (apenas eu e o <a href="http://www.workingwithrails.com/person/6749-everton-j-carpes">Everton</a>) usar git como repositório local juntamente com o git-svn para commitar ao servidor (o <a href="http://retrospectiva.org">Retrospectiva</a> ainda não tem suporte a Git, mas AINDA&#8230;). Eu já sei os comandos básicos do Git e do Git-SVN, mas confesso que o que me incomodou foi o Vim como editor padrão. Sou usuário linux, mas não me sinto nem um pouco à vontade para usar este editor, eu uso sempre o Nano para tarefas no console e o Emacs para programar. Então hoje a tarefa do dia foi aprender a modificar o editor que eu irei utilizar para fazer os comentários do commit. No subversion é muito fácil alterar, mas no Git eu encontrei muitas informações confusas acerca disto, somente algumas horas depois achei a solução fuçando no git da minha máquina mesmo. Nisso, o dia já estava acabando e eu notei que mesmo perdendo um dia, essa coisa boba de procurar <strong>como alterar o editor padrão do Git</strong> me mostrou outros recursos que eu posso utilizar no Git e Git-SVN.</p>
<p>Para alterar o editor padrão do Git no Ubuntu, é muito simples:</p>
<p>1. Abra o arquivo com o seu editor favorito:</p>
<blockquote><p>sudo emacs /usr/bin/git-commit</p></blockquote>
<p>2. Vá até a linha 582 e altere o editor, no meu caso eu alterei do vi para o emacs, mas você pode alterar para o nano para editar seus commits no terminal:</p>
<pre>
${<span class="variable-name">VISUAL</span>:-${<span class="variable-name">EDITOR</span>:-emacs}} <span class="string">"$GIT_DIR/COMMIT_EDITMSG"</span></pre>
]]></content:encoded>
			<wfw:commentRss>http://vebersol.net/2008/03/06/aprendendo-muito-com-um-pequeno-problema/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Controladores de versão e a dependência externa</title>
		<link>http://vebersol.net/2008/02/11/controladores-de-versao-e-a-dependencia-externa/</link>
		<comments>http://vebersol.net/2008/02/11/controladores-de-versao-e-a-dependencia-externa/#comments</comments>
		<pubDate>Mon, 11 Feb 2008 17:55:08 +0000</pubDate>
		<dc:creator>Vinicius Ebersol</dc:creator>
				<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Hoje é um dia atípico, mas ele já se repetiu algumas vezes. Atualmente, tenho trabalhado com uma equipe de desenvolvedores e os projetos são mantidos em track, via Subversion. Há uns dois meses o Everton J. Carpes, propôs que a &#8230; <a href="http://vebersol.net/2008/02/11/controladores-de-versao-e-a-dependencia-externa/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[</p>
<p>Hoje é um dia atípico, mas ele já se repetiu algumas vezes. Atualmente, tenho trabalhado com uma equipe de desenvolvedores e os projetos são mantidos em track, via Subversion. Há uns dois meses o <a href="http://www.workingwithrails.com/person/6749-everton-j-carpes">Everton J. Carpes</a>, propôs que a equipe mudasse sua estrutura, entre essas mudanças poderíamos começar a usar o <a href="http://git.or.cz/">Git</a>, mas como ainda estamos em projetos que vinham do ano passado, não iniciamos as modificações, pelo menos na parte de do controlador de versão. As outras mudanças como a configuração do <a href="http://pt.wikipedia.org/wiki/LDAP">LDAP</a> e a utilização do <a href="http://www.capify.org/">capistrano</a> para gerenciar os sistemas dos clientes já está em andamento. Em termos de produtividade, isto é muito bom para a equipe e para os clientes.</p>
<p>Enquanto as mudanças não ocorrem, os problemas persistem. Hoje, ao iniciar o dia de trabalho, fiz o update básico para procurar atualizações dos plugins que a gente utiliza via SVN&#8230; <em>svn update, atualizando</em>&#8230; enquanto atualizava o plugin validates_as_cpf do rails, ocorreu um erro de conexão, até aí tudo bem, é comum cair a conexão, mas para minha surpresa, todos os plugins que utilizamos referentes ao servidor <a href="http://ossystems.com.br">ossystems.com.br</a> estavam dando erro 503:</p>
<blockquote><p>svn: Requisição PROPFIND falhou em &#8216;/svn/plugonrails/plugins/validates_as_email&#8217;<br />
svn: PROPFIND de &#8216;/svn/plugonrails/plugins/validates_as_email&#8217;: 503 Service Not Available (https://projetos.ossystems.com.br)</p></blockquote>
<p>E durante toda a tarde fiquei preso a uma tarefa que dependia do validates_as_cpf por não poder voltar à versão anterior. Esse é o fardo que se carrega ao usar um controlador de versão que não armazena um repositório local dos arquivos que você necessita. Se eu estivesse utilizando o Git, isso com certeza não estaria ocorrendo. Por isso, não usarei mais o svn no desenvolvimento dos projetos, pois algumas vezes o meu dia de trabalho pode ir por água abaixo, como foi hoje.</p>
<p>Esse, portanto, é um dos problemas comuns que se encontra quando utilizamos plugins direto do repositório ou qualquer tipo de webservice. Dependemos da disposição do servidor de terceiros, o que nem sempre é possível, pois há momentos em que um servidor pode estar em manutenção.</p>
<p>O Git resolve este problema, pois ele cria um repositório dentro de sua máquina, e enquanto você trabalha, tem como fazer commits dentro da máquina, e só ao final voce faz um commit utilizando o git-svn, que envia todos os commits da sua máquina para o servidor. Isto reduz muito a perda de produtividade devido à dependência de conectividade com a internet e disposição dos servidores.</p>
<p>Além do Everton, outros desenvolvedores Rails entraram na onda de utilizar o Git por ser o melhor a fazer, como o caso do <a href="http://www.workingwithrails.com/person/5895-fabio-akita">Fábio Akita</a> que tem feito <a href="http://www.akitaonrails.com/2008/2/4/ruby-on-git">propaganda massiva</a> para que utilizemos o Git, ou até mesmo o Git-svn, que é uma forma interessante de utilizar o Git integrado ao subversion.</p>
]]></content:encoded>
			<wfw:commentRss>http://vebersol.net/2008/02/11/controladores-de-versao-e-a-dependencia-externa/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Configurando o ambiente de desenvolvimento ideal</title>
		<link>http://vebersol.net/2008/02/08/configurando-o-ambiente-de-desenvolvimento-ideal/</link>
		<comments>http://vebersol.net/2008/02/08/configurando-o-ambiente-de-desenvolvimento-ideal/#comments</comments>
		<pubDate>Fri, 08 Feb 2008 05:27:00 +0000</pubDate>
		<dc:creator>Vinicius Ebersol</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Ruby on Rails]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Antes de mais nada, o ambiente de desenvolvimento ideal é no momento, porque daqui a um mês posso mudar de opinião, mas o importante é que com as atuais modificações significaram muito para a minha produção, comecei a produzir com &#8230; <a href="http://vebersol.net/2008/02/08/configurando-o-ambiente-de-desenvolvimento-ideal/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Antes de mais nada, o ambiente de desenvolvimento ideal é no momento, porque daqui a um mês posso mudar de opinião, mas o importante é que com as atuais modificações significaram muito para a minha produção, comecei a produzir com mais prazer e com mais agilidade, devido as novas modificações que eu fiz.</p>
<p>Atualmente tenho falado bastante sobre a minha mudança radical para o emacs. Mas o emacs puro não tem nada que modifique a sua produtividade em <a href="http://www.ruby-lang.org/">ruby</a> e <a href="http://www.rubyonrails.com.br">rails</a> como um <strong>TextMate</strong> ou um <strong>Aptana RadRails</strong>, pois ele não tem os recursos específicos da linguagem e do framework, como console, MVC e <em>autocomplete</em> de código e marcação, ele só tem a coloração do código e de seus recursos próprios.</p>
<p>Foi então que neste fim de semana passado eu resolvi procurar configurações ideais para o emacs direcionado especificamente ao ruby e rails, bem como código xhtml + erb e css.</p>
<p>Na busca, encontrei <a href="http://platypope.org/yada/emacs-demo/">este screencast</a> fantástico em que o cara mostra o emacs funcionando como os famosos editores de ruby que já comentei anteriormente. Neste screencast dizia por cima <a href="http://platypope.org/blog/2006/9/8/i-need-a-cool-european-accent">os recursos que ele usou no screencast</a>, foi aí que eu fui buscar de novo, e caí na <a href="http://wiki.rubyonrails.org/rails/">wiki do rails</a>, em um texto que mostra <a href="http://wiki.rubyonrails.org/rails/pages/HowToUseEmacsWithRails">como deixar o emacs funcionando pra desenvolver em rails</a> com alguns recursos do textmate, como o <em>autocomplete</em> de código, marcação erb e xhtml. Além desses recursos, existe uma integração do emacs com toda a estrutura do rails, como a possibilidade de trabalhar com o console do rails e o irb no emacs, iniciar o server em mongrel ou WEBrick, geradores do rails, entre outros, como é possível ver <a href="http://emacsonrails.drozdov.net/">neste screencast</a> linkado nesta wiki.</p>
<p>Vale lembrar que embora este usuário que está demonstrando utilize muito o mouse, o rails-mode pro emacs como os outros recursos que eu instalei, tem mapeamento de teclado e não é necessário se assustar com isto. O próprio emacs code browser, ou ECB, tem mapeamento de teclado.</p>
<p><strong>Meu ambiente de desenvolvimento após as modificações:</strong></p>
<p><a href="/assets/2009/1/30/mvc.png" title="Trabalhando com console, model, view e controller (MVC)"></a> <a href="/assets/2009/1/30/ecb.png" title="Trabalhando com o emacs code browser (ECB)"></a></p>
<p>* O importante é saber que o visual é você que faz. Eu utilzei neste caso o tema Gray30, presente no Color Themes do emacs e setei a fonte .emacs. Abaixo o meu arquivo de configuração do emacs.</p>
<pre><span class="comment-delimiter">;</span><span class="comment">Set Font
</span>(set-default-font <span class="string">"lucidasanstypewriter-10"</span>)

<span class="comment-delimiter">;</span><span class="comment">Set Theme</span>
(<span class="keyword">require</span> '<span class="constant">color-theme</span>)
(color-theme-gray30)

(mouse-wheel-mode)
(global-font-lock-mode 1)
(custom-set-variables
<span class="comment-delimiter">;; </span><span class="comment">custom-set-variables was added by Custom.
</span><span class="comment-delimiter">;; </span><span class="comment">If you edit it by hand, you could mess it up, so be careful.
</span><span class="comment-delimiter">;; </span><span class="comment">Your init file should contain only one such instance.
</span><span class="comment-delimiter">;; </span><span class="comment">If there is more than one, they won't work right.
</span>(<span class="keyword">require</span> '<span class="constant">php-mode</span>)
'(column-number-mode t)
'(cua-mode t nil (cua-base))
'(ecb-options-version <span class="string">"2.32"</span>)
'(message-log-max 150)
'(rails-ws:default-server-type <span class="string">"webrick"</span>)
<span class="comment-delimiter">;; </span><span class="comment">Habilitar scroll do mouse
</span>'(scroll-bar-mode (quote right))
'(text-mode-hook (quote (text-mode-hook-identify)))
'(transient-mark-mode t))
'(mouse-wheel-mode t)

(<span class="keyword">defun</span> <span class="function-name">up-slightly</span> ()
<span class="doc"></span>(interactive)
(scroll-up 5)
)
(<span class="keyword">defun</span> <span class="function-name">down-slightly</span> ()
<span class="doc"></span>(interactive)
(scroll-down 5)
)

<span class="comment-delimiter">;; </span><span class="comment">Relaciona a rolagem da rodinha com
</span><span class="comment-delimiter">;; </span><span class="comment">as 2 funções acima

</span>(global-set-key [mouse-4] 'down-slightly)
(global-set-key [mouse-5] 'up-slightly)

<span class="comment-delimiter">;; </span><span class="comment">Show column-number in the mode line
</span>(column-number-mode 1)

<span class="comment-delimiter">;; </span><span class="comment">Line highlight
</span><span class="comment-delimiter">;; </span><span class="comment">(global-hl-line-mode 1)

</span>(custom-set-faces

<span class="comment-delimiter">;; </span><span class="comment">custom-set-faces was added by Custom.
</span><span class="comment-delimiter">;; </span><span class="comment">If you edit it by hand, you could mess it up, so be careful.
</span><span class="comment-delimiter">;; </span><span class="comment">Your init file should contain only one such instance.
</span><span class="comment-delimiter">;; </span><span class="comment">If there is more than one, they won't work right.
</span>)

<span class="comment-delimiter">;</span><span class="comment">carrega emacs code browser
</span>(add-to-list 'load-path
<span class="string">"/usr/share/emacs22/site-lisp/ecb/"</span>)

<span class="comment-delimiter">;</span><span class="comment">carrega css-mode
</span>setq load-path (cons <span class="string">"~/.emacs.d/css-mode"</span> load-path))
(<span class="keyword">require</span> '<span class="constant">css-mode</span>)
(autoload 'css-mode <span class="string">"css-mode"</span>)
(setq auto-mode-alist
(cons '(<span class="string">"\\.css\\'"</span> . css-mode) auto-mode-alist))

<span class="comment-delimiter">;</span><span class="comment">carrega rails-mode
</span>(setq load-path (cons <span class="string">"~/.emacs.d/rails"</span> load-path))
(<span class="keyword">require</span> '<span class="constant">rails</span>)

<span class="comment-delimiter">;</span><span class="comment">carrega ri-ruby
</span>(setq ri-ruby-script (expand-file-name <span class="string">"~/emacs.d/ri/ri-emacs.rb"</span>))
(autoload 'ri <span class="string">"ri-ruby.el"</span> nil t)
<span class="comment-delimiter">
;</span><span class="comment">mmm-mode, suporte para marcacoes erb no html
</span>(setq load-path (cons <span class="string">"~/.emacs.d/mmm-mode"</span> load-path))
(<span class="keyword">require</span> '<span class="constant">mmm-mode</span>)
(<span class="keyword">require</span> '<span class="constant">mmm-auto</span>)
(setq mmm-global-mode 'maybe)
(setq mmm-submode-decoration-level 2)
(set-face-background 'mmm-output-submode-face  <span class="string">"Gray25"</span>)
(set-face-background 'mmm-code-submode-face    <span class="string">"MediumSlateBlue"</span>)
(set-face-background 'mmm-comment-submode-face <span class="string">"DarkOliveGreen"</span>)
(mmm-add-classes
  '((erb-code
  <span class="builtin">:submode</span> ruby-mode
  <span class="builtin">:match-face</span> ((<span class="string">"&lt;%#"</span> . mmm-comment-submode-face)
  (<span class="string">"&lt;%="</span> . mmm-output-submode-face)
  (<span class="string">"&lt;%"</span>  . mmm-code-submode-face))
  <span class="builtin">:front</span> <span class="string">"&lt;%[#=]?"</span>
  <span class="builtin">:back</span> <span class="string">"-?%&gt;"</span>
  <span class="builtin">:insert</span> ((?% erb-code       nil @ <span class="string">"&lt;%"</span>  @ <span class="string">" "</span> _ <span class="string">" "</span> @ <span class="string">"%&gt;"</span> @)
  (?# erb-comment    nil @ <span class="string">"&lt;%#"</span> @ <span class="string">" "</span> _ <span class="string">" "</span> @ <span class="string">"%&gt;"</span> @)
  (?= erb-expression nil @ <span class="string">"&lt;%="</span> @ <span class="string">" "</span> _ <span class="string">" "</span> @ <span class="string">"%&gt;"</span> @))
  )))
  (add-hook 'html-mode-hook
  (<span class="keyword">lambda</span> ()
  (setq mmm-classes '(erb-code))
  (mmm-mode-on)))
  (add-to-list 'auto-mode-alist '(<span class="string">"\\.rhtml$"</span> . html-mode))

<span class="comment-delimiter">;</span><span class="comment">Snippet Textmate like, deixar o emacs com os recursos do textmate
  </span>(<span class="keyword">require</span> '<span class="constant">snippet</span>)</pre>
]]></content:encoded>
			<wfw:commentRss>http://vebersol.net/2008/02/08/configurando-o-ambiente-de-desenvolvimento-ideal/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Exportar seu código para HTML com o emacs</title>
		<link>http://vebersol.net/2008/02/03/exportar-seu-codigo-para-html-com-o-emacs/</link>
		<comments>http://vebersol.net/2008/02/03/exportar-seu-codigo-para-html-com-o-emacs/#comments</comments>
		<pubDate>Sun, 03 Feb 2008 05:50:33 +0000</pubDate>
		<dc:creator>Vinicius Ebersol</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Ruby on Rails]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Há dias eu tenho buscado uma solução para exportar códigos ou trechos deles para HTML. O objetivo é mostrar posteriormente dicas com o código colorido, para melhor identificar os elementos. Existem alguns javascripts que transformam o código através de varredura &#8230; <a href="http://vebersol.net/2008/02/03/exportar-seu-codigo-para-html-com-o-emacs/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Há dias eu tenho buscado uma solução para exportar códigos ou trechos deles para HTML. O objetivo é mostrar posteriormente dicas com o código colorido, para melhor identificar os elementos. Existem alguns javascripts que transformam o código através de varredura por uma marcação com determinada classe, porém este é extremamente lento.</p>
<p>Foi então que vi que com editores como o Vim, conforme mostra o <a href="http://www.eustaquiorangel.com/blog/show/394">Eustáquio Rangel em seu blog</a>. Desde então fiquei entusiasmado para utilizar o mesmo recurso no <strong>emacs</strong>, que com certeza não iria perder para o vim neste recurso.</p>
<p>Descobri que existe uma função lisp do emacs que faz isto, é a htmlize, que permite exportar um arquivo inteiro, um trecho do arquivo, vários arquivos entre outros. Para utilizar este recurso é simples: M-x htmlize (ALT + X e digite htmlize) aperte tab para ver todos os recursos disponíveis e selecione o recurso que deseja.</p>
<p>Um exemplo de trecho código de um controller do Ruby on Rails exportado com o tema Gray30 do emacs:</p>
<pre>
  <span class="comment-delimiter"># </span><span class="comment">PUT /comments/1
</span>  <span class="comment-delimiter"># </span><span class="comment">PUT /comments/1.xml
</span>  <span class="keyword">def</span> <span class="function-name">update</span>
    <span class="variable-name">@comment</span> = <span class="type">Comment</span>.find(params[<span class="constant">:id</span>])

    respond_to <span class="keyword">do</span> |format|
      <span class="keyword">if</span> <span class="variable-name">@comment</span>.update_attributes(params[<span class="constant">:comment</span>])
        flash[<span class="constant">:notice</span>] = <span class="string">'Comment was successfully updated.'</span>
        format.html { redirect_to comment_url(<span class="variable-name">@comment</span>) }
        format.xml  { head <span class="constant"> <img src='http://vebersol.net/wp-includes/images/smilies/icon_surprised.gif' alt=':o' class='wp-smiley' /> k</span> }
      <span class="keyword">else</span>
        format.html { render <span class="constant">:action</span> =&gt; <span class="string">"edit"</span> }
        format.xml  { render <span class="constant"> <img src='http://vebersol.net/wp-includes/images/smilies/icon_mad.gif' alt=':x' class='wp-smiley' /> ml</span> =&gt; <span class="variable-name">@comment</span>.errors.to_xml }
      <span class="keyword">end</span>
    <span class="keyword">end</span>
  <span class="keyword">end</span></pre>
<p>Esse código acima é um trecho de um controller gerado com o scaffold resource. Em breve vou dar dicas que estava guardando há dias para publicar aqui.</p>
]]></content:encoded>
			<wfw:commentRss>http://vebersol.net/2008/02/03/exportar-seu-codigo-para-html-com-o-emacs/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>O emacs funciona no Ubuntu SIM!</title>
		<link>http://vebersol.net/2008/01/26/o-emacs-funciona-no-ubuntu-sim/</link>
		<comments>http://vebersol.net/2008/01/26/o-emacs-funciona-no-ubuntu-sim/#comments</comments>
		<pubDate>Sat, 26 Jan 2008 15:00:33 +0000</pubDate>
		<dc:creator>Vinicius Ebersol</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Ruby on Rails]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Há dias estava num dilema. Eu queria parar de trabalhar com o Aptana Radrails, pois ele me deixava muito dependente do mouse, e em termos de produtividade isto não é nada bom. Quando comecei a trabalhar com Rails, eu vi &#8230; <a href="http://vebersol.net/2008/01/26/o-emacs-funciona-no-ubuntu-sim/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Há dias estava num dilema. Eu queria parar de trabalhar com o <a href="http://www.aptana.com/rails/">Aptana Radrails</a>, pois ele me deixava muito dependente do mouse, e em termos de produtividade isto não é nada bom. Quando comecei a trabalhar com <a href="http://www.rubyonrails.com/">Rails</a>, eu vi o <a href="http://www.workingwithrails.com/person/6749-everton-j-carpes">Everton</a> utilizando um editor simples, mas que cumpria o principal papel de um editor de texto: colorir e identar o código. Este editor se chama <a href="http://pt.wikipedia.org/wiki/Emacs">emacs</a>.</p>
<p>O emacs é um editor bem estabelecido, como vocês podem ler no link acima, ele tem nada mais nada menos do que 32 anos. Embora tenha uma interface extremamente simples, o editor é um dos mais poderosos editores que eu já vi. Um dos recursos mais impressionantes é que posso identar uma linha (apertando TAB) de qualquer lugar da linha, não precisa ser necessáriamente do início. Além disso, ele permite que eu abra N frames na mesma janela, como vocês podem ver abaixo:</p>
<p><a href="http://www.awtres.com/arquivos/2008/01/emacs.jpg" title="emacs no Ubuntu"></a></p>
<p>Pra quem faz download do emacs pelo ubuntu, via apt-get, nota que ele não colore o código, isto não é bug, é falta de configuração.</p>
<p>Então faça o seguinte:</p>
<ol>
<li>Se ainda não fez, instale o emacs, no terminal digite: sudo apt-get install emacs;</li>
<li>Após instalado, rode o emacs abrindo as próprias configurações dele: emacs /home/seu_login/.emacs &amp; (o &amp; é para liberar o terminal);</li>
<li>Procure no arquivo a seguinte linha: (global-font-lock-mode 0) e troque o valor 0 (zero) para 1 (um);</li>
<li>Salve o arquivo: C-x, C-s (ctrl + x e ctrl + s);</li>
<li>Abra um arquivo em html, .rhtml ou .rb para ver se está ok.</li>
</ol>
<p>Quer aprender alguns <strong>comandos básicos do emacs</strong>? Que tal a<a href="http://www.emacswiki.org/cgi-bin/wiki"> Wiki do emacs</a>?</p>
]]></content:encoded>
			<wfw:commentRss>http://vebersol.net/2008/01/26/o-emacs-funciona-no-ubuntu-sim/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

