<?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</title>
	<atom:link href="http://thiago.oxente.org/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>0</slash:comments>
		</item>
		<item>
		<title>Nintendo Wii Softmod &#8211; Segunda Edição</title>
		<link>http://thiago.oxente.org/2009/12/17/nintendo-wii-softmod-segunda-edicao</link>
		<comments>http://thiago.oxente.org/2009/12/17/nintendo-wii-softmod-segunda-edicao#comments</comments>
		<pubDate>Thu, 17 Dec 2009 14:31:56 +0000</pubDate>
		<dc:creator>Thiago Melo</dc:creator>
				<category><![CDATA[Nintendo Wii]]></category>
		<category><![CDATA[2011]]></category>
		<category><![CDATA[bannerbomber]]></category>
		<category><![CDATA[cios]]></category>
		<category><![CDATA[hbc]]></category>
		<category><![CDATA[softmod]]></category>
		<category><![CDATA[usb loader]]></category>
		<category><![CDATA[wii]]></category>

		<guid isPermaLink="false">http://thiago.oxente.org/?p=224</guid>
		<description><![CDATA[Eu fiz um post aqui no meu blog, demonstrando como fazer um softmod no nintendo Wii, no post descrevi os passos que utilizei para fazer as modificações no meu console. Só que daquele tempo para cá algumas coisas mudaram e eu pensei em atualizar o post para as ferramentas mais atuais, só que eu não [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: left;"><img class="alignleft" src="http://i17.photobucket.com/albums/b55/reiserfs/Nintendo_WII_1.gif" alt="" width="118" height="118" />Eu fiz um post aqui no meu blog, demonstrando como fazer um<a href="http://thiago.oxente.org/2009/04/20/nintendo-wii-softmod-rode-backup-dos-seus-jogos-sem-modificar-o-hardware-do-seu-wii" target="_blank"> softmod no nintendo Wii</a>, no post descrevi os passos que utilizei para fazer as modificações no meu console. Só que daquele tempo para cá algumas coisas mudaram e eu pensei em atualizar o post para as ferramentas mais atuais, só que eu não gosto de escrever aqui o que eu não testei.</p>
<p>Ontem eu tive uma nova experiência quando fui fazer o softmod em um Nintendo Wii zerado. A vítima (dona do wii) teve a coragem de entregar o console em minhas mãos, então com muito cuidado estudei os novos passos que seriam seguidos para modificar este Wii.<br />
<strong><br />
No meu console quando eu fiz o primeiro softmod eu tinha o seguinte cenário:</strong><br />
Nintendo Wii americano &#8211; US NTSC<br />
SystemMenu 3.3U<br />
Exploit Utilizado: TwilightHack com Zelda</p>
<p><strong>Já este novo console vinha com uma versão diferente o que mudou um pouco meus planos.</strong><br />
Nintendo Wii americano &#8211; US NTSC<br />
SystemMenu 3.4U<br />
Exploit Utilizado: BannerBomber</p>
<p><span id="more-224"></span>Para este novo console eu iria utilizar o <em>exploit BannerBomber</em>, que é bem mais prático do que o <em>Twilight Hack</em>, e não precisa do <em>Zelda</em>, apenas do cartão SD.<br />
Como a versão desse Wii é a 3.4, os IOS36 já vem corrigido, e com isso não é possível instalar o cIOS36 do Wanikoko, e com isso não poderia utilizar o <em>USB Loader</em> nem o <em>Backup Launcher</em>.</p>
<p><strong>Programas Utilizados</strong> (nota que este softmod está sendo feito em um Wii 3.4, porém é possível fazer em outras versões também)<br />
- BannerBomber: http://bannerbomb.qoid.us/aads/aad1f_v108.zip<br />
<span style="color: #ff0000;"> &#8211; BannerBomber para Wii 4.2: http://bannerbomb.qoid.us/abds/abd6a_v200.zip **</span><br />
- HackMii installer (HBC, BootMii, DVDX): http://bootmii.org/download/<br />
- cIOS36_rev10_Installer: não tenho link aqui mas no gbatemp.net deve ter.<br />
<span style="color: #0000ff;"> &#8211; cIOS36 rev14: http://gbatemp.net/index.php?download=6531 *</span><br />
- NeoGamma R7 (backup launcher): http://gbatemp.net/index.php?download=6572<br />
- USBLoaderGX: http://usbloader-gui.googlecode.com/files/USBLoaderGX_1.0_Installer.exe<br />
- TruchaBugRestore (para Wii 3.4 para cima): http://gbatemp.net/index.php?download=6378<br />
<span style="color: #ff0000;">- TruchaBugRestore para Wii 4.2: http://det1re.de/d/hb/TBR__trucha_bug_restorer_4.2-mod.zip **</span></p>
<p><span style="color: #0000ff;">* Eu não utilizei o rev14, mas quem preferir tem ai o Link, eu ainda prefiro utilizar o rev10, mas para compatibilidade com NeoGamma é melhor o rev14.</span><br />
<span style="color: #ff0000;">** Apenas para Wii 4.2, nunca fiz em um Wii 4.2, mas quem quiser tentar tem ai a solução.</span></p>
<p>1º passo) Instalar o HomeBrew Channel usando o BannerBomer.<br />
- Pegue o cartão SD e coloque na sua raíz a pasta <strong>private </strong>que esta dentro do zip do BannerBomber.<br />
- Extraia o arquivo<strong> installer.elf </strong>do zip do HackMii installer e coloque na raíz do seu cartão SD, e renomeie para <strong>boot.elf</strong>.<br />
- Coloque o SD no Wii e inicie o mesmo.<br />
- No menu do Wii escolha [Wii Options], depois [Data Management], depois [Channels], depois escolhe para ler os canais do SD.<br />
- Um prompt irá aparecer perguntando se você deseja carregar o boot.elf.<br />
- Siga as instruções, aperte 1 quando pedir e depois você vai ter a opção de instalar o HBC, BootMii e o DVDx.<br />
- O BootMii pode ser instalado como IOS ou em consoles mais antigos como boot2. Instalado como boot2 você protege seu Wii de qualquer brik, pois qualquer dano no console pode ser revertido posteriormente.<br />
- Instale o HomeBrew Channel seguindo as instruções da tela.<br />
- Não precisa instalar o DVDx e o Bootmii, caso instale o Bootmii como boot2 o wii vai inicar o BootMii toda vez que iniciar, e você vai precisar de um controle do gamecube para navegar na tela do BootMii.<br />
- Depois de instalado o HBC teste se ele está entrando e etc.</p>
<p style="text-align: center;">Vídeo mostrando a instalação do HBC, DVDx, BootMii (não foi feito por mim)<br />
<a href="http://www.youtube.com/watch?v=C79D_wkcAS0"><img src="http://img.youtube.com/vi/C79D_wkcAS0/default.jpg" width="130" height="97" border=0></a></p>
<p>2º passo) Restaurar o TruchaBug no IOS36 e instalar o cIOS36.</p>
<p>Depois do HBC instalado e funcionando vamos preparar o SD para instalar o resto das aplicações, a estrutura de diretórios do cartão SD está explicado no outro post, então prepare o cartão e coloque todas as aplicações que citei acima para iniciar o processo.<br />
<strong>Lembrando se e a sua primeira vez lendo isso aqui, de uma lida no <a href="http://thiago.oxente.org/2009/04/20/nintendo-wii-softmod-rode-backup-dos-seus-jogos-sem-modificar-o-hardware-do-seu-wii" target="_blank">meu primeiro artigo</a> para entender a estrutura de diretórios do cartão SD.</strong><br />
Para que os programas NeoGamma e USBLoaderGX funcionem, precisa-se instalar o cIOS36. Quando eu fui instalar o cIOS36 eu me deparei com um problema, toda vez dava um <strong>erro -2011</strong>. Pesquisando na interNERDS, eu descobri que este problema acontecia por causa da versão do IOS36 atual do Wii, que era o da versão 3.4. E as soluções que encontrei era de fazer um Downgrade do Wii para a versão 3.2, o que eu não queria fazer no console que não era meu.<br />
Depois encontrei outra solução mais simples, que apenas inseria o TruchaBug no IOS36 com isso deixando possível instalar o cIOS36, segue abaixo os passos para quem tiver problemas com<strong> erro -2011</strong> na instalação do cIOS36rev10 ou rev14.</p>
<p>Existem dois métodos de se restaurar o TruchaBug, o online e o offline. No caso do offline você vai precisar dos seguites IOS na ráiz do seu SD.<br />
<strong>IOS15-64-v257.wad<br />
IOS15-64-v266.wad (for X.X)<br />
IOS15-64-v523.wad (for 4.2)<br />
IOS36-64-v3094.wad</strong><br />
No método Online ele já baixa direto do Wii caso seu Wii esteja configurado para conexão com a internet.<br />
- Abra o arquivo Trucha Bug Restorer (zip) e extraia a pasta TBR para a pasta de aplicativos do seu SD (apps)<br />
- Inicie o Wii e vá no HomeBrew Channel<br />
- Carregue o TruchaBug Restorer<br />
<strong><span style="color: #ff0000;">!! Atenção, está parte é bem critica em alguns casos, então faça todas as etapas de uma vez, não volte para o SystemMenu antes de terminar todo o procedimento, ou seu Wii pode não voltar a iniciar.!!</span></strong>
</p>
<p style="text-align: left;">1. Escolha IOS36 depois a opção <strong>Downgrade IOS15</strong> <em>[Escolha Download IOS From NUS para instalação Online] [Escolha Load IOS from sd card para instalação Offline]</em><br />
2. Aperte A para sair, ele vai voltar para o HBC, inicie novamente o TruchaBug Restorer (não volte para o Sysmenu).<br />
3. Escolha IOS15 agora e depois a opção<strong> IOS 36 Menu</strong>, [Install IOS to Slot 36, yes, yes, no] e prossiga no Install Patched IOS36.<br />
4. Aperte A para sair, e novamente pelo HBC inicie o TruchaBug Restorer.<br />
5. Escolha IOS36 e a opção <strong>Restore IOS15</strong> <em>[Escolha Download IOS From NUS para instalação Online] [Escolha Load IOS from sd card para instalação Offline]</em></p>
<p style="text-align: center;">Nesse vídeo mostra os passos do uso do TruchaBug Restorer, e nele contem links para os wads da instalação offline também.<br />
<a href="http://www.youtube.com/watch?v=ltrd3oq8hPc"><img src="http://img.youtube.com/vi/ltrd3oq8hPc/default.jpg" width="130" height="97" border=0></a></p>
<p>Após restaurar o IOS15 você está seguro para voltar ao SysMenu ou reinciar o Wii. Depois do procedimento acima seu IOS36 está novamente com o bug que possibilita a instalação do cIOS36.</p>
<p>Crie a pasta chamada cIOS36 dentro da pasta apps no seu SD e coloque o instalador do cIOS36 dentro dela renomeado como boot.dol</p>
<p>Inicie o HBC e carregue o programa do cIOS36 e prossiga a instalação, que pode ser Online ou Offline (para Offline precisa-se do IOS36-64-v1042.wad na raíz do SD, use o vídeo do TruchaBug restorer para conseguir este arquivo).</p>
<p>Depois do cIOS instalado você pode remover o TruchaBug Restorer, o instalador do cIOS e os wads da raíz do seu SD e deixar apenas os programas que vai utilizar.</p>
<p>finalizando) Depois dos procedimentos acima o Wii estava já com HBC e cIOS36 instalados e com isso rodando todo tipo de aplicação no Wii, fiz testes com o NeoGamma e com o USB Loader gx e ambos carregaram os jogos sem problemas. o NeoGamma avisa que o cIOS rev14 (usei o rev10) não está instalado, mas funciona mesmo assim.</p>
<p>Para deixar tudo mais organizado e acessível instalei os canais de atalho para as aplicações  (channel forwarder) como NeoGamma, USB Loader GX e GeeXBox (para ver filmes pelo Wii).</p>
<p>Segue baixo algumas fotos:</p>
<div class="wp-caption aligncenter" style="width: 561px"><img title="Mariokart" src="http://i17.photobucket.com/albums/b55/reiserfs/DSC02053.jpg" alt="Testando o NeoGamma" width="551" height="413" /><p class="wp-caption-text">Testando o NeoGamma</p></div>
<div class="wp-caption aligncenter" style="width: 562px"><img src="http://i17.photobucket.com/albums/b55/reiserfs/DSC02054.jpg" alt="Wiiiiss" width="552" height="413" /><p class="wp-caption-text">Wiiiiss</p></div>
<div class="wp-caption aligncenter" style="width: 568px"><img src="http://i17.photobucket.com/albums/b55/reiserfs/DSC02055.jpg" alt="Homebrew Channel Instalado" width="558" height="418" /><p class="wp-caption-text">Homebrew Channel Instalado</p></div>
<div class="wp-caption aligncenter" style="width: 580px"><img src="http://i17.photobucket.com/albums/b55/reiserfs/DSC02056.jpg" alt="Resultado final com todos os canais instalados" width="570" height="427" /><p class="wp-caption-text">Resultado final com todos os canais instalados</p></div>
<div class="wp-caption aligncenter" style="width: 587px"><img src="http://i17.photobucket.com/albums/b55/reiserfs/DSC02057.jpg" alt="A tela do Meu Wii :P" width="577" height="432" /><p class="wp-caption-text">A tela do Meu Wii <img src='http://thiago.oxente.org/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> </p></div>
<p>Deixo aqui meu abraço para minha amiga Natalia e para sua prima Sofia (dona do Wii) que tiveram a coragem de deixar eu modificar o console mesmo sabendo dos riscos (ou não lol).</p>
<p>E agradecer ao Palmito, Riroxi e o Igor que me ajudaram a baixar uns arquivos do megaupload já que a internet lá em casa estava bixada (Telemar telemerda).</p>
]]></content:encoded>
			<wfw:commentRss>http://thiago.oxente.org/2009/12/17/nintendo-wii-softmod-segunda-edicao/feed</wfw:commentRss>
		<slash:comments>19</slash:comments>
		</item>
		<item>
		<title>Game of The Year 2009</title>
		<link>http://thiago.oxente.org/2009/12/15/game-of-the-year-2009</link>
		<comments>http://thiago.oxente.org/2009/12/15/game-of-the-year-2009#comments</comments>
		<pubDate>Tue, 15 Dec 2009 17:34:23 +0000</pubDate>
		<dc:creator>Thiago Melo</dc:creator>
				<category><![CDATA[Call of Duty 4]]></category>
		<category><![CDATA[Jogos]]></category>
		<category><![CDATA[Nintendo DS]]></category>
		<category><![CDATA[Nintendo Wii]]></category>

		<guid isPermaLink="false">http://thiago.oxente.org/?p=221</guid>
		<description><![CDATA[ Todo ano as revistas e sites relacionados a jogos, laçam suas listas dos jogos do ano, conhecido também como GOTY, esse ano tivemos muitos bons jogos lançados e algumas decepções. Eu como um jogador de PC, DS e Wii selecionei alguns jogos que joguei esse ano, e que na minha opinião, que pode ser [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://thiago.oxente.org/wp-content/uploads/2009/12/The_Saboteur_CoverArt.JPG"><img class="alignleft size-full wp-image-222" title="The_Saboteur_CoverArt" src="http://thiago.oxente.org/wp-content/uploads/2009/12/The_Saboteur_CoverArt.JPG" alt="The_Saboteur_CoverArt" width="142" height="136" /></a> Todo ano as revistas e sites relacionados a jogos, laçam suas listas dos jogos do ano, conhecido também como GOTY, esse ano tivemos muitos bons jogos lançados e algumas decepções. Eu como um jogador de PC, DS e Wii selecionei alguns jogos que joguei esse ano, e que na minha opinião, que pode ser diferente da sua ou daquela revista &#8220;especializada&#8221;, foram os melhores jogos do ANO.</p>
<p>Para Nintendo DS eu acho que de lançamento de 2009 eu joguei apenas o <a href="http://www.rockstargames.com/chinatownwars/" target="_blank">Grand Theft Auto: Chinatown Wars</a>, que por sinal me surpreendeu muito pelos gráficos e pela diversão que o jogo proporciona. O jogo volta as origens do GTA em 2D com a câmera por cima do personagem, só que o cenário é todo em 3D. O Mapa e uma parte do mapa original de Liberty City do GTA IV, o que foi bastante legal pois eu tinha acabado de &#8220;zerar&#8221; o GTA IV e poderia agora ver Liberty City de uma perspectiva diferente.</p>
<p><a href="http://s17.photobucket.com/albums/b55/reiserfs/?action=view&amp;current=gta2.jpg" target="_blank"><img src="http://i17.photobucket.com/albums/b55/reiserfs/th_gta2.jpg" border="0" alt="Photobucket" /></a></p>
<p>No Wii eu joguei bastante coisa, algumas eu não me agradei tanto, outros jogos eu até comentei aqui em outro post como o MadWorld, segue a lista abaixo dos jogos que eu acho que para Wii foram os melhores de 2009.</p>
<p>1. <a href="http://mariobroswii.com/">New Super Mario Bros. Wii </a><br />
2. <a href="http://www.sega.com/madworld" target="_blank">MadWorld</a><br />
3. <a href="http://www.conduitgame.com/" target="_blank">The Conduit</a><br />
4. <a href="http://www.deadspacegame.com/" target="_blank">Dead Space: Extraction</a></p>
<p><a href="http://s17.photobucket.com/albums/b55/reiserfs/?action=view&amp;current=new-super-mario-bros-wii_05.jpg" target="_blank"><img src="http://i17.photobucket.com/albums/b55/reiserfs/th_new-super-mario-bros-wii_05.jpg" border="0" alt="Photobucket" /></a></p>
<p>Para PC os lançamentos me surpreenderam, e eu ainda nem joguei o tal do Dragon Age, que todo mundo fala bem, mas acho que vai ficar para ser jogado em 2010 ainda espero as promoções de fim de ano do steam para comprar os jogos. Mas segue a lista.</p>
<p>1. <a href="http://www.thesaboteurgame.com/" target="_blank">The Saboteur</a><br />
2. <a href="http://www.arkhamcare.com/" target="_blank">Batman: Arkham Asylum</a><br />
3. <a href="http://www.callofjuarezgame.com/" target="_blank">Call of Juarez: Bound in Blood</a></p>
<p>Teve outros jogos muito bons também, como Bordelands, Torchligh, Killing Floor, Street Fighter IV, Heroes of Newerth e etc. Mas os 3 acima foram os mais completos e o que mais me prenderam no jogo. Teve também algumas decepções como Call of Duty MW2, o jogo ficou &#8220;o mesmo do mesmo&#8221; de CoD4, o jogo tem um bom gráfico, história e gameplay, mas é muito curto, jogando no veteran terminei em 2:30h, o MP para PC não é tão atrativo como o seu antecessor, e etc. A segunda decepção foi o L4D2. O jogo está muito melhor que o primeiro, mas não me animou a comprar pelo fato de que vi o L4D morrer muito rápido por ser um jogo pequeno e o L4D2 saiu também &#8220;o mesmo do mesmo&#8221;.</p>
]]></content:encoded>
			<wfw:commentRss>http://thiago.oxente.org/2009/12/15/game-of-the-year-2009/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>DNS Para Leigos (Parte 2)</title>
		<link>http://thiago.oxente.org/2009/11/17/dns-para-leigos-parte-2</link>
		<comments>http://thiago.oxente.org/2009/11/17/dns-para-leigos-parte-2#comments</comments>
		<pubDate>Tue, 17 Nov 2009 16:29:55 +0000</pubDate>
		<dc:creator>Thiago Melo</dc:creator>
				<category><![CDATA[DNS]]></category>
		<category><![CDATA[Redes]]></category>
		<category><![CDATA[bind]]></category>
		<category><![CDATA[djbdns]]></category>
		<category><![CDATA[mx]]></category>
		<category><![CDATA[zonas]]></category>

		<guid isPermaLink="false">http://thiago.oxente.org/?p=217</guid>
		<description><![CDATA[Esta e a segunda parte do meu post sobre DNS, na primeira parte, eu passei o básico de conhecimento que tenho sobre DNS para tentar explicar como funciona este serviço. Neste post eu vou focar em um lado mais avançado, explicar alguns tipos dos registros de DNS e falar sobre alguns dos softwares utilizados para [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://thiago.oxente.org/wp-content/uploads/2009/10/nerd_caverna.jpg"><img class="alignleft size-full wp-image-202" title="nerd_caverna" src="http://thiago.oxente.org/wp-content/uploads/2009/10/nerd_caverna.jpg" alt="nerd_caverna" width="153" height="129" /></a>Esta e a segunda parte do meu post sobre DNS, na <a href="http://thiago.oxente.org/2009/10/09/dns-para-leigos" target="_blank">primeira parte</a>, eu passei o básico de conhecimento que tenho sobre DNS para tentar explicar como funciona este serviço. Neste post eu vou focar em um lado mais avançado, explicar alguns tipos dos registros de DNS e falar sobre alguns dos softwares utilizados para prover este serviço.</p>
<p>O servidor de DNS como foi falado no post anterior, possui um banco de dados com as informações sobre um ou mais domínios. Estas informações possuem uma classificação, e cada registro possui uma classificação ou tipo diferente.</p>
<p><span id="more-217"></span></p>
<p>Abaixo eu vou listar os tipos de registro mais conhecidos e usado, e explicar um pouco sobre cada um.</p>
<p><strong>NS:</strong> (Name server) Esté e o registro principal, ele que fala quem é o dono daquele domínio ou sub-domínio. Por exemplo quando você registra um dominio na fapesp (registro.br) lá você informa seus servidores de dns primário e secundário, então o registro.br vai criar em seu banco de dados, registros NS com informações delegando o domínio registrado por você.</p>
<p><strong>A:</strong> (Address) Este é o registro de um endereço IPv4, é o mais simples no caso fala qual é o IP do domínio, Ex 10.1.1.1 e o ip de meudominio.com.</p>
<p><strong>CNAME:</strong> (Canonical name) É utilizado para criar um apelido de um dominio (alias), tipo mail.oxente.org CNAME webmail.oxente.org. No caso falo que mail é um apelido para webmail.<br />
<strong>MX</strong>: (Mail exchange) O MX informa qual é o servidor de e-mail daquele domínio. Quando você envia um e-mail para fulano@dominio.com, o DNS vai procurar saber onde que está a maquina responsável por receber este e-mail, porque por exemplo dominio.com pode ter um registro de IP de um servidor que não tem serviço de e-mail, então o MX é quem informa onde esta o serviço.<br />
<strong>PTR</strong>: (Pointer) O ptr aponta para um nome, mas é diferente do CNAME, o PTR é usado para fazer o DNS Reverso, onde um IP aponta para um nome ao inves de um nome apontar para um IP.<br />
Existem outros tipos de registro, a lista completa tem aqui nesta <a href="http://en.wikipedia.org/wiki/List_of_DNS_record_types" target="_blank">página do wikipedia</a> (em inglês).</p>
<p>Existem diversos softwares utilizados para prover o serviço de DNS, um dos mais famoso e mais usados é o BIND, segue abaixo uma breve descrição sobre alguns softwares de DNS.</p>
<p><strong>BIND:</strong> É o servidor mais conhecido e usado, foi desenvolvido na universidade de Berkeley, já passou por tres grandes mudanças de estrutura do seu código, conhecido como BIND4, BIND8 e agora sua ultima versão BIND9. É OpenSource e esta presente como padrão na maioria das distribuições Linux.</p>
<p><strong>Microsoft DNS:</strong> O servidor de DNS da microsoft faz parte da arquitetura do Active Directory, sendo muito usado em redes corporativas que utilizam servidores windows.</p>
<p><strong>DJBDNS:</strong> Este software foi criado por Daniel J. Bernstein, que cansado das vulnerabilidades do BIND resolveu criar sua propria aplicação. o DJBDNS é dividido em vários pequenos softwares, os mais conhecidos são o dnscache (que é o DNS Server) e o tinydns (que é o DNS Resolver).</p>
<p>Eu já usei muito o BIND, mas devido o trabalho que dava para gerenciar suas Zonas de configuração,  eu resolvi mudar para DJBDNS, onde o controle e configuração do serviço DNS é bem mais fácil. Para facilitar ainda mais criei scripts que me ajudam a gerenciar os domínios, vou deixar para um próximo post estes scripts para poder detalhar mais toda a estrutura que uso.</p>
]]></content:encoded>
			<wfw:commentRss>http://thiago.oxente.org/2009/11/17/dns-para-leigos-parte-2/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Blizzard Mobile Authenticator</title>
		<link>http://thiago.oxente.org/2009/10/23/blizzard-mobile-authenticator</link>
		<comments>http://thiago.oxente.org/2009/10/23/blizzard-mobile-authenticator#comments</comments>
		<pubDate>Fri, 23 Oct 2009 14:07:11 +0000</pubDate>
		<dc:creator>Thiago Melo</dc:creator>
				<category><![CDATA[Telefonia]]></category>
		<category><![CDATA[World of Warcraft]]></category>
		<category><![CDATA[6230]]></category>
		<category><![CDATA[authenticator]]></category>
		<category><![CDATA[blizzard]]></category>
		<category><![CDATA[bma]]></category>
		<category><![CDATA[mobile]]></category>
		<category><![CDATA[n78]]></category>
		<category><![CDATA[nokia]]></category>
		<category><![CDATA[warcraft]]></category>

		<guid isPermaLink="false">http://thiago.oxente.org/?p=214</guid>
		<description><![CDATA[A um tempo atrás a Blizzard lançou o Blizzard Authenticator, que é um pequeno Token que a cada 30 segundos gera um código, e que esse código é usado para conectar na sua conta da Battle.Net. Esse token é muito usado por bancos também, a finalidade do mesmo e aumentar a segurança da sua conta, [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://thiago.oxente.org/wp-content/uploads/2009/10/BattleNetiPhoneApp.jpg"><img class="alignleft size-full wp-image-215" title="BattleNetiPhoneApp" src="http://thiago.oxente.org/wp-content/uploads/2009/10/BattleNetiPhoneApp.jpg" alt="BattleNetiPhoneApp" width="119" height="179" /></a>A um tempo atrás a <a href="http://www.blizzard.com" target="_blank">Blizzard </a>lançou o <a href="http://us.blizzard.com/support/article.xml?locale=en_US&amp;articleId=24660" target="_blank">Blizzard Authenticator</a>, que é um pequeno Token que a cada 30 segundos gera um código, e que esse código é usado para conectar na sua conta da Battle.Net. Esse token é muito usado por bancos também, a finalidade do mesmo e aumentar a segurança da sua conta, pois mesmo tendo a conta hackeada, e alguem roubar sua senha, não vai conseguir logar na mesma pois precisa do código do Token que somente você possui.</p>
<p>Depois de ser lançado o Token, a Blizzard então criou uma versão para aparelhos móveis chamado Blizzard Mobile Authenticator.  De inicio era apenas para Iphone e Ipod, so que depois saiu uma versão para os outros aparelhos.<br />
<span id="more-214"></span></p>
<p>Eu fiquei com vontade de experimentar este novo recursos, como eu não estava querendo gastar dinheiro com a importação do token resolvi então tentar a versão para celular. Fui no site da <a href="http://mobile.blizzard.com/" target="_blank">blizzard store</a> para poder comprar o software, que custa apenas U$0,99 o Download, no site tem uma lista de celulares compatíveis e de operadoras cadastradas para receber o aplicativo.</p>
<p>O Meu aparelho é um Nokia 6230, e ele constava na lista de suportados, porém eu tenho um chip da Oi que faz ligações e tem acesso a internet e um chip da Tim que apenas recebe ligações. E  no site apenas a TIM era cadastrada, mesmo assim eu fiz o teste e botei meu numero da TIM mas fiz o download com o chip da Oi.</p>
<p>De inicio tudo funcionou normalmente, o sistema te da um código de 14 dígitos para associar sua conta com o token, só que o programa estava me dando um código Europeu que começava com EU-, e minha conta na Battle.Net é americana deveria ser US-. Com isso fiquei com medo de associar a conta e ficar travado.</p>
<p>Tentei contato com o suporte da loja que vende o programa mas não tive resposta, então fui no fórum da Blizzard e um dos Game Masters me assegurou que o código Europeu funciona com contas Americanas. Com a afirmação de um funcionário da Blizzard fui e cadastrei o token na minha conta e então fui testar no World of Warcraft. Como estava com o celular novo então antes de tentar com o código europeu tentei instalar novamente para ver se ainda pegava um código americano, instalei no meu N78 mas mesmo assim peguei código EU-.</p>
<p>Ao entrar no jogo ele pede login e senha normalmente, depois de apertar no botão para logar ele pede o código do token. Quando fui digitar o código o tempo para gerar um novo código estava acabando, estão esperei renovar e digitei o novo código, e não é que deu certo. Sucesso total no login.</p>
<p>Bom quem estiver com dúvidas sobre o BMA, pode usar que funciona, caso pegue código Europeu pode usar também testei aqui, e se você tiver um N78, ele não aparece na lista do site que vende o programa, mas você pode escolher um N75 por exemplo e pegar o programa.</p>
]]></content:encoded>
			<wfw:commentRss>http://thiago.oxente.org/2009/10/23/blizzard-mobile-authenticator/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Chegou meu novo celular &#8211; N78</title>
		<link>http://thiago.oxente.org/2009/10/23/chegou-meu-novo-celular-n78</link>
		<comments>http://thiago.oxente.org/2009/10/23/chegou-meu-novo-celular-n78#comments</comments>
		<pubDate>Fri, 23 Oct 2009 13:41:12 +0000</pubDate>
		<dc:creator>Thiago Melo</dc:creator>
				<category><![CDATA[Telefonia]]></category>
		<category><![CDATA[5800]]></category>
		<category><![CDATA[celular]]></category>
		<category><![CDATA[comparar]]></category>
		<category><![CDATA[n78]]></category>
		<category><![CDATA[nokia]]></category>
		<category><![CDATA[pesquisar]]></category>

		<guid isPermaLink="false">http://thiago.oxente.org/?p=210</guid>
		<description><![CDATA[ Ontem a noite chegou meu celular, um Nokia N78. Eu estava procurando um celular novo para mim, pois eu possuo dois chips e estava apenas com 1 aparelho. De inicio eu pensei em comprar um celular daqueles ching-ling que suportam dois chips e com isso ficar andando com apenas um aparelho, porém gastar uns [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://thiago.oxente.org/wp-content/uploads/2009/10/nokia-n78-phone.jpg"><img class="alignleft size-full wp-image-211" title="nokia-n78-phone" src="http://thiago.oxente.org/wp-content/uploads/2009/10/nokia-n78-phone.jpg" alt="nokia-n78-phone" width="119" height="123" /></a> Ontem a noite chegou meu celular, um Nokia N78. Eu estava procurando um celular novo para mim, pois eu possuo dois chips e estava apenas com 1 aparelho. De inicio eu pensei em comprar um celular daqueles ching-ling que suportam dois chips e com isso ficar andando com apenas um aparelho, porém gastar uns 200 reais em algo que com certeza não iria durar muito, não era muito animador.</p>
<p>Pesquisando pelos modelos de celular na internet, despertei um interesse em comprar um celular com suporte a Wi-fi. Hoje em dia quase todo lugar tem um ponto de acesso, e a praticidade que seria acessar e-mail, mapas, web pelo celular sem pagar para os ladrões das operadoras de celular seria o cenário perfeito.</p>
<p>O primeiro aparelho que fiquei com vontade de comprar foi o Nokia 5800 com touchscreen. Porém o fator financeiro não estava favorável e com isso tive que procurar uma solução mais barata.</p>
<p>O N78 de acordo com um site de comparações de celular, possui os mesmos recursos do 5800, menos a touchscreen e a quantidade de memória, e outras coisinhas hehehe, mas o N78 era a metade do preço de um 5800 e foi o fator que pesou mais na escolha. O celular vem com um cartão micro-sd de 2GB, fone de ouvido e cabo de dados, segue abaixo as especificações e uns links interessantes de pesquisa e comparação de celulares.</p>
<p><span id="more-210"></span></p>
<p><strong>LINKS</strong>:<br />
Buscar celular por recurso: <a href="http://www.tudocelular.com" target="_blank">http://www.tudocelular.com</a><br />
Comparar modelos de celular:<a href="http://celularcafe.com.br/" target="_blank"> http://celularcafe.com.br/</a></p>
<p><strong>Especificações</strong></p>
<p>Aparelho funciona em WCDMA (3G) na frequência 850/1900</p>
<p>-Conexão a internet via 3G e Wi-Fi<br />
-Câmera 3.2 MP com lentes Carl Zeiss<br />
-GPS integrado com licença de 6 meses do Nokia Mapas<br />
-Cor Standard: Warm Silver / Cocoa Brown<br />
-Tipo de conector de Dados: MicroUSB<br />
-Série 30, 40 ou 60: 60<br />
-Design Monobloco<br />
-Navi wheel<br />
-Tipo de conector de Audio: Audio 3,5 mm</p>
<p><strong>Display</strong></p>
<p>-Número de cores do Display:	16M<br />
-Resolução do display primário (pixels): 240&#215;320 pixels<br />
-Tamanho do display primário (Polegadas: 2,4</p>
<p><strong>Mídia</strong></p>
<p>-Video Player: Real One e Flash<br />
-Codecs de Video: 3gpp, Mp4 e real vídeo<br />
-Streaming de Vídeo:<br />
-Music Player<br />
-Gravador de Voz<br />
-Rádio FM<br />
-Visual Radio<br />
-Comandos de voz<br />
-Versão de DRM	OMA DRM 2.0</p>
<p><strong>Câmera</strong></p>
<p>-Câmera Digital Integrada<br />
-Tecla dedicada para câmera &#8211; modo landscape<br />
-Resolução da câmera: 3,2<br />
-Flash da Câmera<br />
-Zoom digital para fotos: 20x<br />
-Gravação de Video<br />
-Zoom digital para Video: 8x<br />
-Marca da Lente: Carl Zeiss Optics<br />
-Auto-focus<br />
-Tempo máximo de gravação Video:	60min<br />
-Formato do arquivo de Vídeo:	3GP, MPEG4<br />
-Formato arquivo Foto: JPEG, EXIF<br />
-Qtd de Quadros por Segundo:	15</p>
<p><strong>Aplicativos </strong><br />
-Suporta aplicativos JAVA<br />
-Suporta aplicativos Symbian<br />
-Outros Aplicativos: Conversor, Relógio, Calendário, Calculadora<br />
-Nokia Search</p>
<p><strong>Conectividade com outros devices </strong><br />
-Versão do Bluetooth: Bluetooth 2.0 + EDR<br />
-Versão WLAN:	WLAN  802.11 g/b com suporte a UPnP<br />
-WLAN disponível</p>
<p><strong>Serviços de Rede</strong><br />
-Chamada de Vídeo</p>
<p><strong>Serviços Adicionais</strong><br />
-Mapas<br />
-Versão de Mapas:	1,2<br />
-Lincença de Navegação<br />
-Tempo de Licença de Navegação (meses): 6</p>
<p><strong>Música</strong></p>
<p>-Reprodutor de música digital: suporta MP3/ AAC/ AAC+/ eAAC+/ WMA) com listas de músicas, equalizador e arte de álbum.<br />
-Sincronize músicas com Microsoft Windows Media Player 10&amp;11.<br />
-Faça rip de CDs com um clique, converta e transfira músicas para seu aparelho com Nokia Music Manager<br />
-Suporte OMA DRM 2.0 para música.<br />
-Rádio FM (87.5-108MHz /76-90MHz) com suporte para Visual Radio<br />
-Rádio pela Internet<br />
-Alto-falantes estéreos<br />
-Fones de Ouvido Estéreo Nokia HS-45/AD-54</p>
<p><strong>Sincronização</strong><br />
-Local/Remota (usando SyncML)<br />
-Dados: Calendário, Contatos, Tarefas, Notas, E-mail<br />
-Aplicativos de PC: Microsoft Outlook (2000, 2002, 2003 e 2007), Outlook Express (Agenda do Windows) no Windows XP, Windows Vista Contacts, Lotus Organizer (5.x e 6.x), Lotus Notes (5.0, 6.0 e 7.0)</p>
<p><strong>Gerenciamento de chamadas </strong><br />
-Registro de chamadas, discagem rápida, discagem de voz (com SIND) e comandos de voz e ringtones com voz<br />
-OMA DRM 1.0</p>
<p><strong> Tecnologia: </strong><br />
-QuadBand GSM 850/900/1800/1900 Mhz<br />
- 3G em WCDMA &#8211; 850/1900</p>
<p><strong>Bateria</strong><br />
-Autonomia em Standby:	320h GSM / 320 WCDMA<br />
-Autonomia em Conversação:	260 h<br />
-Capacidade (mAh)	1200 mAh<br />
-Autonomia em Chamada de Video (min)	195 h</p>
<p><strong>Produtividade</strong><br />
-Serviços de Mensagem<br />
-Tipos de Serviço:	SMTP, IMAP4, POP3, MMS<br />
-Visualizador de documentos Office<br />
-Tipo de Licença: Leitura</p>
<p><strong>Jogos</strong><br />
-N-Gage</p>
]]></content:encoded>
			<wfw:commentRss>http://thiago.oxente.org/2009/10/23/chegou-meu-novo-celular-n78/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>DNS para Leigos</title>
		<link>http://thiago.oxente.org/2009/10/09/dns-para-leigos</link>
		<comments>http://thiago.oxente.org/2009/10/09/dns-para-leigos#comments</comments>
		<pubDate>Fri, 09 Oct 2009 19:37:41 +0000</pubDate>
		<dc:creator>Thiago Melo</dc:creator>
				<category><![CDATA[DNS]]></category>
		<category><![CDATA[Redes]]></category>
		<category><![CDATA[bind]]></category>
		<category><![CDATA[mx]]></category>
		<category><![CDATA[nameserver]]></category>
		<category><![CDATA[rede]]></category>

		<guid isPermaLink="false">http://thiago.oxente.org/?p=201</guid>
		<description><![CDATA[Um dos meus serviços do dia a dia, é cuidar de um servidor DNS. Mas quando eu falo de DNS nem todas as pessoas entendem do que eu estou falando.
Hoje em dia a maioria da população conhece o básico da internet, que são as páginas, e-mails e claro os programas de bate-papo (MSN e afins), [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://thiago.oxente.org/wp-content/uploads/2009/10/nerd_caverna.jpg"><img class="alignleft size-medium wp-image-202" title="nerd_caverna" src="http://thiago.oxente.org/wp-content/uploads/2009/10/nerd_caverna-300x254.jpg" alt="nerd_caverna" width="155" height="130" /></a>Um dos meus serviços do dia a dia, é cuidar de um servidor DNS. Mas quando eu falo de DNS nem todas as pessoas entendem do que eu estou falando.<br />
Hoje em dia a maioria da população conhece o básico da internet, que são as páginas, e-mails e claro os programas de bate-papo (MSN e afins), mas quando se fala de outras particularidades de uma rede de computadores, como FTP e DNS ou ir a fundo em E-mail com SMTP, POP e IMAP, parece que você está xingando alguém.<br />
Sei que a maioria dos leitores aqui do meu humilde blog entendem estas siglas, mas a intenção desse post (espero que uma série de outros posts) é ir a fundo em um particular protocolo de rede tão importante no nosso dia a dia onde nem todos sabem o que é e como funciona.</p>
<p>O básico de entendimento de DNS que a maioria das pessoas tem, e que o DNS a tradução de um endereço IP para um nome. Por exemplo a página www.registro.br, onde se registra domínios, está no servidor com o endereço IP 200.160.2.3. Imagine como seria para decorar os endereços IP de cada computador na internet para poder acessar seu conteúdo. Eu já sou terrível para decorar números telefônicos, se não existisse o DNS acho que a internet não iria dar muito certo.<br />
<span id="more-201"></span>DNS é a sigla adotada para <strong>Domain Name System</strong>, que trata-se de um sistema hierárquico para resolução de nomes para computadores. No inicio da era da <a href="http://en.wikipedia.org/wiki/ARPANET" target="_blank">ArpaNET</a> ainda, com o crescimento do numero de computadores na rede se viu a necessidade de criar um sistema que funcionasse como uma agenda telefônica para os computadores onde se associava um nome para cada endereço IP dos dispositivos e computadores na rede. A idéia principal foi criar um arquivo HOSTS.TXT com os dados dos nomes e endereços IP e colocar em um computador central (SRI) onde toda vez que um computador fosse ligado, ele buscava este arquivo HOSTS.TXT no servidor central e o usava como referencia.</p>
<p>De inicio este sistema era funcional, porém existia o problema do crescimento da rede, e também a era da internet estava batendo a porta. Com isso mostrou a necessidade de se criar um sistema melhor, que fosse distribuído e independente de apenas um banco de dados central. Então em 1983 (ano que nasci lol) foi criada a primeira implementação do DNS, um sistema hierárquico em forma de arvore, onde está arvore é divida em zonas. Tendo no topo a <strong>root zone</strong>, e distribuindo o resto das zonas por outros servidores DNS.</p>
<p>Um domínio possui uma divisão por pontos, onde cada parte possui um servidor autoritário (que responde por esta parte), vejamos por exemplo www.google.com.br. A parte principal deste domínio é o <strong>.br</strong>. Quando um computador client vai consultar este domínio na internet, ele primeiro consulta um dos servidores da <strong>root zone</strong>, nesta zona, temos informações básicas sobre a primeira parte do domínio, no caso a resposta que teremos para <strong>.br </strong>será de que o servidor autoritário de<strong> .br</strong> fica no Brasil. Nossa consulta então vai até o servidor no Brasil procurar então por <strong>.com.br</strong> e assim por diante até chegar em <strong>www.google.com.br</strong>.</p>
<p>O exemplo acima não é 100% certo, é apenas para demonstrar como funciona a busca por um nome através do sistema de nomes. Até porque o .br e o .com.br ficam no mesmo servidor e o google.com.br e o www.google.com.br também, e nem sempre as buscas são feitas diretamente para um servidor na <strong>root zone. </strong>Abaixo eu fiz um desenho bem tosco para demonstrar como funciona a hierarquia mais ou menos do sistema de nomes.<br />
<a href="http://thiago.oxente.org/wp-content/uploads/2009/10/dns.png"><img class="aligncenter size-full wp-image-203" title="dns" src="http://thiago.oxente.org/wp-content/uploads/2009/10/dns.png" alt="dns" width="320" height="402" /><br />
</a></p>
<p>A imagem acima mostra uma <strong>root zone</strong> composta por diversos servidores DNS, uns ficam na <a href="http://en.wikipedia.org/wiki/NASA" target="_blank">Nasa</a> outros no <a href="http://en.wikipedia.org/wiki/United_States_Army_Research_Laboratory" target="_blank">exercito americano</a>, e outras empresas nos Estados Unidos. Apesar da empresas serem americanas alguns servidores da <strong>root zone</strong> utilizam um serviço chamado <a href="http://en.wikipedia.org/wiki/Anycast" target="_blank">AnyCast</a> para distribuir seu acesso ao redor do mundo, assim não centralizando a &#8220;Internet&#8221; apenas nos EUA.</p>
<p>O DNS funciona de duas formas, o DNS Server e o DNS Resolver. O <strong>DNS Server</strong> é um sistema de banco de dados distribuidor, que trabalha no modelo cliente-servidor. O <strong>DNS Server</strong> responde se ele é quem armazena informações sobre os domínios, é conhecido também como o servidor autoritário de um domínio. Exemplo o <a href="http://www.google.com.br" target="_blank">Google</a> possui uma rede de vários servidores de DNS, onde ficam armazenadas informações sobre seus domínios como <a href="http://www.google.com.br/" target="_blank">Google</a>.com, google.com.br, orkut.com, gmail.com e etc. Já o <strong>DNS Resolver</strong> trabalha de forma diferente, neste caso o DNS vai buscar a informações sobre um domínio na rede de forma recursiva ou não recursiva.</p>
<p><strong>Vou fazer uma analogia simples de como o DNS funciona nas duas formas</strong><br />
Eu tenho um <strong>DNS Server</strong> do <a href="http://www.google.com.br/" target="_blank">Google</a> onde armazena informações sobre os serviços do <a href="http://www.google.com.br/" target="_blank">Google</a>. Então em um dia qualquer aí alguém tenta acessar o site do Gmail, e sua busca por www.gmail.com sai pela internet em busca do endereço IP deste nome, em certo momento a busca chega até o servidor do <a href="http://www.google.com.br/" target="_blank">Google</a>, e então serão feitas as perguntas a este servidor:<br />
<strong> [DNS Cliente] </strong>- Você é o dono do dominio gmail.com?<br />
<strong> [DNS Server] </strong>- Sim sou o dono deste domínio.<br />
<strong> [DNS Cliente] </strong>- Então qual é o endereço IP de www.gmail.com?<br />
<strong> [DNS Server] </strong>- www.gmail.com responde para 200.0.0.1<br />
Fim da conversa.</p>
<p>Agora imagine se você quer acessar thiago.blogspot.google.com.br (esse domínio não existe , eu acho <img src='http://thiago.oxente.org/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> ).<br />
<strong> [DNS Cliente] </strong>- Você é o dono do dominio google.com.br?<br />
<strong> [DNS Server] </strong>- Sim sou o dono deste domínio.<br />
<strong>[DNS Cliente] </strong>- Você é o dono do dominio blogspot.google.com.br?<br />
<strong>[DNS Server] </strong>- Sim sou o dono deste domínio, porém quem responde pelo subdominio blogspot.google.com.br e meu servidor filho de IP 200.1.1.1.</p>
<p>Agora a conversa foi diferente pois o google não me deu o IP, e sim me mandou para um outro servidor que possui os dados de blogspot.google.com.br, então o cliente vai nesse servidor e busca então pelo IP de thiago.blogspot.google.com.br com a mesma conversa.<br />
Acho que da para entender como funciona um <strong>DNS Server </strong>usando essa ideia de pergutna, pois é praticamente isso, o servidor fica lá esperando alguem perguntar se ele é ou não o responsável pelo dominio e qual o IP pertece o dominio.</p>
<p>O <strong>DNS Resolver</strong> como foi dito trabalha de uma forma diferente, imagine o servidor de DNS do seu computador, vamos supor que você e um dos infelizes clientes da Telemar que possuem um Velox em casa. Então a Telemar tem um servidor de DNS que é usado por seus clientes para resolver o nome localmente para que eles possam acessar sua internet, conversar com amigos, e etc.<br />
Então você liga o PC conecta na internet e quer acessar o seu <strong>Gmail</strong>. Você abre o Firefox (o melhor <img src='http://thiago.oxente.org/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> ) e digita nele www.gmail.com. Seu navegador então vai usar o DNS configurado no seu Velox para obter o IP do servidor do site do Gmail.com. Como ele não sabe onde fica os servidores do google ele vai fazer fazer a busca na internet agindo como um <strong>DNS Client</strong> perguntando os DNS Servers quem é o IP daquele domínio.</p>
<p>- Primeiro ele vai na root zone para saber quem é o .com<br />
- .com pertence a VeriSign, então ele pergunta para a VeriSign quem é gmail.com.<br />
- O servidor da VeriSign fala para ele o IP de um dos servidores DNS do google que é o dono de gmail.com<br />
- O google fala qual é o IP de gmail.com e o seu Firefox abre então o site do gmail.com</p>
<p>Todo esse procedimento é claro é bem rapido, e para ficar mais rápido os <strong>DNS Resolver</strong> tambem trabalham com um sistema de cache, pois tambem são chamados de <strong>DNS Cache</strong>. O Cache é usado para diminuir o tráfego, imagine quantos usuários de velox estão perguntando para o servidor da Telemar onde está gmail.com? Se ele tiver um cache desta informação o serviço se torna bem mais rápido.</p>
<p><strong>Wall of Text Crits 204934 damage. You Dies!</strong><br />
O texto está ficando gigante e eu ainda não entrei em detalhes das Zonas, e os tipos de DNS (host, alias, cname, mx e etc) que existem, com isso vou deixar para uma segunda parte, onde vou entrar em um texto mais técnico com menos analogias. Bom espero que esse meu pensamento alto que postei hoje sirva para ensinar algo para alguém.<br />
Na parte dois vou abordar<br />
- Tipos de dns.<br />
- Programas usados para servidores de dns.<br />
- O que eu uso e meus scripts (são lindos &lt;3 bash).</p>
<p>Até a próxima.</p>
]]></content:encoded>
			<wfw:commentRss>http://thiago.oxente.org/2009/10/09/dns-para-leigos/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Blizzcon 2009 &#8211; Começou</title>
		<link>http://thiago.oxente.org/2009/08/21/blizzcon-2009-comecou</link>
		<comments>http://thiago.oxente.org/2009/08/21/blizzcon-2009-comecou#comments</comments>
		<pubDate>Fri, 21 Aug 2009 18:15:51 +0000</pubDate>
		<dc:creator>Thiago Melo</dc:creator>
				<category><![CDATA[Jogos]]></category>
		<category><![CDATA[World of Warcraft]]></category>

		<guid isPermaLink="false">http://thiago.oxente.org/?p=195</guid>
		<description><![CDATA[
Acabou de começar a Blizzcon2009, um dos maiores eventos anuais do mundo dos games. A Bliizcon (Blizard Conference) é um evento onde a Bliizard costuma mostrar seus produtos e anunciar novidades da empresa, o evento ocorre em Anaheim California, e este ano esta sendo trasmitido ao vivo pela DirectTV para todo mundo.
Este ano teremos novidades [...]]]></description>
			<content:encoded><![CDATA[<p><img class="aligncenter size-full wp-image-197" title="blizzcon-logo" src="http://thiago.oxente.org/wp-content/uploads/2009/08/blizzcon-logo1.png" alt="blizzcon-logo" width="244" height="149" /></p>
<p>Acabou de começar a Blizzcon2009, um dos maiores eventos anuais do mundo dos games. A Bliizcon (Blizard Conference) é um evento onde a Bliizard costuma mostrar seus produtos e anunciar novidades da empresa, o evento ocorre em Anaheim California, e este ano esta sendo trasmitido ao vivo pela DirectTV para todo mundo.<br />
Este ano teremos novidades como nova classe para o Diablo3, nova expansão do Wow (provavelmente) e ainda show do Ozzy no final do evento.<br />
Estou assistindo aqui e vou atualizando com o que for anunciado.</p>
<p><a href="http://www.blizzcon.com/" target="_blank">http://www.blizzcon.com/</a><br />
<span id="more-195"></span><br />
Resumo do que teve no dia 1<br />
Divulgação da nova raça do diablo3, o Monk.<br />
O Monk é uma classe Melee, vai usar Mail como armadura, e utiliza staffs e fist weapons. Assim como todas as outras classe existira uma versão Male e Female para Monk.</p>
<p>World of Warcraft: Cataclysm será a nova expansão do wow, e vai contar com:<br />
- Level cap para 85<br />
- O mapa de Azeroth será refeito por causa do evento do Cataclysm, e vai possibilitar voar por azeroth<br />
- Nova raça para a horda, Goblins, depois do cataclysm um dos carteis dos goblins recebe ajuda da horda contra seus inimigos e com isso acaba se juntando a causa.<br />
- Nova raça para aliança, Worgen, o reino de Gilneas se abre e os Worgens estão de volta, apos receber ajuda dos Nigh Elf contra um ataque dos Forsaken os Worgen entram para a aliança<br />
- Nova profissão secundária: Arqueologista<br />
- Mudanças nos stats dos itens<br />
- Zonas antigas que estavam fechadas agora serão abertas como Hyjal, Uldum, Grim Batol e etc.</p>
<p>Teve muita coisa ainda mas em quase todos os sites sobre wow, starcraft e diablo você vai encontrar as novidades, como:<br />
- www.diablofans.com<br />
- www.wow.com<br />
- www.blizzplanet.com</p>
<p>Hoje tem mais, porem não vou poder acompanhar tudo, mas foi muito bom assistir a blizzcon na sala, usando o notebook e a saida HDMI ligada na TV. &lt;3 Tecnologia.<br />
<a href="http://s17.photobucket.com/albums/b55/reiserfs/?action=view&amp;current=DSC01819.jpg" target="_blank"><img src="http://i17.photobucket.com/albums/b55/reiserfs/th_DSC01819.jpg" border="0" alt="Photobucket" /></a><br />
<a href="http://s17.photobucket.com/albums/b55/reiserfs/?action=view&amp;current=DSC01820.jpg" target="_blank"><img src="http://i17.photobucket.com/albums/b55/reiserfs/th_DSC01820.jpg" border="0" alt="Photobucket" /></a><br />
<a href="http://s17.photobucket.com/albums/b55/reiserfs/?action=view&amp;current=DSC01821.jpg" target="_blank"><img src="http://i17.photobucket.com/albums/b55/reiserfs/th_DSC01821.jpg" border="0" alt="Photobucket" /></a><br />
<a href="http://s17.photobucket.com/albums/b55/reiserfs/?action=view&amp;current=DSC01823.jpg" target="_blank"><img src="http://i17.photobucket.com/albums/b55/reiserfs/th_DSC01823.jpg" border="0" alt="Photobucket" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://thiago.oxente.org/2009/08/21/blizzcon-2009-comecou/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Mudando a Carcaça do Nintendo DS Phat</title>
		<link>http://thiago.oxente.org/2009/08/20/mudando-a-carcaca-do-nintendo-ds-phat</link>
		<comments>http://thiago.oxente.org/2009/08/20/mudando-a-carcaca-do-nintendo-ds-phat#comments</comments>
		<pubDate>Thu, 20 Aug 2009 18:32:42 +0000</pubDate>
		<dc:creator>Thiago Melo</dc:creator>
				<category><![CDATA[Hardware]]></category>
		<category><![CDATA[Nintendo DS]]></category>

		<guid isPermaLink="false">http://thiago.oxente.org/?p=188</guid>
		<description><![CDATA[Outro dia, minha noiva, a Raquel, derrubou o nintendo DS dela no chão (zomg), e o mesmo quebrou a carcaça de uma forma que a tela não se sustentava em pé. Como um cliente do DealExtreme, lembrei que eles vendiam as carcaças no precinho, então fui lá e comprei uma carcaça nova e uma chave [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-thumbnail wp-image-191" title="ndsbroken" src="http://thiago.oxente.org/wp-content/uploads/2009/08/ndsbroken-150x150.png" alt="ndsbroken" width="112" height="112" />Outro dia, minha noiva, a Raquel, derrubou o nintendo DS dela no chão (zomg), e o mesmo quebrou a carcaça de uma forma que a tela não se sustentava em pé. Como um cliente do DealExtreme, lembrei que eles vendiam as carcaças no precinho, então fui lá e comprei uma carcaça nova e uma chave de fenda especial para abrir o Nintendo DS.<br />
Quando a encomenda chegou, fui então fazer a substituição da carcaça, e para me guiar usei um vídeo que achei no youtube onde mostra o passo a passo, o vídeo é em espanhol mas é fácil de entender.<br />
<span id="more-188"></span><br />
Segue o vídeo<br />
<a href="http://www.youtube.com/watch?v=-dHtv9DA94g"><img src="http://img.youtube.com/vi/-dHtv9DA94g/default.jpg" width="130" height="97" border=0></a><br />
Ao fazer a troca reparei que apesar da carcaça ser idêntica o material da carcaça &#8220;made in china&#8221; era bem mais fraco, e a falta de um detalhe me deu muita dor de cabeça. Logo depois de montar tudinho, fui testar o DS, e para minha surpresa a tela do &#8220;toutch screen&#8221; não estava funcionando, abri novamente olhei, olhei e nada de fazer funcionar.</p>
<p>Depois de um tempo fazendo testes descobri que a tela funcionava quando eu não colocava a carcaça, então logo liguei o fato da nova carcaça estar causando algo com a &#8220;touch screen&#8221;. Percebi que toda vez que eu apertava os parafusos a tela parava de funcionar. Então peguei a carcaça original para comprara as diferenças, e vi que no local onde fica a &#8220;touch screen&#8221; existe uma borracha que serve de apoio para a tela não encostar na carcaça, porem essa borracha é colada na carcaça e não tinha como apenas tirar e colocar a borracha na carcaça nova, pois ela rasgava toda vez que eu tentava retirar.</p>
<p>Para resolver esse problema, fiz uma pequena gambiarra no Nintendo da Raquel, com um pouco de imaginação, uma tesoura e uma fita isolante o problema foi sanado, e o nintendo voltou a funcionar normalmente com uma carcaça nova e inteira.<br />
Segue as fotos da aventura hehehe.</p>
<p><img class="alignnone" title="015" src="http://i17.photobucket.com/albums/b55/reiserfs/Imag015.jpg" alt="" width="640" height="480" /></p>
<p><img class="alignnone" title="016" src="http://i17.photobucket.com/albums/b55/reiserfs/Imag016.jpg" alt="" width="640" height="480" /></p>
<p><img class="alignnone" title="017" src="http://i17.photobucket.com/albums/b55/reiserfs/Imag017.jpg" alt="" width="640" height="480" /></p>
<p><img class="alignnone" title="018" src="http://i17.photobucket.com/albums/b55/reiserfs/Imag018.jpg" alt="" width="640" height="480" /></p>
<p><img class="alignnone" title="019" src="http://i17.photobucket.com/albums/b55/reiserfs/Imag019-1.jpg" alt="" width="640" height="480" /></p>
]]></content:encoded>
			<wfw:commentRss>http://thiago.oxente.org/2009/08/20/mudando-a-carcaca-do-nintendo-ds-phat/feed</wfw:commentRss>
		<slash:comments>6</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>
	</channel>
</rss>
