<?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>OFF TOPIC! &#187; OpenSource</title>
	<atom:link href="http://www.luizxx.com/archives/category/opensource/feed" rel="self" type="application/rss+xml" />
	<link>http://www.luizxx.com</link>
	<description>Luizxx Expansion Set</description>
	<lastBuildDate>Fri, 16 Jul 2010 04:13:27 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>OpenSuSE 11.3</title>
		<link>http://www.luizxx.com/archives/743</link>
		<comments>http://www.luizxx.com/archives/743#comments</comments>
		<pubDate>Fri, 16 Jul 2010 04:12:27 +0000</pubDate>
		<dc:creator>Luiz</dc:creator>
				<category><![CDATA[OpenSource]]></category>
		<category><![CDATA[Unix / Linux]]></category>
		<category><![CDATA[OpenSuse]]></category>

		<guid isPermaLink="false">http://www.luizxx.com/?p=743</guid>
		<description><![CDATA[A versão 11.3 do OpenSuSE foi lançada trazendo inúmeras atualizações e melhorias no sistema, entre elas Kernel 2.6.34, suporte nativo a MariaDB, Gnome 2.30.1 e KDE SC 4.4.4 nas versões de 32 e 64 bits. Obs. Está disponível também no sistema o preview do Gnome 3.0! Mais informações no site oficial do projeto&#8230;]]></description>
			<content:encoded><![CDATA[<p><img class="alignright size-full  wp-image-744" title="OpenSuSE 11.3" src="http://www.luizxx.com/wp-content/uploads/2010/07/Opensuse_8.png" alt="OpenSuSE 11.3" width="125" height="125" />A versão 11.3 do OpenSuSE foi lançada trazendo inúmeras atualizações e melhorias no sistema, entre elas Kernel 2.6.34, suporte nativo a MariaDB, Gnome 2.30.1 e KDE SC 4.4.4 nas versões de 32 e 64 bits.</p>
<p><strong>Obs.</strong> Está disponível também no sistema o preview do Gnome 3.0!</p>
<p>Mais informações no <a title="OpenSuSE" href="http://www.opensuse.org/" target="_blank">site oficial</a> do projeto&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.luizxx.com/archives/743/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[ejabberd] Reload module via Erlang console</title>
		<link>http://www.luizxx.com/archives/706</link>
		<comments>http://www.luizxx.com/archives/706#comments</comments>
		<pubDate>Wed, 02 Jun 2010 22:38:41 +0000</pubDate>
		<dc:creator>Luiz</dc:creator>
				<category><![CDATA[OpenSource]]></category>
		<category><![CDATA[ejabberd]]></category>
		<category><![CDATA[erlang]]></category>

		<guid isPermaLink="false">http://www.luizxx.com/?p=706</guid>
		<description><![CDATA[It is possible to reload some ejabberd modules from disk without restarting ejabberd service. This allows you to modify erlang source files (.erl) and reload them without the need of restarting. Obs. Reloading modules is also possible via the web interface since ejabberd 0.9.1. Open an Erlang console on the ejabberd node with: # ejabberdctl [...]]]></description>
			<content:encoded><![CDATA[<p>It is possible to reload some ejabberd modules from disk without restarting ejabberd service.<br />
This allows you to modify erlang source files (.erl) and reload them without the need of restarting.</p>
<p><strong>Obs.</strong> Reloading modules is also possible via the web interface since ejabberd 0.9.1.</p>
<p>Open an Erlang console on the ejabberd node with:<br />
# ejabberdctl debug</p>
<p>And select the module you wish to compile with:<br />
<em>c(mod_version).</em></p>
<p>If you just want to reload the .beam file (without recompiling the module), use:<br />
<em>l(mod_version).</em></p>
<p><strong>Obs.</strong> <em>Replace &#8220;mod_version&#8221; with the name of the file you want to recompile / reload.</em></p>
]]></content:encoded>
			<wfw:commentRss>http://www.luizxx.com/archives/706/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Export user list in ejabberd</title>
		<link>http://www.luizxx.com/archives/695</link>
		<comments>http://www.luizxx.com/archives/695#comments</comments>
		<pubDate>Wed, 02 Jun 2010 22:19:18 +0000</pubDate>
		<dc:creator>Luiz</dc:creator>
				<category><![CDATA[OpenSource]]></category>
		<category><![CDATA[ejabberd]]></category>
		<category><![CDATA[erlang]]></category>

		<guid isPermaLink="false">http://www.luizxx.com/?p=695</guid>
		<description><![CDATA[There are lots of ways to upgrade ejabberd service without downtime, but sometimes when managing a corporate instant messaging server we need to reformulate our entire messaging architecture in a new server and we can just export all users and passwords to a list and then import them to the new server using just the [...]]]></description>
			<content:encoded><![CDATA[<p>There are lots of ways to upgrade ejabberd service without downtime, but sometimes when managing a corporate instant messaging server we need to reformulate our entire messaging architecture in a new server and we can just export all users and passwords to a list and then import them to the new server using just the command line and mod_cltextra / mod_admin module.</p>
<p>There&#8217;s no automated way to export all users like <a href="http://www.igniterealtime.org/projects/openfire/index.jsp">Openfire</a> does, but we can dump our entire database, consider that you are using the internal erlang mnesia database, to a text file and filter just the values we want (in this case, users and passwords) using the following steps:</p>
<ol>
<li>Dump the database to a text file:</li>
<blockquote><p># ejabberd_ctl ejabberd@localhost dump /tmp/mnesia.dump</p></blockquote>
<li>Filter the dump to get only registered users</li>
<blockquote><p># cat /tmp/mnesia.dump | grep &#8216;{passwd,{&#8216; > /tmp/tmplist.txt</p></blockquote>
<li>Convert your temporary generated file to the format you prefer, in this case getting a list (username, hostname, password):<br />
<blockquote><p># sed -e &#8216;s/{passwd,{&#8220;//g;s/&#8221;,&#8221;/ /g;s/&#8221;},&#8221;/ /g;s/&#8221;}.//g&#8217; /tmp/tmplist.txt > /tmp/userlist.txt</p></blockquote>
</ol>
<p><strong>Obs.</strong> The database registers that store user information in the dump have the following format:<br />
<em>{passwd,{&#8220;USER&#8221;,&#8221;VIRTUAL-HOST&#8221;},&#8221;PASSWORD&#8221;}.</em></p>
]]></content:encoded>
			<wfw:commentRss>http://www.luizxx.com/archives/695/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[Irssi] Conectando a vários servidores IRC</title>
		<link>http://www.luizxx.com/archives/493</link>
		<comments>http://www.luizxx.com/archives/493#comments</comments>
		<pubDate>Wed, 01 Jul 2009 20:43:15 +0000</pubDate>
		<dc:creator>Luiz</dc:creator>
				<category><![CDATA[OpenSource]]></category>
		<category><![CDATA[IRC]]></category>

		<guid isPermaLink="false">http://www.luizxx.com/?p=493</guid>
		<description><![CDATA[Muitas pessoas tem duvidas quando a conexão em multiplos servidores com o Irssi, que apesar de utilizar uma forma diferente dos outros IRC clients mais tradicionais apresenta muita eficiência e facilidade durante o uso! Para abrir conexão em um novo servidor sem perder a conexão atual utilize: /CONNECT irc.server.net Lembrando que para se conectar a [...]]]></description>
			<content:encoded><![CDATA[<p>Muitas pessoas tem duvidas quando a conexão em multiplos servidores com o <a href="http://irssi.org/">Irssi</a>, que apesar de utilizar uma forma diferente dos outros IRC clients mais tradicionais apresenta muita eficiência e facilidade durante o uso!</p>
<p>Para abrir conexão em um novo servidor sem perder a conexão atual utilize:</p>
<blockquote><p>/CONNECT irc.server.net</p></blockquote>
<p><em>Lembrando que para se conectar a um novo servidor, finalizando a conexão anterior o comando chamado é &#8220;/SERVER irc.newserver.net&#8221;.</em></p>
<p>Para listar os servidores atualmente conectados na máquina utilize o comando /SERVER sem nenhum parâmetro adicional, que mostrará uma saída parecida com:</p>
<blockquote><p>-!- oftc: irc.oftc.net:6667 ()<br />
-!- freenode: irc.freenode.net:6667 ()<br />
-!- efnet: irc.efnet.org:6667 ()</p></blockquote>
<p>Como mostrado acima, cada conexão com servidor é classificada por uma tag diferente (normalmente o nome do servidor, logo após o sinal <em>-!-</em>) que será utilizada para fazer referência durante a execução de comandos.</p>
<p>Para se desconectar de algum dos servidores utilize:</p>
<blockquote><p>/DISCONNECT freenode</p></blockquote>
<p><em>Onde &#8220;freenode&#8221; é a tag que faz referência à conexão realizada no irc.freenode.net.</em></p>
<p>A tag de referência pode ser utilizada em boa parte dos comandos disponíveis, assim como:</p>
<blockquote><p>/MSG -tag nick mensagem<br />
/JOIN -tag #channel<br />
/QUERY -tag nick<br />
/TOPIC -tag #channel novo topico</p></blockquote>
<p>Para aqueles que ainda não conhecem o Irssi, ele é um IRC client rico em funcionalidades, leve, flexível, tem suporte a temas, possui suporte a <a href="http://www.silcnet.org/">SILC</a>, tem uma ótima integração com o <a href="http://www.gnu.org/software/screen/">GNU Screen</a> e não necessita de bibliotecas gráficas para a execução. Recomendo a todos!</p>
<p>Recomendo a leitura do &#8220;<a href="http://quadpoint.org/articles/irssi">A Guide to Efficiently Using Irssi and Screen</a>&#8221; para quem está iniciando sua utilização.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.luizxx.com/archives/493/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Jabber/XMPP Servers</title>
		<link>http://www.luizxx.com/archives/338</link>
		<comments>http://www.luizxx.com/archives/338#comments</comments>
		<pubDate>Fri, 23 Jan 2009 01:27:56 +0000</pubDate>
		<dc:creator>Luiz</dc:creator>
				<category><![CDATA[OpenSource]]></category>
		<category><![CDATA[Jabber]]></category>
		<category><![CDATA[XMPP]]></category>

		<guid isPermaLink="false">http://luizxx.com/?p=338</guid>
		<description><![CDATA[Recentemente realizei a migração do servidor jabber daqui do site de Openfire para EJabberd. Até o momento tenho tido resultados melhores e o serviço está mais adequado ao ambiente, porém vou citar algumas vantagens e desvantagens desta troca que foi realizada para que o pessoal que tem dúvida possa ter mais um caso para análise. [...]]]></description>
			<content:encoded><![CDATA[<p>Recentemente realizei a migração do servidor jabber daqui do site de Openfire para EJabberd. Até o momento tenho tido resultados melhores e o serviço está mais adequado ao ambiente, porém vou citar algumas vantagens e desvantagens desta troca que foi realizada para que o pessoal que tem dúvida possa ter mais um caso para análise.</p>
<p>Em termos de carga de servidor a diferença é absurda, o Ejabberd tem um consumo muito baixo de recursos, principalmente se comparado a máquina virtual Java do Openfire. Outra vantagem que pude perceber é a facilidade em se montar um cluster de máquinas para atender alta demanda do serviço, apesar dos plugins de cluster do Openfire serem bem funcionais e fáceis achei bem interessante o método utilizado pelo Ejabberd.</p>
<p>Uma desvantagem que podemos perceber é a falta da interface administrativa super completa do Openfire, a ausência de qualquer edição de arquivos de configuração e o gerenciamento bem prático de plugins, entre eles os gateways de messengers externos e principalmente o plugin de auditoria que permite facilmente gerenciar as conversas e conexões da rede.</p>
<p>Com a utilização do Ejabberd na instalação do servidor aberto aqui do projeto do site, onde qualquer pessoa pode se cadastrar e utilizar os serviços e o gerenciamento é quase que totalmente realizado através dos <em>clients</em> disponívels, a migração foi uma alternativa bem interessante que trouxe diversos benefícios e principalmente novos conhecimentos em Erlang e no banco de dados Mnesia.</p>
<p>Em geral, recomendo a todos o Ejabberd como servidor Jabber/XMPP!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.luizxx.com/archives/338/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Mediawiki Search Engine</title>
		<link>http://www.luizxx.com/archives/273</link>
		<comments>http://www.luizxx.com/archives/273#comments</comments>
		<pubDate>Tue, 16 Dec 2008 21:08:07 +0000</pubDate>
		<dc:creator>Luiz</dc:creator>
				<category><![CDATA[OpenSource]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://luizxx.com/?p=273</guid>
		<description><![CDATA[Recentemente realizei a instalação de um sistema de ajuda/knowledge base rodando com base em Mediawiki e MySQL, porém após alguns dias quando já havia muito conteúdo e diversos usuários registrados fui notificado que a pesquisa (search) não estava sendo realizada corretamente e não retornava nenhum resultado ao serem pesquisadas as palavras php e asp (que [...]]]></description>
			<content:encoded><![CDATA[<p>Recentemente realizei a instalação de um sistema de ajuda/knowledge base rodando com base em <a href="http://www.mediawiki.org">Mediawiki</a> e <a href="http://www.mysql.com">MySQL</a>, porém após alguns dias quando já havia muito conteúdo e diversos usuários registrados fui notificado que a pesquisa (search) não estava sendo realizada corretamente e não retornava nenhum resultado ao serem pesquisadas as palavras php e asp (que abrangem boa parte do conteúdo até o momento).</p>
<p>Após algum tempo pesquisando verifiquei que o sistema de busca padrão do Mediawiki é o &#8220;fulltext search&#8221;, que por padrão ignora quaisquer palavras com menos de 4 caracteres nas pesquisas.</p>
<p>Para contornar esta situação era necessário setar o padrão mínimo de caracteres para 3 diretamente no banco de dados através do próprio my.cnf setando a variável &#8220;ft_min_word_len&#8221; para o valor desejado e reiniciando o serviço do MySQL:</p>
<blockquote><p>[mysqld]<br />
&#8230;<br />
<span style="color: #aa0000;">ft_min_word_len=3</span></p></blockquote>
<p>E após a alteração do banco de dados é necessário recriar os índices de pesquisa do Mediawiki para utilizar o novo padrão, para realizar esta operação entre com a seguinte <em>query</em> em sua base de dados:</p>
<p>REPAIR TABLE searchindex QUICK;</p>
<p>Lembrando que a tabela searchindex pode ter o nome diferente dependendo do prefixo utilizado durante a instalação do mediawiki / criação da base de dados, por exemplo, se meu <em>prefix</em> é &#8220;wiki_&#8221; a minha tabela terá o nome &#8220;wiki_searchindex&#8221;.</p>
<p>Maiores informações de fulltext search na <a href="http://dev.mysql.com/doc/refman/4.1/en/fulltext-fine-tuning.html">documentação oficial do MySQL</a>&#8230;</p>
<p>Lembrando que existem <a href="http://http://www.mediawiki.org/wiki/Fulltext_search_engines">diversas engines</a> que aprimoram o sistema de busca do Mediawiki, como Lucene-search e Sphinx, se seu sistema de wiki for relativamente grande ou complexo recomendo dar uma olhada&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.luizxx.com/archives/273/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Firefox Download Day!</title>
		<link>http://www.luizxx.com/archives/70</link>
		<comments>http://www.luizxx.com/archives/70#comments</comments>
		<pubDate>Tue, 17 Jun 2008 18:40:38 +0000</pubDate>
		<dc:creator>Luiz</dc:creator>
				<category><![CDATA[OpenSource]]></category>

		<guid isPermaLink="false">http://luizxx.com/archives/70</guid>
		<description><![CDATA[Com o lançamento do release candidate do Firefox 3 disponibilizado hoje no site oficial o número de downloads está crescendo incrívelmente rápido! A nova release está bem estável, rápida e completa, definitivamente vale a pena baixar e experimentar esta nova versão do navegador mais flexível da atualidade! Para acompanhar o número de downloads oficiais do [...]]]></description>
			<content:encoded><![CDATA[<p>Com o lançamento do release candidate do Firefox 3 disponibilizado hoje no <a href="http://www.firefox.com" target="_blank">site oficial</a> o número de downloads está crescendo incrívelmente rápido! A nova release está bem estável, rápida e completa, definitivamente vale a pena baixar e experimentar esta nova versão do navegador mais flexível da atualidade!</p>
<p>Para acompanhar o número de downloads oficiais do Firefox está disponível o <a href="http://downloadcounter.sj.mozilla.com/" target="_blank">download counter oficial da Mozilla</a>!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.luizxx.com/archives/70/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Nagios PNP v0.4.4</title>
		<link>http://www.luizxx.com/archives/68</link>
		<comments>http://www.luizxx.com/archives/68#comments</comments>
		<pubDate>Fri, 23 May 2008 21:33:40 +0000</pubDate>
		<dc:creator>Luiz</dc:creator>
				<category><![CDATA[OpenSource]]></category>
		<category><![CDATA[Unix / Linux]]></category>
		<category><![CDATA[Nagios]]></category>

		<guid isPermaLink="false">http://luizxx.com/archives/68</guid>
		<description><![CDATA[The PNP Developer Team has just released their new version of the graphing addon. The last version was mainly released for some improvements of the optional “Bulkmode with NPCD” (Nagios Perfdata C Daemon), interesting for huge Nagios installations to decrease check latencies without loosing performance data processing and minor bug fixes. For more information, screenshots [...]]]></description>
			<content:encoded><![CDATA[<blockquote><p>The PNP Developer Team has just released their new version of the graphing addon.<br />
The last version was mainly released for some improvements of the optional “Bulkmode with NPCD” (Nagios Perfdata C Daemon), interesting for huge Nagios installations to decrease check latencies without loosing performance data processing and minor bug fixes.<br />
For more information, screenshots and downloads just have a look at http://pnp4nagios.sourceforge.net/</p>
<p align="right"><em><strong>Published by:</strong> <a href="http://www.nagioscommunity.org" target="_blank">Nagios Community </a></em></p>
</blockquote>
<p><strong>Review Luizxx.COM: ^^<br />
</strong></p>
<p>PNP is a great graphing tool for Nagios, building detailed graphs in a organized way. I&#8217;ve been using it in some small monitoring structuresand it&#8217;s working well&#8230; With this new update it&#8217;s possible to graph data present on large monitoring structures without overloading the server and with the correct check times without loosing performance and data.</p>
<p>Off course you need to have a complete, structured and well managed Nagios infra-structure to use efficiently any graphing tool, specially NagiosPNP (C + PHP) and NagiosGraph (Perl + CGI)!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.luizxx.com/archives/68/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MySQL Cluster (Master/Slave)</title>
		<link>http://www.luizxx.com/archives/60</link>
		<comments>http://www.luizxx.com/archives/60#comments</comments>
		<pubDate>Wed, 07 May 2008 22:22:35 +0000</pubDate>
		<dc:creator>Luiz</dc:creator>
				<category><![CDATA[High Availability]]></category>
		<category><![CDATA[OpenSource]]></category>
		<category><![CDATA[MySQL]]></category>

		<guid isPermaLink="false">http://luizxx.com/archives/60</guid>
		<description><![CDATA[Um dos recursos mais interessantes presente no MySQL é a capacidade de replicação automatizada de bases de dados em servidores distintos de forma simples e rápida. Segue um breve tutorial para configuração de um servidor MySQL com replicação 1:1 (Master/Slave): Primeiramente realize a instalação do MySQL em ambas as máquinas, lembrando que é altamente recomendável [...]]]></description>
			<content:encoded><![CDATA[<p>Um dos recursos mais interessantes presente no MySQL é a capacidade de replicação automatizada de bases de dados em servidores distintos de forma simples e rápida. Segue um breve tutorial para configuração de um servidor MySQL com replicação 1:1 (Master/Slave):</p>
<p>Primeiramente realize a instalação do MySQL em ambas as máquinas, lembrando que é altamente recomendável manter a mesma versão em todos os servidores participantes do cluster, e ative o acesso a conexões TCP (vem como padrão na maior parte das distribuições). Para prosseguir com o exemplo, consideraremos que o servidor master tem o IP 192.168.0.1 com hostname <em>Naru</em> e o slave tem o IP 192.168.0.2 com hostname <em>Motoko</em>.</p>
<p>Adicione os seguintes parâmetros na sessão [mysqld] do/etc/my.cnf no master:</p>
<blockquote><p><em>log-bin=naru-bin</em><br />
<em>log-slave-updates</em><br />
<em>server-id=1</em></p></blockquote>
<p>Agora, adicione os seguintes paramêtros no [mysqld] do /etc/my.cnf no slave:</p>
<blockquote><p><em>relay-log=motoko-relay-bin<br />
master-host=192.168.0.1<br />
master-user=replication<br />
master-password=mypassword<br />
server-id=2</em></p></blockquote>
<p>Inicie o serviço MySQL no servidor master e adicione um usuário com permissão de replication (em nosso caso o usuário é <em>replication </em>e a senha é <em>mypassword</em>), lembrando que esse usuário será utilizado para qualquer conexão entre os servidores :</p>
<blockquote><p><em>GRANT REPLICATION SLAVE ON *.* TO &#8216;replication&#8217;@192.168.0.2 \<br />
IDENTIFIED BY &#8216;mypassword&#8217;;</em></p></blockquote>
<p>Reinicie o serviço MySQL no servidor master para fixar as alterações.</p>
<p>Após realizar as configurações no servidor master, inicie o serviço MySQL no servidor slave e inicie o serviço de replicação com:</p>
<blockquote><p><em>START SLAVE; </em></p></blockquote>
<p>Para verificar o status da replicação, utilize a seguinte sintaxe no servidor slave:</p>
<blockquote><p><em>SHOW SLAVE STATUS\G; </em></p></blockquote>
<p>A linha related_log_files deve indicar o arquivo correspondente, e as linhas Slave_IO_Running e Slave_SQL_Running devem estar setadas para Yes. Desta forma a replicação está sendo feita normalmente.</p>
<p>Lembrando que as bases devem estar em sincronia para o correto funcionamento, desta forma, os dados do servidor slave não podem ser alterados diretamente. Caso tenha algum erro ao iniciar a replicação consulte o log default do MySQL, pois os dados obtidos  são bem completos e de fácil entendimento.</p>
<p>Normalmente o principal problema que acontece em servidores que já estão sendo utilizados em produção é a falta de sincronia entre as bases, que pode ser resolvida fazendo um dump da base master e replicando para a slave sem que haja alteração dos dados durante o processo.</p>
<p>Caso seja necessário realizar a alteração do servidor master enquanto a máquina slave está em produção, pode-se utilizar as seguintes sintaxes:</p>
<blockquote><p><em>SLAVE STOP;<br />
CHANGE MASTER TO master_host=&#8221;&lt;IP do servidor master&gt;&#8221;, \ maste_log_pos=0;<br />
SLAVE START;</em></p></blockquote>
<p><em><em>* Tendo em vista que a nova máquina master já está configurada corretamente.</em></em></p>
<p>A replicação pode ser realizada de várias outras formas, de acordo com as necessidades de cada ambiente, porém este tutorial indica sua utilização mais simples, normalmente utilizado em sistemas de consulta onde a carga é muito alta e deve ser distribuída.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.luizxx.com/archives/60/feed</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
		<item>
		<title>Conector Python/PostgreSQL</title>
		<link>http://www.luizxx.com/archives/48</link>
		<comments>http://www.luizxx.com/archives/48#comments</comments>
		<pubDate>Sat, 15 Mar 2008 16:04:48 +0000</pubDate>
		<dc:creator>Luiz</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[OpenSource]]></category>
		<category><![CDATA[Python]]></category>

		<guid isPermaLink="false">http://luizxx.com/archives/48</guid>
		<description><![CDATA[Alguns dias atras resolvi instalar o Trac para gerenciar um projeto que desenvolvi, porem durante a instalacao resolvi armazenar meus dados em uma base PostgreSQL, e entao me deparei com a falta de um modulo para conexao Python com PostgreSQL presente na documentacao do Trac, o pyPgSQL. Minha plataforma utilizada foi um RedHat Enterprise 5 [...]]]></description>
			<content:encoded><![CDATA[<p>Alguns dias atras resolvi instalar o <a href="http://trac.edgewall.org/" target="_blank">Trac </a>para gerenciar um projeto que desenvolvi, porem durante a instalacao resolvi armazenar meus dados em uma base <a href="http://www.postgresql.org" target="_blank">PostgreSQL</a>, e entao me deparei com a falta de um modulo para conexao <a href="http://www.python.org/" target="_blank">Python </a>com <a href="http://www.postgresql.org" target="_blank">PostgreSQL</a> presente na <a href="http://trac.edgewall.org/wiki/TracGuide" target="_blank">documentacao do Trac</a>, o <a href="http://pypgsql.sourceforge.net/" target="_blank">pyPgSQL</a>.</p>
<p>Minha plataforma utilizada foi um <a href="http://www.redhat.com" target="_blank">RedHat Enterprise 5</a> rodando em 64bits, e acabei nao encontrando nenhum pacote pronto e atualizado para a instalacao. Para que nao fosse necessario compilar e instalar tudo manualmente resolvi criar o pacote com base em um spec ja existente e para aqueles que precisarem, vou disponibiliza-lo aqui para download:</p>
<p><strong>Source:</strong> <a href="http://www.luizxx.com/archive/redhat/pyPgSQL-2.4-0.src.rpm">pyPgSQL-2.4-0.src.rpm</a><br />
<strong>RedHat Advanced Server 5: </strong><a href="http://www.luizxx.com/public_html/archive/redhat/pyPgSQL-2.4-0.x86_64.rpm">pyPgSQL-2.4-0.x86_64.rpm</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.luizxx.com/archives/48/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Bandwidthd Monitor</title>
		<link>http://www.luizxx.com/archives/38</link>
		<comments>http://www.luizxx.com/archives/38#comments</comments>
		<pubDate>Thu, 13 Mar 2008 01:42:35 +0000</pubDate>
		<dc:creator>Luiz</dc:creator>
				<category><![CDATA[OpenSource]]></category>
		<category><![CDATA[Unix / Linux]]></category>

		<guid isPermaLink="false">http://luizxx.com/archives/38</guid>
		<description><![CDATA[Muitas vezes não temos como capturar informações sobre a utilização da largura de banda utilizada com SNMP, principalmente porque muitos dispositivos não oferecem suporte ao protocolo e desta forma precisamos de um meio onde seja possível monitorar o consumo de clientes, e essa tarefa pode ser facilmente feita com a utilzacao do Bandwidthd. Apesar de [...]]]></description>
			<content:encoded><![CDATA[<p>Muitas vezes não temos como capturar informações sobre a utilização da largura de banda utilizada com SNMP, principalmente porque muitos dispositivos não oferecem suporte ao protocolo e desta forma precisamos de um meio onde seja possível monitorar o consumo de clientes, e essa tarefa pode ser facilmente feita com a utilzacao do <a href="http://bandwidthd.sourceforge.net/" target="_blank">Bandwidthd</a>.</p>
<p>Apesar de nao ser muito difundido, o software e bem simples e conta com uma documentacao bem completa para a instalacao e configuracao em servidores. Os dados podem ser armazenados localmente em arquivo ou com a utilizacao de uma base de dados <a href="http://www.postgresql.org" target="_blank">PostgreSQL</a>, sendo que quando configurado para utilizar uma base de dados externa e possivel utilizar uma interface web dinamica escrita em PHP ao inves de HTML estatico e em ambos os casos a geracao dos graficos e feita com a utilizacao da biblioteca GD.</p>
<p>Para aqueles que utilizam sistemas <a href="http://www.redhat.com" target="_blank">RedHat</a>/<a href="http://www.centos.org" target="_blank">CentOS</a> deixei disponibilizado aqui os pacotes RPM para download nas plataformas mais comuns (i386, x86_64) e disponibilizei o src.rpm para caso seja necessaria a recompilacao do pacote.</p>
<p><strong>RedHat Advanced Server 5:</strong> <a href="http://www.luizxx.com/archive/redhat/bandwidthd-2.0.1-1.el5.i386.i386.rpm">i386 </a>/ <a href="http://www.luizxx.com/archive/redhat/bandwidthd-2.0.1-1.el5.x64.x86_64.rpm">x86_64</a> / <a href="http://www.luizxx.com/archive/redhat/bandwidthd-2.0.1-1.el5.x64.src.rpm">Source RPM</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.luizxx.com/archives/38/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Timezone no PHP</title>
		<link>http://www.luizxx.com/archives/43</link>
		<comments>http://www.luizxx.com/archives/43#comments</comments>
		<pubDate>Mon, 11 Feb 2008 01:40:26 +0000</pubDate>
		<dc:creator>Luiz</dc:creator>
				<category><![CDATA[OpenSource]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://luizxx.com/archives/43</guid>
		<description><![CDATA[Muitas vezes o horário de verão brasileiro pode afetar o funcionamento de nossas aplicações escritas em PHP que utilizem funções de data, e para que não aconteça nenhum problema existem algumas alternativas que podem ser adotadas para automatizar o processo de transição de horário (BRT/BRST). A mais comum delas (e menos eficiente na minha opinião) [...]]]></description>
			<content:encoded><![CDATA[<p>Muitas vezes o horário de verão brasileiro pode afetar o funcionamento de nossas aplicações escritas em PHP que utilizem funções de data, e para que não aconteça nenhum problema existem algumas alternativas que podem ser adotadas para automatizar o processo de transição de horário (BRT/BRST).</p>
<p>A mais comum delas (e menos eficiente na minha opinião) é setar o horário diretamente no seu php.ini através da linha:</p>
<p><code>date.timezone = "Etc/GMT+2"</code></p>
<p>Sendo que também é possível utilizar esta chamada diretamente no script de sua aplicação com:</p>
<p><code>date_default_timezone_set("Etc/GMT+2");</code></p>
<p>A forma mais eficiente que encontrei para realizar estas transições de horário de forma automática foi utilizando o módulo php-timezonedb que está disponível através do PECL.</p>
<p>Para realizar a instalação do timezonedb é necessário ter as bibliotecas do php (php-dev) disponíveis na máquina.</p>
<p>A forma mais prática de instalação é diretamente através do repositório PECL:</p>
<p><code># pecl install timezonedb</code></p>
<p>E para carregar o módulo na inicialização do PHP, adicione ao php.ini (ou uma entrada no php.d):</p>
<p><code>extension=timezonedb.so</code></p>
<p>Para testar o módulo sem a necessidade de reiniciar o servidor web utilize o próprio php-cli:</p>
<p><code># php-cli -r "print date('d/m/Y H:i:s e T');"</code></p>
<p>A saída (em horário de verão) será algo parecido com:</p>
<p>04/02/2008 19:23:32 America/Sao_Paulo BRST</p>
<p>E em horário normal:</p>
<p>04/02/2008 19:23:32 America/Sao_Paulo BRT</p>
<p>Para instalação em um número elevado de servidores é recomendável utilizar o proprio empacotamento de sua distribuicaopara automatizar o processo. Para aqueles que utilizam distribuicoes baseadas em RPM, deixei o pacote source <a href="http://www.luizxx.com/archive/redhat/php-timezonedb-2007.11-el4.src.rpm">disponivel para download</a>&#8230; <a href="http://www.luizxx.com/archive/redhat/php-timezonedb-2007.11-el4.src.rpm">php-timezonedb.el4.src.rpm</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.luizxx.com/archives/43/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Lighttpd Server no FreeBSD</title>
		<link>http://www.luizxx.com/archives/36</link>
		<comments>http://www.luizxx.com/archives/36#comments</comments>
		<pubDate>Sat, 05 Jan 2008 02:21:50 +0000</pubDate>
		<dc:creator>Luiz</dc:creator>
				<category><![CDATA[OpenSource]]></category>
		<category><![CDATA[Unix / Linux]]></category>
		<category><![CDATA[FreeBSD]]></category>

		<guid isPermaLink="false">http://luizxx.com/?p=36</guid>
		<description><![CDATA[Iniciando os posts deste ano, vou demonstrar a facilidade de instalação de programas no FreeBSD (diferente da complicação que normalmente o pessoal imagina..) contando com a instalação do servidor web Lighttpd que cada vez mais vem se popularizando entre os administradores de sistema, principalmente por ser muito flexível, rápido e ter um consumo reduzido de [...]]]></description>
			<content:encoded><![CDATA[<p>Iniciando os posts deste ano, vou demonstrar a facilidade de instalação de programas no FreeBSD (diferente da complicação que normalmente o pessoal imagina..) contando com a instalação do servidor web Lighttpd que cada vez mais vem se popularizando entre os administradores de sistema, principalmente por ser muito flexível, rápido e ter um consumo reduzido de memória nos servidores.</p>
<p>Em servidores de aplicação com base em FreeBSD ele é uma ótima alternativa e apresenta alta performance no processamento das requisições, principalmente na distribuição dos recursos da máquina entre os processos. Segue os procedimentos de instalação contando com a utilização dos ports disponíveis para o FreeBSD.</p>
<p>Primeiramente, atualize sua árvore de ports com:</p>
<p># portsnap fetch<br />
# portsnap update</p>
<p>Para iniciar a instalação, entre no diretório do port referente ao Lighttpd:</p>
<p># <code>cd /usr/ports/www/lighttpd</code></p>
<p>E execute o processo de compilação, instalação e limpeza para finalizar:</p>
<p># make<br />
# make install<br />
# make clean</p>
<p>Após finalizado o processo de instalação, configure o /usr/local/etc/lighttpd.conf de acordo com seu ambiente e inicialize o serviço com:</p>
<p># /usr/local/etc/rc.d/lighttpd start</p>
<p>Para aqueles que não estão habituados a utilizar FreeBSD, esta é a maneira mais simples de manter seu servidor funcional e atualizado, da mesma forma que utilizamos os gerenciadores de pacote no Linux, porém com a diferença de que desta forma a aplicação e compilada diretamente no servidor durante o processo de instalação.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.luizxx.com/archives/36/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Utilizando RTorrent</title>
		<link>http://www.luizxx.com/archives/33</link>
		<comments>http://www.luizxx.com/archives/33#comments</comments>
		<pubDate>Wed, 05 Dec 2007 01:09:41 +0000</pubDate>
		<dc:creator>Luiz</dc:creator>
				<category><![CDATA[OpenSource]]></category>

		<guid isPermaLink="false">http://luizxx.com/?p=33</guid>
		<description><![CDATA[Há algum tempo venho utilizando muito o RTorrent como meu client de torrent e estou muito satisfeito com o funcionamento! Para aqueles que ainda não conhecem, RTorrent é um client para Linux / Unix escrito em C que roda diretamente no terminal, sem necessidade de interface gráfica (X-Window), muito rápido, leve e repleto de recursos [...]]]></description>
			<content:encoded><![CDATA[<p>Há algum tempo venho utilizando muito o RTorrent como meu client de torrent e estou muito satisfeito com o funcionamento! Para aqueles que ainda não conhecem, RTorrent é um client para Linux / Unix escrito em C que roda diretamente no terminal, sem necessidade de interface gráfica (X-Window), muito rápido, leve e repleto de recursos para a manipulação dos downloads.</p>
<p>Existem pacotes prontos para a maioria das distribuições, mas o processo de compilação é bem simples e conta com uma ótima documentação no site oficial&#8230; Basicamente toda a configuração é feita diretamente no arquivo <em>.rtorrent.rc</em> dentro do home de cada usuário, uma descrição geral dos parametros e um arquivo de exemplo podem ser <a href="http://libtorrent.rakshasa.no/browser/trunk/rtorrent/doc/rtorrent.rc?rev=latest" target="_blank">encontrados aqui</a>.</p>
<p><strong>Adicionando e removendo torrents:</strong></p>
<ul>
<li><em>Backspace</em> &#8211; Abre a linha para adicionar novo arquivo .torrent e inicia imediatamente o download</li>
<li><em>Enter </em>- Abre a linha para adicionar novo arquivo .torrent e deixa o download parado na fila (Use ctrl+s para ativar)</li>
<li><em>Ctrl+O</em> &#8211; Específica nova pasta de download para o torrent selecionado (só funciona se ele ainda não foi ativado)</li>
<li><em>Ctrl+s</em> &#8211; Inicia o download</li>
<li><em>Ctrl+d</em> &#8211; Para um download ativo ou remove um download que já estava parado</li>
<li><em>Ctrl + r</em> &#8211; Iniciar a checagem de hash do torrent, sem iniciar download/upload.</li>
</ul>
<p><strong>Controle de velocidade:</strong></p>
<ul>
<li>a / s / d &#8211; Aumenta a velocidade de upload em 1/5/50 KB</li>
<li>z / x / c &#8211; Diminui a velocidade de upload em 1/5/50 KB</li>
<li>Utilizar letras maiúsculas para controle de velocidade de download&#8230;</li>
</ul>
<p><em>Lembrando sempre que os limites são aplicados de forma global, e não por torrent.</em></p>
<p><strong>Utilização geral:</strong></p>
<ul>
<li>Ctrl + q &#8211; Inicia o shutdown do client, já informando os trackers</li>
<li>+ / &#8211; - Define a prioridade dos torrents</li>
<li>| &#8211; Ver os logs (aperte espaço para voltar)</li>
</ul>
<p>Consulte também o <a title="RTorrent User Guide" href="http://libtorrent.rakshasa.no/wiki/RTorrentUserGuide" target="_blank">guia oficial de utilização</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.luizxx.com/archives/33/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Aumentando o desempenho do Squid</title>
		<link>http://www.luizxx.com/archives/28</link>
		<comments>http://www.luizxx.com/archives/28#comments</comments>
		<pubDate>Wed, 07 Nov 2007 23:48:36 +0000</pubDate>
		<dc:creator>Luiz</dc:creator>
				<category><![CDATA[OpenSource]]></category>
		<category><![CDATA[Unix / Linux]]></category>
		<category><![CDATA[Squid]]></category>

		<guid isPermaLink="false">http://luizxx.com/?p=28</guid>
		<description><![CDATA[Existem diversos pontos a serem analisados na hora de desenvolver um firewall para seu ambiente de forma que ele obtenha a máxima performance utilizando o hardware da melhor maneira possível, porém existem algumas práticas que são recomendadas para aumentar a performance e otimizar seu proxy durante a configuração do Squid. Um dos principais fatores a [...]]]></description>
			<content:encoded><![CDATA[<p>Existem diversos pontos a serem analisados na hora de desenvolver um firewall para seu ambiente de forma que ele obtenha a máxima performance utilizando o hardware da melhor maneira possível, porém existem algumas práticas que são recomendadas para aumentar a performance e otimizar seu proxy durante a configuração do Squid.</p>
<p>Um dos principais fatores a serem considerados é a especificação do hardware utilizado e a preparação do sistema operacional. Ao utilizar RAID no servidor, prefira implementar em RAID0, que apresenta a melhor performance e dê preferência para realizar o armazenamento de cache e dos logs do Squid em um volume (preferencialmente com discos diferentes) separado, como estes dados normalmente são armazenados no /var, crie um ponto de montagem sobre a pasta apontando para seu volume. A escolha do sistema de arquivos também é um fator extremamente importante para otimizar o funcionamento, além do desempenho é necessário ter estabilidade na manipulação dos dados.</p>
<p>Um ponto crítico que pode fazer com que os usuários sintam lentidão ao utilizar a internet através do proxy é a resolução de nomes (DNS), para aumentar o desempenho na resolução de nomes é recomendável configurar um DNS cache na mesma máquina ou em uma máquina conectada diretamente ao proxy.</p>
<p>Existem alguns parâmetros que devem ser corretamente configurados no squid.conf de modo a otimizar o funcionamento. Segue uma breve descrição dos dois principais:</p>
<blockquote><p><strong>cache_mem</strong></p>
<p>Esta opção informa ao Squid a quantidade de memória dedicada ao processo (podendo aumentar dependendo da demanda), sendo que em máquinas dedicadas à utilização de proxy podemos definir cerca de 80% da memória total da máquina.</p></blockquote>
<blockquote><p><strong>maximum_object_size</strong></p></blockquote>
<blockquote><p>Com esta diretiva podemos limitar o tamanho máximo dos objetos em cache para que objetos maiores do que o valor máximo aqui informado não sejam enviados para o disco. Um valor alto pode contribuir com uma maior economia de banda, porém pode causar uma utilização maior dos discos podendo aumentar o tempo de resposta em ambientes de alto tráfego. É recomendada a utilização de um valor entre 4 e 16MB (16384 KB).</p></blockquote>
<p>A utilização de diversos caches separados em volumes diferentes pode contribuir para otimizar o armazenamento de dados e aumentar a performance do acesso a internet porém não interfere diretamente na performance do servidor.</p>
<p>Já a definição do método de acesso ao cache (store type) oferece difereças significativas na forma como o servidor acessa os discos. Os métodos mais utilizados são ufs, aufs, diskd e coss. Sendo que normalmente o sistema aufs apresenta ótima performance e facilidade de implementação (não depende de daemos externos) na maioria dos casos.</p>
<p>Existem ótimas alternativas para configuração de ambientes grandes onde existem milhares de hosts passando pelo proxy ao mesmo tempo para a distribuição de carga (um tipo de clusterização) em diversos servidores interligados entre si através de ICP, mas esse já é um tipo de instalação bem específica onde temos que fazer um levantamento bem detalhado do ambiente na implementação.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.luizxx.com/archives/28/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>
