<?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>Thiago Melo &#187; Linux</title>
	<atom:link href="http://thiago.oxente.org/category/linux/feed" rel="self" type="application/rss+xml" />
	<link>http://thiago.oxente.org</link>
	<description>Linux, Programação, Redes e Jogos.</description>
	<lastBuildDate>Thu, 04 Feb 2010 18:03:37 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.6</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Servidor de video Open Source (streaming)</title>
		<link>http://thiago.oxente.org/2010/02/04/servidor-de-video-open-source-streaming</link>
		<comments>http://thiago.oxente.org/2010/02/04/servidor-de-video-open-source-streaming#comments</comments>
		<pubDate>Thu, 04 Feb 2010 18:03:37 +0000</pubDate>
		<dc:creator>Thiago Melo</dc:creator>
				<category><![CDATA[Hardware]]></category>
		<category><![CDATA[Redes]]></category>
		<category><![CDATA[Slackware 64]]></category>
		<category><![CDATA[Videos]]></category>
		<category><![CDATA[avi]]></category>
		<category><![CDATA[darwin]]></category>
		<category><![CDATA[flv]]></category>
		<category><![CDATA[mp3]]></category>
		<category><![CDATA[red5]]></category>
		<category><![CDATA[stream]]></category>
		<category><![CDATA[video]]></category>
		<category><![CDATA[videolan]]></category>
		<category><![CDATA[vlc]]></category>

		<guid isPermaLink="false">http://thiago.oxente.org/?p=235</guid>
		<description><![CDATA[ A alguns anos atrás, mesmo antes da explosão do YouTube, eu tive a curiosidade de saber como colocar publicar um vídeo ao vivo na internet, utilizando uma Webcam e um objeto Flash. Minha idéia era de criar uma conferência no Flash com várias pessoas em uma sala de bate-papo, porem meu conhecimento era muito [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;"><a href="http://thiago.oxente.org/wp-content/uploads/2010/02/videolan.gif"><img class="alignleft size-full wp-image-236" title="videolan" src="http://thiago.oxente.org/wp-content/uploads/2010/02/videolan.gif" alt="videolan" width="102" height="138" /></a> A alguns anos atrás, mesmo antes da explosão do <a href="http://www.youtube.com" target="_blank">YouTube</a>, eu tive a curiosidade de saber como colocar publicar um vídeo ao vivo na internet, utilizando uma Webcam e um objeto <em>Flash</em>. Minha idéia era de criar uma conferência no <em>Flash</em> com várias pessoas em uma sala de bate-papo, porem meu conhecimento era muito pouco na época para criar algo do tipo. Mesmo assim pesquisando na Internet, eu cheguei a conhecer uma tecnologia nova da antiga Macromedia (que foi comprada pela <a href="http://www.adobe.com" target="_blank">ADOBE</a>) chamada de <em>Macromedia Flash Communication Server MX</em>. Este produto da Macromedia trabalhava como um servidor multimídia, onde fazia exatamente o que eu queria, e por sinal já vinha em uma de suas demonstrações um exemplo de sala de conferência com suporte a webcam.</p>
<p>Os anos se passaram e eu com o tempo desisti de trabalhar com o FCS, pois o mesmo era muito caro e eu não via mais futuro em investir meu tempo no produto. Eis que ano passado me surgiu um problema aqui na empresa no qual eu tive que voltar a estudar ferramentas de streaming para colocar uma programação ao vivo na internet. Minha missão então era achar uma ferramenta boa é de preferência open source, para disponibilizar na internet o vídeo.  Bom minha missão ainda está longe e terminar mas vou descrever o caminho que percorri e as ferramentas que testei e o resultado atual do projeto como está.</p>
<p>Buscando pela internet eu encontrei diversas alternativas ao FCS, que agora produto da ADOBE era chamado de <em>Flash Media Server</em> (FMS), algumas delas opensource, outras não mas free, e outras free mas com limitações. Eu testei então:</p>
<p>- <a href="http://dss.macosforge.org/" target="_blank">Darwin Streaming Server </a>-&gt; Apple<br />
- <a href="http://www.red5.org/" target="_blank">Red5</a> -&gt; Feito em Java tendo mesmos recursos do FMS, porém 100% livre<br />
- <a href="http://www.wowzamedia.com" target="_blank">Wownza Media Systems</a> -&gt; Um bom media server porém a versão FREE tem muitas limitações.<br />
- <a href="http://www.videolan.org/" target="_blank">VideoLan</a> -&gt; Até agora não consegui descrever em que categoria se encaixa o VideoLan, ele é player, encoder, streaming server e etc.</p>
<p><span id="more-235"></span>De todos que testei, o VideoLan foi meu favorito, por ser mais simples e também por possui uma documentação mais completa, eu consegui resultados satisfatórios mais rápido que os outros. De inicio eu comecei testando o VideoLan no windows, depois comecei então no Slackware onde consegui fazer meu primeiro stream para a Web. Mas vou deixar para detalhar o VideoLan por último já que até agora ele é minha escolha para produção.</p>
<p><strong>Darwin Streaming Server </strong><br />
O DSS, é um servidor stream da APPLE, ele transmite mídia atraves dos protocolos RTP/RTSP, sendo uma solução OpenSource de outro produto da APPLE o QuickTime Streaming Server. De inicio o DSS era um sistema operacional completo, mas hoje em dia já é distribuído separado como um software, minha aventura foi tentar rodar o DSS no Slackware64, porém foi um fracasso, não consegui fazer o programa iniciar, fiquei então de testar a versão SO, mas não encontrei tempo ainda.</p>
<p><strong>RED5</strong><br />
O Red5 é um servidor escrito em java, onde busca oferecer os mesmo recursos do FMS da Adobe, foi criado através de engenharia reversa dos protocolos usados pelo FMS. Transmite através do protocolo RTMP. Sua instalação é simples, porém a configuração é um pouco complicada, pois a documentação é muito incompleta, você tem que queimar bastante a cuca para entender como o servidor funciona e garimpar a internet atrás de informações. Depois de instalar e iniciar o servidor, basta acessar o mesmo pelo seu navegador com a porta do Red5, que ele já tem exemplos para mostrar, e logo de inicio tudo funciona perfeitamente.<br />
Porém para o tipo de transmissão que eu queria fazer o Red5 iria tomar mais tempo do que o normal, até que eu descobrisse como ele funciona 100%, mas é uma ótima ferramenta, e eu recomendo.</p>
<p><strong>Wownza Media Systems</strong><br />
O Wownza é um Red5 bem mais completo, transmite tanto em RTP/RTSP como em RTMP, porém sua versão gratuita só permite o acesso de 10 conexões simultâneas, pode atender a pequenas soluções, mas eu não poderia me dar ao luxo de limitar a transmissão a 10 pessoas, se a 11 tentasse acessar, já ia ter reclamação. Vale a pena testar, mas para produção não vejo viável a versão FREE.</p>
<p><strong>VideoLan</strong><br />
O VLC não é um servidor Stream, mas ele pode trabalhar como tal. O VideoLan no inicio possuía duas versões, o VLC (VideoLan Client) e o VLS (VideoLan Server), porém depois eles juntaram tudo em uma só solução que hoje é conhecida como VideoLan ou VLC. Este software atende qualquer necessidade, devido a forma que ele trabalha, e o suporte aos diversos <em>codecs</em> de vídeo e audio existentes.<br />
O VideoLan possui um conceito simples de input e output, onde você escolhe de onde vem a mídia e para onde ela vai. Como por exemplo o ato simples de assistir um vídeo pelo <em>VLC</em>, o input será <em>FILE</em> (arquivo) e o output será <em>DISPLAY</em> (tela do computador). Com este conceito fica fácil por exemplo colocar sua webcam na internet com um simples comando do <em>VLC</em>, onde o input deve ser o <em>DEVICE</em> da webcam e o output um stream <em>HTTP</em> com encapsulamento <em>FLV</em>.</p>
<p style="text-align: left;">Aqui está o famoso diagrama do VideoLan, é meio antigo mas é assim mesmo que funciona.<br />
<a href="http://www.videolan.org/doc/vls-user-guide/en/images/global-diagram.jpg"><img class="aligncenter" title="VLC" src="http://www.videolan.org/doc/vls-user-guide/en/images/global-diagram.jpg" alt="" width="414" height="289" /></a><br />
Então para fazer a transmissão ao vivo eu utilizei o VLC para pegar a imagem e som através de uma placa de captura, e jogar esta transmissão para a web usando FLV. E para visualizar o FLV utilizei um simples player em flash conhecido como <a href="http://flowplayer.org/">Flowplayer</a>, o que por hora resolveu meu problema.</p>
<p><strong>Como servidor eu estava utilizando:</strong><br />
SO: Linux Slackware 13.0 64bits<br />
CPU: AMD Athlon(tm) Dual Core Processor 4450B 2.2GHZ<br />
MEM: 2GB RAM<br />
Placa de Captura: saa7134 Kworld Plus TV Turner Card<br />
VideoLan: VLC 1.0.4</p>
<p>No caso para efetuar o teste, sintonizei a placa de TV no canal da globo, e executei o vlc pela shell do linux com o seguinte comando:</p>
<p><strong><em>cvlc v4l2:///dev/video0 &#8211;v4l2-caching=6500 &#8211;v4l2-width=420 &#8211;v4l2-height=320 &#8211;input-slave=alsa://hw:1,0 &#8211;alsa-samplerate=16000 &#8211;sout &#8220;#transcode{fps=12,vcodec=FLV1,vb=120,acodec=mp3,ab=16,channels=1,samplerate=11025}:std{access=http{mime=video/x-flv},dst=0.0.0.0:8080/stream.flv}&#8221; &#8211;sout-mux-caching=10000</em></strong>
</p>
<p style="text-align: left;">Detalhando o comando acima temos:</p>
<ol>
<li><strong>cvlc </strong>-&gt; inicia o vlc sem chamar a interface gráfica.</li>
<li><strong>v4l2:///dev/video0 </strong>-&gt; utiliza o device video0 (que é a placa de captura) como input.</li>
<li><strong>&#8211;v4l2-caching=6500 &#8211;v4l2-width=420 &#8211;v4l2-height=320 </strong>-&gt; parâmetros passados para o input onde determina um cache de 6.5 segundos e o tamanho da tela a ser capturado.</li>
<li><strong>&#8211;input-slave=alsa://hw:1,0</strong> -&gt; aqui eu escolho qual dispositivo de som vai ser usado como input, no caso existe o 0,0 e o 1,0 o que eu escolho e o da placa de captura, o 0,0 é o da placa de som do computador.</li>
<li><strong>&#8211;alsa-samplerate=16000</strong> -&gt; Isto muda a velocidade do som do input, se não usar isso a voz fica igual Alvin e os Esquilos ( somente para a captura, o resto fica normal).</li>
<li><strong>&#8211;sout</strong> -&gt; O Sout é o comando que fala para onde deve ir o Output, caso não utilize ele manda por padrão para o DISPLAY.</li>
<li><strong>#transcode{fps=12,vcodec=FLV1,vb=120,acodec=mp3,ab=16,channels=1,samplerate=11025}</strong> -&gt; O transcode é a conversão em tempo real de um tipo de midia para outro. No caso estamos recebendo um vídeo vindo da placa de captura que seu formato é desconhecido e não suportado pelo FLASH, então temos que transformar este sinal em algo compatível. Com isso fazemos um transcode para FLV e MP3. o VB=120 é que controla a qualidade do vídeo e o AB=16 é a qualidade do audio, quanto maior, melhor a qualidade e mais banda utilizada.</li>
<li><strong>std{access=http{mime=video/x-flv},dst=0.0.0.0:8080/stream.flv} -</strong>&gt; Aqui no STD falamos para onde ele vai enviar o stream, no caso eu quero que envie para a porta 8080 utilizando o procolo HTTP, e que o stream saia como um arquivo do tipo (mime) video/x-flv, com o nome de stream.flv</li>
</ol>
<p>Com isso basta utilizar qualquer player de FLV e colocar nosso endereço como fonte, http://meuip:8080/stream.flv que ele vai tocar o que está passando na placa de captura com um atraso de 6.5 segundos.</p>
<p><strong>- Qual a vantagem de se utilizar o VLC para isso. Eu digo que é a praticidade de se fazer a coisa funcionar, de tornar um projeto visível, sem muito esforço e obter uma qualidade de transmissão a custo baixo.</strong></p>
<p><strong>- Qual a desvantagem de ser utilizar o VLC para isso. O flash player entende que o stream.flv é um arquivo, e não um stream, então para o navegador do visitante ele está abrindo um vídeo infinito, ele não trabalha direito com isso, qualquer lag e etc é sentida pelo navegador por não ser realmente um stream e sim um arquivo com download infinito. Outro problema é que o VLC fica dando erros e warnings de buffer overflow e underflow dependendo da configuração que você utilize, e até hoje mesmo funcionando, não sei como eliminar esses erros e deixar o sistema 100%.</strong></p>
<p>Ainda existe um cenário número dois que estou testando. Temos que transmitir uma programação ao vivo que só pode ser capturada de um lugar que possui um link de apenas 2MBPS. E fazer uma transmissão nesse local com certeza vai detonar todo o link só com transmissão dependendo da quantidade de pessoas que estiver assistindo ao mesmo tempo.<br />
Para solucionar isto eu utilizei uma técnica de enviar o sinal para um servidor aqui no backbone e daqui do backbone fazer o stream para a internet. Com isso eu instalei um servidor Linux Slackware64 com uma placa de captura no local com 2mpbs, e capturo o sinal e envio via UDP para outro servidor aqui no backbone, e dele envia para HTTP usando FLV, usando os comandos abaixo:</p>
<p><strong>SERVIDOR CAPTURA</strong><br />
Linux Slackware 13.0 64bits<br />
AMD Athlon(tm) 64 Processor 3200+ 2GHZ<br />
2GB RAM<br />
saa7134 Kworld Plus TV Turner Card<br />
VLC 1.0.4<br />
<strong>cvlc v4l2:///dev/video0 &#8211;v4l2-caching=6500 &#8211;v4l2-width=420 &#8211;v4l2-height=320 &#8211;input-slave=alsa://hw:1,0 &#8211;alsa-samplerate=16000 &#8211;sout &#8220;#transcode{vcodec=h264,vb=800,scale=1,acodec=mp3,ab=128,channels=2}:std{access=udp,mux=ts,dst=10.1.3.88:1234}&#8221; -vv</strong></p>
<p><strong>SERVIDOR NO BACKBONE</strong><br />
Linux Slackware 13.0 64bits<br />
AMD Athlon(tm) Dual Core Processor 4450B 2.2GHZ<br />
2GB RAM<br />
VLC 1.0.4<br />
<strong>cvlc udp://@:1234 &#8211;udp-caching=3000 &#8211;sout &#8220;#transcode{fps=12,vcodec=FLV1,vb=120,acodec=mp3,ab=16,channels=1,samplerate=11025}:std{access=http{mime=video/x-flv},dst=0.0.0.0:8080/stream.flv}&#8221; &#8211;sout-mux-caching=10000 -vv</strong></p>
<p>Este esquema funciona, porém não é o melhor esquema de ser fazer, é digamos uma gambiarra, ainda estou a procura da solução perfeita, mas vejo que esta missão está longe de terminar, mas no final espero que ajuda alguem que se encontre no mesmo barco que eu, e que se tiver alguma solução melhor fique a vontade para comentar.</p>
<p>Acho que este foi meu primeiro post de 2010 hehehe FELIZ ANO NOVO LOL (Fevereiro FTW).</p>
]]></content:encoded>
			<wfw:commentRss>http://thiago.oxente.org/2010/02/04/servidor-de-video-open-source-streaming/feed</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Logparser, script para colorir o log do Spamdyke</title>
		<link>http://thiago.oxente.org/2009/08/11/logparser-script-para-colorir-o-log-do-spamdyke</link>
		<comments>http://thiago.oxente.org/2009/08/11/logparser-script-para-colorir-o-log-do-spamdyke#comments</comments>
		<pubDate>Tue, 11 Aug 2009 19:10:50 +0000</pubDate>
		<dc:creator>Thiago Melo</dc:creator>
				<category><![CDATA[Bash]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Programação]]></category>

		<guid isPermaLink="false">http://thiago.oxente.org/?p=181</guid>
		<description><![CDATA[Outro dia eu estava analisando os logs do Spamdyke, e me fiquei bastante confuso para acompanhar os dados pelo "tail -f", pois era muita informação na tela, que só o Neo Matrix conseguiria ler. Buscando no google, achei um shellscript que fazia um parser de um log e mostrava um resultado colorido de forma que [...]]]></description>
			<content:encoded><![CDATA[<p>Outro dia eu estava analisando os logs do <strong>Spamdyke</strong>, e me fiquei bastante confuso para acompanhar os dados pelo "tail -f", pois era muita informação na tela, que só o Neo Matrix conseguiria ler. Buscando no google, achei um <strong>shellscript</strong> que fazia um parser de um log e mostrava um resultado colorido de forma que facilitava a visualização. Peguei esse código e fiz umas modificações e adaptei ele para o <strong>SpamDyke</strong>.<br />
Não sei se ele de forma genérica funciona para todo mundo, no caso no meu <strong>Spamdyke</strong> está gerando log no <strong>syslog</strong> no nivel de mail, no caso no <strong>mailog</strong>, e sem nenhuma modificação nas configurações padrões, segue a screenshot abaixo.<br />
<a href="http://thiago.oxente.org/wp-content/uploads/2009/08/fundo4.png"><img class="aligncenter size-medium wp-image-182" title="fundo4" src="http://thiago.oxente.org/wp-content/uploads/2009/08/fundo4-300x187.png" alt="fundo4" width="300" height="187" /></a><br />
*Nota que o "spray" vermelho eu coloquei para ocultar os domínios do meu servidor.</p>
<p>Segue o código abaixo</p>
<p><span id="more-181"></span></p>
<div class="igBar"><span id="lcode-2"><a href="#" onclick="javascript:showPlainTxt('code-2'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">CODE:</span>
<div id="code-2">
<div class="code">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">#!/bin/sh</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">RED=<span style="color:#CC0000;">"<span style="color:#000099; font-weight:bold;">\\</span>033[0;31m"</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">GREEN=<span style="color:#CC0000;">"<span style="color:#000099; font-weight:bold;">\\</span>033[0;32m"</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">YELLOW=<span style="color:#CC0000;">"<span style="color:#000099; font-weight:bold;">\\</span>033[1;33m"</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">BLUE=<span style="color:#CC0000;">"<span style="color:#000099; font-weight:bold;">\\</span>033[0;34m"</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">VIOLET=<span style="color:#CC0000;">"<span style="color:#000099; font-weight:bold;">\\</span>033[0;35m"</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">CYAN=<span style="color:#CC0000;">"<span style="color:#000099; font-weight:bold;">\\</span>033[0;36m"</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">WHITE=<span style="color:#CC0000;">"<span style="color:#000099; font-weight:bold;">\\</span>033[1;37m"</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">NORMAL=<span style="color:#CC0000;">"<span style="color:#000099; font-weight:bold;">\0</span>33[0m"</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">comando=<span style="color:#CC0000;">"tail -f /var/log/maillog | grep spamdyke | colorize"</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">colorize<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006600; font-weight:bold;">&#41;</span> <span style="color:#006600; font-weight:bold;">&#123;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">while read LINE; do</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">if <span style="color:#006600; font-weight:bold;">&#91;</span><span style="color:#006600; font-weight:bold;">&#91;</span> $LINE =~ <span style="color:#CC0000;">"(.*)<span style="color:#000099; font-weight:bold;">\ </span>(.*)<span style="color:#000099; font-weight:bold;">\ </span>(.*)<span style="color:#000099; font-weight:bold;">\ </span>(.*)<span style="color:#000099; font-weight:bold;">\ </span>(.*)<span style="color:#000099; font-weight:bold;">\ </span>(TIMEOUT|DENIED_IP_IN_CC_RDNS|DENIED_BLACKLIST_NAME|DENIED_OTHER|DENIED_RBL_MATCH|DENIED_RDNS_MISSING|DENIED_RDNS_RESOLVE|DENIED_GRAYLISTED|DENIED_SENDER_NO_MX)<span style="color:#000099; font-weight:bold;">\ </span>from:<span style="color:#000099; font-weight:bold;">\ </span>(.*)<span style="color:#000099; font-weight:bold;">\ </span>to:<span style="color:#000099; font-weight:bold;">\ </span>(.*)<span style="color:#000099; font-weight:bold;">\ </span>origin_ip:<span style="color:#000099; font-weight:bold;">\ </span>(.*)<span style="color:#000099; font-weight:bold;">\ </span>origin_rdns:<span style="color:#000099; font-weight:bold;">\ </span>(.*)<span style="color:#000099; font-weight:bold;">\ </span>auth:<span style="color:#000099; font-weight:bold;">\ </span>(.*)(<span style="color:#000099; font-weight:bold;">\ </span>.*)?"</span> <span style="color:#006600; font-weight:bold;">&#93;</span><span style="color:#006600; font-weight:bold;">&#93;</span>; then</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">echo -e <span style="color:#CC0000;">"${NORMAL}${BASH_REMATCH[1]} ${BASH_REMATCH[2]} ${BASH_REMATCH[3]}: ${NORMAL}${RED}${BASH_REMATCH[6]}${NORMAL} ${WHITE}${BASH_REMATCH[7]}${NORMAL} to: ${VIOLET}${BASH_REMATCH[8]}${NORMAL} from: ${VIOLET}${BASH_REMATCH[9]}${NORMAL} origin_ip: ${CYAN}${BASH_REMATCH[10]}${NORMAL} origin_rdns: ${CYAN}${BASH_REMATCH[11]}${NORMAL} auth: ${WHITE}${BASH_REMATCH[12]}${NORMAL} ${NORMAL}${BASH_REMATCH[13]}${NORMAL}"</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">elif <span style="color:#006600; font-weight:bold;">&#91;</span><span style="color:#006600; font-weight:bold;">&#91;</span> $LINE =~ <span style="color:#CC0000;">"(.*)<span style="color:#000099; font-weight:bold;">\ </span>(.*)<span style="color:#000099; font-weight:bold;">\ </span>(.*)<span style="color:#000099; font-weight:bold;">\ </span>(.*)<span style="color:#000099; font-weight:bold;">\ </span>(.*)<span style="color:#000099; font-weight:bold;">\ </span>(ALLOWED)<span style="color:#000099; font-weight:bold;">\ </span>from:<span style="color:#000099; font-weight:bold;">\ </span>(.*)<span style="color:#000099; font-weight:bold;">\ </span>to:<span style="color:#000099; font-weight:bold;">\ </span>(.*)<span style="color:#000099; font-weight:bold;">\ </span>origin_ip:<span style="color:#000099; font-weight:bold;">\ </span>(.*)<span style="color:#000099; font-weight:bold;">\ </span>origin_rdns:<span style="color:#000099; font-weight:bold;">\ </span>(.*)<span style="color:#000099; font-weight:bold;">\ </span>auth:<span style="color:#000099; font-weight:bold;">\ </span>(.*)(<span style="color:#000099; font-weight:bold;">\ </span>.*)?"</span> <span style="color:#006600; font-weight:bold;">&#93;</span><span style="color:#006600; font-weight:bold;">&#93;</span>; then</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">echo -e <span style="color:#CC0000;">"${NORMAL}${BASH_REMATCH[1]} ${BASH_REMATCH[2]} ${BASH_REMATCH[3]}: ${NORMAL}${GREEN}${BASH_REMATCH[6]}${NORMAL} ${WHITE}${BASH_REMATCH[7]}${NORMAL} to: ${VIOLET}${BASH_REMATCH[8]}${NORMAL} from: ${VIOLET}${BASH_REMATCH[9]}${NORMAL} origin_ip: ${CYAN}${BASH_REMATCH[10]}${NORMAL} origin_rdns: ${CYAN}${BASH_REMATCH[11]}${NORMAL} auth: ${WHITE}${BASH_REMATCH[12]}${NORMAL} ${NORMAL}${BASH_REMATCH[13]}${NORMAL}"</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">elif <span style="color:#006600; font-weight:bold;">&#91;</span><span style="color:#006600; font-weight:bold;">&#91;</span> $LINE =~ <span style="color:#CC0000;">"(.*)<span style="color:#000099; font-weight:bold;">\ </span>(.*)<span style="color:#000099; font-weight:bold;">\ </span>(.*)<span style="color:#000099; font-weight:bold;">\ </span>(.*)<span style="color:#000099; font-weight:bold;">\ </span>(.*)<span style="color:#000099; font-weight:bold;">\ </span>FILTER_RBL_MATCH<span style="color:#000099; font-weight:bold;">\ </span>ip:<span style="color:#000099; font-weight:bold;">\ </span>(.*)<span style="color:#000099; font-weight:bold;">\ </span>rbl:<span style="color:#000099; font-weight:bold;">\ </span>(.*)"</span> <span style="color:#006600; font-weight:bold;">&#93;</span><span style="color:#006600; font-weight:bold;">&#93;</span>; then</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">echo -e <span style="color:#CC0000;">"${NORMAL}${BASH_REMATCH[1]} ${BASH_REMATCH[2]} ${BASH_REMATCH[3]}: ${YELLOW}FILTER_RBL_MATCH${NORMAL} ip: ${CYAN}${BASH_REMATCH[6]}${NORMAL} rbl: ${WHITE}${BASH_REMATCH[7]}${NORMAL}"</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">elif <span style="color:#006600; font-weight:bold;">&#91;</span><span style="color:#006600; font-weight:bold;">&#91;</span> $LINE =~ <span style="color:#CC0000;">"(.*)<span style="color:#000099; font-weight:bold;">\ </span>(.*)<span style="color:#000099; font-weight:bold;">\ </span>(.*)<span style="color:#000099; font-weight:bold;">\ </span>(.*)<span style="color:#000099; font-weight:bold;">\ </span>(.*)<span style="color:#000099; font-weight:bold;">\ </span>FILTER_RDNS_MISSING<span style="color:#000099; font-weight:bold;">\ </span>ip:<span style="color:#000099; font-weight:bold;">\ </span>(.*)"</span> <span style="color:#006600; font-weight:bold;">&#93;</span><span style="color:#006600; font-weight:bold;">&#93;</span>; then</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">echo -e <span style="color:#CC0000;">"${NORMAL}${BASH_REMATCH[1]} ${BASH_REMATCH[2]} ${BASH_REMATCH[3]}: ${YELLOW}FILTER_RDNS_MISSING${NORMAL} ip: ${CYAN}${BASH_REMATCH[6]}${NORMAL}"</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">elif <span style="color:#006600; font-weight:bold;">&#91;</span><span style="color:#006600; font-weight:bold;">&#91;</span> $LINE =~ <span style="color:#CC0000;">"(.*)<span style="color:#000099; font-weight:bold;">\ </span>(.*)<span style="color:#000099; font-weight:bold;">\ </span>(.*)<span style="color:#000099; font-weight:bold;">\ </span>(.*)<span style="color:#000099; font-weight:bold;">\ </span>(.*)<span style="color:#000099; font-weight:bold;">\ </span>FILTER_EARLYTALKER<span style="color:#000099; font-weight:bold;">\ </span>delay:<span style="color:#000099; font-weight:bold;">\ </span>(.*)"</span> <span style="color:#006600; font-weight:bold;">&#93;</span><span style="color:#006600; font-weight:bold;">&#93;</span>; then</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">echo -e <span style="color:#CC0000;">"${NORMAL}${BASH_REMATCH[1]} ${BASH_REMATCH[2]} ${BASH_REMATCH[3]}: ${YELLOW}FILTER_EARLYTALKER${NORMAL} delay: ${WHITE}${BASH_REMATCH[6]}${NORMAL}"</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">elif <span style="color:#006600; font-weight:bold;">&#91;</span><span style="color:#006600; font-weight:bold;">&#91;</span> $LINE =~ <span style="color:#CC0000;">"(.*)<span style="color:#000099; font-weight:bold;">\ </span>(.*)<span style="color:#000099; font-weight:bold;">\ </span>(.*)<span style="color:#000099; font-weight:bold;">\ </span>(.*)<span style="color:#000099; font-weight:bold;">\ </span>(.*)<span style="color:#000099; font-weight:bold;">\ </span>FILTER_RECIPIENT_WHITELIST<span style="color:#000099; font-weight:bold;">\ </span>recipient:<span style="color:#000099; font-weight:bold;">\ </span>(.*)<span style="color:#000099; font-weight:bold;">\ </span>file:<span style="color:#000099; font-weight:bold;">\ </span>(.*)<span style="color:#000099; font-weight:bold;">\(</span>(.*)<span style="color:#000099; font-weight:bold;">\)</span>"</span> <span style="color:#006600; font-weight:bold;">&#93;</span><span style="color:#006600; font-weight:bold;">&#93;</span>; then</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">echo -e <span style="color:#CC0000;">"${NORMAL}${BASH_REMATCH[1]} ${BASH_REMATCH[2]} ${BASH_REMATCH[3]}: ${YELLOW}FILTER_RECIPIENT_WHITELIST${NORMAL} recipient: ${VIOLET}${BASH_REMATCH[6]}${NORMAL} file: ${WHITE}${BASH_REMATCH[7]}${NORMAL}(${YELLOW}${BASH_REMATCH[8]}${NORMAL})"</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">elif <span style="color:#006600; font-weight:bold;">&#91;</span><span style="color:#006600; font-weight:bold;">&#91;</span> $LINE =~ <span style="color:#CC0000;">"(.*)<span style="color:#000099; font-weight:bold;">\ </span>(.*)<span style="color:#000099; font-weight:bold;">\ </span>(.*)<span style="color:#000099; font-weight:bold;">\ </span>(.*)<span style="color:#000099; font-weight:bold;">\ </span>(.*)<span style="color:#000099; font-weight:bold;">\ </span>(FILTER_BLACKLIST_NAME|FILTER_WHITELIST_NAME)<span style="color:#000099; font-weight:bold;">\ </span>ip:<span style="color:#000099; font-weight:bold;">\ </span>(.*)<span style="color:#000099; font-weight:bold;">\ </span>rdns:<span style="color:#000099; font-weight:bold;">\ </span>(.*)<span style="color:#000099; font-weight:bold;">\ </span>file:<span style="color:#000099; font-weight:bold;">\ </span>(.*)<span style="color:#000099; font-weight:bold;">\(</span>(.*)<span style="color:#000099; font-weight:bold;">\)</span>"</span> <span style="color:#006600; font-weight:bold;">&#93;</span><span style="color:#006600; font-weight:bold;">&#93;</span>; then</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">echo -e <span style="color:#CC0000;">"${NORMAL}${BASH_REMATCH[1]} ${BASH_REMATCH[2]} ${BASH_REMATCH[3]}: ${YELLOW}${BASH_REMATCH[6]}${NORMAL} ip: ${VIOLET}${BASH_REMATCH[7]}${NORMAL} rdns: ${CYAN}${BASH_REMATCH[8]}${NORMAL} file: ${WHITE}${BASH_REMATCH[9]}${NORMAL}(${YELLOW}${BASH_REMATCH[10]}${NORMAL})"</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">elif <span style="color:#006600; font-weight:bold;">&#91;</span><span style="color:#006600; font-weight:bold;">&#91;</span> $LINE =~ <span style="color:#CC0000;">"(.*)<span style="color:#000099; font-weight:bold;">\ </span>(.*)<span style="color:#000099; font-weight:bold;">\ </span>(.*)<span style="color:#000099; font-weight:bold;">\ </span>(.*)<span style="color:#000099; font-weight:bold;">\ </span>(.*)<span style="color:#000099; font-weight:bold;">\ </span>FILTER_WHITELIST_IP<span style="color:#000099; font-weight:bold;">\ </span>ip:<span style="color:#000099; font-weight:bold;">\ </span>(.*)<span style="color:#000099; font-weight:bold;">\ </span>file:<span style="color:#000099; font-weight:bold;">\ </span>(.*)<span style="color:#000099; font-weight:bold;">\(</span>(.*)<span style="color:#000099; font-weight:bold;">\)</span>"</span> <span style="color:#006600; font-weight:bold;">&#93;</span><span style="color:#006600; font-weight:bold;">&#93;</span>; then</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">echo -e <span style="color:#CC0000;">"${NORMAL}${BASH_REMATCH[1]} ${BASH_REMATCH[2]} ${BASH_REMATCH[3]}: ${YELLOW}FILTER_WHITELIST_IP${NORMAL} ip: ${VIOLET}${BASH_REMATCH[6]}${NORMAL} file: ${WHITE}${BASH_REMATCH[7]}${NORMAL}(${YELLOW}${BASH_REMATCH[8]}${NORMAL})"</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">elif <span style="color:#006600; font-weight:bold;">&#91;</span><span style="color:#006600; font-weight:bold;">&#91;</span> $LINE =~ <span style="color:#CC0000;">"(.*)<span style="color:#000099; font-weight:bold;">\ </span>(.*)<span style="color:#000099; font-weight:bold;">\ </span>(.*)<span style="color:#000099; font-weight:bold;">\ </span>(.*)<span style="color:#000099; font-weight:bold;">\ </span>(.*)<span style="color:#000099; font-weight:bold;">\ </span>FILTER_SENDER_NO_MX<span style="color:#000099; font-weight:bold;">\ </span>domain:<span style="color:#000099; font-weight:bold;">\ </span>(.*)"</span> <span style="color:#006600; font-weight:bold;">&#93;</span><span style="color:#006600; font-weight:bold;">&#93;</span>; then</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">echo -e <span style="color:#CC0000;">"${NORMAL}${BASH_REMATCH[1]} ${BASH_REMATCH[2]} ${BASH_REMATCH[3]}: ${YELLOW}FILTER_SENDER_NO_MX${NORMAL} domain: ${VIOLET}${BASH_REMATCH[6]}${NORMAL}"</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">elif <span style="color:#006600; font-weight:bold;">&#91;</span><span style="color:#006600; font-weight:bold;">&#91;</span> $LINE =~ <span style="color:#CC0000;">"(.*)<span style="color:#000099; font-weight:bold;">\ </span>(.*)<span style="color:#000099; font-weight:bold;">\ </span>(.*)<span style="color:#000099; font-weight:bold;">\ </span>(.*)<span style="color:#000099; font-weight:bold;">\ </span>(.*)<span style="color:#000099; font-weight:bold;">\ </span>FILTER_GRAYLISTED<span style="color:#000099; font-weight:bold;">\ </span>sender:<span style="color:#000099; font-weight:bold;">\ </span>(.*)<span style="color:#000099; font-weight:bold;">\ </span>recipient:<span style="color:#000099; font-weight:bold;">\ </span>(.*)<span style="color:#000099; font-weight:bold;">\ </span>path:<span style="color:#000099; font-weight:bold;">\ </span>(.*)"</span> <span style="color:#006600; font-weight:bold;">&#93;</span><span style="color:#006600; font-weight:bold;">&#93;</span>; then</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">echo -e <span style="color:#CC0000;">"${NORMAL}${BASH_REMATCH[1]} ${BASH_REMATCH[2]} ${BASH_REMATCH[3]}: ${YELLOW}FILTER_GRAYLISTED${NORMAL} sender: ${VIOLET}${BASH_REMATCH[6]}${NORMAL} recipient: ${VIOLET}${BASH_REMATCH[7]}${NORMAL} path: ${WHITE}${BASH_REMATCH[8]}${NORMAL}"</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">elif <span style="color:#006600; font-weight:bold;">&#91;</span><span style="color:#006600; font-weight:bold;">&#91;</span> $LINE =~ <span style="color:#CC0000;">"(.*)<span style="color:#000099; font-weight:bold;">\ </span>(.*)<span style="color:#000099; font-weight:bold;">\ </span>(.*)<span style="color:#000099; font-weight:bold;">\ </span>(.*)<span style="color:#000099; font-weight:bold;">\ </span>(.*)<span style="color:#000099; font-weight:bold;">\ </span>FILTER_OTHER:<span style="color:#000099; font-weight:bold;">\ </span>response:<span style="color:#000099; font-weight:bold;">\ </span>(.*)"</span> <span style="color:#006600; font-weight:bold;">&#93;</span><span style="color:#006600; font-weight:bold;">&#93;</span>; then</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">echo -e <span style="color:#CC0000;">"${NORMAL}${BASH_REMATCH[1]} ${BASH_REMATCH[2]} ${BASH_REMATCH[3]}: ${YELLOW}FILTER_OTHER:${NORMAL} response: ${WHITE}${BASH_REMATCH[6]}${NORMAL}"</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">elif <span style="color:#006600; font-weight:bold;">&#91;</span><span style="color:#006600; font-weight:bold;">&#91;</span> $LINE =~ <span style="color:#CC0000;">"(.*)<span style="color:#000099; font-weight:bold;">\ </span>(.*)<span style="color:#000099; font-weight:bold;">\ </span>(.*)<span style="color:#000099; font-weight:bold;">\ </span>(.*)<span style="color:#000099; font-weight:bold;">\ </span>(.*)<span style="color:#000099; font-weight:bold;">\ </span>DENIED_BLACKLIST_NAME:<span style="color:#000099; font-weight:bold;">\ </span>response:<span style="color:#000099; font-weight:bold;">\ </span>(.*)"</span> <span style="color:#006600; font-weight:bold;">&#93;</span><span style="color:#006600; font-weight:bold;">&#93;</span>; then</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">echo -e <span style="color:#CC0000;">"${NORMAL}${BASH_REMATCH[1]} ${BASH_REMATCH[2]} ${BASH_REMATCH[3]}: ${RED}DENIED_BLACKLIST_NAME:${NORMAL} response: ${WHITE}${BASH_REMATCH[6]}${NORMAL}"</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">elif <span style="color:#006600; font-weight:bold;">&#91;</span><span style="color:#006600; font-weight:bold;">&#91;</span> $LINE =~ <span style="color:#CC0000;">"(.*)<span style="color:#000099; font-weight:bold;">\ </span>(.*)<span style="color:#000099; font-weight:bold;">\ </span>(.*)<span style="color:#000099; font-weight:bold;">\ </span>(.*)<span style="color:#000099; font-weight:bold;">\ </span>(.*)<span style="color:#000099; font-weight:bold;">\ </span>(FILTER_RDNS_RESOLVE|FILTER_IP_IN_CC_RDNS)<span style="color:#000099; font-weight:bold;">\ </span>ip:<span style="color:#000099; font-weight:bold;">\ </span>(.*)<span style="color:#000099; font-weight:bold;">\ </span>rdns:<span style="color:#000099; font-weight:bold;">\ </span>(.*)"</span> <span style="color:#006600; font-weight:bold;">&#93;</span><span style="color:#006600; font-weight:bold;">&#93;</span>; then</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">echo -e <span style="color:#CC0000;">"${NORMAL}${BASH_REMATCH[1]} ${BASH_REMATCH[2]} ${BASH_REMATCH[3]}: ${YELLOW}${BASH_REMATCH[6]}${NORMAL} ip: ${VIOLET}${BASH_REMATCH[7]}${NORMAL} rdns: ${WHITE}${BASH_REMATCH[8]}${NORMAL}"</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">elif <span style="color:#006600; font-weight:bold;">&#91;</span><span style="color:#006600; font-weight:bold;">&#91;</span> $LINE =~ <span style="color:#CC0000;">"(.*)<span style="color:#000099; font-weight:bold;">\ </span>(.*)<span style="color:#000099; font-weight:bold;">\ </span>(.*)<span style="color:#000099; font-weight:bold;">\ </span>(.*)<span style="color:#000099; font-weight:bold;">\ </span>(.*)<span style="color:#000099; font-weight:bold;">\ </span>ERROR"</span> <span style="color:#006600; font-weight:bold;">&#93;</span><span style="color:#006600; font-weight:bold;">&#93;</span>; then</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">echo -e <span style="color:#CC0000;">"${NORMAL}${BASH_REMATCH[1]} ${BASH_REMATCH[2]} ${BASH_REMATCH[3]}: ${RED}ERROR${NORMAL} sender: ${VIOLET}${BASH_REMATCH[6]}${NORMAL} recipient: ${VIOLET}${BASH_REMATCH[7]}${NORMAL} path: ${WHITE}${BASH_REMATCH[8]}${NORMAL}"</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">else</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">echo -e <span style="color:#CC0000;">"${CYAN}FIXME${NORMAL} ${YELLOW}${LINE}${NORMAL}"</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">fi</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">done</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#006600; font-weight:bold;">&#125;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">eval $comando </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
]]></content:encoded>
			<wfw:commentRss>http://thiago.oxente.org/2009/08/11/logparser-script-para-colorir-o-log-do-spamdyke/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Instalando o OpenOffice 3.1.0 no Slackware 64 13.0</title>
		<link>http://thiago.oxente.org/2009/07/15/instalando-o-openoffice-3-1-0-no-slackware-64-13-0</link>
		<comments>http://thiago.oxente.org/2009/07/15/instalando-o-openoffice-3-1-0-no-slackware-64-13-0#comments</comments>
		<pubDate>Wed, 15 Jul 2009 17:21:26 +0000</pubDate>
		<dc:creator>Thiago Melo</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Slackware]]></category>
		<category><![CDATA[Slackware 64]]></category>

		<guid isPermaLink="false">http://thiago.oxente.org/?p=165</guid>
		<description><![CDATA[
Hoje eu tirei um tempo para instalar o BrOffice no meu Slackware 64, mas ao entrar no site do BrOffice não encontrei uma distribuição 64bits. Indo no site do OpenOffice encontrei a distro em 64bits e com isso instalei separado o OOo e depois o pacote de tradução para PT-BR. Nem tudo funcionou certinho logo [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-full wp-image-168" title="openoffice_logo1" src="http://thiago.oxente.org/wp-content/uploads/2009/07/openoffice_logo1.png" alt="openoffice_logo1" width="174" height="93" /></p>
<p>Hoje eu tirei um tempo para instalar o BrOffice no meu Slackware 64, mas ao entrar no site do BrOffice não encontrei uma distribuição 64bits. Indo no site do OpenOffice encontrei a distro em 64bits e com isso instalei separado o OOo e depois o pacote de tradução para PT-BR. Nem tudo funcionou certinho logo de inicio mas alguns ajustes depois ficou 100%.</p>
<p>Inicialmente baixe os pacotes:<br />
Instalador do OOo 64bits -&gt; <a href="http://ftp.sunet.se/pub/Office/OpenOffice.org/stable/3.1.0/OOo_3.1.0_LinuxX86-64_install_en-US.tar.gz" target="_blank">http://ftp.sunet.se/pub/Office/OpenOffice.org/stable/3.1.0/OOo_3.1.0_LinuxX86-64_install_en-US.tar.gz</a><br />
Instalador da tradução -&gt; <a href="ftp://ftp.unicamp.br/pub/broffice/stable/3.1.0/BrOOo_3.1.0_LinuxX86-64_langpack_pt-BR.tar.gz" target="_blank">ftp://ftp.unicamp.br/pub/broffice/stable/3.1.0/BrOOo_3.1.0_LinuxX86-64_langpack_pt-BR.tar.gz</a><br />
CoGrOOo o corretor ortográfico -&gt;<a href="http://extensions.services.openoffice.org/download/2453" target="_blank"> http://extensions.services.openoffice.org/download/2453</a><br />
Dicionario pt-BR (Eu achei que não precisava por causa do CoGrOOo mas ele não funcionou sem esse arquivo, você acha ele no BrOffice 32bits -&gt; <span style="text-decoration: underline;"><strong>dict-pt.oxt</strong></span></p>
<p>Depois de baixar tudo vamo a instalação:<br />
- Extrair o arquivo de instalação</p>
<div class="igBar"><span id="lcode-15"><a href="#" onclick="javascript:showPlainTxt('code-15'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">CODE:</span>
<div id="code-15">
<div class="code">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">root@sentinela:~# tar zxvf OOo_3.<span style="color:#800000;color:#800000;">1</span>.<span style="color:#800000;color:#800000;">0</span>_LinuxX86-<span style="color:#800000;color:#800000;">64</span>_install_en-US.<span style="">tar</span>.<span style="">gz</span> </div>
</li>
</ol>
</div>
</div>
</div>
<p>
<span id="more-165"></span><br />
- Extrair o arquivo de instalação da tradução</p>
<div class="igBar"><span id="lcode-16"><a href="#" onclick="javascript:showPlainTxt('code-16'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">CODE:</span>
<div id="code-16">
<div class="code">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">root@sentinela:~# tar zxvf BrOOo_3.<span style="color:#800000;color:#800000;">1</span>.<span style="color:#800000;color:#800000;">0</span>_LinuxX86-<span style="color:#800000;color:#800000;">64</span>_langpack_pt-BR.<span style="">tar</span>.<span style="">gz</span> </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>- Entre no diretório de instalação</p>
<div class="igBar"><span id="lcode-17"><a href="#" onclick="javascript:showPlainTxt('code-17'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">CODE:</span>
<div id="code-17">
<div class="code">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">root@sentinela:~# cd OOO310_m11_native_packed-<span style="color:#800000;color:#800000;">3</span>_en-US.<span style="color:#800000;color:#800000;">9399</span>/RPMS </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>- Mova os arquivos que não serão instalados para outro diretório (Idioma inglês, tradutores en, fr, es, pacote do gnome)</p>
<div class="igBar"><span id="lcode-18"><a href="#" onclick="javascript:showPlainTxt('code-18'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">CODE:</span>
<div id="code-18">
<div class="code">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">root@sentinela:~# mkdir arquivos-nao-usados </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<div class="igBar"><span id="lcode-19"><a href="#" onclick="javascript:showPlainTxt('code-19'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">CODE:</span>
<div id="code-19">
<div class="code">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">root@sentinela:~# mv ooobasis3.<span style="color:#800000;color:#800000;">1</span>-en-US*  arquivos-nao-usados/ </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<div class="igBar"><span id="lcode-20"><a href="#" onclick="javascript:showPlainTxt('code-20'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">CODE:</span>
<div id="code-20">
<div class="code">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">root@sentinela:~# mv openoffice.<span style="">org3</span>-dict-*  arquivos-nao-usados/ </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<div class="igBar"><span id="lcode-21"><a href="#" onclick="javascript:showPlainTxt('code-21'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">CODE:</span>
<div id="code-21">
<div class="code">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">root@sentinela:~# mv ooobasis3.<span style="color:#800000;color:#800000;">1</span>-gnome-integration-<span style="color:#800000;color:#800000;">3</span>.<span style="color:#800000;color:#800000;">1</span>.<span style="color:#800000;color:#800000;">0</span>-<span style="color:#800000;color:#800000;">9399</span>.<span style="">x86_64</span>.<span style="">rpm</span>  arquivos-nao-usados/ </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>- Instale tudo</p>
<div class="igBar"><span id="lcode-22"><a href="#" onclick="javascript:showPlainTxt('code-22'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">CODE:</span>
<div id="code-22">
<div class="code">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">root@sentinela:~# rpm -ivh --nodeps *.<span style="">rpm</span> </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>Entre no diretório [b]desktop-integration[/b] e instale o pacote do Slackware</p>
<div class="igBar"><span id="lcode-23"><a href="#" onclick="javascript:showPlainTxt('code-23'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">CODE:</span>
<div id="code-23">
<div class="code">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">root@sentinela:~# installpkg openoffice.<span style="">org3</span>.<span style="color:#800000;color:#800000;">1</span>-slackware-menus-<span style="color:#800000;color:#800000;">3</span>.<span style="color:#800000;color:#800000;">1</span>-noarch-<span style="color:#800000;color:#800000;">9393</span>.<span style="">tgz</span> </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>- Agora entre no diretório da tradução pt-BR e instale os rpm</p>
<div class="igBar"><span id="lcode-24"><a href="#" onclick="javascript:showPlainTxt('code-24'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">CODE:</span>
<div id="code-24">
<div class="code">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">root@sentinela:~# cd OOO310_m11_native_packed-<span style="color:#800000;color:#800000;">2</span>_pt-BR.<span style="color:#800000;color:#800000;">9399</span>/RPMS </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<div class="igBar"><span id="lcode-25"><a href="#" onclick="javascript:showPlainTxt('code-25'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">CODE:</span>
<div id="code-25">
<div class="code">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">root@sentinela:~# rpm -ivh --nodeps *.<span style="">rpm</span> </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>Depois de tudo instalado o OpenOffice ja deve aparecer no menu do KDE, mas vai ter alguns problemas<br />
1) Os ícones não vão aparecer.<br />
2) O corretor não vai estar funcionando</p>
<p>Para resolver o problema dos ícones primeiro der permissão de escrita nos arquivos de configuração do desktop</p>
<div class="igBar"><span id="lcode-26"><a href="#" onclick="javascript:showPlainTxt('code-26'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">CODE:</span>
<div id="code-26">
<div class="code">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">root@sentinela:~# chmod <span style="color:#800000;color:#800000;">666</span> /opt/openoffice.<span style="">org3</span>/share/xdg<span style="color:#008000;">/*.desktop </span></div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>Depois de ter permissão de escrita va na edição de menu no proprio KDE e altere os ícones para os atalhos do OOo, os ícones do OOo estão no diretório [b]/opt/kde/share/icons/hicolor[/b]/32x32/apps/</p>
<p>Para o corretor funcionar basta dentro de algum programa do OOo, como o Writer acessar o gerenciador de extensões e instalar o dict-pt e o CoGrOOo, depois disso configurar os idiomas todos para pt-BR inclusive o do corretor.</p>
<p>Com isso o OOo deve ficar 100% funcionando no seu Slack64.</p>
<p>Vou ver com mais tempo fazer um pacote para instalar isso.</p>
]]></content:encoded>
			<wfw:commentRss>http://thiago.oxente.org/2009/07/15/instalando-o-openoffice-3-1-0-no-slackware-64-13-0/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Songbird &#8211; O Firefox do audio.</title>
		<link>http://thiago.oxente.org/2009/07/13/songbird-o-firefox-do-audio</link>
		<comments>http://thiago.oxente.org/2009/07/13/songbird-o-firefox-do-audio#comments</comments>
		<pubDate>Mon, 13 Jul 2009 19:58:27 +0000</pubDate>
		<dc:creator>Thiago Melo</dc:creator>
				<category><![CDATA[Ipod]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Slackware]]></category>

		<guid isPermaLink="false">http://thiago.oxente.org/?p=160</guid>
		<description><![CDATA[
Nesse fim de semana eu conversava com um amigo, o Vandré, sobre o uso do Ipod no Linux, quando ele mencionou um programa novo chamado Songbird. Chegando em casa eu resolvi procurar saber desse projeto, e gostei tanto que acabei migrando para esse aplicativo tanto no Windows como no Linux.
No windows eu sempre usei o [...]]]></description>
			<content:encoded><![CDATA[<p><img class="size-thumbnail wp-image-161 alignleft" title="songbird-512" src="http://thiago.oxente.org/wp-content/uploads/2009/07/songbird-512-150x150.png" alt="Songbird" width="105" height="105" /></p>
<p>Nesse fim de semana eu conversava com um amigo, o Vandré, sobre o uso do Ipod no Linux, quando ele mencionou um programa novo chamado <a href="http://getsongbird.com/" target="_blank">Songbird</a>. Chegando em casa eu resolvi procurar saber desse projeto, e gostei tanto que acabei migrando para esse aplicativo tanto no Windows como no Linux.<br />
No windows eu sempre usei o <a href="http://www.apple.com" target="_blank">iTunes</a>, mas tem algo que muita gente reclama do iTunes, que é o fato dele ser pesado, eu até que não acho ele pesado mas em relação a outros players o iTunes é o mais lento. No Linux eu estava usando o gtk-pod com o audacious, e uma solução idêntica ao iTunes seria perfeito para substituir esses dois.<br />
O projeto Songbird foi criado em 2006 pela "Pioneers of the Inevitable", uma empresa composta por pessoas que já trabalharam em projetos famosos como Winamp, Yahoo Music Jukebox, Netscape Navigator e <a href="http://www.mozilla.com" target="_blank">Mozilla Firefox</a>. A idéia do projeto era de criar um software novo para o mercado de media player, de forma que o programa fosse o que o Firefox foi para o mercado de navegadores.</p>
<p>Instalei no meu computador de casa Windows XP e no trabalho Linux Slackware 64bits 13.0, segue abaixo o processo de instalação em cada plataforma.<br />
<span id="more-160"></span><br />
<strong>Windows</strong><br />
No windows foi fácil a instalação pois era só baixar e executar, depois de instalar escolhi dois addons para incrementar o player, um deles é o Lyric Master, um addon que busca a letra da musica que está tocando e mostra ao lado, e o outro é o iPod Device Manager, que adiciona o suporte para iPod no Songbird.<br />
O iPod foi detectado com sucesso, porem apresentou um problema, de listar todas as musicas (juntando do iPod e do PC) na mesma library, com isso muitas musicas ficaram repetidas na Library.<br />
Para resolver esse problema, você deve abrir o iTunes e ir nas configurações do iPod e desligar a opção de abrir o iTunes automaticamente caso o iPod seja conectado ao PC. Depois disso limpe sua Library e crie novamente e ai ele não vai mais mostrar as musicas duplicadas, e sim separado como no iTunes.<br />
Outra vantagem é que da para adicionar as capas dos discos nas musicas sem precisar de uma conta na Apple Store.</p>
<p><strong>Linux</strong><br />
No Linux não foi tão simples o processo de instalação, a principio o Songbird funcionou, peguei a versão x86_64, só que ele não conseguia executar a musica, dando uma mensagem de erro "Internal data flow error". E eu não conseguia solucionar o problema. Depois de fuçar muito descobri que o Slackwar64 não vem com todos os plugins gstream instalados, apenas com o gst-plugins-base. E para que o Songbird funcione é necessário que tenha instalado os plugins good, bad e ugly (The Good, The Bad and the Ugly lOL). E como eu não achei os pacotes para Slack64bits então eu tive que compilar da fonte.</p>
<p>Para quem não quiser ter que baixar os fonte para compilar aqui já tenho compilado para Slackware 13.0 64bits os plugins Gstream.<br />
<a href="http://reiserfs.killermonkeys.net/Thiago/Linux/slack64/gst-plugins-bad-0.10.13-i486-2_SBo.txz" target="_blank">http://reiserfs.killermonkeys.net/Thiago/Linux/slack64/gst-plugins-bad-0.10.13-i486-2_SBo.txz</a><br />
<a href="http://reiserfs.killermonkeys.net/Thiago/Linux/slack64/gst-plugins-good-0.10.15_x86_64-2.txz" target="_blank">http://reiserfs.killermonkeys.net/Thiago/Linux/slack64/gst-plugins-good-0.10.15_x86_64-2.txz</a><br />
<a href="http://reiserfs.killermonkeys.net/Thiago/Linux/slack64/gst-plugins-ugly-0.10.12_X86_64-1.txz" target="_blank">http://reiserfs.killermonkeys.net/Thiago/Linux/slack64/gst-plugins-ugly-0.10.12_X86_64-1.txz</a></p>
<p>Depois de instalar os plugins o Songbird deve funcionar corretamente, eu também criei o pacote para o Songbird para Slackware 13.0 64bits para quem tiver interessado segue o link: <a href="http://reiserfs.killermonkeys.net/Thiago/Linux/slack64/Songbird-1.2.0_1146-i686-1_SBo.tgz" target="_blank">http://reiserfs.killermonkeys.net/Thiago/Linux/slack64/Songbird-1.2.0_1146-i686-1_SBo.tgz</a>.</p>
<p>O Songbird funciona normalmente depois de tudo bem instalado, coloquei o idioma português-Brasil, coloquei os addons que coloquei no Windows, o Lyric Master e o iPod Device Manager e tudo funcionou corretamente.<br />
O iPod não detectou automaticamente, mas depois de plugar o iPod o kde montou ele, e ai eu fui em adicionar mídia e apenas cliquei em iPod, então o Songbird o adicionou como no Windows.</p>
<p>Finalizando, o Songbird está ai para brigar com os players do mercado, seja o iTunes no Windows ou o Amarok no Linux, ainda está no começo mas a proposta e muito boa, ele é muito mais rápido que o iTunes e é bem prático de usar.</p>
]]></content:encoded>
			<wfw:commentRss>http://thiago.oxente.org/2009/07/13/songbird-o-firefox-do-audio/feed</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Slackware 13.0 RC1 &#8211; Voltando a usar Linux no Desktop</title>
		<link>http://thiago.oxente.org/2009/07/07/slackware-13-0-rc1-voltando-a-usar-linux-no-desktop</link>
		<comments>http://thiago.oxente.org/2009/07/07/slackware-13-0-rc1-voltando-a-usar-linux-no-desktop#comments</comments>
		<pubDate>Tue, 07 Jul 2009 13:24:00 +0000</pubDate>
		<dc:creator>Thiago Melo</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Slackware]]></category>

		<guid isPermaLink="false">http://thiago.oxente.org/?p=156</guid>
		<description><![CDATA[A muito tempo atrás eu parei de usar Linux como desktop, a ultima versão que eu tinha tentado usar o foi do Slamd64 uma versão não oficial do Slackware para 64bits, não lembro a versão que estava mas creio que era 11.0. Nessa época eu apanhei bastante para fazer certas coisas funcionarem na minha maquina [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-full wp-image-157" title="Slackware Logo" src="http://thiago.oxente.org/wp-content/uploads/2009/07/images.jpeg" alt="Slackware Logo" width="84" height="86" />A muito tempo atrás eu parei de usar Linux como desktop, a ultima versão que eu tinha tentado usar o foi do Slamd64 uma versão não oficial do Slackware para 64bits, não lembro a versão que estava mas creio que era 11.0. Nessa época eu apanhei bastante para fazer certas coisas funcionarem na minha maquina com essa versão do Linux, como SOM, e o flash. O Flash era um problema pois só existia flash 32bits, e tinha que fazer trezentas gambiarras para o flash funcionar com o Firefox 64bits.<br />
Depois de um tempo eu cansei de tentar usar o desktop, o KDE não me animava e não facilitava o meu dia a dia, e o Photoshop fazia muita falta, com isso eu desisti de usar Linux como desktop e deixando apenas para os servidores.<br />
<span id="more-156"></span><br />
Recentemente eu vi o anuncio do lançamento do Slackware 13.0 RC1 e que agora oficialmente o Patrik vai dar suporte dois build do slackware, uma 32 bits e uma 64bits. Resolvi então me aventurar novamente com o Linux no Desktop, mas para que isso desse certo, algumas coisas teriam que funcionar 100%.<br />
- Flash<br />
- Impressora<br />
- Som<br />
- Ipod<br />
Depois de instalar o Linux me deparei com as novidades, principalmente com o novo KDE4, o pessoal do KDE finalmente acordou e fez uma interface elegante e leve. Está muito mais fácil e acessivel de se usar o KDE4. O sistema de pacotes do slackware mudou de tgz para txz onde agora o sistema utiliza um algoritimo de compactação utilizado pelo 7-zip gerando pacotes menores.<br />
Como se tratava de uma versão 64bits fui logo de cara com o primeiro problema, que era o FLASH. Para minha surpresa a ADOBE lançou a versão Flash 10 64bits para Linux, ainda estava em beta mais foi fácil de encontrar via google, e para minha surpresa funcionou perfeitamente. Ponto para a ADOBE (So falta lançar os SDK do Flash9 hehehe).<br />
Impressora foi fácil também, porem foi utilizando o Cups pelo navegador, no KDE3 eu lembro que tinha uma interface para adicionar impressora, que era MUITO complicada, e que não ajudava nada no final somente pelo Cups eu tinha sucesso, dessa vez eu não achei uma interface para o KDE4, e fui direto no Cups para fazer o serviço, a impressora era de rede então foi mamão com açucar.<br />
O som teve o velho problema de não conseguir usar mais de um programa usando a interface de som ao mesmo tempo, o drive foi instalado facilmente, mas tive que colocar as configurações de DMIX no /etc/esound.con para que o som funcionasse corretamente, podendo escutar musica e ver um video no flash por exemplo. Essa questão do DMIX devia ser mais simples, já que se trata de uma interface gráfica, para popularizar o linux tem que facilitar para o publico. Outro lance e que tem que botar o usuário no grupo de audio para ele poder executar som.<br />
Ipod foi o ultimo que testei, não teve muito mistério baixei e instalei o GTKPod e coloquei permissão para meu user para montar o dispositivo e pronto.</p>
<p>Finalizando o Slackware 13.0 está bem completo e pronto para 64bits, agora eu tenho finalmente um bom subistituto para o meu destktop no trabalho, em casa vou continuar com o velho WinXP para rodar meus jogos ehehehe, mas quem quiser se aventurar eu recomendo, nada está faltando nesse Linux.</p>
]]></content:encoded>
			<wfw:commentRss>http://thiago.oxente.org/2009/07/07/slackware-13-0-rc1-voltando-a-usar-linux-no-desktop/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Migrando o servidor de E-mail</title>
		<link>http://thiago.oxente.org/2009/02/17/migrando-o-servidor-de-e-mail</link>
		<comments>http://thiago.oxente.org/2009/02/17/migrando-o-servidor-de-e-mail#comments</comments>
		<pubDate>Tue, 17 Feb 2009 15:29:13 +0000</pubDate>
		<dc:creator>Thiago Melo</dc:creator>
				<category><![CDATA[Bash]]></category>
		<category><![CDATA[Hardware]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Programação]]></category>
		<category><![CDATA[Redes]]></category>
		<category><![CDATA[Slackware]]></category>
		<category><![CDATA[courier]]></category>
		<category><![CDATA[dovecot]]></category>
		<category><![CDATA[dspam]]></category>
		<category><![CDATA[horde]]></category>
		<category><![CDATA[imapsync]]></category>
		<category><![CDATA[mta]]></category>
		<category><![CDATA[qmail]]></category>
		<category><![CDATA[vpopmail]]></category>
		<category><![CDATA[webmail]]></category>

		<guid isPermaLink="false">http://thiago.oxente.org/?p=113</guid>
		<description><![CDATA[Em Janeiro eu tive uma missão aqui no trabalho, que era de migrar uma velha estrutura de e-mail para uma nova e mais segura.  Antes foi retratar como foram as migrações passadas e de quantas estruturas passei até chegar nessa ultima que provavelmente foi a reta final para mim como administrador do sistema de e-mail [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-full wp-image-114" title="email" src="http://thiago.oxente.org/wp-content/uploads/2009/02/email.jpg" alt="email" width="123" height="123" />Em Janeiro eu tive uma missão aqui no trabalho, que era de migrar uma velha estrutura de e-mail para uma nova e mais segura.  Antes foi retratar como foram as migrações passadas e de quantas estruturas passei até chegar nessa ultima que provavelmente foi a reta final para mim como administrador do sistema de e-mail da empresa.</p>
<p>Quando eu fui contratado em 2005 eu encontrei um cenário não muito animador, que era:<br />
- Dois servidores COMPAQ ML370 G1 (P3 + 256Mb Ram cada)<br />
- Um desktop montado (Celeron + 128Mb Ram)<br />
Nessa estrutura rodava hospedagem de sites (Apache+PHP+Mysql) e servidor de e-mail (Postfix+Cyrus+Horde), só que a estrutura era muito bagunçada, foi feita por um funcionário que já havia saido da empresa a muito tempo e era alvo de constantes invasões e ataques.<br />
Para mudar esse cenário eu então peguei o equipamento que tinha, e refiz toda a estrutura, e um dos ML370 eu coloquei a parte de hospedagem web (APACHE+PHP+MYSQL) usando bastante restrição no php.ini principalmente a diretiva open_basedir para restringir cada virtualhost em seu diretório, e outros paramentos que eliminou de vez as invasões.</p>
<p>No cenário de E-mail eu resolvi radicalizar e mudar quase tudo, de Postfix eu mudei para a combinação de Qmail+Vpopmail e o Cyrus foi mudado para o Courier. No final das contas eu consegui migrar todas as contas do Postfix para o Qmail usando alguns scripts que encontrei na internet, somente as mensagens que não migrei, pois a estrutura antiga não tinha sistema de quota e a nova eu coloquei quota, com isso não dava para migrar as mensagens pois todo mundo iria ficar "overquota", mesmo assim foi dado um prazo para cada usuário fazer backup das mensagens.</p>
<p>[Vou dividir o post pois o texto é grande]</p>
<p><span id="more-113"></span><br />
Este novo cenário de e-mail permaneceu por muito tempo, estavel e sem problemas graves, porem foi apresentado um novo projeto para o cenário de e-mail aqui na empresa, na qual eu não faço parte, foi-se então adotado o <a href="http://www.expressolivre.org" target="_blank">Expresso Livre</a>, que trata-se de uma combinação do (<a href="http://www.egroupware.org/" target="_blank">E-groupware</a> + Postfix + Cyrus + Ldap), é um software livre brasileiro, e está sendo adotado por muitas empresas do setor publico e privado.</p>
<p>Eu estava com alguns planos e ideias de melhorar a estrutura que eu tinha criado quando cheguei aqui, porem com esse novo projeto aprovado eu desisti e larguei meu "filho", só mantendo as atualizações em dia, e dando suporte enquanto o sistema migrava para o Expresso.</p>
<p>Nesse meio tempo minha estrutura estava sobrecarregada, e com isso eu ganhei um servidor novo, um HP ML350 G4, com processador Xeon 2GHZ e 2GB de RAM, isso serviu bastante e deixou o sistema mais leve, porém ainda não era a estrutura ideal, ter apenas uma maquina "bombril" com mil e uma utilidades não é o certo. Essa maquina recebia e enviava e-mails, verificava as mensagens com antivírus e antispam, hospedava o webmail e guardava as mensagens em disco. O certo seria dividir essas tarefas em servidores diferentes, porem todo hardware novo que chegava era destinado a estrutura do expresso, que já estava funcionando com 1 domínio de 500 contas, contra 98 domínios com na media de 600 contas cada na minha estrutura.</p>
<p>O Projeto do Expresso estava muito lento, a migração demorava seculos para por um domínio, cada domínio passava por uma burocracia enorme, pois o expresso tinha um grande problema, primeiro a nova politica de que os e-mails deveriam ser nome.sobrenome@dominio e outra que o Expresso não suporta nomes iguais, como por exemplo joao.silva@dominio.com e joao.silva@outrodominio.com para ele joao.silva é uma pessoa só e isso estava gerando muita confusão, pois entre as milhares de contas de e-mails existentes o que mais vai ter é colisão de nome.<br />
Na minha estrutura como eu uso Vpopmail, joao.silva@dominio.com é diferente de  joao.silva@outrodominio.com, assim eu poderia ter quantas pessoas com o mesmo nome pois o login no vpopmail conta com todo o endereço e não apenas o que vem antes da arroba (@).</p>
<p>Em um dia negro minha estrutura deu um problema grave no HD, as fitas de backup já não suportavam o tamanho do backup que era de 60gigas e as fitas so tinham 40gb, foi um dia péssimo, eu passei uma semana inteira tentando recuperar os dados, e ainda bem que no final das contas tudo voltou ao normal, porem nesse dia eu pedi para meu chefe um investimento na estrutura antiga, já que o expresso não ia para frente. Com isso eu ganhei duas HP DL360 G5 com XEON quadcore e 4GB Ram, e ainda mais ligada ao nosso cluster podendo usar a Library para backup.</p>
<p>Com esse equipamento eu resolvi então montar uma estrutura dividida e mais organizada. Meu projeto então foi:<br />
- Em uma DL360 ficaria o MTA, com Qmail + Clamav + DSPAM unicamente com a função de receber e enviar e-mail, filtrar e etc.<br />
- Em uma DL360 ficaria os e-mails com Vpopmail e dessa vez eu não optei em usar o Courier e sim o <a href="http://www.dovecot.org/" target="_blank">Dovecot</a> no lugar dele.<br />
- Em uma maquina virtual no cluster ficaria o webmail.</p>
<p>A estrutura seria mais ou menos assim:<br />
<strong>[INTERNET] &lt;===e-mail===&gt; [MTA COM FILTROS] &lt;===e-mail===&gt; [MAILSTORAGE] &lt;===e-mail===&gt; [USUARIO]</strong></p>
<p><strong>1. MTA</strong><br />
O MTA é o servidor que vai receber as mensagens pela internet, e ele também vai enviar as mensagens enviadas pelo usuário da rede, pelo o que eu notei na estrutura antiga em horário de pico o processo do qmail-smtpd fica mais lento, por causa dos filtros e com isso ele deixava a maquina toda mais lenta, comprometendo o IMAP e o APACHE (Webmail) mas isso era devido a filtragem de Spam que consumia bastante memoria (eu usava Spamassassin).<br />
No MTA eu coloquei o Qmail (netqmail) com todos os patchs, e coloquei o Simscan no lugar do qmail-scanner.pl para gerenciar a filtragem de e-mail, o Simscan é compatível com o clamav e com o DSPAM e eu escolhi ambos para a filtragem de Virus e Spam. E nela eu coloquei as regras de smtproute, para que o MTA enviasse as mensagens dos meus domínios para meu outro servidor que eu chamo de MAILSTORAGE.</p>
<p><strong>Programas utilizados:</strong><br />
clamav-0.94.2 =&gt; antivírus<br />
daemontools-0.76 =&gt; supervisor do qmail<br />
dspam-3.8.0 = &gt; antispam<br />
mod_auth_imap2 = &gt; autenticação do apache via imap ou pop<br />
netqmail-1.06 =&gt; qmail atualizado com patchs<br />
simscan-1.4.0 =&gt; scanner para qmail<br />
ucspi-tcp-0.88 =&gt; tcptools para o qmail</p>
<p><strong>2. MAILSTORAGE</strong><br />
Este servidor é no caso o mais importante, ele vai guardas as mensagens dos usuários e ser acessado via IMAP ou POP usando SSL ou não, mas para que ele possa receber mensagens ele precisa também ser um MTA. Porem o MTA deve ser mais simples e rápido, ele já vai receber as mensagens filtradas e so tem o papel de gravar no disco o que receber. Com isso nessa maquina eu também uso o Qmail, porem sem filtros apenas com os patchs, esse qmail recebe os e-mails do qmail do MTA através do smtproute.</p>
<p>Esta estrutura usa o vpopmail para guardar os e-mails, eu costumo usar o Vpopmail pela sua estrutura de diretórios, ele usa Maildir, e diferencia um usuário do outro através do domínio, impedindo de existir conflito entre dois usuários de mesmo nome. Outra mudança que teve foi o servidor de IMAP/POP. Na estrutura antiga eu usava o Courier-IMAP. Eu tive muitos problemas com ele, principalmente de contas travando, loop infinitos, e eu fiquei sem poder atualizar o courier pois eles tiraram o suporte a Vpopmail, com isso eu fui tentar o Cyrus, mas no meio do caminho encontrei o Dovecot, e depois de ler bastante a respeito resolvi testar, e vi que o Dovecot é 10x melhor que o Courier.</p>
<p><strong>Programas utilizados:<br />
</strong>autorespond-2.0.2 =&gt; Progama usado pelo qmail para auto resposta de mensagens<strong><br />
</strong>daemontools-0.76 = &gt; Supervisor do qmail<br />
dovecot-1.1.7 =&gt; Servidor IMAP/POP3<br />
ezmlm-idx-5.1.2 =&gt; Programa de lista de e-mails<br />
imapsync-1.267 =&gt; Programa usado para a migração, sincronizar as contas<br />
maildrop-2.0.4 = &gt; Usado pelo qmail para entregar as mensagens<br />
netqmail-1.06 =&gt; MTA atualizado com os patchs + Patch Checkuser.<br />
qmailadmin-1.2.12 =&gt; Gerencia das contas<br />
ucspi-tcp-0.88 =&gt; Tcptools usado pelo qmail<br />
vpopmail-5.4.25 =&gt; Suporte a dominios virtuais ao qmail.<strong></strong></p>
<p><strong>3. WEBMAIL<br />
</strong>O webmail foi colocado em uma maquina virtual, no nosso cluster VMware. Nela roda apenas o apache+php+mysql e o Horde Groupware (Webmail Edition). Sendo uma maquina virtual separada a performance do webmail melhorou 100%, o webmail se conecta com o MAILSTORAGE para autenticar e ler as mensagens dos usuários e com o MTA para enviar mensagens.</p>
<p>Todas as três maquinas incluindo a virtual usam <a href="http://slackware.com/" target="_blank">Slackware </a>12.2 como sistema operacional.</p>
<p><strong>4. A MIGRAÇÃO</strong><br />
O processo de migração foi feito nas seguintes etapas:</p>
<ul>
<li> Instalações dos sistemas operacionais e programas nos novos servidores</li>
<li> Backup do banco de dados do vpopmail</li>
<li> Criação dos scriptsde migração</li>
<li> Criar os domínios no novo servidor</li>
<li> Criar as novas contas no novo servidor usando uma senha padrão</li>
<li> Atualizar a quota dos usuários criados no novo servidor</li>
<li> Salvar a senha dos usuários no servidor antigo, para que sejam atualizadas no novo servidor</li>
<li> Mudar a senha dos usuários no servidor antigo para uma senha padrão de forma que o possa se fazer o login na conta e migrar as mensagens.</li>
<li> Limpar o lixo das contas como mensagens excluídas e spam para facilitar a migração, usando o "comando_do_demonio" (Um script que criei que verificar o lixo nas contas e apaga, mensagens excluídas e spam).</li>
<li> Migrar as mensagens para o novo servidor usando o ImapSync</li>
<li> Atualizar as senhas no novo servidor usando as senhas salvas no servidor antigo.</li>
<li> Alterar o servidor de login nas configurações do webmail para que o webmail conecte no novo servidor.</li>
<li> Efetuar testes de login</li>
<li> Configurar o Backup do novo servidor</li>
<li> Alterar os IPS do servidor antigo com o novo.</li>
</ul>
<p><strong>5. CONCLUSÃO</strong><br />
A migração foi um sucesso, e agora eu tenho 3 servidores para a estrutura, onde posso parar e trabalhar com cada um sem interferir no outro, posso para o webmail sem parar o acesso pop/imap3, posso parar o MTA mas os usuários podem ainda acessar as mensagens, e por ai vai. A performance melhorou 100%, e agora tenho backup em fitas de 800GB com mais segurança para os dados.<br />
O DSPAM ainda não funciona muito bem, pois tem um esquema de treinar ele, e ainda estou coletando os spams reportado pelos usuários para treina-lo.<br />
Enquanto o Expresso não anda pra frente minha estrutura nova agora pode aguentar por muito tempo.</p>
<p>Se você tiver algum interesse nas configurações que usei na estrutura, parametros de compilação ou scripts de migração, comenta ai que eu envio.</p>
]]></content:encoded>
			<wfw:commentRss>http://thiago.oxente.org/2009/02/17/migrando-o-servidor-de-e-mail/feed</wfw:commentRss>
		<slash:comments>34</slash:comments>
		</item>
		<item>
		<title>VMware &#8211; Virtualize-se</title>
		<link>http://thiago.oxente.org/2008/07/07/vmware-virtualize-se</link>
		<comments>http://thiago.oxente.org/2008/07/07/vmware-virtualize-se#comments</comments>
		<pubDate>Mon, 07 Jul 2008 16:57:51 +0000</pubDate>
		<dc:creator>Thiago Melo</dc:creator>
				<category><![CDATA[Hardware]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Outras Tecnologia]]></category>
		<category><![CDATA[Slackware]]></category>
		<category><![CDATA[Virtualização]]></category>
		<category><![CDATA[esx]]></category>
		<category><![CDATA[virtual]]></category>
		<category><![CDATA[vmware]]></category>

		<guid isPermaLink="false">http://thiago.oxente.org/?p=57</guid>
		<description><![CDATA[ Uns anos atrás eu tinha ouvido falar do vmware, na epoca era a ferramenta que a galera usava para rodar o Windows dentro do Linux.
O VMware é uma maquina virtual, um software criado com a capacidade de emular uma maquina, sendo assim capaz de se instalar um sistema operacional dentro de outro sistema operacional.
Com [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft alignnone size-medium wp-image-58" style="float: left;" title="vmware" src="http://thiago.oxente.org/wp-content/uploads/2008/07/vmware.jpg" alt="" width="249" height="80" /> Uns anos atrás eu tinha ouvido falar do vmware, na epoca era a ferramenta que a galera usava para rodar o Windows dentro do Linux.</p>
<p>O VMware é uma maquina virtual, um software criado com a capacidade de emular uma maquina, sendo assim capaz de se instalar um sistema operacional dentro de outro sistema operacional.<br />
Com o tempo eu também conheci outros softwares de maquina virtual, como o <a title="Bochs" href="http://pt.wikipedia.org/wiki/Bochs">Bochs</a>, <a title="Virtual PC" href="http://pt.wikipedia.org/wiki/Virtual_PC">Virtual PC</a> e o <a title="QEMU" href="http://pt.wikipedia.org/wiki/QEMU">QEMU</a>.<br />
O VirtualPC foi comprado pela Microsoft, e era o mais simples de se utilizar em conjunto com o Windows.</p>
<p>Na minha viagem para Fortaleza, para o <a href="http://thiago.oxente.org/2007/09/26/morphus-weekend-2007/" target="_blank">Morphus Weekend</a>, eu tive a chance de conhecer mais a fundo o VMware, onde um represetante da VMware mostrava como o VMware tinha crescido e qual mercado ele está atuando hoje em dia.</p>
<p>Antes eu tinha a ideia de virtualização uma coisa mais usada para desenvolvimento ou uso doméstico, mas agora vejo que o mercado de virtualização está mesmo para distribuição de recursos, alta disponibilidade e segurança de serviços em produção.</p>
<p><span id="more-57"></span>O VMware possui diversos pacotes diferentes, que vai da solução para o desenvoldor até a solução para virtualização de servidores. Eu peguei algumas das versões para testar e analizar, umas eu tive sucesso, outras eu quebrei a cabeça para rodar em uma maquina workstation.</p>
<p>As três versões que eu peguei para testar foram:<br />
1. VMware Server<br />
2. VMware Workstation<br />
3. VMware ESX Server</p>
<p><strong>1. VMware Server</strong></p>
<p>A versão server é a mais conhecida e utilizada pela comunidade, ela é gratuita e suporta qualquer Sistema Operacional padrão x86,  pode ser gerenciado pelo VMware virtual center, tem suporte para 1 ou 2 processadores, sistema operacionais de 64 bits, e roda as maquinas virtuais como serviço (Background).</p>
<p>Essa versão é ideal para quem precisa de uma solução barata de virtualização, Eu estou no momento rodando em um Athlon 64 3200+ com 2GB Ram, um windows XP + VMWare com 3 Maquinas virtuais (Linux Slackware 12.1, Linux Slackware 12.1 e Windows 2008 server).<br />
Ligando as 3 Maquinas fica impossivel trabalhar, porem eu so uso o Windows 2008 para testes e uma maquina Linux eu tambem só ligo para testes. Ligado o tempo todo mesmo somente uma maquina Linux. Mas da para deixar até 3 Linux (sem interface gráfica) rodando em background o problema mesmo e o windows 2008</p>
<p><strong>2. VMware Workstation</strong></p>
<p>Essa é uma versão mais completa, porém e diferente da versão Server. Essa versão é voltada mais para desenvolvedores, ela possui diversos recursos de copiar maquina, fazer cópia, mover maquinas, não possui limitação de processadores, porém é PAGO.</p>
<p>A workstation tem muito mais recursos que a server, por ser pago tem que ser né? Porém a workstation não roda as maquinas como serviço (pelo o que eu entendi) então para rodar maquinas em produção a server ainda é melhor (e gratis).</p>
<p>Existe uma tabela aqui comparando Workstation com a Server<br />
<a href="http://www.virtualization.info/lab/VMwareWKS60_vs_VMwareSVR10.pdf" target="_blank">http://www.virtualization.info/lab/VMwareWKS60_vs_VMwareSVR10.pdf</a></p>
<p><strong>3. VMware ESX Server</strong></p>
<p>Agora imagine, você quer rodar uma maquina virtual, quer alta disponibilidade, não quer ter um Sistema Operacional primario para rodar as maquinas. Bom essa é a solução da VMware, o ESX Server. O ESX é um sistema operacional voltado para rodar maquinas virtuais, ele dedica 100% dos recursos da maquina para as maquinas virtuais.<br />
Em performance o ESX ganha disparado das outras versões, a server por exemplo veja um gráfico comparando:<br />
<a href="http://blogs.vmware.com/photos/uncategorized/2007/03/29/esxvsserverslide.jpg" target="_blank">http://blogs.vmware.com/photos/uncategorized/2007/03/29/esxvsserverslide.jpg</a></p>
<p>O ESX contem todos os recursos que os outros produtos tem, eu peguei uma versão trial dele porem não tive sucesso de instalar, percebi que o suporte deles é voltado mesmo para o mercado corporativo. Mas isso não será uma barreira de conhecer o software, já que no novo Cluster do ITEC iremos usar ESX em 4 servidores (licenciados).<br />
Na tentativa de instalar na minha maquina, o ESX deu trabalho para instalar, mas não rodou, pelo o que eu entendi no forum do VMWare e um problema com suporte a controladoras SATA. Percebi tambem reinando que o ESX nada mais é que um Linux, isso mesmo um Linux porém ele roda o VMkernel logo após o inicio, ele vinha tambem com o Kernel-source do Linux, mas não adiantar muito eu mexer, pois eu teria que por o suporte no VMkernel.</p>
<p>Bom fica aqui a dica para quem não sabe, e quem gostaria de testar, baixe já o VMware server é gratis é facil de mexer e não é pesado, economize em hardware e distribua melhor os recursos de sua estrutura.<br />
<a href="http://www.vmware.com/download/server/" target="_blank">http://www.vmware.com/download/server/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://thiago.oxente.org/2008/07/07/vmware-virtualize-se/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Call of Duty 4: Modern Warfare Linux Dedicated Server</title>
		<link>http://thiago.oxente.org/2008/07/04/call-of-duty-4-modern-warfare-linux-dedicated-server</link>
		<comments>http://thiago.oxente.org/2008/07/04/call-of-duty-4-modern-warfare-linux-dedicated-server#comments</comments>
		<pubDate>Fri, 04 Jul 2008 14:19:29 +0000</pubDate>
		<dc:creator>Thiago Melo</dc:creator>
				<category><![CDATA[Call of Duty 4]]></category>
		<category><![CDATA[Jogos]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Redes]]></category>
		<category><![CDATA[Slackware]]></category>
		<category><![CDATA[cod4]]></category>
		<category><![CDATA[dedicated]]></category>
		<category><![CDATA[icculus]]></category>
		<category><![CDATA[punkbuster]]></category>
		<category><![CDATA[server]]></category>

		<guid isPermaLink="false">http://thiago.oxente.org/?p=56</guid>
		<description><![CDATA[O pessoal do Killer Monkeys, ficou me pedindo para rodar um servidor de COD4 no nosso servidor Linux. Vasculhando na internet eu achei algums sites que ensinavam a montar um com Windows (duplo clique e etc) mas nenhum bom conteúdo para montar um com Linux.
No site FPSAdmin, encontrei alguns tutoriais que dão dicas de como [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft" style="float: left;" src="http://www.winajuda.com/wp-content/uploads/2008/01/box-call-of-duty-4-mini.jpg" alt="" width="146" height="209" />O pessoal do <a href="http://killermonkeys.net" target="_blank">Killer Monkeys</a>, ficou me pedindo para rodar um servidor de COD4 no nosso servidor Linux. Vasculhando na internet eu achei algums sites que ensinavam a montar um com Windows (duplo clique e etc) mas nenhum bom conteúdo para montar um com Linux.</p>
<p>No site <a href="http://www.fpsadmin.com/" target="_blank">FPSAdmin</a>, encontrei alguns tutoriais que dão dicas de como baixar e instalar o COD4 para linux desenvolvido pela <a href="http://icculus.org/" target="_blank">Icculus</a>.<br />
Bom depois de apanhar bastante conseguir botar o bixo para rodar e ontem a noite foi dando tiro pra todo lado.</p>
<p>Nesse artigo eu vou mostrar o passo a passo de como instalar, atualizar, configurar e rodar o servidor de COD4 no ambiente Linux, só não vou me aprofundar muito nos comandos de administração pois ainda tou aprendendo.</p>
<p>Hardware:<br />
AMD Athlon(tm) 64 X2 Dual Core Processor 4000+<br />
1 GB DDR2 667Mhz<br />
SO: Linux Slackware 12.1</p>
<p><strong>IMPORTANTE: Você precisa ter o DVD do jogo para instalar o server (6gb de server é foda mas e a vida).</strong></p>
<p><span id="more-56"></span>Primeiro passo é criar um usuário novo na maquina, no meu ambiente eu tenho um grupo kmgames, para rodar os servidores (Counter Strike Source, Team Fortress 2, TeamSpeak).<br />
A pasta que eu uso para instalar meus jogos é /games/<br />
Então na shell do seu Linux digite:</p>
<p><span style="color: #0000ff;"><em>root@hostname: groupadd games<br />
root@hostname: mkdir  -p /games/cod4<br />
root@hostname: useradd cod4 -g games -d /games/cod4 -s /bin/bash<br />
root@hostname: passwd cod4 </em></span></p>
<p>Com isso ele vai criar o grupo games (que já deve existir), criar o diretório e depois o usuário. E no final pedir a senha.</p>
<p>Coloque o DVD do jogo no servidor ( se você tiver a imagem do jogo no HD monte a imagem com <span style="color: #0000ff;"><em>mount -o loop /diretorio/da/imagem/imagem.iso /mnt/iso</em></span>)</p>
<p><strong>Monte o DVD:</strong><br />
<span style="color: #0000ff;"><em>root@hostname: mount /dev/hdx /media/cdrom</em></span><br />
Mude o hdx pelo certo correspondente ao seu drive de DVD.</p>
<p><strong>Copie o conteudo do jogo da pasta Data para a pasta do jogo:</strong><br />
<span style="color: #0000ff;"><em>root@hostname: cp -a /media/cdrom/Setup/Data/* /games/cod4/</em></span></p>
<p><strong>Agora baixe o COD4 Para Linux 1.7 (ultima versão até eu escrever esse artigo)</strong></p>
<p><span style="color: #0000ff;"><em>root@hostname: cd /games/cod4<br />
root@hostname: wget http://treefort.icculus.org/cod/cod4-linux-server-06282008.tar.bz2</em></span></p>
<p><strong>Agora copie o que você baixou por cima dos arquivos do jogo, assim ele vai atualizar o jogo para Linux com a versão 1.7</strong></p>
<p><span style="color: #0000ff;"><em>root@hostname: tar jxvf http://treefort.icculus.org/cod/cod4-linux-server-06282008.tar.bz2</em></span></p>
<p><strong>Ele vai criar um diretório chamado cod4-linux-server/<br />
copie tudo que tem dentro dele para a raiz</strong></p>
<p><span style="color: #0000ff;"><em>root@hostname: cp -a cod4-linux-server/* /games/cod4/</em><br />
<em>root@hostname: chmod +x pbsetup.run cod4_lnxded*</em></span></p>
<p><strong>Agora seu server ta instalado e vamos configurar, primeiro muda a permissão dos diretórios para o user cod4</strong><br />
<em></em></p>
<p><span style="color: #0000ff;"><em>root@hostname: chown cod4.games /games/cod4 -R</em></span></p>
<p><strong>Saia do root e logue agora com o user cod4 (tudo isso poderia ser feito com o user cod4 direto).</strong><br />
<em><br />
<span style="color: #0000ff;">cod4@hostname: cd /games/cod4</span></em><span style="color: #0000ff;"> </span>(esse comando nem precisa pois essa já é a home do user cod4)</p>
<p><strong>Instalando o PunkBuster</strong><br />
<span style="color: #0000ff;"><em>cod4@hostname: ./pbsetup.run -e<br />
</em><em>cod4@hostname: </em><em>./pbsetup.run --add-game=cod4 --add-game-path=/games/cod4<br />
</em><em>cod4@hostname: </em></span><em><span style="color: #0000ff;">./pbsetup.run -u</span><br />
</em><br />
<strong>De (Y)es para quando ele perguntar se você aceita a licença.</strong></p>
<p><strong>Agora vamos para as configurações</strong><br />
<span style="color: #0000ff;"><em>cod4@hostname: cd /games/cod4/main<br />
</em><em>cod4@hostname: wget  http://reiserfs.killermonkeys.net/misc/cod4cfg/server.cfg<br />
</em><em>cod4@hostname: wget  http://reiserfs.killermonkeys.net/misc/cod4cfg/gametypes.cfg<br />
</em><em>cod4@hostname: wget  http://reiserfs.killermonkeys.net/misc/cod4cfg/maprotation.cfg<br />
</em><em>cod4@hostname: wget  http://reiserfs.killermonkeys.net/misc/cod4cfg/playercontrol.cfg<br />
</em><em>cod4@hostname: wget  http://reiserfs.killermonkeys.net/misc/cod4cfg/weaponcontrol.cfg</em></span></p>
<p>Edite o arquivo server.cfg para configurações básicas do seu server, como nome, porta, senha e etc.<br />
O arquivo gametypes voce escolhe o modo de jogo (Deathmatch, Domination e etc) Modo Hardcore, Killcam e etc.<br />
O arquivo maprotation muda os mapas de acordo com o gametypes<br />
Os arquivos playercontrol e weaponcontrol servem para você controlar perk, armas e etc.</p>
<p><strong>Depois de editar tudo vamos para o principal</strong><br />
<span style="color: #0000ff;"><em>cod4@hostname:  ./cod4_lnxded +set dedicated 2 +set sv_maxclients 16 +set sv_punkbuster "1" +exec server.cfg +map_rotate</em></span></p>
<p><strong>Pronto seu server já deve estar rodando, para rodar o server em Background jogue ele em uma screen</strong><br />
<span style="color: #0000ff;"><em>cod4@hostname: screen  ./cod4_lnxded +set dedicated 2 +set sv_maxclients 16 +set sv_punkbuster "1" +exec server.cfg +map_rotate</em></span></p>
<p><strong>Aperte Ctrl+A depois Ctrl + D para sair da screeen, e screen -r para voltar.</strong><br />
O resto, como administrar e etc você se vira nos 30 hehehehe.</p>
<p>Meu server já está rodando tudo certinho.<br />
<a href="http://www.gametracker.com/server_info/200.223.178.30:28960/" target="_blank"><br />
<img src="http://cache.www.gametracker.com/server_info/200.223.178.30:28960/b_560x95.png" border="0" alt="" /><br />
</a></p>
]]></content:encoded>
			<wfw:commentRss>http://thiago.oxente.org/2008/07/04/call-of-duty-4-modern-warfare-linux-dedicated-server/feed</wfw:commentRss>
		<slash:comments>43</slash:comments>
		</item>
		<item>
		<title>TeamSpeak &#8211; Communication System</title>
		<link>http://thiago.oxente.org/2007/06/18/teamspeak-communication-system</link>
		<comments>http://thiago.oxente.org/2007/06/18/teamspeak-communication-system#comments</comments>
		<pubDate>Mon, 18 Jun 2007 13:36:08 +0000</pubDate>
		<dc:creator>Thiago Melo</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Outros]]></category>
		<category><![CDATA[Redes]]></category>

		<guid isPermaLink="false">http://thiago.oxente.org/2007/06/18/teamspeak-communication-system/</guid>
		<description><![CDATA[Para quem não conhece o TeamSpeak é um software de voz sobre ip, o qual permite que as pessoas conversem através de canais separados, muito parecido como uma conferencia.
Diferente do Skpye o TeamSpeak não foi feito para ter uma conversa direta com o usuário, fazer ligações, enviar arquivos e etc. O foco do TeamSpeak está [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.teamspeak.com/templates/default/images/header/logo_left.jpg" align="left" height="137" width="308" />Para quem não conhece o <a href="http://www.teamspeak.com" target="_blank">TeamSpeak</a> é um software de voz sobre ip, o qual permite que as pessoas conversem através de canais separados, muito parecido como uma conferencia.<br />
Diferente do <a href="www.skype.com/intl/pt/" target="_blank">Skpye</a> o TeamSpeak não foi feito para ter uma conversa direta com o usuário, fazer ligações, enviar arquivos e etc. O foco do TeamSpeak está em manter um grupo grande de pessoas conversando entre si como se estivessem no mesmo ambiente.<br />
Seu publico vem dos jogadores de jogos de computador, com o crescimento da internet e dos jogos Multiplay, foi-se necessário o uso de uma ferramenta de Voz. Imagine você jogando em rede, um jogo baseado em times, no qual seu time tem que ter organização e sincronia para vencer, agora veja como seria mais fácil passar as informações do time via voz do que escrevendo.<br />
Chega ser até engraçado fazer uma comparação de você avisar a um amigo do time via voz: "Cuidado o inimigo na sua esquerda", ou tentar escrever: "Cuidado o inimiiiii.... (amigo morre) Eu tentei avisar".<br />
Por causa dessas facilidades esses softwares de voz sobre ip foi fazendo bastante sucesso em conjunto com os jogos Multiplay.</p>
<p>Clique em Ler mais para mais informações <img src='http://thiago.oxente.org/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /><br />
<span id="more-29"></span></p>
<p>Um dos primeiros softwares que eu usei para jogar foi o <a href="http://en.wikipedia.org/wiki/Roger_Wilco_%28software%29" target="_blank">Roger Wilco</a>. Era um software bem arcaico mas era eficaz, o som era ruim mas dava pro gasto.<br />
<img src="http://images.pcworld.com/downloads/graphics/screenshots/7580f.jpg" height="309" width="321" /><br />
<em>O <a href="http://en.wikipedia.org/wiki/GameSpy" title="GameSpy">GameSpy</a> comprou o código fonte do Roger Wilco e incluiu um sistema de voip para "gamers" no seu GameSpy Arcade.</em></p>
<p>Logo após de um tempo usando o Roger Wilco, a quantidade de pessoas que usavam o software foi aumentando e o software não tinha mais porte para suportar aquela quantidade de jogadores. Foi aí que tive contato com o TeamSpeak. Diferente do Roger Wilco, o TeamSpeak tinha suporte a um sistema de salas, onde cada sala tinha seu canal de voz separado. Isso ajudou bastante pois se poderia ter várias pessoas juntas no mesmo servidor mas em salas diferentes caso estivessem no time adversário ou jogando outro jogo. O TeamSpeak também tinha uma variedade de codecs, o qual cada canal poderia usar um codec diferente, assim podendo balancear qualidade com velocidade.</p>
<p>O TeamSpeak possui versões oficiais tanto cliente como servidor para Windows e para Linux, e uma versão não oficial para Mac OS X. Atualmente o TeamSpeak se encontra na sua segunda geração, conhecido como TeamSpeak 2, e com a sua terceira geração já em estado de desenvolvimento.</p>
<p><strong>O Cliente<br />
</strong><img src="http://i17.photobucket.com/albums/b55/reiserfs/tskm.jpg" /></p>
<p>Outra opção é usar o "connection -&gt; quick connect"Sua configuração é simples, selecionando "connection -&gt; connect" o TeamSpeak irá abrir uma tela onde você poderá configurar os servidores no "Local Addressbook" ou conectar em um servidor publico procurando no "Webserver List"., onde você pode conectar a um servidor sem ter que registrar no "Address Book".</p>
<p><img src="http://i17.photobucket.com/albums/b55/reiserfs/tela_ts1.jpg" /></p>
<p>Outra opção importante é o "Push to Talk", está opção você escolhe uma tecla do teclado para ser o interruptor para ligar ou desligar o envio de voz pelo TeamSpeak, ou pode ser usar a opção de "Voice Activation" onde o TeamSpeak ativa automaticamente o envio de voz ao detectar que o usuário está falando ao microfone.</p>
<p><img src="http://i17.photobucket.com/albums/b55/reiserfs/tela_ts1-1.jpg" /></p>
<p>Todas as versões oficiais, Linux e Windows possuem a mesma interface com as mesmas opções. A versão para Linux usa QT, foi compilado com o Kylix. Não se sabe como será a terceira geração do Teamspeak, mas segundo algumas informações no fórum oficial, o TeamSpeak que é feito em Delphi será agora feito em C++, então deve ser esperar algumas mudanças na interface do Linux para o Windows.</p>
<p><strong>O Servidor</strong></p>
<p>A versão para Linux é diferente da versão para Windows. Na versão Windows temos a interface gráfica e facilidade do "click click click" e está tudo pronto. Ambas versões possuem um webserver para poder gerenciar o servidor, clientes e outros servers.<br />
<img src="http://www.teamspeak.com/images/screenshots/ts2_02.gif" height="638" width="550" /></p>
<p>O TeamSpeak usa de forma padrão o banco de dados <a href="www.sqlite.org" target="_blank">SQLite</a>, mas possui a opção de ser usar MySQL, o que facilita bastante os administradores e desenvolvedores a integrarem um sistema único de login.</p>
<p>Por exemplo, no servidor de TeamSpeak do Killermonkeys.net o qual eu administro, o banco de dados do TeamSpeak é o mesmo banco do phpBB, fiz algumas alterações nos scripts SQL do TeamSpeak, para ele usar os campos user_id,username,password da tabela phpbb_users no lugar dos campos e da tabela padrão, assim temos um login integrado, se o usuário mudar a senha no Fórum, automaticamente muda no TeamSpeak também.</p>
<p><strong>Concorrência.</strong></p>
<p>Existem outros softwares de voz sobre ip no mercado, um deles é o <a href="http://www.ventrilo.com" target="_blank">Ventrilo</a> um forte adversário do TeamSpeak, possui uma interface menos interativa, mas possui o melhor codec, e a função de "Text-to-speech" usando principalmente quando alguém entra em um canal ou no server, o programa fala o nome do usuário.<br />
<img src="http://www.ventrilo.com/images/ss230_1.jpg" height="559" width="319" /></p>
<p>Existe também um projeto opensource, mas nunca tive tempo de testar, trata-se do <a href="http://sourceforge.net/projects/mumble/" target="_blank">Mumble</a>, veja foto abaixo.<br />
<img src="http://sourceforge.net/dbimage.php?id=42477" /></p>
<p>Bom concluindo, o TeamSpeak tem de tudo para suprir uma necessidade de uso de voz sobre ip em larga escala, e multi-conferencia.  Existem servidores públicos e privados, e empresas especializadas em hospedar o sistema.<br />
Ele é uma ferramenta Grátis, tanto para server como para cliente, porem para se prover o serviço de hospedagem deve ser pagar a licença comercial.</p>
]]></content:encoded>
			<wfw:commentRss>http://thiago.oxente.org/2007/06/18/teamspeak-communication-system/feed</wfw:commentRss>
		<slash:comments>55</slash:comments>
		</item>
		<item>
		<title>phpBB3 Olympus</title>
		<link>http://thiago.oxente.org/2007/04/17/phpbb3-olympus</link>
		<comments>http://thiago.oxente.org/2007/04/17/phpbb3-olympus#comments</comments>
		<pubDate>Tue, 17 Apr 2007 18:58:25 +0000</pubDate>
		<dc:creator>Thiago Melo</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programação]]></category>

		<guid isPermaLink="false">http://thiago.oxente.org/2007/04/17/phpbb3-olympus/</guid>
		<description><![CDATA[ Com o lançamento do Beta5 do phpBB3 resolvi baixar esta versão, já que ela está vindo com as funções de importar os dados do phpBB2. Uso o phpBB2 no fórum do Killer Monkeys Brasil e nele fiz bastante modificações para atender as necessidades da comunidade. O phpBB2 é um bom sistema de fóruns, mas [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.phpbb.com/theme/images/logo_phpbb.png" /> Com o lançamento do Beta5 do <a target="_blank" href="http://www.phpbb.com">phpBB3</a> resolvi baixar esta versão, já que ela está vindo com as funções de importar os dados do <a target="_blank" href="http://www.phpbb.com">phpBB2</a>. Uso o phpBB2 no fórum do <a target="_blank" title="Killer Monkeys Brasil" href="http://killermonkeys.net">Killer Monkeys Brasil</a> e nele fiz bastante modificações para atender as necessidades da comunidade. O phpBB2 é um bom sistema de fóruns, mas comparados a outros do mercado como o <a target="_blank" href="http://thiago.oxente.org/www.vbulletin.com">vBulletin</a> ou o <a href="http://community.ipslink.com/board/">InvisionPowerBoard</a> o phpBB2 foi ficando para trás, por possuir menos recursos e ficar muito dependente de modificações de terceiros.</p>
<p><span id="more-17"></span>        Duas coisas são muito importantes hoje em dia em um sistema de fórum, uma delas e suporte a anexos de arquivos. Os phpBB2 não possui este recurso nativo no sistema, dependendo de uma modificação no fórum que pode ser um pouco complicada para pessoas com pouco conhecimento técnicos. O outra coisa importante no fórum, são os sub-fóruns. As comunidades independente do assunto tratado, tendem a crescer e adicionar mais assuntos e mais categorias, um fórum com muitas categorias e muitos fóruns, tende a ficar desorganizado, a adição de sub-fóruns oferece o recurso de se dividir em uma cascata os fóruns, deixando de forma mais limpa e organizada os fóruns mais grandes. Assim como suporte a anexos o phpBB2 não suporta sub-fóruns, ficando novamente dependente de modificações de terceiros.</p>
<p>Em virtude da falta desses recursos básicos, o phpBB2 foi perdendo mercado para a concorrência, muitos falam que foi por causa dos bugs de segurança, mas todos os outros fóruns também estavam vulneráveis a diversas falhas de programação, o problema do phpBB2 era sua popularidade que era maior e com isso uma vulnerabilidade nova descoberta resultava em muito mais comunidades atacadas do que uma vulnerabilidade nos outros sistemas de foruns.</p>
<p>Bom o phpBB3 esta vindo ai para mudar este cenário, com um novo código totalmente reescrito, adição dos recursos básicos e de novos recursos, e uma nova interface mais amigável de administração, o phpBB3 voltará a ser um sistema de fórum confiável e poderoso, e quem sabe recuperar o mercado perdido para a concorrência.</p>
<p>tela de administração do phpBB3 (clique para ver no tamanho original)<br />
<a target="_blank" href="http://i17.photobucket.com/albums/b55/reiserfs/bb3_admin.jpg"> <img src="http://i17.photobucket.com/albums/b55/reiserfs/th_bb3_admin.jpg" /></a></p>
<p>Uma das coisas, que mais preocupou a comunidade foi a migração de dados do BB2 para o BB3, a equipe do phpBB ainda não oficializou o suporte a essa migração, mas no BETA5 já foi adicionado as funções de migração, nas quais eu testei e tive resultados surpreendentes. O suporte a migração vai ser lançado na próxima versão que vai ser a RC1 (Release Candidate 1).</p>
<p>Para testar o BB3 eu fiz uma cópia do fórum do KM na minha pasta, tanto os arquivos como o banco de dados. Meu medo é que não fosse possível migrar os dados, pois o banco do KM é um pouco modificado, por exemplo, os campos para integração com o TeamSpeak, e para integração com o sistema de gerenciamento de acesso e membros o KingKong.</p>
<p>Depois do processo de migração, que é um pouco demorada, o BB3 estava pronto e funcionando, só reparei em um problema, o founder da instalação tinha sumido. E para piorar ele pegou o usuário mais novo por ordem de user_id e deu para ele permissão de founder, com isso tive que modificar algumas coisas via MySQL para que o meu usuário fosse o founder do site, e o outro um usuário comum, mas isso era o de menos, todos os dados foram migrados, tanto os usuários e permissões como "posts", tópicos e fóruns.</p>
<p>Fórum do KM migrado para o phpBB3<br />
<a target="_blank" href="http://i17.photobucket.com/albums/b55/reiserfs/bb3.jpg"> <img src="http://i17.photobucket.com/albums/b55/reiserfs/th_bb3.jpg" /></a></p>
<p>Os novos recursos do phpBB3 que estão listados até agora no site oficial são:</p>
<p><strong>Requerimentos</strong></p>
<p><em>Banco de dados suportados.</em></p>
<p>* MySQL 3.23+/4.0+/4.1+/5.0+<br />
* MySQLi (MySQL 4.1+/5.0+)<br />
* PostgreSQL 7.3+<br />
* SQLite<br />
* Firebird 1.5+/Interbase 7.1+<br />
* Oracle<br />
* MSSQL 2000+<br />
* MSSQL 2000+ (ODBC)</p>
<p><em>Versão mínima do PHP suportada</em></p>
<p>PHP >= 4.3.3</p>
<p><strong>Recursos</strong><br />
<em><strong>O que foi melhorado?</strong></em></p>
<p>Recursos que já existiam no phpBB2, e que foram melhorados no Olympus.</p>
<p>Mensagens Privadas (está mais com cara de um sistema de e-mail agora)</p>
<p>* Enviar para múltiplos usuários (isso fazia falta)<br />
* Enviar para grupos<br />
* Enviar BCC (Blind Carbon Copies)<br />
* Encaminhar mensagens<br />
* Lista de amigos funciona como Livro de endereços<br />
* Anexar arquivos (vide sistema de anexos)<br />
* Rascunho de PM<br />
* Sistema de conversa (deve ser igual ao Gmail não testei)<br />
* Pastas das PM<br />
* Filtros nas PM<br />
* Exportar mensagens (deve ser muito legal isso)</p>
<p>Registro</p>
<p>* Ligar e desligar o COPPA (isto controla a mensagem do fórum sobre a idade permitida)<br />
* Limitar o numero de tentativas de registro (bom para combater spam bots)<br />
* Limitar o tamanho máximo e mínimo do nome de usuário<br />
* Limitar o tamanho máximo e mínimo da senha<br />
* Limitar os caracteres utilizados no nome de usuário<br />
* Configurar sistema de complexidade da senha (nada de 123456 hehehe)<br />
* Forçar a troca da senha<br />
* Permitir ou Proibir o re-uso de uma e-mail no registro</p>
<p>Busca</p>
<p>* Buscar dentro de tópicos<br />
* Selecionar múltiplos tópicos na busca<br />
* Buscar apenas nos títulos<br />
* Buscar no primeiro post do tópico apenas<br />
* configurar o intervalo de buscas para evitar o flood e a sobrecarga no server.<br />
* Escolher o backend da busca (mysql/phpbb) não testei.</p>
<p>Admin Control Panel</p>
<p>* Mais flexível e acessível com sistema de abas (nada de frames)<br />
* Sistema modular, para melhor suporte a extensões (antigos Mods)<br />
* Liberar permitir acesso as funções no painel (melhor gerencia dos admins)<br />
* Novo status de founder para o criador do fórum<br />
* Completamente re-estruturado</p>
<p>Moderator Control Panel</p>
<p>* Gerenciar fila de pendências da moderação<br />
* Lista de avisos e denuncias<br />
* Detalhes do Fórum, tópico, e post.</p>
<p>Enquetes</p>
<p>* Múltiplas opções por usuário<br />
* Liberar ou permitir alterações na votação</p>
<p>grupos</p>
<p>* Múltiplos lideres de grupo<br />
* Cor do grupo<br />
* Rank do Grupo<br />
* Avatar do Grupo</p>
<p>Visualizar o Profile</p>
<p>* Mais estatísticas na visualização do profile<br />
* Assinatura no profile<br />
* Grupos no profile</p>
<p>Permissions</p>
<p>* Mais poderoso e flexível sistema de permissões<br />
* Permissões simples através de regras<br />
* Ajuste aos acessos dos moderadores e administradores<br />
* Super moderadores</p>
<p>Gerenciamento de Usuários</p>
<p>* Avançada interface de edição do usuário<br />
* Editar preferenciais do usuário<br />
* Editar membros dos grupos<br />
* Mostrar ou editar anexos dos usuários<br />
* Ver permissões diretamente (virar o usuário e ver como ele visualiza e acessa o fórum)</p>
<p>Mais</p>
<p>* Painel de controle para moderador e admin<br />
* Bans temporários<br />
* Comentários para os bans<br />
* Gerenciar grupos no ACP<br />
* Procurar membros por qualquer atributo</p>
<p><strong>O que tem de novo?</strong></p>
<p><em>Novos recursos adicionados que não existiam no phpBB2, está lista não esta completa pois o phpBB3 não está pronta, coisa nova ainda pode vir.</em></p>
<p>Suporte completo a UTF-8</p>
<p>Anexos</p>
<p>* Anexos nos post e nas mensagens privadas<br />
* Miniatura de imagem automática<br />
* Anexar imagens, documentos, vídeo streams, arquivos compactados<br />
* Múltiplos anexos<br />
* Mostrar anexos na linha</p>
<p>sub-fóruns ilimitados</p>
<p>* Mostra tópicos ativos de todos os sub-fóruns</p>
<p>BBcodes customizaveis</p>
<p>* Crie seus próprios BBCODES (show de bola isso)<br />
* Adiciona o botão do BBCODE no formulário de envio</p>
<p>Campos do Profile customizados</p>
<p>* Adicionar novos campos no profile<br />
* Mostrar no registro<br />
* Mostrar na visualização do profile<br />
* Esconder novo campo<br />
* Suporte a diferentes tipos de dados</p>
<p>Controle de Painel do Usuário</p>
<p>* Gerenciar tópicos inscritos e fóruns (quando você se inscrever para obter as atualizações do mesmo por e-mail)<br />
* Gerenciar tópicos favoritos<br />
* Gerenciar rascunho<br />
* Gerenciar mensagens privadas<br />
* Gerenciar grupos<br />
* Gerenciar amigos e inimigos<br />
* Gerenciar anexos</p>
<p>Novas ferramentas para moderador</p>
<p>* Fila de moderação<br />
* Juntar tópicos<br />
* Copiar tópicos<br />
* Trancar um post (nao sei como funciona ehehe)<br />
* Histórico do tópico (legal isso)</p>
<p>Caching and performance (não vou traduzir isso da pra entender)</p>
<p>* Templates are cached<br />
* Permissions are cached<br />
* Forum config is cached<br />
* Database queries are cached</p>
<p>Amigos e inimigos</p>
<p>* Adicionar outros membros como amigos ou inimigos<br />
* Posts de inimigos ficam escondidos<br />
* Amigos são mostrados na lista de amigos</p>
<p>Avisos e Denuncias</p>
<p>* Usuários podem denunciar posts e tópicos<br />
* Moderadores podem advertir usuários</p>
<p>Melhorias para os usuários</p>
<p>* Favoritos<br />
* Acompanhar fórum<br />
* Suporte ao Jabber/xmpp<br />
* Enviar por e-mail ou imprimir tópicos<br />
* "You got beaten at posting notification"</p>
<p>Melhorias para Admins</p>
<p>* Anúncios Globais<br />
* Mostrar regras na pagina<br />
* Apagar usuários inativos<br />
* User, moderator, admin and error logs<br />
* Language pack editing<br />
* User notes<br />
* Detectar bots de busca (search spiders)</p>
<p>Com todos esses recursos não preciso mais de MOD nenhum para o fórum, vou tentar agora modificar mais o TeamSpeak e o KingKong para se adaptar ao fórum do que o fórum para se adptar a programas externos.<br />
Bom com isso é tudo no momento, agora é aguardar o RC1, e por as mãos na massa.</p>
<p>Thiago Melo.</p>
]]></content:encoded>
			<wfw:commentRss>http://thiago.oxente.org/2007/04/17/phpbb3-olympus/feed</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
	</channel>
</rss>
