<?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/"
	>

<channel>
	<title>Blog do Abrantes Filho</title>
	<atom:link href="http://www.abrantes.med.br/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.abrantes.med.br</link>
	<description>Família, informática, epidemiologia, fotografia, ...</description>
	<pubDate>Mon, 03 Aug 2009 20:35:44 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.7.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Reconfigurar o CPAN</title>
		<link>http://www.abrantes.med.br/2009/08/03/reconfigurar-cpan/</link>
		<comments>http://www.abrantes.med.br/2009/08/03/reconfigurar-cpan/#comments</comments>
		<pubDate>Mon, 03 Aug 2009 20:35:44 +0000</pubDate>
		<dc:creator>Abrantes Araújo Silva Filho</dc:creator>
		
		<category><![CDATA[Informática]]></category>

		<category><![CDATA[bugzilla]]></category>

		<category><![CDATA[cpan]]></category>

		<category><![CDATA[perl]]></category>

		<guid isPermaLink="false">http://www.abrantes.med.br/?p=91</guid>
		<description><![CDATA[Ao tentar atualizar a versão do Bugzilla em um de meus servidores encontrei um problema com o módulo Perl &#8220;Template&#8221;. O Bugzilla dizia que a versão instalada era antiga e incompatível com os requisitos atuais, mas quando tentava atualizar o módulo Template através do CPAN, recebia uma mensagem dizendo que o módulo estava atualizado.
Depois de [...]]]></description>
			<content:encoded><![CDATA[<p>Ao tentar atualizar a versão do Bugzilla em um de meus servidores encontrei um problema com o módulo Perl &#8220;Template&#8221;. O Bugzilla dizia que a versão instalada era antiga e incompatível com os requisitos atuais, mas quando tentava atualizar o módulo Template através do CPAN, recebia uma mensagem dizendo que o módulo estava atualizado.</p>
<p>Depois de muito procurar no Google, descobri que minhas configurações para o CPAN é que estavam erradas: estavam apontando para um mirror antigo. Para reconfigurar o CPAN, o basta entrar no CPAN e reconfigurá-lo (inclusive escolhendo os novos mirrors de download de módulos) com os seguintes comandos:</p>
<pre style="padding-left: 30px;"><strong>perl -MCPAN -e shell
o conf init
o conf init urllist
o conf commit</strong></pre>
]]></content:encoded>
			<wfw:commentRss>http://www.abrantes.med.br/2009/08/03/reconfigurar-cpan/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Ajustes no Gnome após a instalação do openSUSE</title>
		<link>http://www.abrantes.med.br/2009/07/28/ajustes-no-gnome-apos-a-instalacao-do-opensuse/</link>
		<comments>http://www.abrantes.med.br/2009/07/28/ajustes-no-gnome-apos-a-instalacao-do-opensuse/#comments</comments>
		<pubDate>Tue, 28 Jul 2009 12:58:06 +0000</pubDate>
		<dc:creator>Abrantes Araújo Silva Filho</dc:creator>
		
		<category><![CDATA[Informática]]></category>

		<category><![CDATA[gnome]]></category>

		<category><![CDATA[linux]]></category>

		<category><![CDATA[openSUSE]]></category>

		<guid isPermaLink="false">http://www.abrantes.med.br/?p=85</guid>
		<description><![CDATA[Uma instalação padrão do openSUSE instala o Gnome como ambiente gráfico padrão, mas eu não gosto de algumas configurações pré-determinadas:

Na tela de login aparece o nome do usuário e seu login: não gosto disso por questões de segurança;
Ao iniciar uma aplicação, a janela do Application Browser fecha automaticamente: não gosto disso pois sempre tenho que [...]]]></description>
			<content:encoded><![CDATA[<p>Uma instalação padrão do openSUSE instala o Gnome como ambiente gráfico padrão, mas eu não gosto de algumas configurações pré-determinadas:</p>
<ul>
<li>Na tela de login aparece o nome do usuário e seu login: não gosto disso por questões de segurança;</li>
<li>Ao iniciar uma aplicação, a janela do Application Browser fecha automaticamente: não gosto disso pois sempre tenho que ficar voltando no Application Browser para abrir mais de uma aplicação;</li>
<li>Não gosto do botão de menu do Gnome (o Slab): prefiro o estilo antigo, tipo KDE ou Windows mesmo.</li>
</ul>
<p>Para não exibir o nome/login do usuário na tela de login, como usuário <strong>root</strong>, acesse o Gnome Configuration Editor (<em>Application Browser</em> -&gt; <em>System</em> -&gt; <em>Gnome Configuration Editor</em>). Na lista de propriedades (as pastas na parte esquerda), vá para <em>apps</em> -&gt; <em>gdm</em> -&gt; <em>simple-greeter</em>. Nesse momento as propriedades aparecerão na parte direita da tela. Marque a opção &#8220;<strong>disable_user_list</strong>&#8221; e depois clique com o botão direito do mouse sobre essa mesma opção e escolha &#8220;Set as Mandatory&#8221;. Isso configurará essa opção de não mostrar a lista de usuários como mandatória (obrigatória) para todos. Outras opções que podem ser interessantes para você são: &#8220;banner_message_enable&#8221; e &#8220;banner_message_text&#8221;, que exibem uma mensagem na tela de login, e &#8220;disable_restart_buttons&#8221;, que desativa os botões de restart na tela de login.</p>
<p>Para fazer com que o Application Browser não feche após escolher uma aplicação, ainda no Gnome Configuration Editor vá para <em>desktop</em> -&gt; <em>gnome</em> -&gt; <em>applications</em> -&gt; <em>main-menu</em> e desabilite a propriedade &#8220;<strong>ab_exit_shell_on_action_start</strong>&#8220;. Coloque como mandatória se quiser.</p>
<p>Para colocar o menu antigo do Gnome na barra, basta clicar com o botão direito do mouse sobre a barra, escolher a opção &#8220;Add to Panel&#8221; e acrescentar o &#8220;<strong>Traditional Main Menu</strong>&#8220;.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.abrantes.med.br/2009/07/28/ajustes-no-gnome-apos-a-instalacao-do-opensuse/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Ajuste das tabs no Firefox 3.5</title>
		<link>http://www.abrantes.med.br/2009/07/22/ajuste-das-tabs-no-firefox-35/</link>
		<comments>http://www.abrantes.med.br/2009/07/22/ajuste-das-tabs-no-firefox-35/#comments</comments>
		<pubDate>Wed, 22 Jul 2009 19:23:11 +0000</pubDate>
		<dc:creator>Abrantes Araújo Silva Filho</dc:creator>
		
		<category><![CDATA[Informática]]></category>

		<category><![CDATA[browser]]></category>

		<category><![CDATA[firefox]]></category>

		<category><![CDATA[linux]]></category>

		<guid isPermaLink="false">http://www.abrantes.med.br/?p=81</guid>
		<description><![CDATA[O Firefox continua sendo o melhor browser da atualidade e, com o lançamento da versão 3.5, temos ainda mais novidades e melhorias. Entretanto, 3 alterações no comportamento padrão do Firefox nessa nova versão me desagradaram bastante:

O botão de fechar não aparece quando só tem uma tab aberta;
Quando fechamos a última tab (com o comando Ctrl-W), [...]]]></description>
			<content:encoded><![CDATA[<p>O Firefox continua sendo o melhor browser da atualidade e, com o lançamento da versão 3.5, temos ainda mais novidades e melhorias. Entretanto, 3 alterações no comportamento padrão do Firefox nessa nova versão me desagradaram bastante:</p>
<ul>
<li>O botão de fechar não aparece quando só tem uma tab aberta;</li>
<li>Quando fechamos a última tab (com o comando Ctrl-W), o Firefox inteiro fecha também; e</li>
<li>Quando temos várias tabs abertas, o botão de fechar somente aparece na tab ativa.</li>
</ul>
<p>Entretanto, com alguns ajustes, é possível configurar esses comportamentos.</p>
<p><em><strong>1. Para mostrar o botão de fechar quando só tem uma tab aberta (a última tab)</strong></em>, edite o arquivo <span style="font-family: courier new,courier;">~/.mozilla/firefox/7dewbsta.default/chrome/userChrome.css</span> e adicione as seguintes linhas (note que o diretório mostrado aqui - <span style="font-family: courier new,courier;">7dewbsta.default</span> -<span style="font-family: courier new,courier;"> é criado aleatoriamente pelo Firefox, portanto em sua máquina o nome pode ser outro):<br />
</span></p>
<pre style="padding-left: 30px;"><strong>.tabbrowser-tabs[closebuttons="alltabs"] &gt; .tabbrowser-tab &gt; .tab-close-button {
 display: -moz-box !important;
 }
 .tabbrowser-tabs:not([closebuttons="noclose"]):not([closebuttons="closeatend"]) &gt;
.tabbrowser-tab[selected="true"] &gt; .tab-close-button {
 display: -moz-box !important;
 }</strong></pre>
<p>Encontrei essa dica no endereço: <a href="http://mozillalinks.org/wp/2009/07/disable-tab-tearing-and-six-other-firefox-3-5-tab-tweaks/" target="_blank">http://mozillalinks.org/wp/2009/07/disable-tab-tearing-and-six-other-firefox-3-5-tab-tweaks/</a> que também tem outras dicas interessantes.</p>
<p><em><strong>2. Para que ao fechar a última tab o Firefox continue aberto,</strong></em> digite na barra de endereços a URL especial &#8220;<em>about:config</em>&#8221; (sem as aspas), procure a propriedade <em>browser.tabs.closeWindowWithLastTab</em> e altere para &#8220;false&#8221;.</p>
<p><strong>3. Para que o botão de fechar seja exibido mesmo se existirem várias tabs abertas</strong>, digite na barra de endereços a URL especial &#8220;about:config&#8221; (sem as aspas), procure a propriedade <em>browser.tabs.tabClipWidth</em> e altere seu valor para &#8220;50&#8243;.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.abrantes.med.br/2009/07/22/ajuste-das-tabs-no-firefox-35/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Como remover dados EXIF de suas fotos com o ImageMagick</title>
		<link>http://www.abrantes.med.br/2009/05/24/como-remover-dados-exif-de-suas-fotos-com-o-imagemagick/</link>
		<comments>http://www.abrantes.med.br/2009/05/24/como-remover-dados-exif-de-suas-fotos-com-o-imagemagick/#comments</comments>
		<pubDate>Sun, 24 May 2009 12:52:03 +0000</pubDate>
		<dc:creator>Abrantes Araújo Silva Filho</dc:creator>
		
		<category><![CDATA[Fotografia]]></category>

		<category><![CDATA[Informática]]></category>

		<category><![CDATA[ImageMagick]]></category>

		<category><![CDATA[linux]]></category>

		<guid isPermaLink="false">http://www.abrantes.med.br/?p=78</guid>
		<description><![CDATA[Em algumas situações você precisa remover qualquer dado EXIF e/ou comentários de suas fotos digitais. Eu, por exemplo, fiz um script que prepara diversas fotos para publicação em um site (www.casadealegria.com.br), mas quando os fotógrafos gravam os originais com EXIF, algumas vezes a orientação da foto sai &#8220;errada&#8221;, pois ela está gravada de um jeito [...]]]></description>
			<content:encoded><![CDATA[<p>Em algumas situações você precisa remover qualquer dado EXIF e/ou comentários de suas fotos digitais. Eu, por exemplo, fiz um script que prepara diversas fotos para publicação em um site (<a title="Casa de Alegria" href="http://www.casadealegria.com.br" target="_blank">www.casadealegria.com.br</a>), mas quando os fotógrafos gravam os originais com EXIF, algumas vezes a orientação da foto sai &#8220;errada&#8221;, pois ela está gravada de um jeito (por exemplo, horizontal) mas o EXIF me diz outra coisa (por exemplo: vertical).</p>
<p>Nessas situações é necessário remover o EXIF das fotos e, no linux, uma das melhores maneiras para fazer isso é utilizando o excepcional <a title="ImageMagick" href="http://www.imagemagick.org" target="_blank"><strong>ImageMagick</strong></a>. O comando é simples:</p>
<pre style="padding-left: 30px;">mogrify -strip foto.jpg</pre>
<p>Se necessário, você pode remover o EXIF de todas as fotos em um diretório, usando o comando:</p>
<pre style="padding-left: 30px;">for i in `ls *.jpg`; do mogrify -strip $i; done;</pre>
<p>Visite o site do <a title="ImageMagick" href="http://www.imagemagick.org" target="_blank">ImageMagick (www.imagemagick.org)</a> e conheça todas suas funcionalidades! É um dos melhores softwares para tratamento em lote de fotos que eu já utilizei!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.abrantes.med.br/2009/05/24/como-remover-dados-exif-de-suas-fotos-com-o-imagemagick/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Doutrinação comunista nas escolas</title>
		<link>http://www.abrantes.med.br/2009/05/13/doutrinacao-comunista-nas-escolas/</link>
		<comments>http://www.abrantes.med.br/2009/05/13/doutrinacao-comunista-nas-escolas/#comments</comments>
		<pubDate>Wed, 13 May 2009 21:39:54 +0000</pubDate>
		<dc:creator>Abrantes Araújo Silva Filho</dc:creator>
		
		<category><![CDATA[Formação geral]]></category>

		<category><![CDATA[comunismo]]></category>

		<category><![CDATA[doutrinação marxista]]></category>

		<category><![CDATA[esquerdismo]]></category>

		<category><![CDATA[socialismo]]></category>

		<guid isPermaLink="false">http://www.abrantes.med.br/?p=76</guid>
		<description><![CDATA[Todo mundo que tem um filho na escola, pública ou particular, deve estar atendo à doutrinação &#8220;esquero-sócio-comunista-marxista&#8221; que os professores empurram para os alunos. A coisa é tão nojenta que deveria ser combatida por todos, mas nada é feito.
Se você, assim como eu, tem filho na escola, é bom prestar atenção. Vou postar aqui alguns [...]]]></description>
			<content:encoded><![CDATA[<p>Todo mundo que tem um filho na escola, pública ou particular, deve estar atendo à doutrinação &#8220;esquero-sócio-comunista-marxista&#8221; que os professores empurram para os alunos. A coisa é tão nojenta que deveria ser combatida por todos, mas nada é feito.</p>
<p>Se você, assim como eu, tem filho na escola, é bom prestar atenção. Vou postar aqui alguns links sobre o assunto. Leia, aprenda e proteja seu filho!</p>
<ul>
<li><a href="http://www.midiasemmascara.com.br/index.php?option=com_content&amp;view=article&amp;id=92:envenenandoaalmadascriancas&amp;catid=3:educacao&amp;Itemid=13" target="_blank">Envenenando as almas das crianças</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.abrantes.med.br/2009/05/13/doutrinacao-comunista-nas-escolas/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Repositórios de pacotes do openSUSE</title>
		<link>http://www.abrantes.med.br/2009/05/12/repositorios-de-pacotes-do-opensuse/</link>
		<comments>http://www.abrantes.med.br/2009/05/12/repositorios-de-pacotes-do-opensuse/#comments</comments>
		<pubDate>Tue, 12 May 2009 18:39:19 +0000</pubDate>
		<dc:creator>Abrantes Araújo Silva Filho</dc:creator>
		
		<category><![CDATA[Informática]]></category>

		<category><![CDATA[linux]]></category>

		<category><![CDATA[openSUSE]]></category>

		<category><![CDATA[repositórios]]></category>

		<category><![CDATA[YaST]]></category>

		<guid isPermaLink="false">http://www.abrantes.med.br/?p=71</guid>
		<description><![CDATA[Após a instalação do openSUSE, você terá que definir quais repositórios de pacotes utilizará para manter seu sistema atualizado e para fornecer novos softwares. Como existem diversos repositórios de pacotes, oficiais e de terceiros, a escolha de quais repositórios utilizar (e em qual ordem de prioridade) pode ser um pouco difícil para os iniciantes no [...]]]></description>
			<content:encoded><![CDATA[<p>Após a instalação do openSUSE, você terá que definir quais repositórios de pacotes utilizará para manter seu sistema atualizado e para fornecer novos softwares. Como existem diversos repositórios de pacotes, oficiais e de terceiros, a escolha de quais repositórios utilizar (e em qual ordem de prioridade) pode ser um pouco difícil para os iniciantes no openSUSE.</p>
<p>Os repositórios básicos estão detalhados na documentação do openSUSE:</p>
<ul>
<li><a href="http://en.opensuse.org/Add_Package_Repositories_to_YaST" target="_blank">Add Package Repositories to YaST</a>;</li>
<li><a href="http://en.opensuse.org/Package_Repositories" target="_blank">Package Repositories</a>;</li>
<li><a href="http://en.opensuse.org/Additional_YaST_Package_Repositories" target="_blank">Additional YaST Package Repositories</a>; e</li>
<li><a href="http://opensuse-community.org/Repositories" target="_blank">Repositories</a>.</li>
</ul>
<p>Obviamente os repositórios que você utilizará dependem de suas necessidades, mas para facilitar os iniciantes apresento aqui uma configuração básica de repositórios que devem ficar habilitados, em ordem de prioridade:</p>
<ul>
<li>Prioridade 20: <a href="http://download.opensuse.org/update/11.1/" target="_blank"><strong>openSUSE-11.1-updates</strong></a> (refresh automático);</li>
<li>Prioridade 30: <a href="http://packman.unixheads.com/suse/11.1/" target="_blank"><strong>Packman</strong></a> (refresh automático);</li>
<li>Prioridade 40: <a href="http://www.opensuse-education.org/download/repo/1.0/11.1/" target="_blank"><strong>Education</strong></a> (refresh automático);</li>
<li>Prioridade 50: <a href="http://download.opensuse.org/distribution/11.1/repo/oss/" target="_blank"><strong>openSUSE-11.1-oss</strong></a> (sem refresh automático); e</li>
<li>Prioridade 60: <a href="http://download.opensuse.org/distribution/11.1/repo/non-oss/" target="_blank"><strong>openSUSE-11.1-non-oss</strong></a> (sem refresh automático).</li>
</ul>
<p>Esses repositórios servem para manter seu sistema atualizado e com softwares de terceiros disponíveis. Minha sugestão é que você comece com esses repositórios e acrescente outros de acordo sua demanda (por exemplo: pacotes fonte, outros pacotes de terceiros, etc.).</p>
]]></content:encoded>
			<wfw:commentRss>http://www.abrantes.med.br/2009/05/12/repositorios-de-pacotes-do-opensuse/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Oracle SQL Developer para acessar diversos bancos de dados no linux</title>
		<link>http://www.abrantes.med.br/2009/05/07/oracle-sql-developer-para-acessar-diversos-bancos-de-dados-no-linux/</link>
		<comments>http://www.abrantes.med.br/2009/05/07/oracle-sql-developer-para-acessar-diversos-bancos-de-dados-no-linux/#comments</comments>
		<pubDate>Thu, 07 May 2009 12:16:25 +0000</pubDate>
		<dc:creator>Abrantes Araújo Silva Filho</dc:creator>
		
		<category><![CDATA[Informática]]></category>

		<category><![CDATA[bancos de dados]]></category>

		<category><![CDATA[linux]]></category>

		<category><![CDATA[MySQL]]></category>

		<category><![CDATA[Oracle]]></category>

		<category><![CDATA[sql]]></category>

		<category><![CDATA[SQL Server]]></category>

		<category><![CDATA[Sybase]]></category>

		<category><![CDATA[TOra]]></category>

		<guid isPermaLink="false">http://www.abrantes.med.br/?p=69</guid>
		<description><![CDATA[Se você trabalha com o banco de dados Oracle, certamente conhece o Oracle SQL Developer, um software gratuito para auxiliar o desenvolvimento, implementação e administração de bancos de dados Oracle. Com ele é possível navegar pelos objetos do banco de dados, rodar scripts, criar relatórios, criar e debugar procedimentos PL/SQL, e realizar algumas tarefas específicas [...]]]></description>
			<content:encoded><![CDATA[<p>Se você trabalha com o banco de dados Oracle, certamente conhece o <a href="http://www.oracle.com/technology/products/database/sql_developer/index.html" target="_blank">Oracle SQL Developer</a>, um software gratuito para auxiliar o desenvolvimento, implementação e administração de bancos de dados Oracle. Com ele é possível navegar pelos objetos do banco de dados, rodar scripts, criar relatórios, criar e debugar procedimentos PL/SQL, e realizar algumas tarefas específicas caso você também utilize o <a href="http://www.oracle.com/technology/products/database/application_express/index.html" target="_blank">Oracle Application Express</a>.</p>
<p>Por muito tempo eu utilizei o <a href="http://tora.sourceforge.net/" target="_blank">TOra (Toolkit for Oracle)</a> para desenvolvimento Oracle no Linux mas, há mais de um ano, mudei para o Oracle SQL Developer por duas razões:</p>
<ol>
<li>Estava tendo muita dificuldade em fazer o TOra compilar e rodar corretamente tanto no openSUSE quanto no SuSE Linux Enterprise Server (essa dificuldade ocorria com as versões 1.x do TOra; em novembro/2008 foi lançada a versão 2.0 do TOra, mas não cheguei a testá-la e portanto não sei se os problemas de compilação e execução ainda continuam ou se já foram solucionados); e</li>
<li>Outros desenvolvedores de meu grupo utilizam Windows e o TOra é somente para Linux.</li>
</ol>
<p>Mas o fator decisivo para que eu utilizasse o Oracle SQL Developer é sua capacidade de acessar e trabalhar com outros bancos de dados a partir do linux, utilizando conexões JDBC. Especificamente, eu acesso e utilizo diariamente os seguintes bancos de dados através do Oracle SQL Developer:</p>
<ul>
<li>Oracle (acesso nativo)</li>
<li>SQL Server (acesso via <a href="http://jtds.sourceforge.net/" target="_blank">jTDS</a>)</li>
<li>Sybase (acesso via <a href="http://jtds.sourceforge.net/" target="_blank">jTDS</a>)</li>
<li>MySQL (acesso via <a href="http://dev.mysql.com/downloads/#connector-j" target="_blank">MySQL Connector/J</a>)</li>
</ul>
<p>O único banco de dados que ainda não consegui acessar é o PostgreSQL: apesar de já existir um JDBC para o PostgreSQL (<a href="http://jdbc.postgresql.org/" target="_blank">PostgreSQL JDBC Driver</a>), ele não parece funcionar com o Oracle SQL Developer. Quem utiliza Windows consegue ainda trabalhar com bancos Access, mas eu nunca usei essa opção.</p>
<p>Em resumo: se você precisa acessar e trabalhar com diversos bancos de dados no linux, o Oracle SQL Developer é uma das melhores opções. O único problema é se você precisar trabalhar com o PostgreSQL (mas mesmo assim você pode utilizar outras formas de conexão, como o bom e velho Emacs <img class="superemotions" title="Wink" alt="Wink" border="0" src="http://www.abrantes.med.br/wp-includes/images/smilies/icon_wink.gif" />)!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.abrantes.med.br/2009/05/07/oracle-sql-developer-para-acessar-diversos-bancos-de-dados-no-linux/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Onde fica a lixeira no openSUSE?</title>
		<link>http://www.abrantes.med.br/2009/04/27/onde-fica-a-lixeira-no-opensuse/</link>
		<comments>http://www.abrantes.med.br/2009/04/27/onde-fica-a-lixeira-no-opensuse/#comments</comments>
		<pubDate>Mon, 27 Apr 2009 22:29:24 +0000</pubDate>
		<dc:creator>Abrantes Araújo Silva Filho</dc:creator>
		
		<category><![CDATA[Informática]]></category>

		<category><![CDATA[bash]]></category>

		<category><![CDATA[linux]]></category>

		<category><![CDATA[openSUSE]]></category>

		<guid isPermaLink="false">http://www.abrantes.med.br/?p=67</guid>
		<description><![CDATA[As vezes, depois de muito tempo utilizando a interface gráfica (eu uso o Gnome), a lixeira em seu desktop fica lotada de arquivos e outras coisas que você apagou. Para limpar a lixeira basta clicar com o botão direito do mouse e escolher a opção apropriada, nada mais fácil.
Entretanto, em algumas situações onde a lixeira [...]]]></description>
			<content:encoded><![CDATA[<p>As vezes, depois de muito tempo utilizando a interface gráfica (eu uso o Gnome), a lixeira em seu desktop fica lotada de arquivos e outras coisas que você apagou. Para limpar a lixeira basta clicar com o botão direito do mouse e escolher a opção apropriada, nada mais fácil.</p>
<p>Entretanto, em algumas situações onde a lixeira está muito cheia, digamos 600 MB ou mais com um número muito grande de arquivos pequenos, o processo de esvaziá-la via desktop pode ser um pouco demorado. Nesses casos eu prefiro apagar a lixeira via linha de comando. Mas onde exatamente fica a lixeira?</p>
<p>Em <strong><span style="font-family: courier new,courier;">~/.local/share/Trash</span></strong> ! Lá você encontrará dois diretórios: <strong><span style="font-family: courier new,courier;">files</span></strong> e <strong><span style="font-family: courier new,courier;">info</span></strong>. Basta apagar o conteúdo desses dois diretórios (via <strong>rm</strong>, por exemplo) que sua lixeira será esvaziada.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.abrantes.med.br/2009/04/27/onde-fica-a-lixeira-no-opensuse/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Capture FireWire no openSUSE 11.1</title>
		<link>http://www.abrantes.med.br/2009/04/25/capture-firewire-no-opensuse-111/</link>
		<comments>http://www.abrantes.med.br/2009/04/25/capture-firewire-no-opensuse-111/#comments</comments>
		<pubDate>Sat, 25 Apr 2009 19:39:08 +0000</pubDate>
		<dc:creator>Abrantes Araújo Silva Filho</dc:creator>
		
		<category><![CDATA[Informática]]></category>

		<category><![CDATA[firewire]]></category>

		<category><![CDATA[linux]]></category>

		<category><![CDATA[vídeo]]></category>

		<guid isPermaLink="false">http://www.abrantes.med.br/?p=65</guid>
		<description><![CDATA[Quando eu tentei usar uma placa ExpressCard com portas FireWire em meu laptop rodando openSUSE 11.1, ao espetar a câmera digital (Sony Handycam DCR-HC32), o linux não reconhecia o dispositivo corretamente. Não achei ainda uma solução definitiva, mas o procedimento para correção é simples: coloque a placa, conecte a câmera, ligue a câmera e só [...]]]></description>
			<content:encoded><![CDATA[<p>Quando eu tentei usar uma placa ExpressCard com portas FireWire em meu laptop rodando openSUSE 11.1, ao espetar a câmera digital (Sony Handycam DCR-HC32), o linux não reconhecia o dispositivo corretamente. Não achei ainda uma solução definitiva, mas o procedimento para correção é simples: coloque a placa, conecte a câmera, ligue a câmera e só então dê o boot com o openSUSE. Agora tudo vai ser reconhecido e funcionar corretamente.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.abrantes.med.br/2009/04/25/capture-firewire-no-opensuse-111/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Como montar um arquivo ISO no linux</title>
		<link>http://www.abrantes.med.br/2009/04/20/como-montar-um-arquivo-iso-no-linux/</link>
		<comments>http://www.abrantes.med.br/2009/04/20/como-montar-um-arquivo-iso-no-linux/#comments</comments>
		<pubDate>Mon, 20 Apr 2009 13:10:29 +0000</pubDate>
		<dc:creator>Abrantes Araújo Silva Filho</dc:creator>
		
		<category><![CDATA[Informática]]></category>

		<category><![CDATA[linux]]></category>

		<guid isPermaLink="false">http://www.abrantes.med.br/?p=63</guid>
		<description><![CDATA[Se você tem a imagem de um CD ou DVD (geralmente é um arquivo *.iso) e precisa acessar seu conteúdo, não precisa queimar uma mídia somente para obter alguns arquivos. Basta montar a imagem em qualquer diretório. No linux, faça o seguinte:
mount -t iso9660 -o ro,loop=/dev/loop0 arquivo.iso diretorio
Esse comando monta a imagem do CD/DVD dentro [...]]]></description>
			<content:encoded><![CDATA[<p>Se você tem a imagem de um CD ou DVD (geralmente é um arquivo <span style="font-family: courier new,courier;">*.iso</span>) e precisa acessar seu conteúdo, não precisa queimar uma mídia somente para obter alguns arquivos. Basta montar a imagem em qualquer diretório. No linux, faça o seguinte:</p>
<pre style="padding-left: 30px;">mount -t iso9660 -o ro,loop=/dev/loop0 <em>arquivo.iso</em> <em>diretorio</em></pre>
<p>Esse comando monta a imagem do CD/DVD dentro do diretório especificado, que pode ser acessado normalmente pelo sistema. Quando terminar, basta executar o comando <span style="font-family: courier new,courier;">umount diretorio</span>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.abrantes.med.br/2009/04/20/como-montar-um-arquivo-iso-no-linux/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Como instalar presets no XMMS</title>
		<link>http://www.abrantes.med.br/2009/04/12/como-instalar-presets-no-xmms/</link>
		<comments>http://www.abrantes.med.br/2009/04/12/como-instalar-presets-no-xmms/#comments</comments>
		<pubDate>Sun, 12 Apr 2009 14:44:21 +0000</pubDate>
		<dc:creator>Abrantes Araújo Silva Filho</dc:creator>
		
		<category><![CDATA[Informática]]></category>

		<category><![CDATA[linux]]></category>

		<category><![CDATA[presets]]></category>

		<category><![CDATA[xmms]]></category>

		<guid isPermaLink="false">http://www.abrantes.med.br/?p=61</guid>
		<description><![CDATA[Instalar presets no XMMS é muito fácil. Em primeiro lugar faça o download do arquivo necessário:
wget http://xmms.org/misc/winamp_presets.gz
Depois descompacte o arquivo no diretório correto:
gunzip -c winamp_presets.gz &#62; ~/.xmms/eq.preset
Agora é só abrir o XMMS e carregar os presets.
]]></description>
			<content:encoded><![CDATA[<p>Instalar presets no XMMS é muito fácil. Em primeiro lugar faça o download do arquivo necessário:</p>
<pre style="padding-left: 30px;"><strong>wget <a class="external free" title="http://xmms.org/misc/winamp_presets.gz" rel="nofollow" href="http://xmms.org/misc/winamp_presets.gz">http://xmms.org/misc/winamp_presets.gz</a></strong></pre>
<p>Depois descompacte o arquivo no diretório correto:</p>
<pre style="padding-left: 30px;"><strong>gunzip -c winamp_presets.gz &gt; ~/.xmms/eq.preset</strong></pre>
<p>Agora é só abrir o XMMS e carregar os presets.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.abrantes.med.br/2009/04/12/como-instalar-presets-no-xmms/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Crash do XMMS ao usar double size</title>
		<link>http://www.abrantes.med.br/2009/04/11/crash-do-xmms-ao-usar-double-size/</link>
		<comments>http://www.abrantes.med.br/2009/04/11/crash-do-xmms-ao-usar-double-size/#comments</comments>
		<pubDate>Sat, 11 Apr 2009 14:42:18 +0000</pubDate>
		<dc:creator>Abrantes Araújo Silva Filho</dc:creator>
		
		<category><![CDATA[Informática]]></category>

		<category><![CDATA[linux]]></category>

		<category><![CDATA[xmms]]></category>

		<guid isPermaLink="false">http://www.abrantes.med.br/?p=59</guid>
		<description><![CDATA[Algumas vezes, ao utilizar o XMMS em tamanho duplo (double size), o XMMS simplesmente congela ou dá um crash total. Para resolver esse problema, ajuste a seguinte variável na chamada do programa:
XLIB_SKIP_ARGB_VISUALS=1 /usr/bin/xmms
]]></description>
			<content:encoded><![CDATA[<p>Algumas vezes, ao utilizar o XMMS em tamanho duplo (double size), o XMMS simplesmente congela ou dá um crash total. Para resolver esse problema, ajuste a seguinte variável na chamada do programa:</p>
<pre style="padding-left: 30px;"><strong>XLIB_SKIP_ARGB_VISUALS=1 /usr/bin/xmms</strong></pre>
]]></content:encoded>
			<wfw:commentRss>http://www.abrantes.med.br/2009/04/11/crash-do-xmms-ao-usar-double-size/feed/</wfw:commentRss>
		</item>
		<item>
		<title>SSH e SCP sem senha</title>
		<link>http://www.abrantes.med.br/2009/04/04/ssh-e-scp-sem-senha/</link>
		<comments>http://www.abrantes.med.br/2009/04/04/ssh-e-scp-sem-senha/#comments</comments>
		<pubDate>Sat, 04 Apr 2009 19:40:58 +0000</pubDate>
		<dc:creator>Abrantes Araújo Silva Filho</dc:creator>
		
		<category><![CDATA[Informática]]></category>

		<category><![CDATA[autenticação]]></category>

		<category><![CDATA[linux]]></category>

		<category><![CDATA[scp]]></category>

		<category><![CDATA[senhas]]></category>

		<category><![CDATA[ssh]]></category>

		<guid isPermaLink="false">http://www.abrantes.med.br/?p=55</guid>
		<description><![CDATA[Em situações nas quais você precisa transferir periodicamente arquivos entre computadores, uma solução bastante utilizada é criar scripts para realizar a transferência via SCP. O problema é que, por padrão, os computadores sempre solicitam uma senha para autorizar as conexões via SSH/SCP. Para que seu script funcione sem a presença humana para digitar as senhas, [...]]]></description>
			<content:encoded><![CDATA[<p>Em situações nas quais você precisa transferir periodicamente arquivos entre computadores, uma solução bastante utilizada é criar scripts para realizar a transferência via SCP. O problema é que, por padrão, os computadores sempre solicitam uma senha para autorizar as conexões via SSH/SCP. Para que seu script funcione sem a presença humana para digitar as senhas, basta configurar o SSH/SCP para autenticação via chaves pública e privada.</p>
<p><span id="more-55"></span>Imagine a seguinte situação: você precisa transferir arquivos entre os hosts <em><strong>A</strong></em> e <em><strong>B</strong></em>. Inicialmente você precisa criar o par de chaves pública/privada em cada um dos hosts. No host <em><strong>A</strong></em> (que neste exemplo está rodando openSUSE 11.1), faça o seguinte:</p>
<pre style="padding-left: 30px;">[usuario@hostA ~]&gt; <strong>ssh-keygen -t dsa -b 1024</strong>
Generating public/private dsa key pair.
Enter file in which to save the key (/home/usuario/.ssh/id_dsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/usuario/.ssh/id_dsa.
Your public key has been saved in /home/usuario/.ssh/id_dsa.pub.
The key fingerprint is:
0f:db:e2:db:ea:a7:71:ce:ed:12:54:19:99:22:d0:a2 usuario@hostA
The key's randomart image is:
+--[ DSA 1024]----+
|      .o    .=   |
|      . o . =    |
|     . . . o     |
|    E     .      |
|        S.       |
|         =.      |
|        + +.     |
|       . Bo.     |
|       .*=+oo    |
+-----------------+</pre>
<p>Esse comando irá gerar o par de chaves pública/privada (<span style="font-family: courier new,courier;">id_dsa</span>/<span style="font-family: courier new,courier;">id_dsa.pub</span>) dentro do diretório <span style="font-family: courier new,courier;">~/.ssh</span>. O segredo aqui é <em><strong>não digitar nenhuma senha quando solicitado</strong></em>, pois assim esse par de chaves permitirá a autenticação sem senha.</p>
<p>Você precisa renomear a chave pública para outro nome, pois fica mais fácil de lembrar e não existe o risco de sua chave pública acabar sobrescrevendo a chave pública do host B se o nome for igual:</p>
<pre style="padding-left: 30px;">[usuario@hostA ~]&gt; <strong>cd .ssh
</strong>[usuario@hostA .ssh]&gt; <strong>mv id_dsa.pub hostA.pub</strong></pre>
<p>Agora temos que enviar essa chave pública para o diretório <span style="font-family: courier new,courier;">.ssh</span> do usuário no host <em><strong>B</strong></em>:</p>
<pre style="padding-left: 30px;">[usuario@hostA .ssh]&gt; <strong>scp hostA.pub usuario@hostB:/home/usuario/.ssh/.</strong>
The authenticity of host 'hostB (192.168.10.5)' can't be established.
RSA key fingerprint is 3f:b6:97:1f:13:f6:a9:38:07:a9:5b:fa:f4:77:63:32.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'hostB' (RSA) to the list of known hosts.
Password:
hostA.pub                                              100%  610     0.6KB/s   00:00</pre>
<p>Note que você ainda teve que digitar a senha para enviar o arquivo <span style="font-family: courier new,courier;">hostA.pub</span> via SCP. Para dizer ao host B que as conexões efetuadas a partir do host A não precisam de senha, <span style="text-decoration: underline;"><strong>no host B</strong></span> faça o seguinte:</p>
<pre style="padding-left: 30px;">[usuario@hostB ~]&gt; <strong>cd .ssh
</strong>[usuario@hostB .ssh]&gt; <strong>cat hostA.pub &gt;&gt; authorized_keys</strong></pre>
<p>Esse comando &#8220;ensina&#8221; o host B que o computador com a chave privada correspondente à chave pública &#8220;<span style="font-family: courier new,courier;">hostA.pub</span>&#8221; não precisa de senha para logar via SSH/SCP (pois você não digitou nenhuma senha quando criou o par de chaves). As chaves públicas de todos os coputadores com essa permissão são armazenadas no arquivo <span style="font-family: courier new,courier;">authorized_keys</span>. Para testar, vá para o host A e faça o seguinte:</p>
<pre style="padding-left: 30px;">[usuario@hostA ~]&gt; <strong>ssh hostB
</strong>Last login: Sat Apr  4 16:47:46 2009 from 192.168.10.4
[usuario@hostB ~]&gt;</pre>
<p>Veja que você logou com sucesso no hostB, a partir do hostA, sem a solicitação de nenhuma senha. Agora qualquer script SCP funcionará sem sua intervenção para digitar nenhuma senha.</p>
<p>Mas atenção: se você tentar logar no hostA a partir do hostB, será solicitada uma senha. Para que o caminho reverso também seja feito, você precisa seguir os mesmos passos acima para o hostB, ou seja: criar um par de chaves pública/privada para o hostB, renomear a chave pública do hostB, enviá-la ao hostA e colá-la no arquivo <span style="font-family: courier new,courier;">authorized_keys</span> do hostA. Assim que você fizer isso, poderá logar e transferir arquivos entre os hosts sem nenhuma senha.</p>
<p>Por último, por questões óbvias de segurança, <strong><em>NÃO UTILIZE ESSE TIPO DE AUTENTICAÇÃO SEM SENHA PARA O USUÁRIO ROOT</em></strong>!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.abrantes.med.br/2009/04/04/ssh-e-scp-sem-senha/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Como usar o Wget para fazer o mirror de um site</title>
		<link>http://www.abrantes.med.br/2009/04/03/como-usar-o-wget-para-fazer-o-mirror-de-um-site/</link>
		<comments>http://www.abrantes.med.br/2009/04/03/como-usar-o-wget-para-fazer-o-mirror-de-um-site/#comments</comments>
		<pubDate>Sat, 04 Apr 2009 01:32:14 +0000</pubDate>
		<dc:creator>Abrantes Araújo Silva Filho</dc:creator>
		
		<category><![CDATA[Informática]]></category>

		<category><![CDATA[linux]]></category>

		<category><![CDATA[mirror]]></category>

		<category><![CDATA[wget]]></category>

		<guid isPermaLink="false">http://www.abrantes.med.br/?p=53</guid>
		<description><![CDATA[Com certeza você já passou por uma situação na qual gostaria de ter uma cópia exata de algum site em seu computador para leitura local off-line ou para servir de fonte de referência rápida. Existem alguns utilitários específicos para fazer esse mirror, mas eu utilizo o bom e conhecido Wget. O comando é o seguinte:
wget [...]]]></description>
			<content:encoded><![CDATA[<p>Com certeza você já passou por uma situação na qual gostaria de ter uma cópia exata de algum site em seu computador para leitura local off-line ou para servir de fonte de referência rápida. Existem alguns utilitários específicos para fazer esse mirror, mas eu utilizo o bom e conhecido <strong>Wget</strong>. O comando é o seguinte:</p>
<pre style="padding-left: 30px;"><strong>wget -m -k -np --wait=20 --limit-rate=20k -U Mozilla <em>URL</em></strong></pre>
<p>Explicando as opções do comando:</p>
<ul>
<li><strong>-m</strong>: habilita outras opções necessárias para fazer o mirror do site;</li>
<li><strong>-k</strong>: converte os links das páginas para ajustá-los à visualização local;</li>
<li><strong>-np</strong>: não faz o mirror do diretório pai, garantindo assim que somente os arquivos abaixo de uma certa hierarquia são baixados;</li>
<li><strong>&#8211;wait=20</strong>: faz com que o wget aguarde 20 segundos entre tentativas de retrievals. Essa opção é necessária para diminuir a carga no servidor e impedir que você seja colocado em uma blacklist;</li>
<li><strong>&#8211;limit-rate=20k</strong>: limita a velocidade do download para 20KB/s. Essa opção é necessária para diminuir a carga no servidor e impedir que você seja colocado em uma blacklist;</li>
<li><strong>-U Mozilla</strong>: faz com que o wget se identifique para o servidor como o browser Mozilla ao invés de se identificar como Wget. Isso é necessário pois alguns servidores se recusam a exibir o conteúdo caso o cliente não se identifique como um browser válido; e</li>
<li><strong>URL</strong>: é o endereço da URL com a qual você iniciará o mirror (por exemplo, a página inicial do site).</li>
</ul>
<p>Apesar de ser possível fazer o mirror, lembre-se de que o tamanho do site pode ser muito grande, o que levará muito tempo para o download. Também não é uma boa idéia sair fazendo mirrors de todos os sites por aí: <em>seja criterioso e faça somente o mirror de alguma coisa que você realmente precisa usar com freqüência, mesmo estanto off-line</em>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.abrantes.med.br/2009/04/03/como-usar-o-wget-para-fazer-o-mirror-de-um-site/feed/</wfw:commentRss>
		</item>
		<item>
		<title>fsck congela a inicialização do SLES</title>
		<link>http://www.abrantes.med.br/2009/04/01/fsck-congela-a-inicializacao-do-sles/</link>
		<comments>http://www.abrantes.med.br/2009/04/01/fsck-congela-a-inicializacao-do-sles/#comments</comments>
		<pubDate>Wed, 01 Apr 2009 17:35:02 +0000</pubDate>
		<dc:creator>Abrantes Araújo Silva Filho</dc:creator>
		
		<category><![CDATA[Informática]]></category>

		<category><![CDATA[fsck]]></category>

		<category><![CDATA[linux]]></category>

		<category><![CDATA[sles]]></category>

		<category><![CDATA[tune2fs]]></category>

		<guid isPermaLink="false">http://www.abrantes.med.br/?p=51</guid>
		<description><![CDATA[Há alguns dias reiniciamos um servidor de banco de dados para manutenção de rotina e, ao dar boot, o SLES forçava uma checagem dos discos via fsck que congelava o computador (um Dell PowerEdge 2900, com 2 processadores 64 bits, 8 GB RAM, 10 discos SAS de 300GB cada, com placa controladora Dell Perc6, sendo [...]]]></description>
			<content:encoded><![CDATA[<p>Há alguns dias reiniciamos um servidor de banco de dados para manutenção de rotina e, ao dar boot, o SLES forçava uma checagem dos discos via fsck que congelava o computador (um Dell PowerEdge 2900, com 2 processadores 64 bits, 8 GB RAM, 10 discos SAS de 300GB cada, com placa controladora Dell Perc6, sendo os discos configurados como RAID 10).</p>
<p>Ainda não descobrimos porque o fsck congelava essa máquina, mas para colocá-la novamente on-line, tivemos que entrar no Rescue System do SLES (com o DVD de instalação), montar o sistema de arquivos e utilizar o comando <strong>tune2fs</strong> para desabilitar a checagem do fsck durante o boot. Quem descobriu o problema e a solução foi o pessoal da Spirit Linux!</p>
<p>O comando <strong>tune2fs -l /dev/sda6</strong>, por exemplo, lista diversos parâmetros do filesystem. Preste atenção aos parâmetros:</p>
<ul>
<li><em>Maximum mount count</em>: define o número máximo de vezes em que o sistema pode ser montado antes de ter uma checagem forçada pelo fsck; e</li>
<li><em>Check interval</em>: define o intervalo de tempo máximo que o sistema poderá ficar antes de ter uma checagem forçada pelo fsck.</li>
</ul>
<p>No nosso caso, o <em>maximum mount count</em> era de 500, e o <em>check interval</em> de 2 meses. Para desabilitar a checagem forçada do fsck, fizemos:</p>
<pre>tune2fs -c 0 /dev/sda6
tune2fs -i 0d /dev/sda6</pre>
<p>Esses comandos configuram o sistema de arquivos para ignorar a contagem de quantas vezes o sistema é montado e o intervalo sem uma checagem pelo fsck. Feito isso o sistema foi inicializado normalmente.</p>
<p>Para maiores informações, veja a documentação do tune2fs.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.abrantes.med.br/2009/04/01/fsck-congela-a-inicializacao-do-sles/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Como desligar a tela de splash na inicialização</title>
		<link>http://www.abrantes.med.br/2009/03/29/como-desligar-a-tela-de-splash-na-inicializacao/</link>
		<comments>http://www.abrantes.med.br/2009/03/29/como-desligar-a-tela-de-splash-na-inicializacao/#comments</comments>
		<pubDate>Sun, 29 Mar 2009 23:20:39 +0000</pubDate>
		<dc:creator>Abrantes Araújo Silva Filho</dc:creator>
		
		<category><![CDATA[Informática]]></category>

		<category><![CDATA[grub]]></category>

		<category><![CDATA[linux]]></category>

		<category><![CDATA[openSUSE]]></category>

		<category><![CDATA[sles]]></category>

		<category><![CDATA[splash]]></category>

		<guid isPermaLink="false">http://www.abrantes.med.br/?p=48</guid>
		<description><![CDATA[Quando você instala o SuSE Linux Enterprise Server (SLES) ou o openSUSE, por padrão é instalada uma tela de splash (splash screen) que é exibida durante a inicialização do sistema.
Fica bonitinho, mas existe um problema: se ocorrer algum erro que congele o sistema durante a inicialização, você estará vendo a tela de splash, não conseguirá [...]]]></description>
			<content:encoded><![CDATA[<p>Quando você instala o SuSE Linux Enterprise Server (SLES) ou o openSUSE, por padrão é instalada uma tela de splash (splash screen) que é exibida durante a inicialização do sistema.</p>
<p>Fica bonitinho, mas existe um problema: se ocorrer algum erro que congele o sistema durante a inicialização, você estará vendo a tela de splash, não conseguirá ver a mensagem de erro e não terá a menor idéia do que está ocorrendo. Na verdade, estou escrevendo essa dica pois exatamente hoje tive um problema em um servidor: ao dar boot o sistema imediatamente congelava e a única coisa que eu via era a tela de splash do SLES&#8230; não sabíamos que problema estava causando o congelamento do sistema (a saída foi utilizar o DVD do SLES para dar boot, logar no Rescue System e alterar o Grub para não mostrar a tela de splash).</p>
<p>Portanto, aprendemos da maneira mais difícil possível que é melhor deixar essa tela de splash desligada de uma vez por todas. Para fazer isso edite o arquivo <strong>/boot/grub/menu.lst</strong> (via shell ou YaST) e faça o seguinte:</p>
<ul>
<li>Para mostrar as mensagens de inicialização, altere opção de splash e <em>mude para splash=verbose</em></li>
<li>Se quiser, além de alterar a opção de splash, <em>retire também a opção vga=0&#215;317</em> para que o boot seja totalmente em modo texto</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.abrantes.med.br/2009/03/29/como-desligar-a-tela-de-splash-na-inicializacao/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Instalação do Subversion 1.6.0 no SuSE Linux Enterprise Server 10</title>
		<link>http://www.abrantes.med.br/2009/03/27/instalacao-do-subversion-16-no-suse-linux-enterprise-server-10-sles/</link>
		<comments>http://www.abrantes.med.br/2009/03/27/instalacao-do-subversion-16-no-suse-linux-enterprise-server-10-sles/#comments</comments>
		<pubDate>Sat, 28 Mar 2009 01:41:56 +0000</pubDate>
		<dc:creator>Abrantes Araújo Silva Filho</dc:creator>
		
		<category><![CDATA[Informática]]></category>

		<category><![CDATA[linux]]></category>

		<category><![CDATA[sles]]></category>

		<category><![CDATA[subversion]]></category>

		<guid isPermaLink="false">http://www.abrantes.med.br/?p=45</guid>
		<description><![CDATA[Para quem ainda não instalou a nova versão do Subversion, aqui vai um tutorial completo e detalhado da instalação do Subversion 1.6.0 no SuSE Linux Enterprise Server 10 (SLES-10).
Este tutorial é uma atualização do meu tutorial antigo (Subversion 1.5.6 no SLES-10) com algumas modificações específicas para a versão mais nova do Subversion.
Por favor: se você [...]]]></description>
			<content:encoded><![CDATA[<p>Para quem ainda não instalou a nova versão do Subversion, aqui vai um tutorial completo e detalhado da instalação do Subversion 1.6.0 no SuSE Linux Enterprise Server 10 (SLES-10).</p>
<p>Este tutorial é uma atualização do meu tutorial antigo (<a href="http://www.abrantes.med.br/2009/03/17/instalacao-do-subversion-15-no-suse-linux-enterprise-server-10/" target="_blank">Subversion 1.5.6 no SLES-10</a>) com algumas modificações específicas para a versão mais nova do Subversion.</p>
<p>Por favor: se você seguiu o tutorial da versão 1.5.6 (ou se já instalou alguma outra versão do Subversion) e agora está seguindo este tutorial para atualizar, tome o cuidado de retirar as bibliotecas antigas do sistema (a Seção 2.4 mostra como fazer isso) para que a compilação não link a nova versão com as bibliotecas da versão antiga.</p>
<p>Acesse o documento em <a href="http://www.abrantes.med.br/html_docs/subversion/subversion160.html" target="_blank">HTML</a> (para leitura on-line) ou <a href="http://www.abrantes.med.br/html_docs/subversion/subversion160.pdf">PDF</a> (para impressão).</p>
]]></content:encoded>
			<wfw:commentRss>http://www.abrantes.med.br/2009/03/27/instalacao-do-subversion-16-no-suse-linux-enterprise-server-10-sles/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Subversion 1.6 liberado!</title>
		<link>http://www.abrantes.med.br/2009/03/25/subversion-16-liberado/</link>
		<comments>http://www.abrantes.med.br/2009/03/25/subversion-16-liberado/#comments</comments>
		<pubDate>Wed, 25 Mar 2009 11:20:00 +0000</pubDate>
		<dc:creator>Abrantes Araújo Silva Filho</dc:creator>
		
		<category><![CDATA[Informática]]></category>

		<category><![CDATA[linux]]></category>

		<category><![CDATA[subversion]]></category>

		<guid isPermaLink="false">http://www.abrantes.med.br/?p=41</guid>
		<description><![CDATA[No dia 20/03/2009 a versão 1.6 do Subversion foi liberada para uso em sistemas de produção, e os administradores de sistemas que o utilizam devem considera seriamente a possibilidade de atualizar para a última versão (a leitura das Release Notes é indispensável para saber o que foi mudado e se isso irá impactar nos sistemas [...]]]></description>
			<content:encoded><![CDATA[<p>No dia 20/03/2009 a versão 1.6 do Subversion foi liberada para uso em sistemas de produção, e os administradores de sistemas que o utilizam devem considera seriamente a possibilidade de <em>atualizar para a última versão</em> (a leitura das <a href="http://subversion.tigris.org/svn_1.6_releasenotes.html" target="_blank">Release Notes</a> é indispensável para saber o que foi mudado e se isso irá impactar nos sistemas legados).</p>
<p>A atualização é muito simples: basta instalar os novos binários e bibliotecas sobre as versões antigas.</p>
<p>Alguns pontos importantes:</p>
<ul>
<li>Mesmo que o Subversion seja atualizado para a versão 1.6, <em>os repositórios não são atualizados automaticamente</em>. Para fazer isso deve-se usar o comando <strong>svnadmin upgrade</strong>;</li>
<li>Como o formato das working copies também mudou, <em>clientes antigos (1.5 e anteriores) não serão capazes de trabalhar com as working copies produzidas por um servidor 1.6</em>;</li>
<li>Se um cliente 1.6 encontrar uma working copy antiga, ele irá <em>atualizar automaticamente a working copy</em>; e</li>
<li>Para compilar a partir dos fontes, um novo pré-requisito é necessário: SQLite (use a opção <code>--with-sqlite) no comando configure.</code></li>
</ul>
<p>Se você usa o TortoiseSVN como cliente em máquinas Windows, deve atualizar também para a versão 1.6 (disponível para download em <a href="http://tortoisesvn.tigris.org/" target="_blank">http://tortoisesvn.tigris.org</a>).</p>
<p>Assim que puder, atualizarei meu <a href="http://www.abrantes.med.br/2009/03/17/instalacao-do-subversion-15-no-suse-linux-enterprise-server-10/" target="_blank">tutorial de instalação do Subversion</a> para a versão mais nova.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.abrantes.med.br/2009/03/25/subversion-16-liberado/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Instalação do PostgreSQL no SuSE Linux Enterprise Server 10</title>
		<link>http://www.abrantes.med.br/2009/03/23/instalacao-do-postgresql-no-sles/</link>
		<comments>http://www.abrantes.med.br/2009/03/23/instalacao-do-postgresql-no-sles/#comments</comments>
		<pubDate>Mon, 23 Mar 2009 14:50:27 +0000</pubDate>
		<dc:creator>Abrantes Araújo Silva Filho</dc:creator>
		
		<category><![CDATA[Informática]]></category>

		<category><![CDATA[linux]]></category>

		<category><![CDATA[PostgreSQL]]></category>

		<category><![CDATA[sles]]></category>

		<guid isPermaLink="false">http://www.abrantes.med.br/?p=34</guid>
		<description><![CDATA[A versão do PostgreSQL que é disponibilizada para o SuSE Linux Enterprise Server 10 (SLES-10) é a 8.1. Se você quiser utilizar uma versão mais nova terá que baixar os fontes e instalar manualmente. Esse procedimento também é recomendado se você quiser um controle preciso do locale e do encoding de seu database cluster.
O procedimento [...]]]></description>
			<content:encoded><![CDATA[<p>A versão do PostgreSQL que é disponibilizada para o SuSE Linux Enterprise Server 10 (SLES-10) é a 8.1. Se você quiser utilizar uma versão mais nova terá que baixar os fontes e instalar manualmente. Esse procedimento também é recomendado se você quiser um controle preciso do <em>locale</em> e do <em>encoding</em> de seu database cluster.</p>
<p>O procedimento que eu uso também inclui atualizar a versão da Tcl do SLES, principalmente porque a Tcl padrão do SLES não é thread-safe, mas se você não precisa dessa linguagem, esse passo pode ser pulado. O processo é o seguinte:</p>
<p><span style="text-decoration: underline;"><strong>Instale os RPMs oficiais do PostgreSQL para o SLES</strong></span></p>
<p>Pode parecer estranho fazer isso, já que esse iremos instalar uma versão mais nova manualmente. Mas instalar os RPMs oficiais (postgresql, postgresql-server, postgresql-devel, etc.) adianta uma série de tarefas, como criar o usuário e o grupo <em>postgres</em>, e os scripts de inicialização automática (que mais adiante serão modificados).</p>
<p><span style="text-decoration: underline;"><strong>Instalação da Tcl:</strong></span></p>
<p>Faça o download da versão mais nova da Tcl em <a href="http://www.tcl.tk/" target="_blank">www.tcl.tk</a> (atualmente é a versão 8.5.6),  configure e instale com os comandos:</p>
<pre style="padding-left: 30px;">./configure --enable-threads --prefix=/usr/local/lib/tcl8.5.6
make
make install</pre>
<p><span style="text-decoration: underline;"><strong>Instalação do PostgreSQL:</strong></span></p>
<p>Faça o download da versão mais nova do PostgreSQL em <a href="http://www.postgresql.org/" target="_blank">www.postgresql.org</a> (atualmente é a versão 8.3.7), configure e instale com os comandos:</p>
<pre style="padding-left: 30px;">./configure --prefix=/usr/local/pgsql --enable-nls --with-perl \
--with-python --with-tcl --with-tclconfig=/usr/local/lib/tcl8.5.6/lib \
--with-openssl --with-ldap --enable-thread-safety

make
make check
make install</pre>
<p>Esses comandos irão instalar o PostgreSQL em /usr/local/pgsql. Agora você deve acertar o owner:group, as permissões desse diretório, e criar uma senha para o usuário postgres:</p>
<pre style="padding-left: 30px;">chown postgres:postgres /usr/local/pgsql -R
chmod 750 /usr/local/pgsl
passwd postgres</pre>
<p>Ajuste o diretório /usr/local/pgsql como o HOME do usuários postgres, editando seu arquivo /etc/passwd para ficar parecido com:</p>
<pre style="padding-left: 30px;">postgres:x:26:26:PostgreSQL Server:/usr/local/pgsql:/bin/bash</pre>
<p>Crie um arquivo &#8220;.bashrc&#8221; no diretório HOME do usuário postgres para alterar o PATH e a LD_LIBRARY_PATH:</p>
<pre style="padding-left: 30px;">export PATH=/usr/local/pgsql/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/pgsql/lib:/usr/local/lib/tcl8.5.6/lib:$LD_LIBRARY_PATH</pre>
<p><span style="text-decoration: underline;"><strong>Criação do database cluster com locale e encoding específicos:</strong></span></p>
<p>Como usuário postgres, crie dois diretórios em seu HOME e um arquivo (server.log):</p>
<pre style="padding-left: 30px;">mkdir data
chmod 700 data
mkdir log
touch log/server.log</pre>
<p>Agora crie o database cluster com locale = C e enconding padrão = UTF-8:</p>
<pre style="padding-left: 30px;">initdb --locale=C --encoding=utf8 -D /usr/local/pgsql/data</pre>
<p>Com essas configurações você está dizendo que o encoding padrão é UTF-8 (opção &#8211;encoding=utf8), mas que você poderá criar bancos de dados com quaisquer outros encoding suportados pelo PostgreSQL (opção &#8211;locale=C). Teste iniciando o PostgreSQL e verificando seu status:</p>
<pre style="padding-left: 30px;">pg_ctl start -s -w -p /usr/local/pgsql/bin/postmaster -D /usr/local/pgsql/data -l /usr/local/pgsql/log/server.log
pg_ctl status -D /usr/local/pgsql/data</pre>
<p><span style="text-decoration: underline;"><strong>Ajuste de /etc/init.d/postgresql:</strong></span></p>
<p>A última coisa a ser feita é ajustar o arquivo /etc/init.d/postgresql apontando corretamente as variáveis para os novos diretórios. Um modelo já ajustado pode ser <a href="http://www.abrantes.med.br/html_docs/postgres/postgresql">baixado aqui</a>. Para que o PostgreSQL inicie automaticamente durante o boot, use o YaST e ajuste os runlevels.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.abrantes.med.br/2009/03/23/instalacao-do-postgresql-no-sles/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Crie senhas fortes com o pwgen</title>
		<link>http://www.abrantes.med.br/2009/03/21/crie-senhas-fortes-com-o-pwgen/</link>
		<comments>http://www.abrantes.med.br/2009/03/21/crie-senhas-fortes-com-o-pwgen/#comments</comments>
		<pubDate>Sat, 21 Mar 2009 04:13:28 +0000</pubDate>
		<dc:creator>Abrantes Araújo Silva Filho</dc:creator>
		
		<category><![CDATA[Informática]]></category>

		<category><![CDATA[segurança]]></category>

		<category><![CDATA[senhas]]></category>

		<guid isPermaLink="false">http://www.abrantes.med.br/?p=30</guid>
		<description><![CDATA[Se você precisa criar senhas fortes, aleatórias, difíceis de serem quebradas, uma boa alternativa é utilizar o Password Generate (pwgen). Sua sintaxe é extremamente simples:
pwgen [ OPTION ] [ pw_length ] [ num_pw ]
onde pw_length indica o tamanho da senha, num_pw indica quantas senhas diferentes serão geradas e as opções mais importantes são:

-c: inclui pelo [...]]]></description>
			<content:encoded><![CDATA[<p>Se você precisa criar senhas fortes, aleatórias, difíceis de serem quebradas, uma boa alternativa é utilizar o <a title="pwgen" href="http://pwgen.sourceforge.net/" target="_blank">Password Generate (pwgen)</a>. Sua sintaxe é extremamente simples:</p>
<pre><strong>pwgen [ OPTION ] [ pw_length ] [ num_pw ]</strong></pre>
<p>onde <em>pw_length</em> indica o tamanho da senha, <em>num_pw</em> indica quantas senhas diferentes serão geradas e as opções mais importantes são:</p>
<ul>
<li><strong>-c</strong>: inclui pelo menos 1 caractere maiúsculo (ativada por padrão)</li>
<li><strong>-n</strong>: inclui pelo menos 1 número (ativada por padrão)</li>
<li><strong>-y</strong>: inclui pelo menos 1 caractere especial</li>
<li><strong>-1</strong>: gera uma senha por linha</li>
<li><strong>-s</strong>: gera senhas absolutamente aleatórias e de muito difícil memorização (se essa opção não é utilizada, as senhas geradas são de memorização mais fácil)</li>
</ul>
<p>Alguns exemplos:</p>
<pre style="padding-left: 60px;"><strong>pwgen 10 1</strong>
ohTai7aiy1

<strong>pwgen -s 10 1</strong>
k3KLQgoOsV

<strong>pwgen -y 10 1</strong>
jaZ5poon%i

<strong>pwgen -sy 10 1</strong>
=?Fh;V2JK$

<strong>pwgen -1sy 15 2</strong>
&lt;]T-,v9cT.Jm[Y^
^_?&lt;&gt;&lt;x1Ai+k#Uc</pre>
<p>Senhas geradas com a opção <strong>-s</strong> são mais recomendadas para tarefas administrativas (não-humanas) do computador pois do contrário, conforme o próprio manual do pwgen informa, &#8220;&#8230; it&#8217;s almost guaranteed that users will simply write the password on a piece of paper taped to the monitor&#8221;.</p>
<p>Para consultas as outras opções, leia a man page do comando.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.abrantes.med.br/2009/03/21/crie-senhas-fortes-com-o-pwgen/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
